OSDN Git Service

2771b9f862efedcbb001302fb31d4f839096e7f4
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2
3         * cgraph.c: Fix typos in comments.
4         (cgraph_availability_names): Fix string typo.
5         * fold-const.c: Fix typos in comments.
6         (fold_binary): Fix typo in warning.
7         * genautomata.c: Fix typos in comments.
8         (check_presence_pattern_sets): Fix typo in local variable.
9         (output_description): Fix typo in output.
10         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
11         * hwint.h: Likewise.
12         * matrix-reorg.c (check_allocation_function): Likewise.
13         * omega.c (smooth_weird_equations): Likewise.
14         * auto-inc-dec.c: Fix typos in comments.
15         * bb-reorder.c: Likewise.
16         * builtins.c: Likewise.
17         * c-common.c: Likewise.
18         * c-cppbuiltin.c: Likewise.
19         * c-parser.c: Likewise.
20         * c-pretty-print.c: Likewise.
21         * cfgcleanup.c: Likewise.
22         * cfgexpand.c: Likewise.
23         * cfghooks.c: Likewise.
24         * cfglayout.c: Likewise.
25         * cfgloopmanip.c: Likewise.
26         * cgraphunit.c: Likewise.
27         * coverage.c: Likewise.
28         * dbxout.c: Likewise.
29         * df-byte-scan.c: Likewise.
30         * df-core.c: Likewise.
31         * df-problems.c: Likewise.
32         * df-scan.c: Likewise.
33         * dfp.c: Likewise.
34         * dominance.c: Likewise.
35         * domwalk.c: Likewise.
36         * dse.c: Likewise.
37         * dwarf2out.c: Likewise.
38         * emit-rtl.c: Likewise.
39         * et-forest.c: Likewise.
40         * function.c: Likewise.
41         * function.h: Likewise.
42         * gcc.c: Likewise.
43         * gcov-io.c: Likewise.
44         * gcov.c: Likewise.
45         * gcse.c: Likewise.
46         * genattrtab.c: Likewise.
47         * ggc-page.c: Likewise.
48         * gimplify.c: Likewise.
49         * gthr-lynx.h: Likewise.
50         * haifa-sched.c: Likewise.
51         * ipa-cp.c: Likewise.
52         * ipa-inline.c: Likewise.
53         * ipa-prop.h: Likewise.
54         * ipa-pure-const.c: Likewise.
55         * ipa-struct-reorg.c: Likewise.
56         * ipa-struct-reorg.h: Likewise.
57         * ipa-type-escape.c: Likewise.
58         * ipa.c: Likewise.
59         * loop-doloop.c: Likewise.
60         * mips-tfile.c: Likewise.
61         * mkmap-flat.awk: Likewise.
62         * mkmap-symver.awk: Likewise.
63         * modulo-sched.c: Likewise.
64         * omp-low.c: Likewise.
65         * optabs.c: Likewise.
66         * optabs.h: Likewise.
67         * opts.c: Likewise.
68         * passes.c: Likewise.
69         * postreload-gcse.c: Likewise.
70         * postreload.c: Likewise.
71         * predict.c: Likewise.
72         * pretty-print.h: Likewise.
73         * profile.c: Likewise.
74         * protoize.c: Likewise.
75         * ra-conflict.c: Likewise.
76         * real.c: Likewise.
77         * recog.c: Likewise.
78         * regclass.c: Likewise.
79         * regs.h: Likewise.
80         * reload.c: Likewise.
81         * rtl-error.c: Likewise.
82         * rtlanal.c: Likewise.
83         * scan.h: Likewise.
84         * sched-rgn.c: Likewise.
85         * see.c: Likewise.
86         * stmt.c: Likewise.
87         * target.h: Likewise.
88         * tree-dfa.c: Likewise.
89         * tree-eh.c: Likewise.
90         * tree-flow-inline.h: Likewise.
91         * tree-inline.c: Likewise.
92         * tree-into-ssa.c: Likewise.
93         * tree-loop-distribution.c: Likewise.
94         * tree-nested.c: Likewise.
95         * tree-parloops.c: Likewise.
96         * tree-pass.h: Likewise.
97         * tree-pretty-print.c: Likewise.
98         * tree-profile.c: Likewise.
99         * tree-scalar-evolution.c: Likewise.
100         * tree-sra.c: Likewise.
101         * tree-ssa-alias-warnings.c: Likewise.
102         * tree-ssa-ccp.c: Likewise.
103         * tree-ssa-coalesce.c: Likewise.
104         * tree-ssa-dom.c: Likewise.
105         * tree-ssa-dse.c: Likewise.
106         * tree-ssa-forwprop.c: Likewise.
107         * tree-ssa-live.c: Likewise.
108         * tree-ssa-live.h: Likewise.
109         * tree-ssa-loop-im.c: Likewise.
110         * tree-ssa-loop-ivopts.c: Likewise.
111         * tree-ssa-loop-niter.c: Likewise.
112         * tree-ssa-loop-prefetch.c: Likewise.
113         * tree-ssa-phiopt.c: Likewise.
114         * tree-ssa-phiprop.c: Likewise.
115         * tree-ssa-sccvn.c: Likewise.
116         * tree-ssa-ter.c: Likewise.
117         * tree-ssa-threadupdate.c: Likewise.
118         * tree-ssa.c: Likewise.
119         * tree-vect-analyze.c: Likewise.
120         * tree-vect-transform.c: Likewise.
121         * tree-vectorizer.c: Likewise.
122         * tree-vn.c: Likewise.
123         * tree-vrp.c: Likewise.
124         * tree.c: Likewise.
125         * tree.def: Likewise.
126         * tree.h: Likewise.
127         * unwind-dw2-fde.c: Likewise.
128         * unwind.inc: Likewise.
129         * value-prof.c: Likewise.
130         * vmsdbgout.c: Likewise.
131
132 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
133
134         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
135         always place FP constants in the TOC for TARGET_POWERPC64.
136         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
137
138 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
139
140         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
141         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
142         enable for TARGET_E500_DOUBLE.
143         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
144         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
145         floating-point modes like integer modes for E500 double.
146         (rs6000_legitimate_offset_address_p): Likewise.
147         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
148         addressing for DDmode for E500 double.
149         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
150         modes as using 64-bits of registers for E500 double.
151         (spe_build_register_parallel): Do not handle DDmode or TDmode.
152         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
153         specially for E500 double.
154         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
155         TDmode for E500 double.
156         (rs6000_gimplify_va_arg): Only handle SDmode in registers
157         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
158         (rs6000_split_multireg_move): Do not handle TDmode specially for
159         E500 double.
160         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
161         using 64-bit registers for E500 double.
162         (emit_frame_save): Do not handle DDmode specially for E500 double.
163         (gen_frame_mem_offset): Likewise.
164         (rs6000_function_value): Do not call spe_build_register_parallel
165         for DDmode or TDmode.
166         (rs6000_libcall_value): Likewise.
167         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
168         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
169         for E500 double.
170
171 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
172
173         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
174         in comments.
175
176 2008-06-04  Junjie Gu <jgu@tensilica.com>
177
178         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
179         comparison for frame pointers.
180
181 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
182
183         PR target/27386
184         * config/avr/avr.h: (PUSH_ROUNDING): Remove.
185
186 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
187
188         PR target/30243
189         * builtins.c (expand_builtin_signbit): Don't take lowpart when
190         register is already smaller or equal to required mode. 
191
192 2008-06-04  Xinliang David Li  <davidxl@google.com>
193
194         * tree-call-cdce.c: New file. 
195         (cond_dead_built_in_calls): New static variable.
196         (input_domain): New struct.
197         (check_pow): New function.
198         (check_builtin_call): Ditto.
199         (check_target_format): Ditto.
200         (is_call_dce_candidate): Ditto.
201         (gen_one_condition): Ditto.
202         (gen_conditions_for_domain): Ditto.
203         (get_domain): Ditto.
204         (gen_conditions_for_pow_cst_base): Ditto.
205         (gen_conditions_for_pow_int_base): Ditto.
206         (gen_conditions_for_pow): Ditto.
207         (get_no_error_domain): Ditto.
208         (gen_shrink_wrap_conditions): Ditto.
209         (shrink_wrap_one_built_in_call): Ditto.
210         (shink_wrap_conditional_dead_built_in_calls): Ditto.
211         (tree_call_cdce): Ditto.
212         (gate_call_cdce): Ditto.
213         (pass_call_cdce): New gimple pass.
214         * passes.c: (init_optimization_passes): New pass.
215         * tree-pass.h: New pass declaration.
216         * opts.c (decode_options): New flag setting.
217         * common.opt: Add -ftree-builtin-call-dce flag.
218         * Makefile.in: Add new source file.
219         * tempvar.def: New tv_id.
220         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
221
222 2008-06-04  Richard Guenther  <rguenther@suse.de>
223
224         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC
225         on MTAGs.
226         (is_call_clobbered): Always check var_ann->call_clobbered.
227         (mark_call_clobbered): Always set var_ann->call_clobbered.
228         (clear_call_clobbered): Always clear var_ann->call_clobbered.
229         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
230         (reset_alias_info): Clear call clobbering info on MTAGs and
231         globals as well.
232         (set_pt_anything): Set pt_global_mem.
233         (create_tag_raw): Adjust comment.
234         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
235
236 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
237             Maxim Kuvyrkov  <maxim@codesourcery.com>
238
239         * config/m68k/m68k.opt (mxgot): New option.
240         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
241         (m68k_output_addr_const_extra): New.
242         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
243         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
244         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
245         * doc/invoke.texi (M680x0 Options): Document -mxgot.
246
247 2008-06-04  Richard Guenther  <rguenther@suse.de>
248
249         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
250         negative or non-representable offsets.
251
252 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
253
254         *  config/i386/i386.c (ix86_gen_leave): New.
255         (ix86_gen_pop1): Likewise.
256         (ix86_gen_add3): Likewise.
257         (ix86_gen_sub3): Likewise.
258         (ix86_gen_sub3_carry): Likewise.
259         (ix86_gen_one_cmpl2): Likewise.
260         (ix86_gen_monitor): Likewise.
261         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
262         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
263         ix86_gen_one_cmpl2 and ix86_gen_monitor.
264         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
265         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
266         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
267         (ix86_expand_epilogue): Updated.
268         (print_operand): Handle integer register operand for 'z'.
269         (ix86_expand_strlensi_unroll_1): Likewise.
270         (ix86_expand_strlen): Likewise.
271         (ix86_expand_builtin): Likewise.
272         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
273         mov{q}/mov{l} and add{q}/add{l}.
274
275 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
276
277         * config/i386/i386.md (P): New mode iterator.
278         (SFmode push_operand splitter): Macroize DImode and SImode pushes
279         using P mode iterator.
280         (DFmode push_operand splitter): Ditto.
281         (XFmode push_operand splitter): Ditto.
282         (DFmode float_extend SFmode push_operand splitter): Ditto.
283         (XFmode float_extend SFmode push_operand splitter): Do not generate
284         SImode pushes for 64bit target.  Macroize Dimode and SImode
285         pushes using P mode iterator.
286         (XFmode float_extend DFmode push_operand splitter): Ditto.
287
288 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
289
290         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
291         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed
292         prototype.
293         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
294         return type to int.
295         (ix86_call_abi_override): Remove check for call_used_regs.
296
297 2008-06-03  Richard Guenther  <rguenther@suse.de>
298
299         * tree-ssa-structalias.c (find_func_aliases): Add constraints
300         for the lhs of calls if the return type contains pointers.
301
302 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
303
304         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
305         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
306         * function.c (allocate_struct_function): Use of
307         OVERRIDE_ABI_FORMAT.
308         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
309         of cfun and DEFAULT_ABI to deceide abi mode.
310         (DEFAULT_ABI): New.
311         (REG_PARM_STACK_SPACE): Removed.
312         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
313         (STACK_BOUNDARY): Use default target to deceide stack boundary.
314         * config/i386/i386-protos.h (ix86_cfun_abi): New.
315         (ix86_function_abi): Likewise.
316         (ix86_function_type_abi): Likewise.
317         (ix86_call_abi_override): Likewise.
318         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
319         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
320         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
321         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
322         specific defines.
323         (X86_64_REGPARM_MAX): New.
324         (X86_64_SSE_REGPARM_MAX): New.
325         (X64_REGPARM_MAX): New.
326         (X64_SSE_REGPARM_MAX): New.
327         (X86_32_REGPARM_MAX): New.
328         (X86_32_SSE_REGPARM_MAX): New.
329         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
330         (ix86_function_regparm): Handle user calling abi.
331         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
332         by DEFAULT_ABI versus SYSV_ABI check.
333         (ix86_reg_parm_stack_space): New.
334         (ix86_function_type_abi): New.
335         (ix86_call_abi_override): New.
336         (ix86_function_abi): New.
337         (ix86_cfun_abi): New.
338         (init_cumulative_args): Call abi specific initialization.
339         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
340         (function_arg_64): Extend SSE_REGPARM_MAX check.
341         (function_arg (): Remove TARGET_64BIT_MS_ABI.
342         (ix86_pass_by_reference): Likewise.
343         (ix86_function_value_regno_p): Likewise.
344         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
345         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
346         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
347         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
348         (setup_incoming_varargs_64): Adjust regparm for call abi.
349         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
350         (ix86_va_start): Likewise.
351         (ix86_gimplify_va_arg): Likewise.
352         (ix86_expand_prologue): Likewise.
353         (output_pic_addr_const): Likewise.
354         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
355         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
356         (x86_output_mi_thunk): Likewise.
357         (x86_function_profiler): Likewise.
358         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
359         (SYSV_ABI, MS_ABI): New constants.
360         (DEFAULT_ABI): New.
361         (init_regs): Add prototype of function in regclass.c file.
362         (OVERRIDE_ABI_FORMAT): New.
363         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
364         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
365         (OUTGOING_REG_PARM_STACK_SPACE): New.
366         (ix86_reg_parm_stack_space): New prototype.
367         (CUMULATIVE_ARGS): Add call_abi member.
368         (machine_function): Add call_abi member.
369         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace TARGET_64BIT_MS_ABI
370         by DEFAULT_ABI compare to MS_ABI.
371
372 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com> 
373
374         PR target/34879
375         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
376         (avr_builtin_setjmp_frame_value): New function.
377         * config/avr/avr.md (nonlocal_goto_receiver): Define.
378         (nonlocal_goto): Define.
379
380 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
381
382         * config/mips/mips.c (mips_emit_loadgp): Return early if
383         there is nothing do to, otherwise emit a blockage if
384         !TARGET_EXPLICIT_RELOCS || crtl->profile.
385         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
386
387 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
388
389         * configure.ac: Drop unneeded backslash ending up in config.in.
390         * acinclude.m4: Likewise.
391         * config.in: Regenerate.
392
393 2008-05-26  Jan Hubicka  <jh@suse.cz>
394
395         * predict.c (maybe_hot_frequency_p): Break out of...
396         (maybe_hot_bb_p): ... here.
397         (maybe_hot_edge_p): New.
398         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
399         * basic-block.h (maybe_hot_edge_p): Declare.
400
401 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
402
403         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
404         (*cmpfp_<mode>_cc): Ditto.
405         (*fp_jcc_8<mode>_387): Ditto.
406         (*fop_<MODEF:mode>_2_i387): Ditto.
407         (*fop_<MODEF:mode>_3_i387): Ditto.
408         (*fop_xf_2_i387): Ditto.
409         (*fop_xf_3_i387): Ditto.
410
411 2008-06-02  Tomas Bily  <tbily@suse.cz>
412
413         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
414
415 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
416
417         * config/mips/mips.c (mips_valid_offset_p): New function.
418         (mips_valid_lo_sum_p): Likewise.
419         (mips_classify_address): Use them.
420         (mips_force_address): New function.
421         (mips_legitimize_address): Use it.
422         * config/mips/mips.md (MOVE128): New mode iterator.
423         (movtf): Require TARGET_64BIT.  Remove empty strings.
424         (*movtf_internal): Rename to...
425         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
426         of "R" and use {,fp}{load,store} attributes instead of "multi".
427         Use a separate define_split.
428         (*movtf_mips16): New pattern.
429
430 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
431
432         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
433         * config/mips/mips.c (mips_expand_before_return): New function.
434         (mips_expand_epilogue): Call it.
435         * config/mips/mips.md (return): Turn into a define_expand.
436         (*return): New insn.
437
438 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
439
440         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
441         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
442         functions.  Do not emit uses and clobbers of CONCATs; individually
443         use and clobber their operands.
444         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
445         gen_clobber, emit_use and gen_use.
446         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
447         (expand_builtin_return): Likewise.
448         * cfgbuild.c (count_basic_blocks): Likewise.
449         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
450         * explow.c (emit_stack_restore): Likewise.
451         * expmed.c (extract_bit_field_1): Likewise.
452         * expr.c (convert_move, emit_move_complex_parts): Likewise.
453         (emit_move_multi_word, store_constructor): Likewise.
454         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
455         (thread_prologue_and_epilogue_insns): Likewise.
456         * lower-subreg.c (resolve_simple_move): Likewise.
457         * optabs.c (widen_operand, expand_binop): Likewise.
458         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
459         * reload.c (find_reloads): Likewise.
460         * reload1.c (eliminate_regs_in_insn): Likewise.
461         * stmt.c (expand_nl_goto_receiver): Likewise.
462         * config/alpha/alpha.md (builtin_longjmp): Likewise.
463         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
464         * config/arm/arm.c (arm_load_pic_register): Likewise.
465         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
466         * config/arm/arm.md (untyped_return): Likewise.
467         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
468         * config/avr/avr.c (expand_prologue): Likewise.
469         * config/bfin/bfin.c (do_unlink): Likewise.
470         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
471         * config/cris/cris.c (cris_expand_prologue): Likewise.
472         * config/darwin.c (machopic_indirect_data_reference): Likewise.
473         (machopic_legitimize_pic_address): Likewise.
474         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
475         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
476         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
477         (ix86_expand_convert_uns_didf_sse): Likewise.
478         (ix86_expand_vector_init_general): Likewise.
479         * config/ia64/ia64.md (eh_epilogue): Likewise.
480         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
481         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
482         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
483         (config/iq2000/iq2000.c): Likewise.
484         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
485         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
486         (builtin_longjmp): Likewise.
487         * config/mn10300/mn10300.md (call, call_value): Likewise.
488         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
489         * config/pdp11/pdp11.md (abshi2): Likewise.
490         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
491         * config/s390/s390.c (s390_emit_prologue): Likewise.
492         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
493         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
494         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
495         * config/sh/sh.c (prepare_move_operands): Likewise.
496         (output_stack_adjust, sh_expand_epilogue): Likewise.
497         (sh_set_return_address, sh_expand_t_scc): Likewise.
498         * config/sparc/sparc.c (load_pic_register): Likewise.
499         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
500         * config/spu/spu.c (spu_expand_epilogue): Likewise.
501         * config/v850/v850.c (expand_epilogue): Likewise.
502
503 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
504
505         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
506         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
507         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
508         * config/avr/avr.c (expand_prologue, expand_epilogue): Use 
509         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the 
510         stack pointer register.
511         (output_movhi): Remove code for interrupt specific writing to the 
512         stack pointer register.
513
514 2008-05-31  Richard Guenther  <rguenther@suse.de>
515
516         PR tree-optimization/34244
517         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
518         (tree_expr_nonzero_warnv_p): Likewise.
519         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
520         ssa_name_nonnegative_p.
521         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
522         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
523         not tree_expr_nonzero_warnv_p.
524
525         PR tree-optimization/36262
526         Revert
527         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
528
529         PR tree-optimization/34244
530         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
531         (record_numbers_of_iterations): New function.
532         (execute_vrp): Cache the numbers of iterations of loops.
533         * tree-scalar-evolution.c (scev_reset_except_niters):
534         New function.
535         (scev_reset): Use scev_reset_except_niters.
536         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
537
538 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
539
540         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
541         __WORKAROUND_RETS when appropriate.
542
543 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
544
545         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
546         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
547         mode iterator.
548         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
549         *fop_df_comm_sse insn patterns using MODEF mode iterator.
550         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
551         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
552         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
553         *fop_df_1_mixed insn patterns using MODEF mode iterator.
554         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
555         *fop_df_1_sse insn patterns using MODEF mode iterator.
556         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
557         *fop_df_1_i387 insn patterns using MODEF mode iterator.
558         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
559         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
560         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
561         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
562         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
563         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
564         (*fop_xf_4_i387): Use <MODE> for mode attribute.
565         (*fop_xf_5_i387): Ditto.
566         (*fop_xf_6_i387): Ditto.
567
568 2008-05-30  Richard Guenther  <rguenther@suse.de>
569
570         * builtins.c (build_string_literal): Avoid generating
571         a non-gimple_val result.
572
573 2008-05-30  DJ Delorie  <dj@redhat.com>
574
575         * exec-tool.in: Use an environment variable (private) instead of a
576         file (shared) as a semaphore, so as to not break parallel builds.
577
578 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
579
580         * optabs.c (maybe_encapsulate_block): Remove.
581         (emit_libcall_block): Adjust accordingly.
582         * optabs.h (maybe_encapsulate_block): Remove prototype.
583
584         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
585         Don't use maybe_encapsulate_block.
586
587 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
588
589         * config/rs6000/rs6000.c (rs6000_legitimize_address,
590         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
591         rtx is a SYMBOL_REF before calling get_pool_constant.
592
593 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
594
595         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
596
597 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
598
599         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
600         rather than OS names to choose INO_T_EQ definition.
601         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
602         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
603
604 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
605
606         PR target/36348
607         * config/darwin-f.c: New.
608         * config/t-darwin: Added rule to build darwin-f.o.
609         * config.gcc: Defined new variable, fortran_target_objs.
610         (*-*-darwin*): Set fortran_target_objs.
611         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
612         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
613         * configure: Regenerated.
614
615 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
616
617         PR target/35771
618         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
619         canonical type if needed.
620
621 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
622
623         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
624
625 2008-05-29  Richard Guenther  <rguenther@suse.de>
626
627         PR tree-optimization/36343
628         PR tree-optimization/36346
629         PR tree-optimization/36347
630         * tree-flow.h (clobber_what_p_points_to): Declare.
631         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
632         pointed-to variable is dereferenced is irrelevant to whether
633         the pointer can access the pointed-to variable.
634         (clobber_what_p_points_to): New function.
635         * tree-ssa-alias.c (set_initial_properties): Use it.
636         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
637         call clobber check for NMTs.
638
639 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
640         
641         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
642         for printing gcov_type.
643
644 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
645
646         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
647         and the eh region information.
648         * value-prof.c (gimple_move_stmt_histograms): New function.
649         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
650
651 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
652
653         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
654
655 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
656
657         * value-prof.c (tree_ic_transform): Print counts.
658         * tree-profile.c (tree_gen_ic_func_profiler):
659         Clear __gcov_indreict_call_callee variable to avoid misattribution
660         of the profile.
661
662 2008-05-28  Rafael Espindola  <espindola@google.com>
663
664         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
665         invalid sharing.
666
667 2008-05-28  Richard Guenther  <rguenther@suse.de>
668
669         PR tree-optimization/36339
670         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
671         and clobbering code out of the loop.
672
673 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
674
675         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
676         letters defined.
677
678         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
679         s390_contiguous_bitmask_p, s390_symref_operand_p,
680         s390_check_symref_alignment, s390_reload_larl_operand,
681         s390_reload_symref_address): New functions.
682         (s390_branch_condition_mnemonic): Support compare and branch
683         instructions.
684         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
685         and 'W' constraints.
686         (s390_secondary_reload): Add secondary reloads for unaligned
687         symbol refs or symbol refs to floating point or QI/TI mode
688         integer values.
689         (legitimate_address_p): Accept symbol references as addresses.
690         (s390_expand_insv): Use rotate and insert selected bits
691         instruction for insv when building for z10.
692         (print_operand_address): Handle symbol ref addresses.
693         (print_operand): Output modifier 'c' added for signed byte values.
694         (s390_encode_section_info): Mark symbol refs with
695         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
696
697         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
698         (length attribute): RRF, RRR have 4 byte length.
699         (FPALL, INTALL): New mode iterators added.
700         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
701         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
702         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
703         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
704         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
705         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
706         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
707         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
708         instructions.
709         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
710         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
711         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
712         reload<INTALL:mode><P:mode>_toreg_z10,
713         reload<FPALL:mode><P:mode>_tomem_z10,
714         reload<FPALL:mode><P:mode>_toreg_z10,
715         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
716         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
717         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
718         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
719         definition.
720         (movmem, clrmem, cmpmem): New splitters added.
721
722         * config/s390/predicates.md (larl_operand): Use
723         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
724         SYMBOL_REF_ALIGN1_P.
725         (s390_signed_integer_comparison,
726         s390_unsigned_integer_comparison): New predicates.
727
728         * config/s390/s390-protos.h (s390_check_symref_alignment,
729         s390_contiguous_bitmask_p, s390_reload_larl_operand,
730         s390_reload_symref_address,
731         s390_compare_and_branch_condition_mask): Prototypes added.
732
733         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
734         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
735         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
736
737 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
738
739         * config/s390/s390.c (z10_cost): New cost function for z10.
740         (s390_handle_arch_option, override_options): Support -march=z10 switch.
741         (s390_issue_rate): Adjust issue rate for z10.
742         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
743         (processor_flags): Add PF_Z10.
744         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
745         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
746         * gcc/config.gcc: Add z10.
747
748 2008-05-28  Richard Guenther  <rguenther@suse.de>
749
750         PR tree-optimization/36291
751         * tree-flow. h (struct gimple_df): Remove var_anns member.
752         * tree-flow-inline.h (gimple_var_anns): Remove.
753         (var_ann): Simplify.
754         * tree-dfa.c (create_var_ann): Simplify.
755         (remove_referenced_var): Clear alias info from var_anns of globals.
756         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
757         (delete_tree_ssa): Clear alias info from var_anns of globals.
758         Do not free var_anns.
759         (var_ann_eq): Remove.
760         (var_ann_hash): Likewise.
761
762 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
763
764         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
765         and loongson2f entries.
766         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
767         * config/mips/mips.h (processor_type): Add Loongson-2E
768         and Loongson-2F entries.
769         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
770         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
771         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
772         * doc/invoke.texi (MIPS Options): Document loongson2e
773         and loongson2f processor names.
774
775 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
776
777         PR target/35767
778         PR target/35771
779         * config/i386/i386.c (ix86_function_arg_boundary): Use
780         alignment of canonical type.
781         (ix86_expand_vector_move): Check unaligned memory access for
782         all SSE modes.
783
784 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
785
786         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
787         Moved to the front of file.
788
789 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
790             H.J. Lu  <hongjiu.lu@intel.com>
791
792         * dwarf2out.c (current_fde): New.
793         (add_cfi): Use it.
794         (lookup_cfa:): Likewise.
795         (dwarf2out_end_epilogue): Likewise.
796         (dwarf2out_note_section_used): Likewise.
797
798 2008-05-27  Michael Matz  <matz@suse.de>
799
800         PR c++/27975
801         * c.opt (Wenum-compare): New warning option.
802         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
803
804 2008-05-27  Michael Matz  <matz@suse.de>
805
806         PR middle-end/36326
807         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
808         non-BLKmode types.
809         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
810         into memory as tail calls.
811
812 2008-05-27  Richard Guenther  <rguenther@suse.de>
813
814         PR tree-optimization/36339
815         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
816         pointers cause all addressable variables to be call clobbered.
817
818 2008-05-27  Richard Guenther  <rguenther@suse.de>
819
820         PR tree-optimization/36245
821         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
822
823 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
824
825         * config/s390/s390.md: Replace all occurences of the 'm'
826         constraint with 'RT'.
827
828 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
829
830         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
831         definitions added.
832         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
833         "*movdi_64".
834         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
835         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
836         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
837
838 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
839
840         * reload.c: (find_reloads): Skip alternatives according to the
841         "enabled" attribute. Constify the constraint variable.
842         * recog.c (get_attr_enabled): Add default implementation.
843         (extract_insn): Set the alternative_enabled_p array
844         in the recog_data struct.
845         (preprocess_constraints, constrain_operands): Skip
846         alternatives according to the "enabled" attribute
847         * recog.h (struct recog_data): New field alternative_enabled_p.
848         (skip_alternative): New inline function.
849         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
850         (record_reg_classes): Skip alternative according to the
851         "enabled" attribute.
852
853         * doc/md.texi: Add documention for the "enabled" attribute.
854
855 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
856
857         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
858         * postreload.c (reload_cse_simplify_operands): Replace 'm'
859         constraint with TARGET_MEM_CONSTRAINT.
860         * recog.c (asm_operand_ok, preprocess_constraints,
861         constrain_operands): Likewise.
862         * regclass.c (record_reg_classes): Likewise.
863         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
864         * reload1.c (maybe_fix_stack_asms): Likewise.
865         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
866         * recog.h: Adjust comment.
867         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
868         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
869         * doc/md.texi: Add a note to description of 'm' constraint.
870         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
871
872 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
873
874         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
875         that the bitfield is of integral type before testing its precision.
876
877 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
878             Sa Liu  <saliu@de.ibm.com> 
879
880         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, 
881         __modti3, __udivti3, __umodti3 and __udivmodti4.
882         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
883         that implement TImode mul and div functions.
884         * config/spu/multi3.c: New. Implement __multi3.
885         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
886         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
887         functions on SPU.
888
889 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
890
891         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
892         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
893         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
894         tls_sysv_suffix): New mode and mode attribute iterators.
895         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
896         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
897         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
898         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
899         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
900         iterators.
901
902 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
903
904         PR tree-optimization/36329
905         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
906         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
907         * cgraphbuild.c (initialize_inline_failed): Use the latter
908         macro in lieu of the former.
909         * ipa-inline.c (cgraph_mark_inline): Likewise.
910         (cgraph_decide_inlining_of_small_function): Likewise.
911         (cgraph_decide_inlining): Likewise.
912         (cgraph_decide_inlining_incrementally): Likewise.
913
914 2008-05-26  Tristan Gingold  <gingold@adacore.com>
915             Anatoly Sokolov  <aesok@post.ru>
916
917         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
918         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
919         * config/avr/avr.c (expand_prologue): Tune "call_prologue" 
920         optimization for 'avr6' architecture.
921
922 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
923
924         PR target/34932
925         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
926
927 2008-05-26  Richard Guenther  <rguenther@suse.de>
928
929         * tree-ssa-sccvn.c (expr_has_constants): Declare.
930         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
931
932 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
933
934         PR middle-end/36253
935         * caller-save.c (insert_restore): Verify alignment of spill space.
936         (insert_save): Likewise.
937         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
938         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
939         (STACK_SLOT_ALIGNMENT): Likewise.
940         * function.c (LOCAL_ALIGNMENT): Removed.
941         (get_stack_local_alignment): New.
942         (assign_stack_local): Use it.  Set alignment on stack slot.
943         (assign_stack_temp_for_type): Use get_stack_local_alignment.
944         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
945         (STACK_SLOT_ALIGNMENT): New.
946         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
947         stack slot in XFmode.
948
949         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
950
951 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
952
953         PR/36321
954         * config/i386/i386.md (allocate_stack_worker_64): Make sure
955         argument operand in rax isn't removed.
956
957 2008-05-26  Richard Guenther  <rguenther@suse.de>
958
959         PR middle-end/36300
960         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
961         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
962
963 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
964
965         PR bootstrap/36331
966         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
967
968 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
969
970         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
971         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
972
973 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
974
975         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
976         build a trampoline if we don't want one.
977         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
978         return zero for nested functions if we don't want a trampoline.
979
980 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
981
982         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
983
984 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
985
986         PR fortran/18428
987         * c.opt: Removed undocumented option '-lang-fortran'.
988         * c-common.h: Removed global variable 'lang_fortran'.
989         * c-opts.c (c_common_handle_option): Removed code to handle
990         option '-lang-fortran'. Updated includes.
991         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
992         definition of '__GFORTRAN__'.
993         (define__GNUC__): Reimplemented to use BASEVER and
994         cpp_define_formatted.
995         (builtin_define_with_value_n): Removed.
996         * c-incpath.h: Renamed to ...
997         * incpath.h: ... this.
998         * c-incpath.c: Renamed to ...
999         * incpath.c: ... this. Updated includes.
1000         * fix-header.c: Updated includes.
1001         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
1002         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
1003         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
1004
1005 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
1006
1007         * tree.h: Update the table of flags used on tree nodes.
1008         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
1009         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
1010         (FORCED_LABEL): Add access check.
1011         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
1012         (ASM_INPUT_P): Likewise.
1013         (ASM_VOLATILE_P): Likewise.
1014         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
1015         (OMP_SECTION_LAST): Access private_flag directly.
1016         (OMP_RETURN_NOWAIT): Likewise.
1017         (OMP_PARALLEL_COMBINED): Likewise.
1018         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
1019         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
1020         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
1021         deprecated_flag directly.
1022
1023 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
1024
1025         * final.c (frame_pointer_needed): Removed.
1026         * flags.h (frame_pointer_needed): Likewise.
1027
1028         * function.h (rtl_data): Add frame_pointer_needed.
1029         (frame_pointer_needed): New.
1030
1031 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
1032
1033         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
1034
1035 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
1036
1037         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
1038         SRC is a REG.
1039
1040 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
1041
1042         * c-common.c (strip_array_types): Move function to..
1043         * tree.c: ..here.
1044         (get_inner_array_type): Delete.
1045         * c-common.h (strip_array_types): Move declaration to..
1046         * tree.h: ..here.
1047         (get_inner_array_type): Delete.
1048         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
1049         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
1050         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
1051         * config/pa/pa.c (emit_move_sequence): Likewise.
1052
1053 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
1054
1055         * config/i386/i386.md (*sse_prologue_save_insn): Set length
1056         attribute to 34.
1057
1058 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
1059
1060         * function.c: Include target hook for nonlocal_goto frame value.
1061
1062 2008-05-24  Richard Guenther  <rguenther@suse.de>
1063
1064         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
1065         variable can be only accessed through a pointer or a union.
1066
1067 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1068
1069         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
1070         * doc/extend.texi: Likewise.
1071
1072 2008-05-23  DJ Delorie  <dj@redhat.com>
1073
1074         * config/m32c/jump.md (untyped_call): Add.
1075
1076         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
1077         for A24 to PSImode.
1078         (m32c_address_cost): Detail costs for indirect offsets.
1079
1080 2008-05-23  Rafael Espindola  <espindola@google.com>
1081
1082         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
1083         if a node is a SUBREG.
1084         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
1085         is a SUBREG.
1086
1087 2008-05-23  Paul Brook  <paul@codesourcery.com>
1088             Carlos O'Donell  <carlos@codesourcery.com>
1089
1090         * doc/extend.texi: Clarify use of __attribute__((naked)).
1091         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
1092         * target.h (gcc_target): Add allocate_stack_slots_for_args.
1093         * function.c (use_register_for_decl): Use
1094         targetm.calls.allocate_stack_slots_for_args.
1095         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
1096         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
1097         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
1098
1099 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
1100
1101         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
1102
1103 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
1104
1105         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
1106         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
1107         is only rounded once.
1108
1109 2008-05-23  Richard Guenther  <rguenther@suse.de>
1110
1111         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
1112
1113 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
1114             Jakub Jelinek  <jakub@redhat.com>
1115
1116         PR target/36079
1117         * configure.ac: Handle --enable-cld.
1118         * configure: Regenerated.
1119         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
1120         * config/i386/i386.h (struct machine_function): Add needs_cld field.
1121         (ix86_current_function_needs_cld): New define.
1122         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
1123         (cld): New isns pattern.
1124         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
1125         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
1126         * config/i386/i386.opt (mcld): New option.
1127         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
1128         TARGET_CLD and ix86_current_function_needs_cld.
1129         (override_options): Use -mcld by default for 32-bit code if
1130         USE_IX86_CLD.
1131
1132         * doc/install.texi (Options specification): Document --enable-cld.
1133         * doc/invoke.texi (Machine Dependent Options)
1134         [i386 and x86-64 Options]: Add -mcld option.
1135         (Intel 386 and AMD x86-64 Options): Document -mcld option.
1136
1137 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
1138         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
1139         (return_in_memory_64): Likewise.
1140         (return_in_memory_ms_64): Likewise.
1141
1142 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1143
1144         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
1145         * builtins.c (fold_builtin_fpclassify): New.
1146         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
1147         * builtins.def (BUILT_IN_FPCLASSIFY): New.
1148         * c-common.c (handle_type_generic_attribute): Adjust to accept
1149         fixed arguments before an elipsis.
1150         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
1151         * doc/extend.texi: Document __builtin_fpclassify.
1152
1153 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
1154
1155         * omp-low.c (gate_expand_omp_ssa): Remove.
1156         (pass_expand_omp_ssa): Remove.
1157         (gate_expand_omp): Do not check for flag_openmp_ssa.
1158         * common.opt (-fopenmp-ssa): Remove.
1159         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
1160
1161 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
1162
1163         * config/sh/sh.opt (mfixed-range): New option.
1164         * config/sh/sh-protos.h (sh_fix_range): Declare.
1165         * config/sh/sh.c (sh_fix_range): New function.
1166         * config/sh/sh.h (sh_fixed_range_str): Declare.
1167         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
1168         is not empty.
1169         * doc/invoke.texi (SH Options): Document -mfixed-range.
1170
1171 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
1172
1173         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
1174         it before the redeclaration.
1175
1176 2008-05-22  Anatoly Sokolov <aesok@post.ru>
1177
1178         * config/avr/avr.c (get_sequence_length): Add new function.
1179         (expand_prologue, expand_epilogue): Remove duplicate code.
1180
1181 2008-05-22  Rafael Espindola  <espindola@google.com>
1182
1183         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
1184         sharing.
1185
1186 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
1187
1188         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
1189         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
1190
1191         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
1192         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
1193         (vect_update_misalignment_for_peel): Likewise.
1194         (vector_alignment_reachable_p): Likewise.
1195         * tree-vect-transform.c (vectorizable_load): Likewise.
1196         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
1197         (get_vectype_for_scalar_type): Pass mode of scalar_type
1198         to UNITS_PER_SIMD_WORD.
1199
1200         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
1201         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
1202         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
1203         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
1204         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
1205
1206 2008-05-22  Ira Rosen  <irar@il.ibm.com>
1207
1208         PR tree-optimization/36293
1209         * tree-vect-transform.c (vect_transform_strided_load): Don't check
1210         if the first load must be skipped because of a gap.
1211
1212 2008-05-22  Richard Guenther  <rguenther@suse.de>
1213
1214         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
1215         more cases of offset disambiguation that is possible if
1216         strict-aliasing rules apply.
1217         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
1218         for basic offset and type-based disambiguation.
1219
1220 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1221
1222         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
1223         ix86_expand_vector_set on V16QImode for SSE4.1.
1224
1225 2008-05-21  Tom Tromey  <tromey@redhat.com>
1226
1227         * c.opt (Wimport): Mark as undocumented.
1228         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
1229         -Wno-import.
1230         (Warning Options): Likewise.
1231         * doc/cppopts.texi: Don't mention -Wimport.
1232
1233 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
1234
1235         PR tree-optimization/36287
1236         PR tree-optimization/36286
1237         * lambda-code.c (build_access_matrix): Do not use the loop->num
1238         for computing the number of induction variables: use the loop depth
1239         instead.
1240
1241 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
1242
1243         PR/36280
1244         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
1245         option -f(no-)leading-underscore.
1246
1247 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1248
1249         * config/i386/i386.c (ix86_expand_vector_init_general): Use
1250         GET_MODE_NUNITS (mode).
1251
1252 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
1253
1254         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
1255         (-mmulhw): Add 464 to description.
1256         (-mdlmzb): Likewise.
1257         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
1258         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
1259         464fp entries.
1260         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
1261         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
1262         * config/rs6000/rs6000.md: Update comments for 464.
1263
1264 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
1265
1266         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
1267
1268 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1269
1270         * config/i386/sse.md (vec_extractv4sf): Removed.
1271         (vec_extractv2df): Likewise.
1272         (vec_extractv2di): Likewise.
1273         (vec_extractv4si): Likewise.
1274         (vec_extractv8hi): Likewise.
1275         (vec_extractv16qi): Likewise.
1276         (vec_extract<mode>): New.
1277
1278 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1279
1280         * config/i386/sse.md (vec_setv4sf): Removed.
1281         (vec_setv2df): Likewise.
1282         (vec_setv2di): Likewise.
1283         (vec_setv4si): Likewise.
1284         (vec_setv8hi): Likewise.
1285         (vec_setv16qi): Likewise.
1286         (vec_set<mode>): New.
1287
1288 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1289
1290         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
1291         goto for vec_concat and vec_interleave.
1292
1293 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1294
1295         * config/i386/sse.md (vec_initv4sf): Removed.
1296         (vec_initv2df): Likewise.
1297         (vec_initv2di): Likewise.
1298         (vec_initv4si): Likewise.
1299         (vec_initv8hi): Likewise.
1300         (vec_initv16qi): Likewise.
1301         (vec_init<mode>): New.
1302
1303 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
1304
1305         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
1306
1307 2008-05-21  Tom Tromey  <tromey@redhat.com>
1308
1309         * ggc-zone.c (lookup_page_table_if_allocated): New function.
1310         (zone_find_object_offset): Likewise.
1311         (gt_ggc_m_S): Likewise.
1312         (highest_bit): Likewise.
1313         * ggc-page.c (gt_ggc_m_S): New function.
1314         * stringpool.c (string_stack): Remove.
1315         (init_stringpool): Update.
1316         (ggc_alloc_string): Use ggc_alloc.
1317         (maybe_delete_ident): New function.
1318         (ggc_purge_stringpool): Likewise.
1319         (gt_ggc_m_S): Remove.
1320         * ggc-common.c (ggc_protect_identifiers): New global.
1321         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
1322         ggc_protect_identifiers.
1323         * ggc.h (ggc_protect_identifiers): Declare.
1324         (gt_ggc_m_S): Update.
1325         (ggc_purge_stringpool): Declare.
1326         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
1327         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
1328         special case.
1329         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
1330
1331 2008-05-21  David S. Miller  <davem@davemloft.net>
1332
1333         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
1334         tmake_file.
1335
1336 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
1337
1338         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
1339         once finished.
1340
1341 2008-05-20  David Daney  <ddaney@avtrex.com>
1342
1343         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
1344         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
1345         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
1346         UNSPEC_UPDATE_GOT_VERSION): Renumber.
1347         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
1348         (atomic_hiqi_op): New define_code_iterator.
1349         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
1350         mips_expand_compare_and_swap_12.
1351         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
1352         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
1353         (sync_<optab><mode>, sync_old_<optab><mode>,
1354         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
1355         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
1356         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
1357         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
1358         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
1359         (test_and_set_12): New insn.
1360         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
1361         sync_new_<optab><mode>, sync_old_nand<mode>,
1362         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
1363         clobber to operand 0 for SI and DI mode insns.
1364         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
1365         mips_gen_fn_4): New typedefs.
1366         (mips_gen_fn_ptrs): Define new union type.
1367         (mips_expand_compare_and_swap_12): Remove declaration.
1368         (mips_expand_atomic_qihi): Declare function.
1369         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
1370         (mips_expand_atomic_qihi): ... this.  Use new generator function
1371         parameter.
1372         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
1373         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
1374         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
1375         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
1376         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
1377         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
1378         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
1379         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
1380         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
1381         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
1382         New macros.
1383
1384 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
1385
1386         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
1387         the missing break.
1388
1389 2008-05-20  Anatoly Sokolov <aesok@post.ru>
1390
1391         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
1392         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
1393         (avr_attribute_table): Add 'OS_main' function attribute.
1394         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
1395         functions with 'OS_main' attribute.
1396
1397 2008-05-20  Richard Guenther  <rguenther@suse.de>
1398
1399         PR tree-optimization/35204
1400         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
1401         helper, split out from ...
1402         (DFS): ... here.  Make the DFS walk non-recursive.
1403
1404 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
1405             Jan Sjodin  <jan.sjodin@amd.com>
1406
1407         PR tree-optimization/36181
1408         * tree-parloops.c (loop_has_vector_phi_nodes): New.
1409         (parallelize_loops): Don't parallelize when the loop has vector
1410         phi nodes.
1411
1412 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
1413             Sebastian Pop  <sebastian.pop@amd.com>
1414
1415         * tree-loop-linear.c (gather_interchange_stats): Look in the access
1416         matrix, and never look at the tree representation of the memory
1417         accesses.
1418         (linear_transform_loops): Computes parameters and access matrices.
1419         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
1420         when fails.
1421         (access_matrix_get_index_for_parameter): New.
1422         * tree-data-ref.h (struct access_matrix): New.
1423         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
1424         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
1425         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
1426         am_vector_index_for_loop): New.
1427         (struct data_reference): Add field access_matrix.
1428         (DR_ACCESS_MATRIX): New.
1429         (compute_data_dependences_for_loop): Update declaration.
1430         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
1431         * lambda.h (lambda_vector_vec_p): Declared.
1432         * lambda-code.c: Depend on pointer-set.h.
1433         (lambda_collect_parameters_from_af, lambda_collect_parameters,
1434         av_for_af_base, av_for_af, build_access_matrix,
1435         lambda_compute_access_matrices): New.
1436         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
1437
1438 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
1439
1440         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
1441         $SOURCEDIR/include.
1442
1443 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
1444             Sebastian Pop  <sebastian.pop@amd.com>
1445
1446         PR tree-optimization/36206
1447         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
1448         FOLD_CONVERSIONS.
1449         (instantiate_scev_1): Rename flags to fold_conversions.
1450         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
1451         outeside instantiation_loop.
1452         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
1453         (evolution_function_is_affine_or_constant_p): Removed.
1454         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
1455         instantiate_scev.
1456         (analyze_siv_subscript): Pass in the loop nest number.
1457         Call evolution_function_is_affine_in_loop instead of 
1458         evolution_function_is_affine_p.
1459         (analyze_overlapping_iterations): Pass in the loop nest number.
1460
1461 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
1462             Sebastian Pop  <sebastian.pop@amd.com>
1463
1464         PR tree-optimization/36206
1465         * tree-chrec.h (chrec_fold_op): New.
1466         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
1467         and other trees.
1468
1469 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
1470
1471         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
1472         (DIRS_EQ): New.
1473         (remove_duplicates): Do not set inode on non-inode systems.
1474         Use DIRS_EQ.
1475
1476 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
1477
1478         * config.gcc (tm_file): Update comments about relative pathnames.
1479
1480 2008-05-20  Richard Guenther  <rguenther@suse.de>
1481
1482         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
1483         * tree-ssa-sccvn.c (process_scc): Likewise.
1484         * tree-ssa-sink.c (execute_sink_code): Likewise.
1485         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
1486         * tree-vrp.c (process_assert_insertions): Likewise.
1487         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
1488         (perform_tree_ssa_dce): Likewise.
1489         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
1490         (dump_dominator_optimization_stats): Likewise.
1491         * tree-vectorizer.c (vectorize_loops): Likewise.
1492
1493 2008-05-20  Richard Guenther  <rguenther@suse.de>
1494
1495         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
1496
1497 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
1498
1499         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
1500         (ix86_i386elf_return_in_memory): Likewise.
1501         (ix86_i386interix_return_in_memory): Likewise.
1502         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
1503         (SUBTARGET_RETURN_IN_MEMORY): New.
1504         * config/i386/i386elf.h: Likewise.
1505         * config/i386/ptx4-i.h: Likewise.
1506         * config/i386/sol2-10.h: Likewise.
1507         * config/i386/sysv4.h: Likewise.
1508         * config/i386/vx-common.h: Likewise.
1509         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
1510         * config/i386/i386.c (ix86_return_in_memory): Made static and
1511         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
1512         (ix86_i386elf_return_in_memory): Removed.
1513         (ix86_i386interix_return_in_memory): Removed.
1514         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
1515         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
1516
1517 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
1518
1519         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
1520
1521 2008-05-19  Xinliang David Li  <davidxl@google.com>
1522
1523         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
1524         * opts.c: Ditto.
1525         * common.opt: Ditto.
1526         * doc/invoke.texi: Ditto.
1527
1528 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
1529
1530         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
1531         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
1532
1533 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
1534
1535         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
1536         sizes of operand array from 8/4 to 4/2.
1537         (ix86_expand_vector_init_general): Change size of operand array
1538         from 32 to 16.  Remove op0, op1 and half_mode.
1539
1540 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
1541
1542         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
1543         (ix86_expand_vector_init_interleave): Likewise.
1544         (ix86_expand_vector_init_general): Use them.  Assert
1545         word_mode == SImode when n_words == 4.
1546
1547 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
1548
1549         * config/i386/i386.c (ix86_secondary_reload): New static function.
1550         (TARGET_SECONDARY_RELOAD): New define.
1551         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
1552         * config/i386/i386.md (reload_outqi): Remove.
1553
1554 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1555
1556         PR middle-end/35509
1557         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
1558         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
1559         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
1560         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
1561         (fold_builtin_1): Likewise.
1562         * builtins.def (BUILT_IN_ISINF_SIGN): New.
1563         c-common.c (check_builtin_function_arguments): Handle
1564         BUILT_IN_ISINF_SIGN.
1565         * doc/extend.texi: Document __builtin_isinf_sign.
1566         * fold-const.c (operand_equal_p): Handle COND_EXPR.
1567
1568 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
1569
1570         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
1571         EH cleanup at the end of the pass, search for those that have been
1572         turned into forwarder blocks and do the cleanup on their successor.
1573
1574 2008-05-18  Richard Guenther  <rguenther@suse.de>
1575
1576         * tree-cfg.c (verify_gimple_expr): Allow conversions from
1577         pointers to sizetype and vice versa.
1578
1579 2008-05-18 Xinliang David Li   <davidxl@google.com>
1580
1581         * gcc/tree-ssa-dce.c: Coding style fix.
1582         (check_pow): Documentation comment. 
1583         (check_log): Documenation comment. Coding style fix.
1584         (is_unnecessary_except_errno_call): Ditto.
1585         (gen_conditions_for_pow): Ditto.
1586         (gen_conditions_for_log): Ditto.
1587         (gen_shrink_wrap_conditions): Ditto.
1588         (shrink_wrap_one_built_in_calls): Ditto.
1589         * gcc/doc/invoke.texi: Better documentation string.
1590         * ChangeLog: Fix wrong change log entries from 
1591         May 17 checkin on function call DCE.
1592
1593 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
1594
1595         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
1596
1597 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
1598
1599         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
1600         * df-problems.c (simulation routines): Fixed block comment to
1601         properly say how to add forwards scanning functions.
1602         
1603 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
1604
1605         * tree-inline.c (setup_one_parameter): Remove dead code.
1606
1607 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
1608
1609         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
1610         a BIT_AND_EXPR only for an INTEGER_TYPE.
1611
1612 2008-05-17 Xinliang David Li   <davidxl@google.com>
1613
1614         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
1615         (check_pow, check_log, is_unnecessary_except_errno_call): New 
1616         functions to check for eliminating math functions that are pure 
1617         except for setting errno.
1618         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
1619         general condition expressions for shrink-wrapping pow/log calls.
1620         (gen_shrink_wrap_conditions): Ditto.
1621         (shrink_wrap_one_built_in_call): Ditto.
1622         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
1623         (mark_operand_necessary): If debugging, output if OP is necessary.
1624         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
1625         unnecessary.
1626         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
1627         opt level >= 2.
1628         * gcc/common.opt: New user flag -ftree-builtin-dce.
1629         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
1630
1631 2008-05-16  David S. Miller  <davem@davemloft.net>
1632
1633         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
1634         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
1635
1636 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
1637
1638         PR target/36246
1639         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
1640
1641 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1642
1643         * ifcvt.c (dead_or_predicable): Rename
1644         df_simulate_one_insn_backwards to df_simulate_one_insn.
1645         * recog.c (peephole2_optimize): Ditto.
1646         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
1647         Ditto.
1648         * df.h: Rename df_simulate_one_insn_backwards to
1649         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
1650         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
1651         scanning of defs and uses.
1652         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
1653         (df_simulate_one_insn_forwards): Removed.
1654
1655 2008-05-16  Doug Kwan  <dougkwan@google.com>
1656
1657         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
1658         QNaN & SNaN.
1659         (real_from_string): Handle NaNs and Inf as approriate.
1660
1661 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
1662
1663         * doc/gty.texi (Source Files Containing Type Information): Note
1664         that headers should appear first in the gtfiles list.
1665
1666 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1667
1668         * tree.def (COND_EXEC): Properly documented this code.
1669
1670 2008-05-16  Diego Novillo  <dnovillo@google.com>
1671
1672         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
1673         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
1674         the new field.
1675
1676 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1677
1678         * tree-ssa-dse (max_stmt_uid): Removed.
1679         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
1680         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
1681         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
1682         * function.h (cfun.last_stmt_uid): New field.
1683         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
1684         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
1685         New functions.
1686         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
1687         (create_stmt_ann): Initialize the ann->uid field.
1688         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
1689         with new calls.
1690         * tree-flow.h (renumber_gimple_stmt_uids): New function.
1691
1692 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
1693
1694         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
1695         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
1696         (init_empty_tree_cfg): Call it.
1697
1698 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1699
1700         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
1701         Update all users.
1702
1703 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1704
1705         * doc/invoke.text (-fdump-tree-*-verbose): New option.
1706         * tree-dump.c (dump_options): New verbose option.
1707         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
1708         Add verbose dump.
1709         * tree-pass.h (TDF_VERBOSE): New dump flag.
1710         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
1711         (tree-flow.h): Added include.
1712         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
1713
1714 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
1715
1716         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
1717
1718         From Jie Zhang  <jie.zhang@analog.com>
1719         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
1720         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
1721         mcpu=bf561-none and mcpu=bf561-0.2.
1722         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
1723         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
1724         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
1725         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
1726         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
1727         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
1728         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
1729         option.
1730         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
1731         (cputype_selected): Remove.
1732         (bfin_handle_option): Don't use cputype_selected.
1733         (override_options): When no mcpu option, enable all workarounds.
1734         Don't use bfin_workarounds.
1735         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
1736         processor type.
1737         (DEFAULT_CPU_TYPE): Don't define.
1738
1739 2008-05-16  Richard Guenther  <rguenther@suse.de>
1740
1741         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
1742         on deletion of the last stmt.
1743
1744 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
1745
1746         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
1747         V8HImode for SSE2 and V16QImode for SSE4.1.
1748
1749 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
1750
1751         * cgraph.h (compute_inline_parameters): Made public.
1752         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
1753         variable_generate_summary, function_write_summary,
1754         variable_write_summary, variable_read_summary.  Added generate_summary,
1755         write_summary, read_summary.
1756         * cgraphunit.c (cgraph_process_new_functions): Changed call from
1757         pass_ipa_inline.function_generate_summary, to
1758         compute_inline_parameters. 
1759         * ipa-inline.c (compute_inline_parameters): Made public and added
1760         node parameter.
1761         (compute_inline_parameters_for_current): New function.
1762         (pass_inline_param): Now calls compute_inline_parameters_for_current.
1763         (inline_generate_summary): Removed parameter and made to loop over
1764         all cgraph nodes.
1765         (pass_ipa_inline): Updated for new IPA_PASS structure.
1766         * passes.c (execute_ipa_summary_passes): Now is called once per
1767         pass rather than once per node*pass.
1768         
1769 2008-05-15  Anatoly Sokolov <aesok@post.ru>
1770
1771         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
1772         avr_have_mul_p, avr_asm_only_p): Remove variables.
1773         (avr_override_options): Remove initialization of removed variables.
1774         (avr_file_start):  Convert removed variables to fields of 
1775         'struct base_arch_s *avr_current_arch'. 
1776         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
1777         (AVR_HAVE_MUL): (Ditto.).
1778         (AVR_HAVE_MOVW): (Ditto.).
1779         (AVR_HAVE_LPMX): (Ditto.). 
1780         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
1781         avr_asm_only_p): Remove declaration.
1782
1783 2008-05-15  Diego Novillo  <dnovillo@google.com>
1784
1785         * config/arm/arm.c (arm_return_in_memory): Fix return type.
1786         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
1787
1788 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
1789
1790         PR middle-end/36194
1791         * combine.c (check_conversion): Rename back to check_promoted_subreg.
1792         Don't call record_truncated_value from here.
1793         (record_truncated_value): Turn it into a for_each_rtx callback.
1794         (record_truncated_values): New function.
1795         (combine_instructions): Call note_uses with record_truncated_values.
1796         Change name of check_conversion to check_promoted_subreg. 
1797
1798 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
1799
1800         * doc/sourcebuild.texi: Document support for torture tests.
1801
1802 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
1803
1804         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
1805         to alternative 4 of operand 2.
1806
1807 2008-05-15  Richard Guenther  <rguenther@suse.de>
1808
1809         * tree-pass.h (current_pass): Declare.
1810         (get_pass_for_id): Likewise.
1811         * passes.c (passes_by_id, passes_by_id_size): New globals.
1812         (set_pass_for_id): New function.
1813         (get_pass_for_id): Likewise.
1814         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
1815         (execute_function_todo): Flush per function statistics.
1816         * toplev.c (compile_file): Init statistics.
1817         (general_init): Do early statistics initialization.
1818         (finalize): Finish statistics.
1819         * statistics.h (statistics_early_init): Declare.
1820         (statistics_init): Likewise.
1821         (statistics_fini): Likewise.
1822         (statistics_fini_pass): Likewise.
1823         (statistics_counter_event): Likewise.
1824         (statistics_histogram_event): Likewise.
1825         * statistics.c: New file.
1826         * Makefile.in (OBJS-common): Add statistics.o.
1827         (statistics.o): Add dependencies.
1828         * doc/invoke.texi (-fdump-statistics): Document.
1829
1830         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
1831         (insert): Likewise.
1832         (execute_pre): Use statistics_counter_event.
1833         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
1834         (substitute_and_fold): Increment it.  Use statistics_counter_event.
1835
1836 2008-05-15  Diego Novillo  <dnovillo@google.com>
1837
1838         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
1839
1840         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
1841         * tree-ssa-alias.c (new_type_alias): Remove references to
1842         sub-variables from comment.
1843         * tree-ssa-operands.c (swap_tree_operands): Likewise.
1844
1845 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
1846
1847         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
1848         attribute to 1 only for insertps alternative.
1849
1850 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1851
1852         * config/bfin/bfin.md (loadbytes): New pattern.
1853         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
1854         (bfin_init_builtins): Initialize it.
1855         (bdesc_1arg): Add it.
1856
1857 2008-05-15  Sa Liu  <saliu@de.ibm.com>
1858
1859         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
1860         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
1861         * testsuite/lib/target-supports.exp: Add
1862         check_effective_target_fortran_integer_16.
1863
1864 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1865
1866         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
1867         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
1868         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
1869         (TARGET_RETURN_IN_MEMORY): Define.
1870
1871 2008-05-15  Richard Guenther  <rguenther@suse.de>
1872
1873         PR middle-end/36244
1874         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
1875         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
1876         represent unmodifiable vars.
1877
1878 2008-05-15  Richard Guenther  <rguenther@suse.de>
1879
1880         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
1881         INDIRECT_REF and TARGET_MEM_REF.
1882         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
1883         TARGET_MEM_REF.
1884
1885 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
1886             H.J. Lu  <hongjiu.lu@intel.com>
1887
1888         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
1889         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
1890         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
1891         insn alternatives.  Add missing alternatives.
1892         (*vec_concatv2di_rex64_sse4_1): Likewise.
1893         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
1894         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
1895         Require TARGET_SSE.
1896
1897 2008-05-15  Richard Guenther  <rguenther@suse.de>
1898
1899         PR tree-optimization/36009
1900         PR tree-optimization/36204
1901         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
1902         (determine_invariantness_stmt): Record the loop a store is
1903         always executed in.
1904         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
1905         dependency.
1906
1907 2008-05-15  Richard Guenther  <rguenther@suse.de>
1908
1909         PR tree-optimization/34330
1910         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
1911         through the pointer will alias the SMT.
1912
1913 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
1914
1915         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
1916
1917 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
1918
1919         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
1920
1921 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
1922             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
1923
1924         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
1925         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
1926         (vashl_optab): New optab for vector/vector shifts.
1927         (vashr_optab): Ditto.
1928         (vlshr_optab): Ditto.
1929         (vrotl_optab): Ditto.
1930         (vrotr_optab): Ditto.
1931         (optab_subtype): New enum for optab_for_tree_code call.
1932         (optab_for_tree_code): Add enum optab_subtype argument.
1933
1934         * optabs.c (optab_for_tree_code): Take an additional argument to
1935         distinguish between a vector shift by a scalar and vector shift by
1936         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
1937         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
1938         vector shift by a vector.
1939         (expand_widen_pattern_expr): Pass additional argument to
1940         optab_for_tree_code.
1941
1942         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
1943         vrotl_optab, vrotr_optab.
1944
1945         * expr.c (expand_expr_real_1): Update calls to
1946         optab_for_tree_code to distinguish between vector shifted by a
1947         scalar and vector shifted by a vector.
1948         * tree-vectorizer.c (supportable_widening_operation): Ditto.
1949         (supportable_narrowing_operation): Ditto.
1950         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
1951         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
1952         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
1953         (vect_create_epilog_for_reduction): Ditto.
1954         (vectorizable_reduction): Ditto.
1955         (vectorizable_operation): Ditto.
1956         (vect_strided_store_supported): Ditto.
1957         (vect_strided_load_supported): Ditto.
1958         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
1959         * expmed.c (expand_shift): Ditto.
1960
1961         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
1962         scalar type.
1963         (ashr@var{m}3): Ditto.
1964         (vashl@var{m}3): Document new vector/vector shift standard name.
1965         (vashr@var{m}3): Ditto.
1966         (vlshr@var{m}3): Ditto.
1967         (vrotl@var{m}3): Ditto.
1968         (vrotr@var{m}3): Ditto.
1969
1970         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
1971         (PPERM_INVERT): Ditto.
1972         (PPERM_REVERSE): Ditto.
1973         (PPERM_REV_INV): Ditto.
1974         (PPERM_ZERO): Ditto.
1975         (PPERM_ONES): Ditto.
1976         (PPERM_SIGN): Ditto.
1977         (PPERM_INV_SIGN): Ditto.
1978         (PPERM_SRC1): Ditto.
1979         (PPERM_SRC2): Ditto.
1980
1981         * config/i386/sse.md (mulv2di3): Add SSE5 support.
1982         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
1983         allows a memory operand to be the value being added, and split it
1984         to improve vectorization.
1985         (sse5_pmacsdqh_mem): Ditto.
1986         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
1987         (sse5_mulv2div2di3_high): Ditto.
1988         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
1989         (vec_pack_trunc_v4si): Ditto.
1990         (vec_pack_trunc_v2di): Ditto.
1991         (sse5_pcmov_<mode>): Remove code that tried to use use
1992         andps/andnps instead of pcmov.
1993         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
1994         pmacsdqh instructions.
1995         (vec_widen_smult_lo_v4si): Ditto.
1996
1997         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
1998         (PPERM_INVERT): Ditto.
1999         (PPERM_REVERSE): Ditto.
2000         (PPERM_REV_INV): Ditto.
2001         (PPERM_ZERO): Ditto.
2002         (PPERM_ONES): Ditto.
2003         (PPERM_SIGN): Ditto.
2004         (PPERM_INV_SIGN): Ditto.
2005         (PPERM_SRC1): Ditto.
2006         (PPERM_SRC2): Ditto.
2007         (ix86_expand_sse_movcc): Move the SSE5 test after the if
2008         true/false tests.
2009         (ix86_expand_int_vcond): If SSE5 generate all possible integer
2010         comparisons.
2011         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
2012         says ignore whether the last reference is a memory operand.
2013
2014 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
2015             Paolo Bonzini <bonzini at gnu dot org>
2016
2017         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
2018         shift patterns.
2019
2020         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
2021         (vlshr<mode>3): Rename from vlshr<mode>3.
2022         (vashr<mode>3): Rename from vashr<mode>3.
2023         (mulv4sf3): Change the names of vector shift patterns.
2024         (mulv4si3): Ditto.
2025         (negv4sf2): Ditt.
2026
2027         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
2028         shift insns.
2029
2030         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
2031         (SI_SHLHI): Ditto.
2032         (SI_SHL): Ditto.
2033         (SI_SHLI): Ditto.
2034         (SI_ROTH): Ditto.
2035         (SI_ROTHI): Ditto.
2036         (SI_ROT): Ditto.
2037         (SI_ROTI): Ditto.
2038         (SPU_RL_0): Ditto.
2039         (SPU_RL_1): Ditto.
2040         (SPU_RL_2): Ditto.
2041         (SPU_RL_3): Ditto.
2042         (SPU_RL_4): Ditto.
2043         (SPU_RL_5): Ditto.
2044         (SPU_RL_6): Ditto.
2045         (SPU_RL_7): Ditto.
2046         (SPU_SL_0): Ditto.
2047         (SPU_SL_1): Ditto.
2048         (SPU_SL_2): Ditto.
2049         (SPU_SL_3): Ditto.
2050         (SPU_SL_4): Ditto.
2051         (SPU_SL_5): Ditto.
2052         (SPU_SL_6): Ditto.
2053         (SPU_SL_7): Ditto.
2054
2055         * config/spu/spu.md (v): New iterator macro to add v for vector types.
2056         (floatunssidf2_internal): Change vector/vector shift names.
2057         (floatunsdidf2_internal): Ditto.
2058         (mulv8hi3): Ditto.
2059         (ashrdi3): Ditto.
2060         (ashrti3): Ditto.
2061         (cgt_df): Ditto.
2062         (cgt_v2df): Ditto.
2063         (dftsv): Ditto.
2064         (vashl<mode>3): Rename from ashl<mode>3.
2065         (vashr<mode>3): Rename from ashr<mode>3.
2066         (vlshr<mode>3): Rename from lshr<mode>3.
2067         (vrotl<mode>3): Rename from rotl<mode>3.
2068
2069 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
2070
2071         PR target/36224
2072         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
2073         multiply gives the wrong value when doing widening multiplies.
2074         (vec_widen_smult_lo_v4si): Ditto.
2075
2076 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
2077
2078         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
2079         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
2080         emit_library_call_value. 
2081         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
2082         * tree.h (ECF_LIBCALL_BLOCK): Removed.
2083         * calls.c (initialize_argument_information, precompute_arguments, 
2084         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
2085         (precompute_arguments): Removed flags parameter.
2086         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
2087         
2088 2008-05-14  Richard Guenther  <rguenther@suse.de>
2089
2090         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
2091         Make sure to register the store if the use is a PHI_NODE.
2092
2093 2008-05-14  Olivier Hainque  <hainque@adacore.com>
2094
2095         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
2096         memory if the component is to be referenced in BLKmode according
2097         to get_inner_reference.
2098
2099 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
2100
2101         * calls.c (emit_library_call_value_1): Restore code clearing
2102         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
2103
2104 2008-05-14  Olivier Hainque  <hainque@adacore.com>
2105             Nicolas Roche  <roche@adacore.com>
2106
2107         * configure.ac: Add support for a "gcc_subdir" variable in
2108         config-lang.in, to denote a subdirectory where the language/GCC
2109         integration files are to be found.
2110         * configure: Regenerate.
2111
2112 2008-05-14  Ira Rosen  <irar@il.ibm.com>
2113
2114         PR tree-optimization/36098
2115         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
2116         value for the first load in the group in case of a gap.
2117         (vect_build_slp_tree): Check that there are no gaps in loads.
2118
2119 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
2120
2121         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
2122         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
2123         expand_copysign_bit, ): Change call to emit_no_conflict_block to
2124         emit_insn and remove unneeded code to construct extra args.
2125         (emit_no_conflict_block): Removed.
2126         * optabls.h: (emit_no_conflict_block): Removed.
2127         * cse.c (cse_extended_basic_block): Remove search for
2128         REG_NO_CONFLICT note.
2129         * global.c: Removed incorrect comment added in revision 117.
2130         * expr.c (convert_move): Change call to emit_no_conflict_block to
2131         emit_insn.
2132         * recog.c: Change comments so that they do not mention
2133         REG_NO_CONFLICT.
2134         * local_alloc.c (combine_regs): Removed last parameter.
2135         (no_conflict_p): Removed.
2136         (block_alloc): Removed note, no_conflict_combined_regno and set
2137         local vars. Removed all code to process REG_NO_CONFLICT blocks.
2138         (combine_regs): Removed already_dead and code to look for
2139         REG_NO_CONFLICT notes.
2140         * lower_subreg (remove_retval_note): Removed code to look for
2141         REG_NO_CONFLICT block.
2142         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
2143         (resolve_clobber): Remove code to process libcalls that have
2144         REG_NO_CONFLICT notes.
2145         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
2146         case.
2147         * combine.c (can_combine_p, distribute_notes):  Removed
2148         REG_NO_CONFLICT case.
2149         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
2150         to emit_insns.
2151         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
2152         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
2153         Ditto.
2154         * reg-notes.def (NO_CONFLICT): Removed.
2155
2156 2008-05-14  David S. Miller  <davem@davemloft.net>
2157
2158         * config/sparc/sparc.c (sparc_profile_hook): If
2159         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
2160         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
2161         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
2162
2163 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
2164
2165         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
2166
2167 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
2168
2169         PR target/36222
2170         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
2171         and op1 expansion before vector concat to have less live pseudos.
2172
2173 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
2174
2175         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
2176         ix86_expand_vector_set if supported.
2177
2178 2008-05-13  Diego Novillo  <dnovillo@google.com>
2179             Kenneth Zadeck  <zadeck@naturalbridge.com>
2180
2181         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
2182
2183         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
2184         phinodes_print_statistics, init_ssanames, fini_ssanames,
2185         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
2186         release_ssa_name, release_defs, replace_ssa_name_symbol,
2187         ssanames_print_statistics): Move ...
2188         * tree-flow.h: ... here.
2189         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
2190         Use FN instead of cfun.
2191         (make_ssa_name_fn): Rename from make_ssa_name.
2192         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
2193         * tree-flow-inline.h (make_ssa_name): Move from
2194         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
2195         * omp-low.c (expand_omp_parallel):
2196         * tree-flow-inline.h (redirect_edge_var_map_result):
2197         * tree-ssa.c (init_tree_ssa): Add argument FN.
2198         Use it instead of cfun.  Update all users.
2199
2200 2008-05-13  Tom Tromey  <tromey@redhat.com>
2201
2202         PR preprocessor/22168:
2203         * doc/cpp.texi (Top): Update menu.
2204         (Alternatives to Wrapper #ifndef): New node.
2205         (Other Directives): Document deprecation.
2206         (Obsolete Features): Remove menu.
2207         (Assertions): Merge node into Obsolete Features.
2208         (Obsolete once-only headers): Move earlier; rename to Alternatives
2209         to Wrapper #ifndef.
2210         * doc/cppopts.texi: Update.
2211         * c.opt (Wdeprecated): Enable for C and ObjC.
2212         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
2213         (C++ Dialect Options): Move -Wno-deprecated from here to...
2214         (Warning Options): ... here.
2215
2216 2008-05-13  Richard Guenther  <rguenther@suse.de>
2217
2218         PR middle-end/36227
2219         * fold-const.c (fold_sign_changed_comparison): Do not allow
2220         changes in pointer-ness.
2221
2222 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
2223
2224         PR target/24713
2225         * config/sh/sh.c (sh_expand_prologue): Don't clear
2226         RTX_FRAME_RELATED_P for push insns.
2227
2228 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
2229
2230         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
2231
2232 2008-05-12  Anatoly Sokolov <aesok@post.ru>
2233
2234         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
2235         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
2236         Use 'machine->is_leaf' instead of 'leaf_func_p'.
2237
2238 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
2239
2240         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
2241         (*vec_concatv4sf_sse): This.
2242         (*sse2_concatv2si): Renamed to ...
2243         (*vec_concatv2si_sse2): This.
2244         (*sse1_concatv2si): Renamed to ...
2245         (*vec_concatv2si_sse): This.
2246         (*vec_concatv2di_rex): Renamed to ...
2247         (*vec_concatv2di_rex64): This.
2248         (*vec_concatv2si_sse4_1): New.
2249         (*vec_concatv2di_rex64_sse4_1): Likewise.
2250
2251 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
2252
2253         PR rtl-optimization/36111
2254         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
2255         that was created for swappable operands.
2256
2257 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
2258
2259         PR ada/36001
2260         * Makefile.in: Substitute GNATMAKE and GNATBIND.
2261         * configure.ac: Add call to ACX_PROG_GNAT.
2262
2263 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
2264
2265         * optc-gen.awk: Fix comment typo.
2266
2267 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
2268
2269         * pretty-print.c (pp_integer_with_precision): Use
2270         HOST_LONG_LONG_FORMAT.
2271
2272 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
2273
2274         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
2275                 
2276 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
2277
2278         * config/i386/i386.c (bdesc_ptest): Removed.
2279         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
2280         (bdesc_args): Add __builtin_ia32_ptestz128,
2281         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
2282         (ix86_init_mmx_sse_builtins): Updated.
2283         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
2284         (ix86_expand_builtin): Updated.
2285
2286 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
2287
2288         * tree-cfg.c (valid_fixed_convert_types_p): New function.
2289         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
2290
2291 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
2292
2293         * value-prof.c (interesting_stringop_to_profile): Do not
2294         return early for BUILT_IN_MEMPCPY.
2295
2296 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
2297
2298         * calls.c (expand_call): Don't use callgraph to increase
2299         preferred_stack_boundary.
2300
2301         * cgraph.h (cgraph_rtl_info): Use unsigned on
2302         preferred_incoming_stack_boundary.
2303
2304         * final.c (rest_of_clean_state): Use unsigned on
2305         preferred_stack_boundary.
2306
2307 2008-05-09  Tom Tromey  <tromey@redhat.com>
2308
2309         PR preprocessor/22231:
2310         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
2311         proceeding.
2312
2313 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
2314
2315         PR tree-optimization/36129
2316         * tree-ssa-ccp.c: Include value-prof.h.
2317         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
2318         built-in function was folded to a constant.
2319         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
2320
2321 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
2322             Sebastian Pop  <sebastian.pop@amd.com>
2323
2324         * tree-scalar-evolution.c: Document instantiate_scev.
2325         (instantiate_parameters_1): Renamed instantiate_scev_1.
2326         Don't use the same loop for instantiation_loop and evolution_loop.
2327         (instantiate_scev): New.
2328         (instantiate_parameters): Moved...
2329         (resolve_mixers): Update call to instantiate_scev_1 to pass the
2330         same loop twice.  Maintains the semantics for this function.
2331         * tree-scalar-evolution.h (instantiate_scev): Declare.
2332         (instantiate_parameters): ...here.  Now static inline.
2333         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
2334         instead of resolve_mixers.
2335
2336 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
2337
2338         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
2339
2340 2008-05-09  Tomas Bily  <tbily@suse.cz>
2341
2342         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
2343         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
2344         * tree-ssa-structalias.c (get_constraint_for): Likewise.
2345         * c-common.c (c_common_truthvalue_conversion): Likewise.
2346         * tree-object-size.c (compute_object_offset): Likewise.
2347         * tree-inline.c (estimate_num_insns_1): Likewise.
2348         * varasm.c (const_hash_1, compare_constant, copy_constant)
2349         (compute_reloc_for_constant, output_addressed_constants)
2350         (initializer_constant_valid_p): Likewise.
2351         * c-omp.c (check_omp_for_incr_expr): Likewise.
2352         * gimplify.c (gimplify_expr): Likewise.
2353         * c-typeck.c (c_finish_return): Likewise.
2354         * tree-vectorizer.c (supportable_widening_operation)
2355         (supportable_narrowing_operation): Likewise.
2356         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
2357         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
2358         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
2359         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
2360         (descr_info_loc): Likewise.
2361         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
2362         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
2363         (fold_unary): Likewise.
2364         * builtins.c (get_pointer_alignment): Likewise.
2365         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
2366         (instantiate_parameters_1): Likewise.
2367         * tree.c (expr_align, stabilize_reference): Likewise.
2368         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
2369         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
2370         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
2371         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
2372         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
2373         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
2374         Likewise.
2375         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
2376         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
2377         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
2378         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
2379         (forward_propagate_comparison)
2380         (tree_ssa_forward_propagate_single_use_vars): Likewise.
2381         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
2382         * emit-rtl.c (component_ref_for_mem_expr)
2383         (set_mem_attributes_minus_bitpos): Likewise.
2384         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
2385         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
2386         Likewise.
2387         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
2388         (build_function_call, pointer_diff, build_compound_expr)
2389         (c_finish_return): Likewise.
2390         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
2391         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
2392         Likewise.
2393         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
2394         * expr.c (is_aligning_offset): Likewise.
2395         * tree-ssa-alias.c (is_escape_site): Likewise.
2396         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
2397         (check_all_va_list_escapes): Likewise.
2398         * tree-ssa-loop-ivopts.c (determine_base_object)
2399         (determine_common_wider_type): Likewise.
2400         * dojump.c (do_jump): Likewise.
2401         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
2402         * tree-gimple.c (is_gimple_cast): Likewise.
2403         * fold-const.c (decode_field_reference, )
2404         (fold_sign_changed_comparison, fold_unary, fold_comparison)
2405         (fold_binary): Likewise.
2406         * tree-ssa-alias-warnings.c (find_alias_site_helper)
2407         (already_warned_in_frontend_p): Likewise.
2408         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
2409         * tree.c (really_constant_p, get_unwidened): Likewise.
2410         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
2411         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
2412         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
2413         Likewise.
2414         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
2415         CONVERT_EXPR_P.
2416         (CONVERT_EXPR_P): Define.
2417         (CASE_CONVERT): Define.
2418         
2419 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
2420
2421         PR middle-end/36117
2422         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
2423         (delete_unmarked_insns): When deleting a call, call
2424         delete_unreachable_blocks.
2425         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
2426         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
2427
2428 2008-05-08  Richard Guenther  <rguenther@suse.de>
2429
2430         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
2431         (-ftree-salias): Likewise.
2432         (salias-max-implicit-fields): Remove param documentation.
2433         (salias-max-array-elements): Likewise.
2434         * tree-pass.h (pass_create_structure_vars): Remove.
2435         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
2436         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
2437         * tree-ssa-alias.c (create_structure_vars): Remove.
2438         (gate_structure_vars): Likewise.
2439         (pass_create_structure_vars): Likewise.
2440         (gate_build_alias): Likewise.
2441         (pass_build_alias): Adjust to run always and dump the function.
2442         * common.opt (ftree-salias): Hide.
2443         * passes.c (init_optimization_passes): Remove
2444         pass_create_structure_vars, adjust comment.
2445         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
2446         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
2447         * opts.c (decode_options): Do not set flag_tree_salias.
2448         (common_handle_option): Add OPT_ftree_salias to the backward
2449         compatibility section.
2450
2451 2008-05-08  Richard Guenther  <rguenther@suse.de>
2452
2453         * tree-flow-inline.h (var_can_have_subvars): Move ...
2454         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
2455         * tree-flow.h (var_can_have_subvars): Remove.
2456         (push_fields_onto_fieldstack): Remove.
2457         (sort_fieldstack): Likewise.
2458         (struct fieldoff): Move ...
2459         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
2460         alias_set and base_for_components fields.
2461         (sort_fieldstack): Make static.
2462         (push_fields_onto_fieldstack): Likewise.  Remove code that
2463         handles anything but RECORD_TYPEs.  Remove alias_set and
2464         base_for_components handling.
2465         (create_variable_info_for): Adjust.
2466
2467 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
2468
2469         * common.opt (Wframe-larger-than=): Shorten the help message
2470         to one line.
2471         * doc/invoke.texi (Wframe-larger-than=): Add more description.
2472
2473 2008-05-08  Rafael Espindola  <espindola@google.com>
2474
2475         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
2476         trap.
2477         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
2478         trap and that both operands are gimple values.
2479         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
2480         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
2481         is a fp operation.
2482
2483 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
2484
2485         * read-rtl.c (join_c_conditions): Return the first string if the
2486         two strings are equal.
2487
2488 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
2489
2490         * gensupport.h (pred_data): Add a "num_codes" field.
2491         (add_predicate_code): Declare.
2492         * gensupport.c (add_predicate_code): New function.
2493         (std_pred_table): Add an "allows_const_p" field.
2494         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
2495         Remove the (incomplete) list of such codes from the codes field.
2496         (init_predicate_table): Use add_predicate_code.  Add all
2497         RTX_CONST_OBJs if allows_const_p is true.
2498         * genrecog.c (process_define_predicate): Use add_predicate_code.
2499
2500 2008-05-08  David Daney  <ddaney@avtrex.com>
2501             Richard Sandiford  <rsandifo@nildram.co.uk>
2502         
2503         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
2504         special case of constant zero operands.
2505         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
2506         old and new values.  Special case constant zero values.
2507         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
2508         fails.
2509         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
2510         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
2511
2512 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
2513
2514         PR target/36090
2515         * simplify-rtx.c (simplify_plus_minus): Create CONST of
2516         similar RTX_CONST_OBJ before CONST_INT.
2517
2518 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
2519
2520         * stmt.c (expand_stack_restore): Change sa mode if needed.
2521
2522 2008-05-08  Richard Guenther  <rguenther@suse.de>
2523
2524         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
2525         return type to bool.
2526         (ix86_sol10_return_in_memory): Likewise.
2527         (ix86_i386elf_return_in_memory): Likewise.
2528         (ix86_i386interix_return_in_memory): Likewise.
2529         * config/i386/i386.c (ix86_return_in_memory): Likewise.
2530         (ix86_sol10_return_in_memory): Likewise.
2531         (ix86_i386elf_return_in_memory): Likewise.
2532         (ix86_i386interix_return_in_memory): Likewise.
2533
2534 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
2535
2536         PR bootstrap/36180
2537         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
2538         fndecl argument.
2539         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
2540         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
2541         declared in front.
2542
2543 2008-05-08  Richard Guenther  <rguenther@suse.de>
2544
2545         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
2546         * tree-data-ref.h (struct dr_alias): Remove subvars field.
2547         (DR_SUBVARS): Remove.
2548         * tree-dfa.c (dump_subvars_for): Remove.
2549         (debug_subvars_for): Likewise.
2550         (dump_variable): Do not dump subvars.
2551         (remove_referenced_var): Do not remove subvars.
2552         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
2553         (lookup_subvars_for_var): Remove.
2554         (get_subvars_for_var): Likewise.
2555         (get_subvars_at): Likewise.
2556         (get_first_overlapping_subvar): Likewise.
2557         (overlap_subvar): Likewise.
2558         * tree-flow.h (subvar_t): Remove.
2559         (struct var_ann_d): Remove subvars field.
2560         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
2561         argument.  Remove special handling of SFTs.
2562         (compute_tag_properties): Likewise.
2563         (set_initial_properties): Likewise.
2564         (compute_call_clobbered): Likewise.
2565         (count_mem_refs): Likewise.
2566         (compute_memory_partitions): Likewise.
2567         (compute_flow_insensitive_aliasing): Likewise.
2568         (setup_pointers_and_addressables): Likewise.
2569         (new_type_alias): Likewise.
2570         (struct used_part): Remove.
2571         (used_portions): Likewise.
2572         (struct used_part_map): Likewise.
2573         (used_part_map_eq): Likewise.
2574         (used_part_map_hash): Likewise.
2575         (free_used_part_map): Likewise.
2576         (up_lookup): Likewise.
2577         (up_insert): Likewise.
2578         (get_or_create_used_part_for): Likewise.
2579         (create_sft): Likewise.
2580         (create_overlap_variables_for): Likewise.
2581         (find_used_portions): Likewise.
2582         (create_structure_vars): Likewise.
2583         * tree.def (STRUCT_FIELD_TAG): Remove.
2584         * tree.h (MTAG_P): Adjust.
2585         (struct tree_memory_tag): Remove base_for_components and
2586         unpartitionable flags.
2587         (struct tree_struct_field_tag): Remove.
2588         (SFT_PARENT_VAR): Likewise.
2589         (SFT_OFFSET): Likewise.
2590         (SFT_SIZE): Likewise.
2591         (SFT_NONADDRESSABLE_P): Likewise.
2592         (SFT_ALIAS_SET): Likewise.
2593         (SFT_UNPARTITIONABLE_P): Likewise.
2594         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
2595         (union tree_node): Remove sft field.
2596         * alias.c (get_alias_set): Remove special handling of SFTs.
2597         * print-tree.c (print_node): Remove handling of SFTs.
2598         * tree-dump.c (dequeue_and_dump): Likewise.
2599         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
2600         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
2601         * tree-predcom.c (set_alias_info): Do not set subvars.
2602         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
2603         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
2604         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
2605         (add_vars_for_offset): Remove.
2606         (add_virtual_operand): Remove special handling of SFTs.
2607         (add_call_clobber_ops): Likewise.
2608         (add_call_read_ops): Likewise.
2609         (get_asm_expr_operands): Likewise.
2610         (get_modify_stmt_operands): Likewise.
2611         (get_expr_operands): Likewise.
2612         (add_to_addressable_set): Likewise.
2613         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
2614         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
2615         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
2616         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
2617         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
2618         (tree_node_structure): Likewise.
2619         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
2620         handling of SFTs.
2621         (find_what_p_points_to): Likewise.
2622
2623 2008-05-08  Sa Liu  <saliu@de.ibm.com>
2624
2625         * config/spu/spu.md: Fixed subti3 pattern.
2626
2627 2008-05-08  Richard Guenther  <rguenther@suse.de>
2628
2629         PR middle-end/36154
2630         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
2631         sure to create a representative for trailing arrays for PTA.
2632
2633 2008-05-08  Richard Guenther  <rguenther@suse.de>
2634
2635         PR middle-end/36172
2636         * fold-const.c (operand_equal_p): Two objects which types
2637         differ in pointerness are not equal.
2638
2639 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
2640
2641         * calls.c (compute_argument_block_size): Add argument tree fndecl.
2642         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
2643         (emit_library_call_value_1): Add new variable fndecl initialized by
2644         NULL_TREE. It should be the decl type of orgfun, but this information
2645         seems not to be available here, so it uses the default calling abi.
2646         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
2647         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
2648         by TARGET_RETURN_IN_MEMORY.
2649         * config/i386/i386-interix.h: Likewise.
2650         * config/i386/i386.h: Likewise.
2651         * config/i386/i386elf.h: Likewise.
2652         * config/i386/ptx4-i.h: Likewise.
2653         * config/i386/sol2-10.h: Likewise.
2654         * config/i386/sysv4.h: Likewise.
2655         * config/i386/vx-common.h: Likewise.
2656         * config/cris/cris.h: Removed #if 0 clause.
2657         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
2658         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
2659         argument.
2660         (ix86_sol10_return_in_memory): Likewise.
2661         (ix86_i386elf_return_in_memory): New.
2662         (ix86_i386interix_return_in_memory): New.
2663         * config/mt/mt-protos.h (mt_return_in_memory): New.
2664         * config/mt/mt.c: Likewise.
2665         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
2666         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
2667         * config/bfin/bfin.h: Likewise.
2668         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
2669         argument.
2670         * config/bfin/bfin.c: Likewise.
2671         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
2672         * config/alpha/unicosmk.h: Likewise.
2673         * config/i386/cygming.h: Likewise.
2674         * config/iq2000/iq2000.h: Likewise.
2675         * config/mips/mips.h: Likewise.
2676         * config/mn10300/mn10300.h: Likewise.
2677         * config/rs6000/rs6000.h: Likewise.
2678         * config/score/score.h: Likewise.
2679         * config/spu/spu.h: Likewise.
2680         * config/v850/v850.h: Likewise.
2681         * defaults.h: Likewise.
2682         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
2683         * expr.c (emit_block_move): Adjust use of
2684         OUTGOING_REG_PARM_STACK_SPACE.
2685         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
2686         OUTGOING_REG_PARM_STACK_SPACE.
2687         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
2688
2689 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
2690
2691         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
2692         on OMP_RETURN for OMP_FOR.
2693
2694         PR debug/35896
2695         * dwarf2out.c (dw_expand_expr, common_check): Removed.
2696         (fortran_common): New function.
2697         (gen_variable_die): Call fortran_common instead of common_check,
2698         adjust for it returning tree instead of rtx.  Formatting.
2699
2700 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
2701
2702         PR rtl/7335
2703         PR rtl/33826
2704         * see.c (see_copy_insn): Copy new pure const attributes for new call.
2705         * c-decl.c (merge_decls): Ditto.
2706         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
2707         to RTL_CONST_OR_PURE_CALL_P.
2708         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
2709         Initialized DECL_LOOPING_CONST_PURE.
2710         (process_call_operands): Set tree_side_effects properly.
2711         * tree.h (TREE_READONLY_DECL_P): Removed.
2712         (DECL_IS_PURE): Renamed to DECL_PURE_P.
2713         (DECL_LOOPING_OR_CONST_P): New macro.
2714         (struct tree_function_decl): Added looping_const_or_pure_p.
2715         (ECF_*) Renumbered.
2716         (ECF_LOOPING_OR_CONST_P): New macro.
2717         * rtlanal.c (pure_const_p): Removed.
2718         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
2719         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
2720         to RTL_CONST_CALL_P.
2721         * ipa-pure-const.c (pure_const_state_e): Added looping field.
2722         (check_decl, check_tree, check_call, scan_function): Initialize
2723         looping.
2724         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
2725         (static_execute): Set looping true for recursive functions.
2726         Undo setting state to IPA_NEITHER for recursive functions.
2727         * cse.c (cse_insn): 
2728         * ifcvt.c (noce_can_store_speculate_p): Changed
2729         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
2730         RTL_CONST_OR_PURE_CALL_P.
2731         * dse.c (scan_insn): Ditto.
2732         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
2733         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
2734         RTL_CONST_OR_PURE_CALL_P.
2735         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
2736         pure_call_p to RTL_CONST_CALL_P.
2737         * gimplify.c (gimplify_call_expr): Clear side effects for
2738         non-looping pure and constant calls.
2739         * calls.c (emit_call_1): Set rtl flags from ecf flags.
2740         (flags_from_decl_or_type): Set ecf flags from decl flags.
2741         (initialize_argument_information): Turn off
2742         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
2743         Change const to pure if callee_copies is true rather than just
2744         turning off const.
2745         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
2746         way of marking pure calls.
2747         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
2748         Remove hack that was supposed to fix pr7335 and remove old
2749         way of marking pure calls.
2750         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
2751         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
2752         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
2753         RTL_CONST_OR_PURE_CALL_P.
2754         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
2755         * loop-invariant.c (find_exits, find_invariant_bb): Changed
2756         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
2757         * sched-deps.c (schedule_analyze): Ditto.
2758         * rtl.h (struct rtx_def): Use call field, unchanging field, and
2759         return_val field of calls to represent pure and const function info.
2760         (CONST_OR_PURE_CALL_P): Deleted macro.
2761         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
2762         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
2763         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
2764         TREE_READONLY.
2765         * tree-optimize.c (execute_fixup_cfg): Added test for
2766         ECF_LOOPING_CONST_OR_PURE.
2767         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
2768         DECL_PURE_P.
2769         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
2770         effects for looping pure or const calls.
2771         (verify_gimple_expr): Added verification code. 
2772         * config/alpha/alpha.c (alpha_legitimize_address,
2773         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
2774         RTL_CONST_CALL_P.
2775         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
2776         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
2777         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
2778         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
2779         RTL_CONST_OR_PURE_CALL_P.
2780         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
2781         and const calls to be deleted.
2782
2783 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
2784
2785         PR target/35714
2786         * config/i386/mmx.md (mmx_subv2sf3): New expander.
2787         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
2788         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
2789         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
2790         to handle nonimmediate operands.
2791         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
2792         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
2793         to handle nonimmediate operands.
2794         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
2795         (mmx_pmulhrwv4hi3): New expander.  Use
2796         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2797         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
2798         (sse2_umulv1siv1di3): New expander.  Use
2799         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2800         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
2801         (mmx_eq<mode>3): New expander.  Use
2802         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2803         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
2804         (mmx_uavgv8qi3): New expander.  Use
2805         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2806         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
2807         (mmx_uavgv4hi3): New expander.  Use
2808         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2809
2810         * config/i386/sse.md
2811         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
2812         to handle nonimmediate operands.
2813         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
2814         to handle nonimmediate operands.
2815         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
2816         to handle nonimmediate operands.
2817         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
2818         to handle nonimmediate operands.
2819         (sse2_unpckhpd_exp): New expander.  Use
2820         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2821         (sse2_unpcklpd_exp): New expander.  Use
2822         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2823         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
2824         to handle nonimmediate operands.
2825         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
2826         to handle nonimmediate operands.
2827         (*sse2_<plusminus_insn><mode>3): Rename from
2828         sse2_<plusminus_insn><mode>3 insn pattern.
2829         (sse2_<plusminus_insn><mode>3): New expander.  Use
2830         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2831         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
2832         (sse2_umulv2siv2di3): New expander.  Use
2833         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2834         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
2835         (sse4_1_mulv2siv2di3): New expander.  Use
2836         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2837         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
2838         (sse2_pmaddwd): New expander.  Use
2839         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2840         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
2841         (sse2_eq<mode>3): New expander.  Use
2842         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2843         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
2844         (sse4_1_eqv2di3): New expander.  Use
2845         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2846         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
2847         (sse2_uavgv16qi3): New expander.  Use
2848         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2849         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
2850         (sse2_uavgv16qi3): New expander.  Use
2851         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2852         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
2853         (sse2_uavgv8hi3): New expander.  Use
2854         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2855         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
2856         (ssse3_pmulhrswv8hi3): New expander.  Use
2857         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2858         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
2859         (ssse3_pmulhrswv4hi3): New expander.  Use
2860         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2861
2862         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
2863         (<sse>_vmmul<mode>3): Ditto.
2864         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
2865         (divv2df3): Ditto.
2866         (ssse3_pmaddubsw128): Use register_operand for operand 1.
2867         (ssse3_pmaddubsw): Ditto.
2868
2869         * config/i386/i386.c (struct_builtin_description)
2870         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
2871         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
2872         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
2873         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
2874         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
2875         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
2876         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
2877         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
2878         (ix86_fixup_binary_operands): Assert that src1
2879         and src2 must have the same mode when swapped.
2880         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
2881         and ix86_binary_operator_ok.  Do not force operands in registers
2882         when optimizing.
2883
2884 2008-05-07  Jan Hubicka  <jh@suse.cz>
2885
2886         * cgraph.c (dump_cgraph_node): Update.
2887         * cgraph.h (cgraph_local_info): Break out inline summary.
2888         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
2889         hook.
2890         * ipa-inline (inline_summary): New accestor function.
2891         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
2892         cgraph_decide_inlining, compute_inline_parameters): Update.
2893         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
2894
2895 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
2896
2897         Cleanup ColdFire scheduling support and add V4 pipeline model.
2898
2899         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
2900         (define_attr cpu): Add cfv4 value.
2901         (define_attr type, define_attr type1): Merge into a single 'type'
2902         attribute.  Update all uses.
2903         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
2904         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
2905         Update all uses.
2906         (define_attr opx_mem, define_attr opy_mem): Remove.
2907         (define_attr op_mem): Clean up, update comment.
2908         (define_attr size): Use specific values instead of general int.
2909         (define_attr guess, define_attr split): Remove.  Update all uses.
2910         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
2911         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
2912         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
2913         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
2914         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
2915         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
2916         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
2917         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
2918         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
2919         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
2920         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
2921         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
2922         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
2923         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
2924         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
2925         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
2926         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
2927         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
2928         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
2929         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
2930         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
2931         Update or set attributes.
2932         (stack_tie): New fake instruction.
2933
2934         * config/m68k/m68k.h (TUNE_CFV4): New macro.
2935         (m68k_sched_attr_size): Update declaration.
2936         (m68k_sched_attr_type2): Remove.
2937         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
2938         Declare new bypass predicates.
2939
2940         * config/m68k/m68k.c (m68k_sched_issue_rate,
2941         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
2942         implementations.
2943         (TARGET_SCHED_ISSUE_RATE,
2944         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
2945         (override_options): Handle scheduling for ColdFire V4 core.
2946         (m68k_expand_prologue): Emit stack_tie.
2947         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
2948         'OP_TYPE_FPN'.  Update all uses.
2949         (sched_guess_p): Remove.
2950         (sched_address_type): Handle symbolic addresses.
2951         (sched_get_operand): New static function.
2952         (sched_operand_type): Merge into sched_attr_op_type.
2953         (sched_attr_op_type): Handle FP registers, handle quick constants,
2954         update.
2955         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
2956         (m68k_sched_attr_size): Update.  Move logic to ...
2957         (sched_get_attr_size_int): New static function.
2958         (sched_get_opxy_mem_type): New static function.
2959         (m68k_sched_attr_op_mem): Update.
2960         (m68k_sched_attr_type2): Remove.
2961         (sched_cfv4_bypass_data): New static variable.
2962         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
2963         (m68k_sched_issue_rate): Implement scheduler hook.
2964         (struct _sched_ib: enabled_p): New field.
2965         (m68k_sched_variable_issue): Update.  Handle V4.
2966         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
2967         sched_dump_class_func_t, sched_dump_split_class,
2968         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
2969         sched_dump_dfa_class, m68k_sched_dump): Remove.
2970         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
2971         hook.
2972         (m68k_sched_init_global): Remove statisctics dumping, introduce
2973         sanity check that all instructions have pipeline reservations.  Handle
2974         ColdFire V4 core.
2975         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
2976         Handle ColdFire V4 core.
2977         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
2978         New static functions.
2979         (m68k_sched_address_bypass_p): New bypass predicate.
2980         (sched_get_indexed_address_scale): New static function.
2981         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
2982
2983         * cf.md: Update comments.
2984         (define_attr type2): Remove.  Use 'type' attribute instead.
2985         Update all uses.
2986         (cf_ib): Rename to cfv123_ib.  Update all uses.
2987         (cf_oep): Rename to cfv123_oep.  Update all uses.
2988         (cf_chr): Rename to cfv123_chr.  Update all uses.
2989         (cf_mem): Rename to cfv123_mem.  Update all uses.
2990         (cf_mac): Move to more appropriate place.
2991         (cfv123_guess): New automaton and cpu_unit.
2992         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
2993         Update uses of 'size' attribute.  Handle before reload scheduling.
2994         (cfv123_guess): New dummy reservation for unhandled instructions.
2995         (cfv4_*): Pipeline description of ColdFire V4 core.
2996         (ignore): New reservation to handle 'ignore' type.
2997
2998 2008-05-07  Ian Lance Taylor  <iant@google.com>
2999
3000         PR middle-end/36013
3001         * gimplify.c (find_single_pointer_decl_1): Don't look through
3002         indirections.
3003         (find_single_pointer_decl): Adjust comments.
3004
3005 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
3006
3007         PR middle-end/36137
3008         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
3009         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
3010
3011         PR middle-end/36106
3012         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
3013         integral type rather than floating point, then VIEW_CONVERT_EXPR
3014         to the floating point type.
3015
3016 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
3017
3018         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
3019         TFmode op0 to register.
3020
3021 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
3022
3023         * c-decl.c (grokdeclarator): Comment typo.
3024
3025 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
3026
3027         * tree-flow.h: Remove prototype for computed_goto_p.
3028         * tree-cfg.c (computed_goto_p): Make static.
3029
3030 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
3031
3032         PR target/35657
3033         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
3034         (contains_aligned_value_p): This.  Handle _Decimal128.
3035         (ix86_function_arg_boundary): Only align _Decimal128 to its
3036         natural boundary and handle it properly.
3037
3038 2008-05-06  Martin Jambor  <mjambor@suse.cz>
3039
3040         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
3041         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
3042         (ipcp_method_set_orig_node): Removed.
3043         (ipcp_cval_get_cvalue_type): Removed.
3044         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
3045         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
3046         (ipcp_cval_set_cvalue_type): Removed.
3047         (ipcp_cval_get_cvalue): Removed.
3048         (ipcp_cval_set_cvalue): Removed.
3049         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
3050         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
3051         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
3052         (ipcp_cval_meet): Renamed to ipa_lattice_meet
3053         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
3054         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
3055         (ipcp_get_ith_lattice): Changed parameters.
3056         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
3057         (ipcp_lattice_from_jfunc): Changed parameters.
3058         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
3059         (ipcp_method_cval_print): Added temporary variable info.
3060         (ipcp_redirect): Removed already unused local variable caller.
3061         (ipcp_redirect): New temporary variable orig_callee_info
3062         (ipcp_redirect): Removed newly unused local variable callee.
3063         (ipcp_redirect): Removed (a bit confusing) local variable type.
3064         (ipcp_insert_stage): Added local variable info.
3065         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
3066         renamed too
3067         (ipcp_formal_create): Removed.
3068         (ipcp_method_cval_set): Removed.
3069         (ipcp_propagate_stage): Renamed lattice variables.
3070         (ipcp_method_cval_set_cvalue_type): Removed.
3071         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
3072         (ipcp_print_all_lattices): Changed printed strings to refer to 
3073         lattices rather than cvals.
3074         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
3075         (ipcp_propagate_const): Changed formal parameters.
3076         (build_const_val): Changed formal parameters.
3077         (ipcp_insert_stage): Removed useless variable cvalue
3078         (build_const_val): Changed formal parameters.
3079         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
3080         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
3081         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
3082         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
3083         (ipcp_print_func_profile_counts): Changed string from "method" to 
3084         "function"
3085         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
3086         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
3087         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
3088         (ipcp_structures_print): Renamed to ipcp_print_all_structures
3089         (ipcp_profile_print): Renamed to ipcp_print_profile_data
3090         (ipcp_lat_is_const): Changed parameters and made inline.
3091         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
3092         (ipcp_redirect): Renamed to ipcp_need_redirect_p
3093         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
3094         the predicate condition directly
3095         (ipcp_propagate_stage): Added local variable args. Removed local
3096         variable callee.  (Both are mere code simplifications.)
3097         (ipcp_method_dont_insert_const): Renamed to
3098         ipcp_node_not_modifiable_p.
3099         (ipcp_node_not_modifiable_p): Made inline.
3100         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
3101         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
3102         (ipcp_print_all_lattices): Removed variable cvalue
3103         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
3104         Updated comments.
3105
3106 2008-05-06  Olivier Hainque  <hainque@adacore.com>
3107
3108         * tree-sra.c (try_instantiate_multiple_fields): Early return
3109         if field has POINTER_TYPE.
3110
3111 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
3112
3113         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
3114         by using 'q' specifier for instruction.
3115         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
3116
3117 2008-05-06  Anatoly Sokolov <aesok@post.ru>
3118
3119         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
3120         Change mode of zero_extract from QImode to HImode.
3121         (sign bit tests peepholes): (Ditto.).
3122
3123 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
3124
3125         * config/i386/mmx.md: Remove double backslashes from asm templates.
3126         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
3127         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
3128         to handle nonimmediate operands.
3129         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
3130         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
3131         to handle nonimmediate operands.
3132         (*mmx_<code>v2sf3_finite): New insn pattern.
3133         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
3134         (mmx_<code>v2sf3): New expander.  Use
3135         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3136         (mmx_<plusminus_insn><mode>3): New expander.  Use
3137         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3138         (*mmx_<plusminus_insn><mode>3): New insn pattern.
3139         (mmx_add<mode>3): Removed.
3140         (mmx_ssadd<mode>3): Ditto.
3141         (mmx_usadd<mode>3): Ditto.
3142         (mmx_sub<mode>3): Ditto.
3143         (mmx_sssub<mode>3): Ditto.
3144         (mmx_ussub<mode>3): Ditto.
3145         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
3146         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
3147         to handle nonimmediate operands.
3148         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
3149         insn pattern.
3150         (mmx_smulv4hi3_highpart): New expander.  Use
3151         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3152         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
3153         insn pattern.
3154         (mmx_umulv4hi3_highpart): New expander.  Use
3155         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3156         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
3157         (mmx_<code>v4hi3): New expander.  Use
3158         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3159         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
3160         (mmx_<code>v8qi3): New expander.  Use
3161         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3162         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
3163         (mmx_<code><mode>3): New expander.  Use
3164         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3165
3166 2008-05-05  Jan Hubicka  <jh@suse.cz>
3167
3168         PR tree-optimization/36118
3169         * passes.c (pass_init_dump_file): Fix dump header.
3170
3171 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3172
3173         PR middle-end/36141
3174         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
3175         VCE for function decls.
3176
3177 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
3178
3179         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
3180
3181 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
3182
3183         * config/i386/i386.md (sat_plusminus): New.
3184         (plusminus_insn): Likewise.
3185         (plusminus_mnemonic): Likewise.
3186         (addsub): Removed.
3187         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
3188         (*<addsub><mode>3_cc_overflow): Renamed to ...
3189         (*<plusminus_insn><mode>3_cc_overflow): This.
3190         (*<addsub>si3_zext_cc_overflow): Renamed to ...
3191         (*<plusminus_insn>si3_zext_cc_overflow): This.
3192
3193         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
3194         (<plusminus_insn><mode>3): This.
3195         (*<addsub><mode>3): Renamed to ...
3196         (*<plusminus_insn><mode>3): This.
3197         (<sse>_vm<addsub><mode>3): Renamed to ...
3198         (<sse>_vm<plusminus_insn><mode>3): This.
3199         (sse3_h<addsub>v4sf3): Renamed to ...
3200         (sse3_h<plusminus_insn>v4sf3): This.
3201         (sse3_h<addsub>v2df3): Renamed to ...
3202         (sse3_h<plusminus_insn>v2df3): This.
3203         (<plusminus_insn><mode>3): New.
3204         (*<plusminus_insn><mode>3): Likewise.
3205         (sse2_<plusminus_insn><mode>3): Likewise.
3206         (add<mode>): Removed.
3207         (*add<mode>3): Likewise.
3208         (sse2_ssadd<mode>3): Likewise.
3209         (sse2_usadd<mode>3): Likewise.
3210         (sub<mode>3): Likewise.
3211         (*sub<mode>3): Likewise.
3212         (sse2_sssub<mode>3): Likewise.
3213         (sse2_ussub<mode>3): Likewise.
3214
3215 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
3216
3217         * gthr-single.h: Add in required interface elements as per gthr.h.
3218         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
3219         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
3220         Generalize UNUSED macro. 
3221         (__gthread_once): Add.
3222         (__gthread_key_create): Add.
3223         (__gthread_key_delete): Add.
3224         (__gthread_getspecific): Add.
3225         (__gthread_setspecific): Add.
3226         
3227 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
3228
3229         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
3230         the same size types for the indirect reference on the rhs, then
3231         create a VCE.
3232
3233 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
3234
3235         * config/i386/i386.md
3236         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
3237         one insn template instead of template series.
3238         (*xordi_1_rex64): Ditto.
3239         (*xordi_2_rex64): Ditto.
3240
3241 2008-05-05  Ira Rosen  <irar@il.ibm.com>
3242
3243         PR tree-optimization/36119
3244         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
3245         in case of SLP.
3246
3247 2008-06-04  Jan Hubicka  <jh@suse.cz>
3248
3249         tree-optimization/36100
3250         * tree-pass.h (pass_O0_always_inline): Declare.
3251         * ipa-inline.c (inline_transform): Remove dead code.
3252         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
3253         pass_O0_always_inline): New.
3254         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
3255
3256 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
3257
3258         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
3259         mnemonic in this_param move for TARGET_64BIT.
3260
3261 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
3262
3263         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
3264         (*strmovsi_rex_1): Ditto.
3265         (*strsetsi_1): Ditto.
3266         (*strsetsi_rex_1): Ditto.
3267
3268         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
3269         adddicc expanders using SWI mode iterator.
3270
3271 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
3272
3273         PR target/36121
3274         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
3275         argument handling.
3276
3277 2008-05-04  David S. Miller  <davem@davemloft.net>
3278
3279         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
3280         (sparc*-*-linux*): Use linux.h in tm_file.
3281         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
3282         compiler defaulting to 32-bit.
3283         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
3284         no longer needed.
3285         * config/sparc/linux.h: Remove definitions now obtained
3286         properly from linux.h
3287         * config/sparc/linux64.h: Likewise.
3288         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
3289         don't want this setting for 32-bit builds in a biarch compiler.
3290         * doc/install.texi: Add sparc-linux to list of targets
3291         supporting --enable-targets=all.
3292
3293 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
3294
3295         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
3296
3297 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
3298
3299         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
3300         after V4SI_FTYPE_V8HI.
3301         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
3302         case V4SI_FTYPE_V2DF.
3303
3304 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
3305
3306         * doc/invoke.texi (max-flow-memory-locations): Removed.
3307         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
3308         
3309 2008-05-03  Richard Guenther  <rguenther@suse.de>
3310
3311         PR middle-end/34973
3312         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
3313
3314 2008-05-02  David S. Miller  <davem@davemloft.net>
3315
3316         * config.gcc (need_64bit_hwint): Document libcpp dependency.
3317
3318 2008-05-02  Simon Baldwin <simonb@google.com>
3319
3320         PR bootstrap/36108
3321         * c-common.h (warn_array_subscript_range): Removed.
3322         * c-common.c (warn_array_subscript_range): Ditto.
3323         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
3324         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
3325
3326 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
3327
3328         * config/i386/i386.c (ix86_special_builtin_type): New.
3329         (bdesc_special_args): Likewise.
3330         (ix86_expand_special_args_builtin): Likewise.
3331         (ix86_init_mmx_sse_builtins): Updated.
3332         (ix86_expand_builtin): Updated.
3333         (ix86_expand_store_builtin): Removed.
3334         (ix86_expand_unop_builtin): Likewise.
3335
3336         * config/i386/mm3dnow.h (__v2sf): Moved to ...
3337         * config/i386/mmintrin.h (__v2sf): Here.
3338
3339         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
3340         const __v2sf.
3341         (_mm_loadl_pi): Likewise.
3342         (_mm_storeh_pi): Replace __v2si with __v2sf.
3343         (_mm_storel_pi): Likewise.
3344
3345         * doc/extend.texi: Correct __builtin_ia32_loadhps,
3346         __builtin_ia32_loadlps, __builtin_ia32_storehps,
3347         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
3348         __builtin_ia32_loadlpd.
3349
3350 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
3351
3352         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
3353         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
3354         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
3355         (ix86_init_mmx_sse_builtins): Updated.
3356         (ix86_expand_args_builtin): Likewise.
3357         (ix86_expand_builtin): Likewise.
3358         (ix86_expand_unop1_builtin): Renamed to ...
3359         (ix86_expand_unop_vec_merge_builtin): This.
3360
3361 2008-05-01  Jan Hubicka  <jh@suse.cz>
3362
3363         PR bootstrap/36100
3364         * ipa-inline.c (inline_generate_summary): Make static.
3365         (inline_transform): Do not call inlining at -O0; make static.
3366         * passes.c (execute_todo): Add sanity check.
3367         (execute_one_ipa_transform_pass): Execute proper flags.
3368
3369 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
3370
3371         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
3372         (DECL_NONADDRESSABLE_P): Likewise.
3373         * alias.c (record_component_aliases): Fix comment.
3374
3375 2008-05-01  Simon Baldwin <simonb@google.com>
3376
3377         * c-common.h (warn_array_subscript_range): New function.
3378         * c-common.c (warn_array_subscript_range): Ditto.
3379         * tree-vrp.c (check_array_ref): Corrected code to agree with
3380         comment, ignoring only arrays of size 0 or size 1.
3381         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
3382
3383 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
3384
3385         * config/i386/i386.c (ix86_builtin_type): Replace
3386         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
3387         (bdesc_args): Updated.
3388         (ix86_init_mmx_sse_builtins): Likewise.
3389         (ix86_expand_args_builtin): Likewise.
3390
3391         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
3392         with __v1di.
3393
3394         * doc/extend.texi: Correct __builtin_ia32_palignr.
3395
3396 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
3397
3398         PR target/36095
3399         * config/i386/i386.c (bdesc_crc32): Removed.
3400         (ix86_expand_crc32): Likewise.
3401         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
3402         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
3403         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
3404         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
3405         UINT_FTYPE_UINT_UCHAR.
3406         (bdesc_args): Updated. Add crc32 builtins.
3407         (ix86_init_mmx_sse_builtins): Updated.
3408         (ix86_expand_args_builtin): Updated to support subreg.
3409
3410         * doc/extend.texi: Correct __builtin_ia32_crc32di.
3411
3412 2008-05-01  Jan Hubicka  <jh@suse.cz>
3413
3414         * tree-pass.h (opt_pass): Add IPA_PASS.
3415         (varpool_node, cgraph_node): Forward declare.
3416         (ipa_opt_pass): Define.
3417         (pass_ipa_inline): Turn into ipa_opt_pass.
3418         (pass_apply_inline): Remove.
3419         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
3420         (apply_inline): Turn into ....
3421         (inline_transform): ... this one.
3422         (inline_generate_summary): New function.
3423         (pass_apply_inline): Remove.
3424         * function.h (ipa_opt_pass): Forward declare structure; typedef;
3425         vector.
3426         (struct function): Add ipa_transforms_to_apply.
3427         * passes.c (register_one_dump_file): Work on IPA_PASS.
3428         (init_optimization_passes): Remove pass_inline_parameters and
3429         pass_apply_inline.
3430         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
3431         (execute_one_pass) ... here; apply transforms when possible.
3432         (add_ipa_transform_pass, execute_ipa_summary_asses,
3433         execute_one_ipa_transform_pass): New.
3434         (execute_ipa_pass_list): Update for IPA_PASS type.
3435
3436 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
3437
3438         * config/i386/i386.c (ix86_builtin_type): Add
3439         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
3440         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
3441         (bdesc_args): Add SSE4a builtins.
3442         (ix86_init_mmx_sse_builtins): Updated.
3443         (ix86_expand_args_builtin): Likewise.
3444         (ix86_expand_builtin): Likewise.
3445
3446 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
3447
3448         * config/i386/i386.c (ix86_builtin_type): Add
3449         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
3450         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
3451         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
3452         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
3453         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
3454         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
3455         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
3456         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
3457         and DI_FTYPE_DI_DI_INT.
3458         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
3459         (ix86_init_mmx_sse_builtins): Updated.
3460         (ix86_expand_args_builtin): Likewise.
3461         (ix86_expand_builtin): Likewise.
3462         (ix86_expand_binop_imm_builtin): Removed.
3463
3464         * doc/extend.texi: Correct __builtin_ia32_palignr128.
3465
3466 2008-04-30  Richard Guenther  <rguenther@suse.de>
3467
3468         PR tree-optimization/32921
3469         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
3470
3471 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
3472
3473         * config/arm/arm.c (arm_unwind_emit): Use
3474         crtl->all_throwers_are_sibcalls instead of
3475         cfun->all_throwers_are_sibcalls.
3476         (arm_output_fn_unwind): Likewise.
3477         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
3478         instead of cfun->uses_pic_offset_table.
3479         (frv_expand_prologue): Likewise.
3480         (frv_frame_pointer_required): Likewise.
3481         (frv_expand_fdpic_call): Likewise.
3482         (frv_emit_movsi): Likewise.
3483         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
3484         cfun->returns_pcc_struct instead of
3485         current_function_returns_pcc_struct.
3486         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
3487         instead of cfun->calls_eh_return.
3488         (m32c_pushm_popm): Likewise.
3489         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
3490         "extern" declaration.
3491
3492 2008-04-30  Richard Guenther  <rguenther@suse.de>
3493
3494         PR tree-optimization/21636
3495         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
3496         constant address.
3497         (evaluate_stmt): Print the likely value.
3498         (ccp_visit_stmt): Avoid excessive vertical spacing.
3499
3500 2008-04-30  Rafael Espindola  <espindola@google.com>
3501
3502         * builtins.c (fold_call_expr): Return realret.
3503         * tree-ssa-threadedge.c
3504         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
3505         __builtin_object_size.
3506
3507 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
3508
3509         * gcc.c (wrapper_string): New variable.
3510         (insert_wrapper): New function.
3511         (execute): New option -wrapper.
3512         * doc/invoke.texi (Overall Options): New driver option -wrapper.
3513
3514 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
3515
3516         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
3517         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
3518         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
3519         from...
3520         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
3521         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
3522         config/rs6000/e500crtres64gprctr.asm,
3523         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
3524         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
3525         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
3526         config/rs6000/e500crtsav64gprctr.asm,
3527         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
3528         config/rs6000/e500crtsavg64gprctr.asm: New files.
3529         * config/rs6000/t-ppccomm: Add build rules for new files.
3530         (LIB2FUNCS_STATIC_EXTRA): Add new files.
3531         * config/rs6000/t-netbsd: Add build rules for new files.
3532         (LIB2FUNCS_STATIC_EXTRA): New variable.
3533         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
3534         (CRTSAVRES_DEFAULT_SPEC): Likewise.
3535         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
3536
3537 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
3538
3539         * config/i386/i386.c (ix86_builtin_type): Add
3540         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
3541         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
3542         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
3543         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
3544         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
3545         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
3546         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
3547         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
3548         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
3549         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
3550         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
3551         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
3552         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
3553         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
3554         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
3555         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
3556         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
3557         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
3558         V1DI_FTYPE_V2SI_V2SI.
3559         (bdesc_2arg): Moved to ...
3560         (bdesc_args): Here.
3561         (ix86_init_mmx_sse_builtins): Updated.
3562         (ix86_expand_args_builtin): Updated.  Take a pointer
3563         to const struct builtin_description.  Handle comparison
3564         builtin functions.
3565         (ix86_expand_sse_compare): Take a new argument for swapping operands.
3566         (ix86_expand_builtin): Updated.
3567
3568         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
3569         (ssse3_pmaddubsw128): This.
3570         (ssse3_pmaddubswv4hi3): Renamed to ...
3571         (ssse3_pmaddubsw): This.
3572
3573         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
3574         (__builtin_ia32_packssdw128): Likewise.
3575         (__builtin_ia32_packuswb128): Likewise.
3576         (__builtin_ia32_pmaddubsw): Likewise.
3577         (__builtin_ia32_pmaddubsw128): Likewise.
3578
3579 2008-04-30  Richard Guenther  <rguenther@suse.de>
3580
3581         PR tree-optimization/14847
3582         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
3583         (recognize_bits_test): Use it.
3584         (recognize_single_bit_test): Likewise.
3585
3586 2008-04-30  Martin Jambor  <mjambor@suse.cz>
3587
3588         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
3589         instead of setting number of formal parameters to zero.
3590         (ipcp_init_stage): Do not set the number of actual parameters to zero 
3591         either.
3592         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
3593         which are called with variable number of arguments.
3594         (ipcp_insert_stage): Explicitely skipping all nodes which are
3595         called with variable number of arguments.
3596         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
3597         number of parameters.
3598
3599         * ipa-prop.h (struct ipa_node_params): Added flag
3600         called_with_var_arguments
3601         (ipa_set_param_count): Added.  Changed sole setter to use it.
3602         (ipa_get_param_count): Added.  All readers of param_count
3603         converted to use it instead.
3604         (ipa_set_called_with_variable_arg): Added.
3605         (ipa_is_called_with_var_arguments): Added.
3606         (ipa_get_ith_param): Added.  All readers of param_decls converted
3607         to use it instead.
3608         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
3609         changed to use it. 
3610         (ipa_get_cs_argument_count): Added, all readers of argument_count
3611         changed to cal it.
3612         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
3613         to use it.
3614         
3615         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
3616         (struct ipcp_lattice): Renamed cval_type to type
3617         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
3618
3619         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
3620         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
3621         (ipcp_insert_stage): Changed the type of variable cvalue to tree
3622         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
3623         (build_const_val): Changed the type of parameter cvalue to tree
3624         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
3625         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
3626         
3627         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
3628         constant 
3629
3630         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
3631         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
3632         (ipa_add_method): Renamed to ipa_push_func_to_list
3633         (ipa_remove_method): Renamed to ipa_pop_func_from_list
3634         (ipa_callsite_param_count): Removed.
3635         (ipa_callsite_param_count_set): Removed.
3636         (ipa_callsite_param): Removed.
3637         (ipa_callsite_callee): Removed.
3638         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
3639         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
3640         (ipa_method_formal_count): Removed.
3641         (ipa_method_formal_count_set): Removed.
3642         (ipa_method_get_tree): Removed.
3643         (ipa_method_tree_map_create): Removed.
3644         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
3645         (ipa_create_param_decls_array): Creates the array itself
3646         (ipa_create_param_decls_array): Temporary variable info instead of 
3647         a few dereferences.
3648         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
3649         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
3650         (get_type): Removed.
3651         (ipa_jf_get_info_type): Removed.
3652         (ipa_node_create): Renamed to ipa_create_node_params
3653         (ipa_free): Renamed to ipa_free_all_node_params
3654         (ipa_nodes_create): Renamed to ipa_create_all_node_params
3655         (ipa_edges_create): Renamed to ipa_create_all_edge_args
3656         (ipa_edges_free): Renamed to ipa_free_all_edge_args
3657         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
3658         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
3659         ipa_free_all_edge_args
3660         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
3661         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
3662         (ipa_create_methodlist_node): Removed.
3663         (ipa_methodlist_method): Removed.
3664         (ipa_methodlist_method_set): Removed.
3665         (ipa_methodlist_next_method): Removed.
3666         (ipa_methodlist_next_method_set): Removed.
3667         (ipa_method_is_modified): Removed.
3668         (ipa_method_modify_create): Removed.
3669         (ipa_method_modify_init): Temporary variable info instead of a few 
3670         dereferences.
3671         (ipa_detect_param_modifications): Temporary variable info instead of 
3672         a few dereferences.
3673         (ipa_compute_jump_functions): Temporary variable info instead of 
3674         a few dereferences.
3675         (ipa_method_modify_set): Removed.
3676         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
3677         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
3678         than craph_node as the first parameter.
3679         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
3680         (ipa_method_modify_init): Removed.
3681         (ipa_compute_jump_functions): Added a temp variable instead of 
3682         repeatadly dereferencing the cgraph_edge.aux pointer
3683         (ipa_callsite_param_set_type): Removed.
3684         (ipa_compute_jump_functions): i renamed to index and moved to 
3685         an inner block
3686         (ipa_callsite_param_set_info_type_formal): Removed.
3687         (ipa_callsite_param_set_info_type): Removed.
3688         (ipa_callsite_param_map_create): Removed.
3689         (ipa_callsite_tree): Removed.
3690         (ipa_callsite_caller): Removed.
3691         (ipa_pop_func_from_list): return_method removed to return_func
3692
3693         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
3694         prefixed all values with IPA_. Changed all users.
3695         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
3696         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
3697         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
3698         (union parameter_info): Renamed to jump_func_value.
3699         (union jump_func_value): Renamed value to constant
3700         (struct ipa_jump_func): Renamed info_type to value
3701         (struct ipa_node): Renamed to ipa_node_params
3702         (struct ipa_node_params): Renamed ipa_arg_num to param_count
3703         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
3704         (struct ipa_node_params): Renamed ipa_mod to modified_flags
3705         (struct ipa_edge): Renamed to ipa_edge_args
3706         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
3707         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
3708         (struct ipa_methodlist): Renamed to ipa_func_list
3709         (struct ipa_func_list): method_p renamed to node, next_method
3710         renamed to next
3711         (ipa_methodlist_p): Removed, switched all users to struct pointer
3712         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
3713
3714 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
3715
3716         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
3717         (rs6000_emit_epilogue): Use backchain to restore only when we
3718         have a large frame.  Make use of frame pointer to restore if we
3719         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
3720
3721 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
3722
3723         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
3724         Add mode to zero_extract.
3725         (sign bit tests peepholes): (Ditto.).
3726
3727 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
3728
3729         * config/i386/i386.c (ix86_builtins): Replace Prescott New
3730         Instructions in comments with SSE3.
3731         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
3732         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
3733         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
3734         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
3735         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
3736         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
3737         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
3738         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
3739         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
3740         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
3741         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
3742         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
3743         (bdesc_sse_args): Renamed to ...
3744         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
3745         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
3746         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
3747         IX86_BUILTIN_FABSQ.
3748         (bdesc_1arg): Moved to ...
3749         (bdesc_args): Here.
3750         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
3751         Instructions in comments with SSE3.
3752         (ix86_expand_sse_operands_builtin): Renamed to ...
3753         (ix86_expand_args_builtin): This.  Updated.
3754         (ix86_expand_unop1_builtin): Update comments.
3755         (ix86_expand_builtin): Updated.
3756
3757 2008-04-29  Richard Guenther  <rguenther@suse.de>
3758
3759         PR tree-optimization/36078
3760         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
3761         Update virtual SSA form after cleaning up the CFG.
3762
3763 2008-04-29  Richard Guenther  <rguenther@suse.de>
3764
3765         PR middle-end/15255
3766         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
3767
3768 2008-04-29  Richard Guenther  <rguenther@suse.de>
3769
3770         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
3771         (compute_may_aliases): Do not call finalize_ref_all_pointers.
3772         (compute_flow_insensitive_aliasing): Do not treat
3773         PTR_IS_REF_ALL pointers special.
3774         (get_smt_for): Likewise.
3775         (may_alias_p): Re-structure.
3776         (is_escape_site): A ref-all pointer conversion is not an escape site.
3777         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
3778         PTR_IS_REF_ALL pointers special.
3779         * tree-ssa-structalias.h (struct alias_info): Remove
3780         ref_all_symbol_mem_tag field.
3781         (PTR_IS_REF_ALL): Remove.
3782
3783 2008-04-29  Richard Guenther  <rguenther@suse.de>
3784
3785         PR middle-end/36077
3786         * fold-const.c (extract_muldiv_1): In combining division constants
3787         make sure to never overflow.
3788
3789 2008-04-29  Nick Clifton  <nickc@redhat.com>
3790
3791         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
3792
3793 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3794
3795         PR bootstrap/35169
3796         * optc-gen.awk: Work around HP-UX/IA awk bug.
3797
3798 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
3799
3800         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
3801         2008-04-25 commit.
3802
3803 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
3804
3805         PR target/36073
3806         * config/i386/i386.md
3807         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
3808         Change operand 1 predicate to nonimmediate_operand.
3809
3810 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
3811
3812         PR debug/36060
3813         * dwarf2out.c (struct die_struct): Mark as chain_circular through
3814         die_sub field.
3815         * gengtype.c (walk_type, write_func_for_structure): Handle
3816         chain_circular.
3817         * doc/gty.texi: Document chain_circular.
3818
3819 2008-04-28  Richard Guenther  <rguenther@suse.de>
3820
3821         PR tree-optimization/36066
3822         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
3823         SCEV and loop.
3824
3825 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
3826
3827         PR target/36064
3828         * config/i386/i386.md
3829         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
3830         Use match_scratch instead of match_operand for operands 3 and 4.
3831
3832 2008-04-27  Richard Guenther  <rguenther@suse.de>
3833
3834         PR tree-optimization/18754
3835         PR tree-optimization/34223
3836         * tree-pass.h (pass_complete_unrolli): Declare.
3837         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
3838         loop size before and after unconditionally of UL_NO_GROWTH in effect.
3839         Rewrite loop into loop closed SSA form if it is not already.
3840         (tree_unroll_loops_completely): Re-structure to iterate over
3841         innermost loops with intermediate CFG cleanups.
3842         Unroll outermost loops only if requested or the code does not grow
3843         doing so.
3844         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
3845         loops are available.
3846         (tree_vectorize): Instead do so here.
3847         (tree_complete_unroll): Also unroll outermost loops.
3848         (tree_complete_unroll_inner): New function.
3849         (gate_tree_complete_unroll_inner): Likewise.
3850         (pass_complete_unrolli): New pass.
3851         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
3852         uses outside of the loop.
3853         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
3854         form if it is available.  
3855         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
3856         * passes.c (init_optimization_passes): Schedule complete inner
3857         loop unrolling pass before the first CCP pass after final inlining.
3858
3859 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
3860
3861         * targhooks.h (default_emutls_var_fields,
3862         default_emutls_var_init): Declare.
3863         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
3864         * target.h (struct gcc_target): Add struct emutls member.
3865         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
3866         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
3867         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
3868         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
3869         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
3870         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
3871         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
3872         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
3873         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
3874         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
3875         emit debug information.
3876         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
3877         * varasm.c: Include targhooks.h.
3878         (emutls_object_section, emutls_tmpl_section): New.
3879         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
3880         (EMUTLS_SEPARATOR): New.
3881         (prefix_name): New.
3882         (get_emutls_object_name): New.
3883         (default_emutls_var_fields): New, broken out of ...
3884         (get_emutls_object_type): ... here.  Adjust to use target hooks.
3885         (get_emutls_init_templ_addr): Adjust to use target hooks.
3886         (emutls_decl): Adjust to use target hooks.
3887         (emutls_finish): Likewise.
3888         (default_emutls_var_init): New, broken out of ...
3889         (assemble_variable): ... here.  Adjust to use target hooks.
3890         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
3891         SECCAT_EMUTLS_TMPL.
3892         * c-common.c (handle_section_attribute): Prevent overriding
3893         sections for emulated tls with special sections.
3894         * config/i386/i386.c (x86_64_elf_select_section): Add
3895         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
3896         (x86_64_elf_unique_section): Likewise.
3897         * config/vxworks.c: Include tree.h.
3898         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
3899         (vxworks_override_options): Set TLS scheme.
3900         * doc/tm.texi (Emulated TLS): New node.
3901
3902 2008-04-26  Simon Baldwin <simonb@google.com>
3903
3904         PR c/35652
3905         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
3906         with propagated string constants.
3907
3908 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
3909
3910         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
3911         constraint for operand 2 when operand 0 is memory operand.
3912         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
3913         operand 0 is memory operand.
3914         (fix_trunc<mode>_i387_with_temp): Ditto.
3915         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
3916         operand 2 when operand 1 is memory operand.
3917         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
3918         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
3919         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
3920         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
3921         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
3922         operands 2,3 and 4 when operand 1 is memory operand.
3923         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
3924         is memory operand.
3925         (fistdi2_floor_with_temp): Ditto.
3926         (fist<mode>2_floor_with_temp): Ditto.
3927         (fistdi2_ceil_with_temp): Ditto.
3928         (fist<mode>2_ceil_with_temp): Ditto.
3929         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
3930
3931 2008-04-26  David Daney  <ddaney@avtrex.com>
3932
3933         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
3934         unspec_volitile.
3935         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
3936         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
3937         UNSPEC_UPDATE_GOT_VERSION): Renumber.
3938         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
3939         (compare_and_swap_12): New insn.
3940         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
3941         * config/mips/mips.c (mips_force_binary): New function.
3942         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
3943         (mips_expand_compare_and_swap_12): New function.
3944         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
3945
3946 2008-04-25  Jan Hubicka  <jh@suse.cz>
3947
3948         PR testsuite/35843
3949         * cfgexpand.c (pass_expand): Turn into RTL pass.
3950         * passes.c (execute_one_pass): Do pass typechecking after execution.
3951         * tree-pass.h (pass_expand): Turn into RTL pass.
3952
3953         * function.h (struct rtl_data): Move here fields
3954         accesses_prior_frames, calls_eh_return, saves_all_registers,
3955         has_nonlocal_goto, has_asm_statement, is_thunk,
3956         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
3957         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
3958         arg_pointer_save_area_init from struct function; turn into bool.
3959         (struct function): Move
3960         calls_eh_return, saves_all_registers, has_nonlocal_goto,
3961         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
3962         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
3963         tail_call_emit, arg_pointer_save_area_init
3964         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
3965         (current_function_returns_struct, current_function_returns_pcc_struct,
3966         current_function_calls_setjmp, current_function_calls_alloca,
3967         current_function_accesses_prior_frames,
3968         current_function_calls_eh_return, current_function_is_thunk,
3969         current_function_stdarg, current_function_profile,
3970         current_function_limit_stack, current_function_uses_pic_offset_table,
3971         current_function_uses_const_pool, current_function_has_nonlocal_label,
3972         current_function_saves_all_registers,
3973         current_function_has_nonlocal_goto,
3974         current_function_has_asm_statement): Remove accesor macros.
3975         * ra-conflict.c (global_conflicts): Update.
3976         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
3977         (suitable_for_tail_call_opt_p): Update.
3978         * builtins.c (expand_builtin_return_addr): Update.
3979         (expand_builtin_setjmp_setup): Update.
3980         (expand_builtin_nonlocal_goto): Update.
3981         * final.c (final_start_function): Update.
3982         (profile_function): Update.
3983         (leaf_function_p): Update.
3984         (only_leaf_regs_used): Update.
3985         * df-scan.c (df_get_exit_block_use_set): Update.
3986         * dojump.c (clear_pending_stack_adjust): Update.
3987         * tree-stdarg.c (gate_optimize_stdarg): Update.
3988         * gimple-low.c (lower_function_body): Update.
3989         * global.c (compute_regsets): Update.
3990         (global_alloc): Update.
3991         * dwarf2out.c (dwarf2out_begin_prologue): Update.
3992         * expr.c (expand_assignment): Update.
3993         * dse.c (dse_step0): Update.
3994         (dse_step1): Update.
3995         * c-decl.c (store_parm_decls): Update.
3996         * local-alloc.c (combine_regs): Update.
3997         (find_free_reg): Update.
3998         * function.c (assign_parms_augmented_arg_list): Update.
3999         (assign_parm_find_data_types): Update.
4000         (assign_parms): Update.
4001         (allocate_struct_function): Update.
4002         (expand_function_start): Update.
4003         (expand_function_end): Update.
4004         (get_arg_pointer_save_area): Update.
4005         (thread_prologue_and_epilogue_insns): Update.
4006         (rest_of_match_asm_constraints): Update.
4007         * stor-layout.c (variable_size): Update.
4008         * gcse.c (gcse_main): Update.
4009         (bypass_jumps): Update.
4010         * gimplify.c (gimplify_function_tree): Update.
4011         * calls.c (emit_call_1): Update.
4012         (expand_call): Update.
4013         * bt-load.c (compute_defs_uses_and_gen): Update.
4014         * except.c (sjlj_assign_call_site_values): Update.
4015         (sjlj_emit_function_enter): Update.
4016         (can_throw_external): Update.
4017         (set_nothrow_function_flags): Update.
4018         (expand_builtin_unwind_init): Update.
4019         (expand_eh_return): Update.
4020         (convert_to_eh_region_ranges): Update.
4021         (output_function_exception_table): Update.
4022         * emit-rtl.c (gen_tmp_stack_mem): Update.
4023         * cfgexpand.c (expand_used_vars): Update.
4024         (tree_expand_cfg): Update.
4025         * cfgcleanup.c (rest_of_handle_jump): Update.
4026         * explow.c (allocate_dynamic_stack_space): Update.
4027         * varasm.c (assemble_start_function): Update.
4028         (force_const_mem): Update.
4029         (mark_constant_pool): Update.
4030         * tree-optimize.c (tree_rest_of_compilation): Update.
4031         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
4032         * tree-cfg.c (notice_special_calls): Update.
4033         (is_ctrl_altering_stmt): Update.
4034         (tree_can_make_abnormal_goto): Update.
4035         (tree_purge_dead_abnormal_call_edges): Update.
4036         * config/alpha/predicates.md: Update.
4037         * config/alpha/alpha.c (alpha_sa_mask): Update.
4038         (alpha_sa_size): Update.
4039         (alpha_does_function_need_gp): Update.
4040         (alpha_expand_prologue): Update.
4041         (alpha_start_function): Update.
4042         (alpha_output_function_end_prologue): Update.
4043         (alpha_expand_epilogue): Update.
4044         * config/frv/frv.c (frv_stack_info): Update.
4045         (frv_expand_epilogue): Update.
4046         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
4047         (s390_register_info): Update.
4048         (s390_frame_info): Update.
4049         (s390_init_frame_layout): Update.
4050         (s390_can_eliminate): Update.
4051         (save_gprs): Update.
4052         * config/spu/spu.c (spu_split_immediate): Update.
4053         (need_to_save_reg): Update.
4054         (spu_expand_prologue): Update.
4055         (spu_expand_epilogue): Update.
4056         * config/sparc/sparc.md: Update.
4057         * config/sparc/sparc.c (eligible_for_return_delay): Update.
4058         (sparc_tls_got): Update.
4059         (legitimize_pic_address): Update.
4060         (sparc_emit_call_insn): Update.
4061         (sparc_expand_prologue): Update.
4062         (output_return): Update.
4063         (print_operand): Update.
4064         (sparc_function_ok_for_sibcall): Update.
4065         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
4066         * config/m32r/m32r.md: Update.
4067         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
4068         (m32r_compute_frame_size): Update.
4069         (m32r_expand_prologue): Update.
4070         (m32r_expand_epilogue): Update.
4071         (m32r_legitimize_pic_address): Update.
4072         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
4073         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
4074         * config/i386/i386.c (ix86_frame_pointer_required): Update.
4075         (gen_push): Update.
4076         (ix86_save_reg): Update.
4077         (ix86_compute_frame_layout): Update.
4078         (ix86_expand_prologue): Update.
4079         (ix86_expand_epilogue): Update.
4080         * config/sh/sh.c (output_stack_adjust): Update.
4081         (calc_live_regs): Update.
4082         (sh5_schedule_saves): Update.
4083         (sh_expand_prologue): Update.
4084         (sh_expand_epilogue): Update.
4085         (sh_setup_incoming_varargs): Update.
4086         (sh_allocate_initial_value): Update.
4087         (sh_get_pr_initial_val): Update.
4088         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
4089         * config/sh/sh.md (label:): Update.
4090         * config/avr/avr.c (out_movhi_mr_r): Update.
4091         * config/crx/crx.h (enum): Update.
4092         * config/xtensa/xtensa.h (along): Update.
4093         * config/stormy16/stormy16.c Update.
4094         (xstormy16_compute_stack_layout): Update.
4095         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
4096         (fr30_expand_prologue): Update.
4097         * config/cris/cris.c (cris_conditional_register_usage): Update.
4098         (cris_reg_saved_in_regsave_area): Update.
4099         (cris_initial_frame_pointer_offset): Update.
4100         (cris_simple_epilogue): Update.
4101         (cris_expand_prologue): Update.
4102         (cris_expand_epilogue): Update.
4103         (cris_expand_pic_call_address): Update.
4104         (cris_asm_output_symbol_ref): Update.
4105         (cris_asm_output_label_ref): Update.
4106         * config/cris/cris.md Update.
4107         * config/iq2000/iq2000.c (compute_frame_size): Update.
4108         (iq2000_expand_epilogue): Update.
4109         * config/mt/mt.h (save_direction): Update.
4110         * config/mn10300/mn10300.c (mn10300_function_value): Update.
4111         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
4112         (ia64_secondary_reload_class): Update.
4113         * config/m68k/m68k.c (m68k_save_reg): Update.
4114         (m68k_expand_prologue): Update.
4115         (m68k_expand_epilogue): Update.
4116         (legitimize_pic_address): Update.
4117         * config/rs6000/rs6000.c (rs6000_got_register): Update.
4118         (first_reg_to_save): Update.
4119         (first_altivec_reg_to_save): Update.
4120         (compute_vrsave_mask): Update.
4121         (compute_save_world_info): Update.
4122         (rs6000_stack_info): Update.
4123         (spe_func_has_64bit_regs_p): Update.
4124         (rs6000_ra_ever_killed): Update.
4125         (rs6000_emit_eh_reg_restore): Update.
4126         (rs6000_emit_allocate_stack): Update.
4127         (rs6000_emit_prologue): Update.
4128         (rs6000_emit_epilogue): Update.
4129         (rs6000_output_function_epilogue): Update.
4130         (output_profile_hook): Update.
4131         (rs6000_elf_declare_function_name): Update.
4132         * config/rs6000/rs6000.h (rs6000_args): Update.
4133         * config/rs6000/rs6000.md: Update.
4134         * config/mcore/mcore.c (mcore_expand_prolog): Update.
4135         * config/arc/arc.c (arc_output_function_epilogue): Update.
4136         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
4137         * config/darwin.c (machopic_function_base_name): Update.
4138         * config/score/score3.c (score3_compute_frame_size): Update.
4139         (rpush): Update.
4140         (rpop): Update.
4141         (score3_epilogue): Update.
4142         * config/score/score7.c (score7_compute_frame_size): Update.
4143         (score7_prologue): Update.
4144         (score7_epilogue): Update.
4145         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
4146         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
4147         * config/arm/arm.c (use_return_insn): Update.
4148         (require_pic_register): Update.
4149         (arm_load_pic_register): Update.
4150         (arm_compute_save_reg0_reg12_mask): Update.
4151         (arm_compute_save_reg_mask): Update.
4152         (thumb1_compute_save_reg_mask): Update.
4153         (output_return_instruction): Update.
4154         (arm_output_function_prologue): Update.
4155         (arm_output_epilogue): Update.
4156         (arm_get_frame_offsets): Update.
4157         (arm_expand_prologue): Update.
4158         (thumb_pushpop): Update.
4159         (thumb_exit): Update.
4160         (thumb1_expand_prologue): Update.
4161         (thumb1_expand_epilogue): Update.
4162         (arm_unwind_emit): Update.
4163         (arm_output_fn_unwind): Update.
4164         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
4165         * config/arm/arm.md: Update.
4166         * config/pa/pa.md: Update.
4167         * config/pa/pa.c (legitimize_pic_address): Update.
4168         (compute_frame_size): Update.
4169         (hppa_expand_prologue): Update.
4170         (hppa_expand_epilogue): Update.
4171         (borx_reg_operand): Update.
4172         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
4173         (HARD_REGNO_RENAME_OK): Update.
4174         * config/mips/mips.c (mips_global_pointer): Update.
4175         (mips_save_reg_p): Update.
4176         (mips_compute_frame_info): Update.
4177         (mips_frame_pointer_required): Update.
4178         (mips_expand_prologue): Update.
4179         (mips_expand_epilogue): Update.
4180         (mips_can_use_return_insn): Update.
4181         (mips_reorg_process_insns): Update.
4182         * config/v850/v850.c (compute_register_save_size): Update.
4183         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
4184         * config/mmix/mmix.c (along): Update.
4185         (mmix_expand_epilogue): Update.
4186         * config/bfin/bfin.c (legitimize_pic_address): Update.
4187         (must_save_p): Update.
4188         (stack_frame_needed_p): Update.
4189         (add_to_reg): Update.
4190         (bfin_expand_prologue): Update.
4191         * stmt.c (expand_asm_operands): Update.
4192         * reload1.c (reload): Update.
4193         (init_elim_table): Update.
4194
4195 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
4196         
4197         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
4198         
4199 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
4200
4201         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
4202         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
4203         (mov<mode>): Removed.
4204         (*movv4sf_internal): Likewise.
4205         (*movv2df_internal): Likewise.
4206
4207 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
4208
4209         * config.gcc (crx-*-elf): Remove deprecation.
4210
4211 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
4212
4213         * config/i386/cygming-crtend.c (register_frame_ctor): Register
4214         __gcc_deregister_frame with atexit.
4215         (deregister_frame_dtor): Remove.
4216
4217 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
4218             Nathan Sidwell  <nathan@codesourcery.com>
4219
4220         * config/rs6000/rs6000.opt (mspe): Remove Var property.
4221         (misel): Likewise.
4222         * config/rs6000/rs6000.h (rs6000_spe): Declare.
4223         (rs6000_isel): Likewise.
4224         * config/rs6000/rs6000.c (rs6000_spe): New variable.
4225         (rs6000_isel): New variable.
4226         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
4227
4228 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
4229
4230         PR c++/35758
4231         * c-common.c (handle_vector_size_attribute): Call
4232         lang_hooks.types.reconstruct_complex_type instead of
4233         reconstruct_complex_type.
4234         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
4235         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
4236         * langhooks.h (struct lang_hooks_for_types): Add
4237         reconstruct_complex_type hook.
4238         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
4239         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
4240
4241 2008-04-24  Richard Guenther  <rguenther@suse.de>
4242
4243         * c-common.h (check_builtin_function_arguments): Declare.
4244         * c-common.c (validate_nargs): New function.
4245         (check_builtin_function_arguments): Likewise.
4246         * c-typeck.c (build_function_call): Call
4247         check_builtin_function_arguments.
4248         * builtins.c (fold_builtin_classify): Remove error reporting code.
4249         (fold_builtin_unordered_cmp): Likewise.
4250         (fold_builtin_1): Likewise.
4251         (fold_builtin_n): Likewise.
4252
4253 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
4254
4255         PR tree-optimization/36008
4256         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
4257         the original op1, rather than delta by step.
4258
4259 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
4260             Sebastian Pop  <sebastian.pop@amd.com>
4261
4262         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
4263         eliminate_local_variables_stmt, eliminate_local_variables,
4264         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
4265         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
4266         of code delimited by two edges in the CFG.
4267         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
4268         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
4269         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
4270         the case of parallelisation of reductions.
4271         (expr_invariant_in_region_p): New.
4272
4273         * tree-flow.h (gather_blocks_in_sese_region): Declared.
4274         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
4275
4276 2008-04-24  Ira Rosen  <irar@il.ibm.com>
4277             Richard Guenther  <rguenther@suse.de>
4278
4279         PR tree-optimization/36034
4280         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
4281         incapable of dealing with loads with gaps.
4282
4283 2008-04-24  Rafael Espindola  <espindola@google.com>
4284
4285         * tree-flow.h (vrp_evaluate_conditional): Change signature.
4286         * tree-ssa-propagate.c (fold_predicate_in): Update call to
4287         vrp_evaluate_conditional.
4288         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
4289         (vrp_evaluate_conditional): Split the cond argument.
4290         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
4291         (simplify_stmt_for_jump_threading): Update call to
4292         vrp_evaluate_conditional.
4293
4294 2008-04-24  Ira Rosen  <irar@il.ibm.com>
4295
4296         PR tree-optimization/35982
4297         * tree-vect-analyze.c (vect_check_interleaving): Check that the
4298         interleaved data-refs are of the same type.
4299
4300 2008-04-24  Danny Smith  <dannysmith@users.net>
4301
4302         * c-format.c (check_format_info_main): Use strncmp rather than a
4303         magic prefix to handle multichar length specs.
4304         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
4305         Don't prefix "I64" and "I32" with '\0'.
4306
4307 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
4308
4309         PR target/36015
4310         * config/i386/i386.c (init_cumulative_args): Don't pass anything
4311         in registers for -m32 only if stdarg_p (fntype).
4312
4313 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
4314
4315         PR rtl-optimization/36006
4316         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
4317         temp to op0 in order to avoid invalid rtx sharing.
4318
4319 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
4320
4321         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
4322         check TREE_INVARIANT.
4323         * tree-gimple.c (is_gimple_address): New.
4324         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
4325         * tree-gimple.h (is_gimple_address): New.
4326         * tree.h (decl_address_invariant_p): New.
4327         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
4328         (build_string): Likewise.
4329         (decl_address_invariant_p): New, from is_gimple_invariant_address.
4330         (tree_invariant_p_1): Likewise.
4331         (save_expr): Use it.
4332         (tree_invariant_p): New.
4333         (skip_simple_arithmetic): Use it.
4334         (stabilize_reference_1): Use it.
4335         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
4336         simplify.
4337         (build1_stat): Drop code to compute TREE_INVARIANT.
4338         (build2_stat): Drop code to compute TREE_INVARIANT.
4339         (build3_stat): Drop code to compute TREE_INVARIANT.
4340         (build4_stat): Drop code to compute TREE_INVARIANT.
4341         (build5_stat): Drop code to compute TREE_INVARIANT.
4342         (build7_stat): Drop code to compute TREE_INVARIANT.
4343         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
4344         * tree.h (struct tree_base): Remove invariant_flag.
4345         (TREE_INVARIANT): Remove.
4346         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
4347         (fold_builtin_expect): Check TREE_CONSTANT.
4348         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
4349         * c-tree.h (c_expr_to_decl): Drop third parameter.
4350         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
4351         (build_c_cast): Don't set TREE_INVARIANT.
4352         (pop_init_level): Don't set TREE_INVARIANT.
4353         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
4354         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
4355         TREE_CONSTANT.
4356         (gimplify_init_constructor): Don't set TREE_INVARIANT.
4357         (gimplify_addr_expr): Adjust comment.
4358         * tree-mudflap.c (mf_build_string):
4359         * print-tree.c (print_node): Don't print TREE_INVARIANT.
4360         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
4361         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
4362         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
4363         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
4364         * langhooks.h (struct lang_hooks): Drop third parameter from
4365         expr_to_decl.
4366
4367 2008-04-23  Richard Guenther  <rguenther@suse.de>
4368
4369         PR tree-optimization/27799
4370         PR tree-optimization/32921
4371         PR tree-optimization/32624
4372         * tree-ssa-structalias.c (merge_smts_into): Only merge the
4373         SMTs aliases and the tag itself into the solution.
4374         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
4375         merge the points-to solution back into the SMT aliases.
4376         (may_alias_p): Use alias_set_subset_of instead of
4377         aliases_conflict_p.  A pointer which points to
4378         memory with alias set zero may access any variable.
4379
4380 2008-04-23  Richard Guenther  <rguenther@suse.de>
4381
4382         * alias.c (alias_set_subset_of): Correctly handle asking
4383         if zero is a subset of an alias set with zero child.
4384         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
4385         (compute_flow_insensitive_aliasing): Correctly walk all
4386         pointers.  Do not unnecessarily union sets.
4387
4388 2008-04-23  Richard Guenther  <rguenther@suse.de>
4389
4390         PR middle-end/36021
4391         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
4392
4393 2008-04-22  Tomas Bily  <tbily@suse.cz>
4394
4395         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
4396         unreachable case.
4397         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
4398         NON_LVALUE_EXPR.
4399         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
4400         * tree-ssa-structalias.c (get_constraint_for): Likewise.
4401         * tree-inline.c (estimate_num_insns_1): Likewise.
4402         * varasm.c (const_hash_1, compare_constant, copy_constant)
4403         (compute_reloc_for_constant, output_addressed_constants): Likewise.
4404         * emit-rtl.c (component_ref_for_mem_expr)
4405         (set_mem_attributes_minus_bitpos): Likewise.
4406         * expr.c (highest_pow2_factor, expand_expr_real_1, )
4407         (is_aligning_offset): Likewise.
4408         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
4409         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
4410         * dojump.c (do_jump): Likewise.
4411         * builtins.c (get_pointer_alignment, get_memory_rtx)
4412         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
4413         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
4414
4415 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
4416
4417         PR rtl-optimization/36017
4418         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
4419         expanding the library call.
4420
4421 2008-04-22  Ian Lance Taylor  <iant@google.com>
4422
4423         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
4424         than size_in_bytes.
4425
4426 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
4427
4428         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
4429         of LR/CTR moves for Power6.
4430
4431 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
4432
4433         PR middle-end/36003
4434         * passes.c (init_optimization_passes): Remove
4435         pass_fast_rtl_byte_dce.
4436         
4437 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
4438
4439         PR target/29096
4440         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
4441         builtin functions to generate faster code.
4442         (_mm_cvtpu16_ps): Ditto.
4443         (_mm_cvtpi32x2_ps): Ditto.
4444
4445 2008-04-22  Nick Clifton  <nickc@redhat.com>
4446
4447         * common.opt (ftree-loop-distribution): Add Optimization
4448         attribute.
4449
4450         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
4451         (frv_expand_builtin_va_start): Likewise.
4452
4453         * config/arm/arm.c (thumb_find_work_register): Fix location of
4454         argument register count.
4455
4456 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
4457
4458         Support scheduling for ColdFire V1 and V3 microarchitecture.
4459         Improve scheduling of multiplication instructions.
4460
4461         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
4462         (mac): New instruction attribute.
4463         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
4464         (m68k_sched_mac): New variable.
4465         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
4466         Handle cfv1 and cfv3.
4467         (max_insn_size): New static variable.
4468         (struct _sched_ib): New type.
4469         (sched_ib): New static variable.
4470         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
4471         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
4472         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
4473         Update.
4474         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
4475         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
4476         new variables.  Update.
4477         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
4478         Add modeling of cfv3 instruction buffer.  Update.
4479         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
4480         * config/m68k/m68k.h (TUNE_CFV3): New macro.
4481         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
4482         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
4483         a particular reservation applies to.
4484         (type2): Reorganize attribute values.  Rename alu to alu_reg,
4485         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
4486         to mul_l and mul_w.
4487         (cf_ib_*): Simplify description of instruction buffer.
4488         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
4489         (cf_mem): Split into cf_mem1 and cf_mem2.
4490         (cf_v2_move_??): Rename to cfv12_alu_??.
4491         (cf_v2_move_l_??): Rename to cfv12_omove_??.
4492         (cf_v2_mul_??): Remove reservations.
4493         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
4494         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
4495         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
4496         appropriate place.
4497         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
4498         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
4499         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
4500         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
4501         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
4502         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
4503         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
4504         expansions of the above reservations for instructions of sizes
4505         1, 2 and 3 words.
4506
4507 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
4508
4509         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
4510
4511 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
4512
4513         * coverage.c: Include tree-pass.h.
4514         (coverage_counter_alloc): Print da_file_name to the dump file.
4515
4516 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
4517
4518         * sbitmap.c (sbitmap_range_empty_p): New function.
4519         * sbitmap.h (sbitmap_range_empty_p): New function.
4520         * bitmap.h: Now includes obstack.h.
4521
4522 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
4523             Kenneth Zadeck  <zadeck@naturalbridge.com>
4524
4525         * dbgcnt.def (ra_byte_scan): Added.
4526         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
4527         when the last hit happens for a counter.  
4528         * timevar.def (TV_DF_BYTE_LR): New variable.
4529         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
4530         * passes.c (pass_fast_rtl_byte_dce): New pass.
4531         * fwprop.c (update_df): Added mode to call df_ref_create.
4532         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
4533         DF_REF_EXTRACT_OFFSET.
4534         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
4535         DF_BYTE_LR_OUT, df_byte_lr): New macro.
4536         (df_mm): New enum.
4537         (df_ref_extract): Added mode field.
4538         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
4539         DF_REF_EXTRACT_OFFSET.
4540         (DF_REF_EXTRACT_MODE): New macro.
4541         (df_byte_lr_bb_info): New structure.
4542         (df_print_byte_regset, df_compute_accessed_bytes, 
4543         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
4544         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
4545         df_byte_lr_simulate_uses,
4546         df_byte_lr_simulate_artificial_refs_at_top,
4547         df_byte_lr_simulate_artificial_refs_at_end,
4548         df_compute_accessed_bytes): New function.
4549         (df_ref_create): Add parameter.
4550         (df_byte_lr_get_bb_info): New inline function.
4551         * df-scan.c (df_ref_record, df_uses_record,
4552         df_ref_create_structure): Added mode parameter.
4553         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
4554         df_defs_record, df_uses_record, df_get_conditional_uses,
4555         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
4556         df_entry_block_defs_collect, df_exit_block_uses_collect):
4557         Added mode parameter to calls to df_ref_record, df_uses_record,
4558         df_ref_create_structure.
4559         (df_ref_equal_p, df_ref_compare): Added test for modes.
4560         (df_ref_create_structure): Added code to set mode.  Renamed
4561         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
4562         DF_REF_EXTRACT_OFFSET.
4563         * df-core.c (df_print_byte_regset): New function.
4564         * df-byte-scan.c: New file.
4565         * df-problems.c (df_rd_transfer_function): Removed unnecessary
4566         calls to BITMAP_FREE.  
4567         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
4568         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
4569         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
4570         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
4571         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
4572         df_byte_lr_local_compute, df_byte_lr_init,
4573         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
4574         df_byte_lr_transfer_function, df_byte_lr_free, 
4575         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
4576         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
4577         df_byte_lr_simulate_uses,
4578         df_byte_lr_simulate_artificial_refs_at_top,
4579         df_byte_lr_simulate_artificial_refs_at_end): New function.
4580         * dce.c (byte_dce_process_block): New function.
4581         (dce_process_block): au is now passed in rather than computed
4582         locally.  Changed loops that look at artificial defs to not look
4583         for conditional or partial ones, because there never are any.  
4584         (fast_dce): Now is able to drive byte_dce_process_block or 
4585         dce_process_block depending on the kind of dce being done.
4586         (rest_of_handle_fast_dce): Add parameter to fast_dce.
4587         (rest_of_handle_fast_byte_dce): New function.
4588         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
4589         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
4590
4591 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
4592
4593         PR fortran/35019
4594         * gcc.h: Added fortran options that take arguments to
4595         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
4596         macros.
4597
4598 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
4599
4600         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
4601         scalarization if on the LHS and not a full access.
4602
4603 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4604
4605         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
4606
4607 2008-04-18  Rafael Espindola  <espindola@google.com>
4608
4609         * tree-vrp.c (find_case_label_index): Fix the binary search.
4610         (find_case_label_range): New.
4611         (vrp_visit_switch_stmt): Use find_case_label_range.
4612         (simplify_switch_using_ranges): Use find_case_label_range.
4613
4614 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
4615
4616         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
4617         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
4618
4619 2008-04-18  Tom Tromey  <tromey@redhat.com>
4620
4621         PR libcpp/15500:
4622         * doc/cpp.texi (Implementation-defined behavior): Mention
4623         -finput-charset.
4624
4625 2008-04-18  Ian Lance Taylor  <iant@google.com>
4626
4627         * fold-const.c (pointer_may_wrap_p): New static function.
4628         (fold_comparison): Add another test for pointer overflow.  Use
4629         pointer_may_wrap_p to disable some false positives.
4630
4631 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
4632           
4633         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
4634         (fname_as_string): Match updated cpp_interpret_string prototype.
4635         (fix_string_type): Support char16_t* and char32_t*.
4636         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
4637         derivative) nodes.  Register as builtin if C++0x.
4638         (c_parse_error): Support CPP_CHAR{16,32}.
4639         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
4640         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
4641         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
4642         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
4643         CTI_CHAR32_ARRAY_TYPE>: New elements.
4644         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
4645         char32_type_node, signed_char32_type_node, char16_array_type_node,
4646         char32_array_type_node): New defines.
4647         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
4648         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
4649         (lex_string): Support CPP_STRING{16,32}, match updated
4650         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
4651         (lex_charconst): Support CPP_CHAR{16,32}.
4652         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
4653         and CPP_STRING{16,32}.
4654
4655 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
4656
4657         PR bootstrap/35457
4658         * aclocal.m4: Regenerate.
4659         * configure: Regenerate.
4660
4661 2008-04-18  Jan Hubicka  <jh@suse.cz>
4662
4663         * except.c (dw2_size_of_call_site_table,
4664         sjlj_size_of_call_site_table): Use vector API for call_site_record.
4665
4666         * cgraphbuild.c (build_cgraph_edges): Update.
4667         * tree-pass.h: Update comment.
4668         * final.c (leaf_function_p): Update.
4669         (leaf_renumber_regs): Update.
4670         (rest_of_clean_state): Update.
4671         * omp-low.c (expand_omp_parallel): Update.
4672         * ipa-reference.c (analyze_function): Update.
4673         * reorg.c (find_end_label): Update.
4674         (optimize_skip): Update.
4675         (fill_simple_delay_slots): Update.
4676         (fill_simple_delay_slots): Update.
4677         (make_return_insns): Update.
4678         (dbr_schedule): Update.
4679         * gimple-low.c (record_vars_into): Update.
4680         * cfgbuild.c (make_edges): Update.
4681         * function.c (assign_stack_local): Update.
4682         (assign_parm_adjust_stack_rtl): Update.
4683         (locate_and_pad_parm): Update.
4684         (allocate_struct_function): Do not initialize stack_alignment_needed
4685         and preferred_stack_boundary here.
4686         (stack_protect_prologue): Update.
4687         (stack_protect_epilogue): Update.
4688         (expand_function_start): Initialize stack_alignment_needed,
4689         preferred_stack_boundary and max_jumptable_ents.
4690         (expand_function_end): Update.
4691         (free_after_compilation): Do not NULLify epilogue_delay_list.
4692         * function.h (struct rtl_data): Add stack_protect_guard,
4693         stack_alignment_needed,
4694         preferred_stack_boundary, epilogue_delay_list.
4695         (struct function): Remove value_histograms, stack_alignment_needed,
4696         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
4697         last_label_uid,
4698         unexpanded_var_list, stack_protect_guard.
4699         (current_function_epilogue_delay_list): Remove.
4700         * ipa-type-escape.c (analyze_function): Update.
4701         * gimplify.c (pop_gimplify_context): Update comment.
4702         * calls.c (expand_call): Update.
4703         (emit_library_call_value_1): Update.
4704         * except.c (set_nothrow_function_flags): Update.
4705         * cfgexpand.c (get_decl_align_unit): Update.
4706         (create_stack_guard): Update.
4707         (estimated_stack_frame_size): Update.
4708         (expand_used_vars): Update.
4709         (tree_expand_cfg): Free histogram earliers, init expansion variables.
4710         * explow.c (allocate_dynamic_stack_space): Update.
4711         * tree-ssa-live.c (remove_unused_locals): Update.
4712         * varasm.c (mark_constant_pool): Update.
4713         * tree-inline.c (remap_decls): Update.
4714         (initialize_cfun): Update.
4715         (declare_return_variable): Update.
4716         (inline_forbidden_p): Update.
4717         (expand_call_inline): Update.
4718         (declare_inline_vars): Update.
4719         (tree_function_versioning): Update.
4720         * tree-flow.h (value_histograms): New.
4721         (VALUE_HISTOGRAMS): New macro.
4722         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
4723         last_label_uid.
4724         * tree-cfg.c (set_bb_for_stmt): Update.
4725         (replace_by_duplicate_decl): Update.
4726         (move_block_to_fn): Update.
4727         (new_label_mapper): Update.
4728         (dump_function_to_file): Update.
4729         * ipa-struct-reorg.c (build_data_structure): Update.
4730         * cfgrtl.c (print_rtl_with_bb): Update.
4731         * reload1.c (reload): Update.
4732         (reload): Update.
4733         * config/i386/i386.c (setup_incoming_varargs_64,
4734         ix86_compute_frame_layout): Update.
4735         * config/arc/arc.c (arc_output_function_epilogue): Update.
4736
4737 2008-04-18  Marius Strobl <marius@FreeBSD.org>
4738
4739         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
4740         for FreeBSD as well.
4741         * gthr-posix95.h: Likewise.
4742
4743 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
4744
4745         PR rtl-optimization/35838
4746         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
4747         out the byte offset of the first subreg.
4748
4749 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
4750
4751         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
4752         to split_ti instead of three separate calls with single member arrays.
4753         (subti3 splitter): Ditto.
4754         (adddi3 splitter): Ditto with split_di.
4755         (subdi3 splitter): Ditto.
4756         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
4757         two separate calls with single member arrays.  Swap match_dup
4758         operands 1 and 2 to better fit into the array.
4759         (negdi2 splitter): Ditto with split_di.
4760         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
4761         two separate calls with single member arrays.  Swap match_dup operands
4762         6 and 7 to better fit into the array.
4763
4764 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
4765
4766         * config/i386/i386.c (sse_builtin_type): New.
4767         (bdesc_sse_args): Likewise.
4768         (bdesc_sse_3arg): Removed.
4769         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
4770         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
4771         IX86_BUILTIN_ROUNDPS.
4772         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
4773         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
4774         IX86_BUILTIN_ROUNDPS.
4775         (ix86_expand_sse_4_operands_builtin): Removed.
4776         (ix86_expand_sse_operands_builtin): New.
4777         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
4778         and CODE_FOR_sse4_1_roundps.
4779         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
4780         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
4781
4782 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
4783
4784         PR target/35907
4785         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
4786         regs before frame pop when needed.  If use_backchain_to_restore_sp
4787         then load backchain into a temp reg to restore vr and vrsave.  Add
4788         code to restore vr after frame pop if possible.
4789
4790 2008-04-17  Richard Guenther  <rguenther@suse.de>
4791
4792         * tree-vn.c (expressions_equal_p): Do not check type
4793         equality or compatibility before calling operand_equal_p.
4794         * fold-const.c (operand_equal_p): Check equivalence of
4795         integer constants before bailing out due to signedness or
4796         precision differences.
4797         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
4798         spurious differences in type qualification.  Ignore types
4799         for COMPONENT_REFs at all.
4800
4801 2008-04-17  Christian Bruel  <christian.bruel@st.com>
4802
4803         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
4804         msw_skip comparison.
4805         
4806 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
4807
4808         PR c/35739
4809         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
4810         reg type.
4811
4812         PR tree-optimization/35899
4813         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
4814         rather than TREE_OPERAND.
4815
4816 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
4817
4818         PR target/35944
4819         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
4820         temporary registers.  Change operand predicate to general_operand.
4821         (remainderxf3): Ditto.
4822
4823 2008-04-16  Richard Guenther  <rguenther@suse.de>
4824
4825         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
4826         * tree-affine.c (aff_combination_expand): Look through some
4827         conversions.
4828
4829 2008-04-15  Doug Kwan  <dougkwan@google.com>
4830
4831         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
4832         for hex printing.
4833         * tree-pretty-print.c (dump_generic_node): Ditto.
4834         * final.c (output_addr_const): Ditto.
4835         * dwarf2out.c (output_cfi): Ditto.
4836         * c-pretty-print.c (pp_c_integer_constant): Ditto.
4837         * print-rtl.c (print_rtx): Ditto.
4838         * print-tree.c (print_node_brief, print_node): Ditto.
4839         * c-common.c (match_case_to_enum_1): Ditto.
4840         * sched-vis.c (print_value): Ditto.
4841         * config/i386/i386.c (print_operand): Cast to long unsigned int
4842         for hex printing.
4843
4844 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
4845         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
4846         MS Windows VirtualProtect function.
4847
4848 2008-04-15  Jan Hubicka  <jh@suse.cz>
4849
4850         * gengtype.c (write_root): Param_is argument is OK.
4851         * expr.c (expand_expr_real_1): Update call of get_exception_*.
4852         * function.h: Include varray.h
4853         (rtl_eh): New stucture based on except.c one.
4854         (call_site_record): New forward declaration and vector type.
4855         * calls.c (emit_call_1): Do not call
4856         note_current_region_may_contain_throw.
4857         * except.c (eh_status): Remove cur_region, try_region since they are
4858         unused.
4859         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
4860         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
4861         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
4862         Remove call_site_data_used, call_site_data_size.
4863         Turn call_site_record into vector in function.h.
4864         (note_current_region_may_contain_throw): Remove.
4865         (get_exception_pointer, get_exception_filter): Do not take struct
4866         function argument; update.
4867         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
4868         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
4869         build_post_landing_pads, dw2_build_landing_pads,
4870         sjlj_assign_call_site_values, sjlj_mark_call_sites,
4871         sjlj_emit_function_enter, sjlj_emit_function_enter, 
4872         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
4873         sjlj_build_landing_pads, finish_eh_generation,
4874         remove_exception_handler_label, remove_eh_handler,
4875         maybe_remove_eh_handler, add_reachable_handler,
4876         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
4877         add_action_record, collect_one_action_chain, add_call_site,
4878         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
4879         sjlj_output_call_site_table, output_function_exception_table,
4880         * except.h (note_current_region_may_contain_throw): Remove
4881         (get_exception_pointer, get_exception_filter): Do not take struct
4882         function argument.
4883         * Makefile.in (GTFILES): Put varargs before struct function.
4884
4885 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
4886
4887         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
4888         punt for STRING_CST.
4889         (get_constraint_for): Deal with STRING_CST here instead.
4890
4891 2008-04-15  Richard Guenther  <rguenther@suse.de>
4892
4893         * tree-ssa-propagate.c (substitute_and_fold): Substitute
4894         statements in a basic-block with a backward walk.  Do not
4895         substitute into dead statements but instead remove those.
4896
4897 2008-04-15  Richard Guenther  <rguenther@suse.de>
4898
4899         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
4900         to zero, thus disable creation of SFTs.
4901
4902 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
4903
4904         * tree-predcom.c (suitable_reference_p): Return false if the
4905         reference can throw.
4906
4907 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
4908
4909         PR c/35751
4910         * c-decl.c (finish_decl): If extern or static var has variable
4911         size, set TREE_TYPE (decl) to error_mark_node.
4912
4913 2008-04-15  Rafael Espindola  <espindola@google.com>
4914
4915         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
4916         variable arg1.
4917
4918 2008-04-15  Richard Guenther  <rguenther@suse.de>
4919
4920         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
4921         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
4922         (visit_reference_op_load): Do walk vuse-vdef chains on
4923         vn_reference_lookup.
4924         (visit_reference_op_store): But do not here.
4925         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
4926         vn_reference_lookup.
4927         (vn_lookup_with_vuses): But do so here.
4928
4929 2008-04-14  Ian Lance Taylor  <iant@google.com>
4930
4931         * fold-const.c (fold_overflow_warning): Remove assertion.
4932
4933 2008-04-15  Ben Elliston  <bje@au.ibm.com>
4934
4935         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
4936         temp1 local variables.
4937
4938 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
4939
4940         PR target/35661
4941         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
4942         ".text.unlikely" section as executable.
4943
4944 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
4945
4946         * config/ia64/ia64.c (rtx_needs_barrier): Handle
4947         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
4948         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
4949         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
4950         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
4951         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
4952         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
4953
4954 2008-04-14  Ian Lance Taylor  <iant@google.com>
4955
4956         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
4957         * fold-const.c (fold_comparison): If appropriate, test
4958         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
4959         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
4960         reassociating a pointer type.
4961         * doc/invoke.texi (Optimize Options): Document that
4962         -fstrict-overflow applies to pointer wraparound.
4963
4964 2008-04-13  Jan Hubicka  <jh@suse.cz>
4965
4966         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
4967
4968 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
4969
4970         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
4971         we are going to "save the world".
4972
4973 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
4974
4975         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
4976         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
4977         operand 0 constraint, not "=".
4978
4979 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
4980
4981         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
4982
4983 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
4984
4985         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
4986         of size of positions_needed * CHAR_BIT.
4987
4988 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
4989
4990         PR middle-end/35897
4991         * dse.c (store_info): Change positions_needed to unsigned
4992         HOST_WIDE_INT.
4993         (lowpart_bitmask): New.
4994         (record_store): Cast to unsigned HOST_WIDE_INT for
4995         positions_needed.  Assert width <= size of positions_needed *
4996         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
4997         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
4998         lowpart_bitmask to set mask.
4999
5000 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
5001
5002         * config/bfin/constraints.md: New file.
5003         * config/bfin/bfin.md: Include it.
5004         (adddi3): Use satisfies_constraint functions instead of the old macros.
5005         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
5006         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
5007         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
5008         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
5009         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
5010         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
5011         EXTRA_CONSTRAINT): Delete.
5012         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
5013         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
5014         of the old macros.
5015         * config/bfin/bfin.c: Include "tm-constrs.h".
5016         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
5017         Use satisfies_constraint functions instead of the old macros.
5018         * doc/md.texi (Blackfin Constraints): Update file name reference.
5019
5020 2008-04-11  Richard Guenther  <rguenther@suse.de>
5021
5022         PR tree-optimization/35869
5023         * tree-vrp.c (execute_vrp): Move switch statement update after
5024         jump threading.  Schedule another cfg cleanup run.
5025
5026 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
5027
5028         PR c/35744
5029         * attribs.c (decl_attributes): Return early on errorneous node.
5030
5031 2008-04-10  Oleg Ryjkov  <olegr@google.com>
5032
5033         * tree.h (struct tree_base): Added a new flag default_def_flag.
5034         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
5035
5036 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
5037
5038         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
5039
5040 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5041
5042         PR target/35768
5043         * pa.md: Define mode iterator P.  Define mode attribute dwc.
5044         (dcacheflush): Update pattern to use iterator P and attribute dwc.
5045         (icacheflush): Likewise.
5046         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
5047         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
5048
5049 2008-04-11  Ben Elliston  <bje@au.ibm.com>
5050
5051         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
5052
5053 2008-04-10  Rafael Espindola  <espindola@google.com>
5054
5055         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
5056         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
5057         (extract_range_from_expr): The same.
5058
5059 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
5060
5061         * config/mips/mips.md (GPR2): New mode iterator.
5062         (seq): Add comment.
5063         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
5064         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
5065         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
5066         Rewrite these to take two modes, the mode of comparison and the
5067         mode of the destination.
5068         * config/mips/mips.c (mips_expand_scc): Instead of having
5069         paradoxical subreg as destination, expand "narrowing" scc if mode
5070         of comparison is SI and target is requested in DI mode.
5071         (mips_emit_int_order_test): Update comment.  Make mode of
5072         comparison match CMP0 rather than TARGET.  When creating inverse
5073         target use mode of TARGET.
5074
5075 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
5076
5077         * gcov-dump.c (tag_summary): Only print summaries for the first
5078         GCOV_COUNTERS_SUMMABLE counters.
5079
5080 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
5081
5082         * config/i386/i386.md (absneg): New code iterator.
5083         (absnegprefix): New code attribute.
5084         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
5085         patterns using absneg code iterator.
5086         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
5087         using absneg code iterator.
5088         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
5089         *neg<mode>2 patterns using absneg code iterator.
5090         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
5091         *negextendsfdf2 patterns using absneg code iterator.
5092         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
5093         *negextendsfxf2 patterns using absneg code iterator.
5094         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
5095         *negextendsfdf2 patterns using absneg code iterator.
5096         * config/i386/sse.md (<code><mode>2): Macroize expander from
5097         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
5098
5099 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
5100
5101         * config/s390/s390.h: Remove the remains of the recent search
5102         & replace action of current_function_outgoing_args_size.
5103
5104 2008-04-10  Ira Rosen  <irar@il.ibm.com>
5105
5106         PR tree-optimization/35821
5107         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
5108         NEW_STMT_LIST is not NULL.
5109
5110 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
5111
5112         PR libstdc++/35597
5113         * toplev.c (process_options): Remove -ffunction-sections debugging
5114         warning.
5115
5116 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
5117
5118         PR middle-end/PR28690
5119         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
5120         than gen_rtx_fmt_ee to perform more canonicalizations.
5121
5122 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5123
5124         PR driver/35665
5125         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
5126
5127 2008-04-09  Richard Guenther  <rguenther@suse.de>
5128
5129         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
5130         (dump_function_to_file): Dump function arguments with types.
5131
5132 2008-04-08  Richard Guenther  <rguenther@suse.de>
5133
5134         * fold-const.c (fold_widened_comparison): Do not allow
5135         sign-changes that change the result.
5136
5137 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
5138
5139         PR target/35839
5140         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
5141         kinds of indirect references.
5142
5143 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
5144
5145         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
5146         GNU Fortran language string.
5147
5148 2008-04-08  Rafael Espindola  <espindola@google.com>
5149
5150         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
5151         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
5152         * tree.h (tree_call_nonnegative_warnv_p): New.
5153
5154 2008-04-08  Jan Hubicka  <jh@suse.cz>
5155
5156         * function.c (free_after_compilation): Clear out regno_reg_rtx
5157         pointer.
5158
5159 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
5160
5161         Revert
5162         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
5163
5164         PR middle-end/PR28690
5165         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
5166         same precedence as REG_POINTER and MEM_POINTER operands.
5167
5168 2008-04-08  Richard Guenther  <rguenther@suse.de>
5169
5170         PR middle-end/35834
5171         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
5172         for adding index to base.
5173
5174 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
5175
5176         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
5177         (MINGW_ENABLE_EXECUTE_STACK): New.
5178         (IN_LIBGCC2): For libgcc include windows.h file for
5179         function declarations.
5180
5181 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
5182
5183         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
5184         and tem2 if tem1 is not a REG or MULT.
5185
5186 2008-04-08  Jan Hubicka  <jh@suse.cz>
5187
5188         * function.h (incomming_args): Break out of struct function.
5189         (function_subsections): Break out of struct function.
5190         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
5191         return_rtx and hard_reg_initial_vals from struct function.
5192         Kill inl_max_label_num.
5193         (current_function_pops_args, current_function_args_info,
5194         current_function_args_size, current_function_args_size,
5195         current_function_pretend_args_size,
5196         current_function_outgoing_args_size,
5197         current_function_internal_arg_pointer, current_function_return_rtx):
5198         Kill compatibility accestor macros.
5199         * builtins.c (expand_builtin_apply_args_1): Update.
5200         (expand_builtin_next_arg): Update.
5201         * df-scan.c (df_get_call_refs): Update.
5202         * dbxout.c (dbxout_function_end): Update.
5203         * dwarf2out.c (dwarf2out_switch_text_section): Update.
5204         (output_line_info): Update.
5205         (secname_for_decl): Update.
5206         (dwarf2out_var_location): Update.
5207         * function.c (free_after_compilation): Update.
5208         (assign_parm_find_stack_rtl): Update.
5209         (assign_parms): Update.
5210         (expand_dummy_function_end): Update.
5211         (expand_function_end): Update.
5212         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
5213         (expand_call): Update.
5214         (emit_library_call_value_1): Update.
5215         (store_one_arg): Update.
5216         * varasm.c (initialize_cold_section_name): Update.
5217         (unlikely_text_section): Update.
5218         (unlikely_text_section_p): Update.
5219         (assemble_start_function): Update.
5220         (assemble_end_function): Update.
5221         (default_section_type_flags): Update.
5222         (switch_to_section): Update.
5223         * integrate.c (set_decl_abstract_flags): Update.
5224         (get_hard_reg_initial_val): Update.
5225         (has_hard_reg_initial_val): Update.
5226         (allocate_initial_values): Update.
5227         * resource.c (init_resource_info): Update.
5228         * config/alpha/alpha.c (NUM_ARGS): Update.
5229         (direct_return): Update.
5230         (alpha_va_start): Update.
5231         (alpha_sa_size): Update.
5232         (alpha_initial_elimination_offset): Update.
5233         (alpha_expand_prologue): Update.
5234         (alpha_start_function): Update.
5235         (alpha_expand_epilogue): Update.
5236         (unicosmk_initial_elimination_offset):
5237         * config/alpha/alpha.md (call expander): Update.
5238         * config/s390/s390.c (s390_register_info): Update.
5239         (s390_register_info): Update.
5240         (s390_frame_info): Update.
5241         (s390_initial_elimination_offset): Update.
5242         (s390_build_builtin_va_list): Update.
5243         (s390_va_start): Update.
5244         * config/spu/spu.c (direct_return): Update.
5245         (spu_expand_prologue): Update.
5246         (spu_initial_elimination_offset): Update.
5247         (spu_build_builtin_va_list): Update.
5248         (spu_va_start): Update.
5249         * config/sparc/sparc.c (sparc_init_modes): Update.
5250         (sparc_compute_frame_size): Update.
5251         (function_value): Update.
5252         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
5253         * config/i386/i386.md (return expander): Update.
5254         * config/i386/i386.c (ix86_va_start): Update.
5255         (ix86_can_use_return_insn_p): Update.
5256         (ix86_compute_frame_layout): Update.
5257         (ix86_expand_epilogue): Update.
5258         * config/sh/sh.c (output_stack_adjust): Update.
5259         (calc_live_regs): Update.
5260         (sh_expand_prologue): Update.
5261         (sh_builtin_saveregs): Update.
5262         (sh_va_start): Update.
5263         (initial_elimination_offset): Update.
5264         (sh_allocate_initial_value): Update.
5265         (sh_function_ok_for_sibcall): Update.
5266         (sh_get_pr_initial_val): Update.
5267         * config/sh/sh.md (return expander): Update.
5268         * config/avr/avr.c (frame_pointer_required_p): UPdate.
5269         * config/crx/crx.c (crx_compute_frame): UPdate.
5270         (crx_initial_elimination_offset): UPdate.
5271         * config/xtensa/xtensa.c (compute_frame_size): Update
5272         (xtensa_builtin_saveregs): Update.
5273         (xtensa_va_start): Update.
5274         (order_regs_for_local_alloc): Update.
5275         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
5276         (xstormy16_expand_builtin_va_start): Update.
5277         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
5278         * config/m68hc11/m68hc11.md (return expanders): Update.
5279         * config/m68hc11/m68hc11.c (expand_prologue): Update.
5280         (expand_epilogue): Update.
5281         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
5282         (cris_simple_epilogue): Update.
5283         (cris_expand_prologue): Update.
5284         (cris_expand_epilogue): Update.
5285         * config/iq2000/iq2000.c (iq2000_va_start): Update.
5286         (compute_frame_size): Update.
5287         * config/mt/mt.c (mt_compute_frame_size): Update.
5288         * config/mn10300/mn10300.c (expand_prologue): Update.
5289         (expand_epilogue): Update.
5290         (initial_offset): Update.
5291         (mn10300_builtin_saveregs):
5292         * config/mn10300/mn10300.md (return expander): Update.
5293         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
5294         (ia64_initial_elimination_offset): Update.
5295         (ia64_initial_elimination_offset): Update.
5296         (ia64_expand_prologue): Update.
5297         * config/m68k/m68k.md (return expander): Update.
5298         * config/rs6000/rs6000.c (rs6000_va_start): Update.
5299         (rs6000_stack_info): Update.
5300         * config/mcore/mcore.c (layout_mcore_frame): Update.
5301         (mcore_expand_prolog): Update.
5302         * config/arc/arc.c (arc_compute_frame_size): Update.
5303         * config/score/score3.c (score3_compute_frame_size): Update.
5304         * config/score/score7.c (score7_compute_frame_size): Update.
5305         * config/arm/arm.c (use_return_insn): Update.
5306         (thumb_find_work_register): Update.
5307         (arm_compute_save_reg_mask): Update.
5308         (arm_output_function_prologue): Update.
5309         (arm_output_epilogue): Update.
5310         (arm_size_return_regs): Update.
5311         (arm_get_frame_offsets): Update.
5312         (arm_expand_prologue): Update.
5313         (thumb_exit): Update.
5314         (thumb_unexpanded_epilogue): Update.
5315         (thumb1_output_function_prologue): Update.
5316         * config/pa/pa.md (return expander): Update.
5317         * config/pa/pa.c (compute_frame_size): Update.
5318         (hppa_builtin_saveregs): Update.
5319         * config/mips/mips.c (mips_va_start): Update.
5320         (mips16_build_function_stub): Update.
5321         (mips_compute_frame_info): Update.
5322         (mips_restore_gp): Update.
5323         (mips_output_function_prologue): Update.
5324         (mips_expand_prologue): Update.
5325         * config/v850/v850.c (compute_frame_size): Update.
5326         (expand_prologue): * config/mmix/mmix.c (along): update.
5327         (mmix_initial_elimination_offset): update.
5328         (mmix_reorg): update.
5329         (mmix_use_simple_return): update.
5330         (mmix_expand_prologue): update.
5331         (mmix_expand_epilogue): Update.
5332         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
5333         (emit_link_insn): Update.
5334
5335 2008-04-08  Anatoly Sokolov <aesok@post.ru>
5336
5337         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
5338         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
5339         instructions.
5340         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
5341         atmega103 device.
5342
5343 2008-04-07  Jan Hubicka  <jh@suse.cz>
5344
5345         * function.h (rtl): Rename to x_rtl.
5346         (crtl): New define.
5347         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
5348         frame_offset, stack_check_probe_note, arg_pointer_save_area,
5349         used_temp_slots avail_temp_slots, temp_slot_level,
5350         nonlocal_goto_handler_labels): Update accesstors.
5351         (rtl): New global variable.
5352         (struct function): Move some fileds to rtl_data.
5353         (get_arg_pointer_save_area): Update prototype.
5354         * builtins.c (expand_builtin_setjmp_receiver): Update call of
5355         get_arg_pointer_save_area.
5356         * expr.c (init_expr): Update
5357         * function.c (get_frame_size): Update
5358         (assign_stack_local): Update
5359         (expand_function_end): Update.
5360         (get_art_pointer_save_area): Update
5361         * function.h 
5362         * emit-rtl.c (rtl): Declare.
5363         (regno_reg_rtx): Declare.
5364         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
5365         Update.
5366         (gen_reg_rtx): Update.
5367         * varasm.c (n_deferred_constatns): Update accestor.
5368         (init_varasm_status): Do not allocate varasm_status.
5369         (force_const_mem, get_pool_size, output_constant_pool): Update.
5370         * stmt.c (force_label_rtx): Do not use x_ prefixes.
5371         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
5372         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
5373         * sparc/sparc.h (INIT_EXPANDERS): Update.
5374         * ia64/ia64.h (INIT_EXPANDERS): Update.
5375
5376 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
5377
5378         * reload.c (push_secondary_reload): Add missing break to for loop.
5379
5380 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
5381
5382         PR middle-end/PR28690
5383         * rtlanal.c: Update copyright years.
5384         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
5385         as REG_POINTER and MEM_POINTER operands.
5386         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
5387         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
5388         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
5389         * gcse.c: Update copyright years.
5390         (pre_delete): Call gen_reg_rtx_and_attrs.
5391         (hoist_code): Likewise.
5392         (build_store_vectors): Likewise.
5393         (delete_store): Likewise.
5394         * loop-invariant.c (move_invariant_reg): Likewise.
5395         Update copyright years.
5396
5397 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
5398
5399         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
5400         control string instead of quoted.
5401
5402 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
5403
5404         * doc/rtl.texi: Rewrite of subreg section.
5405
5406 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
5407
5408         PR/35842
5409         * config/i386/i386.c (legitimize_pic_address): Add treating
5410         of dllimport SYM_REF's.
5411         (legitimize_dllimport_symbol): Add prototype.
5412
5413 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
5414
5415         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
5416         reference in constructor with non self-referential type.
5417
5418 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
5419
5420         Removal of Return with Depressed Stack Pointer support
5421         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
5422         (ECF_SP_DEPRESSED): Likewise.
5423         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
5424         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
5425         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
5426         (expand_call): Do not test ECF_SP_DEPRESSED.
5427         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
5428         * function.c (keep_stack_depressed): Delete.
5429         (handle_epilogue_set): Likewise.
5430         (update_epilogue_consts): Likewise.
5431         (emit_equiv_load): Likewise.
5432         (thread_prologue_and_epilogue_insns): Remove support for Return with
5433         Depressed Stack Pointer.
5434         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
5435
5436 2008-04-06  Richard Guenther  <rguenther@suse.de>
5437
5438         PR tree-optimization/35400
5439         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
5440         information from SSA_NAMEs.
5441
5442 2008-04-06  Anatoly Sokolov <aesok@post.ru>
5443
5444         * config/avr/avr.h (avr_mega_p): Remove declaration.
5445         (AVR_MEGA): Remove macro.
5446         * config/avr/avr.c (avr_mega_p): Remove variable.
5447         (avr_override_options): Remove inicializion of avr_mega_p.
5448         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
5449         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
5450         (avr_jump_mode): (Ditto.).
5451         (avr_output_progmem_section_asm_op): (Ditto.).
5452         (avr_asm_init_sections): (Ditto.).
5453         (avr_asm_init_sections): (Ditto.).
5454         (avr_rtx_costs): (Ditto.).
5455         * config/avr/avr.md: (Ditto.).
5456         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
5457         '__AVR_MEGA__'.
5458
5459 2008-04-06  Richard Guenther  <rguenther@suse.de>
5460
5461         PR tree-optimization/35842
5462         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
5463         is_gimple_invariant_address.
5464
5465 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
5466
5467         * gcc.c (default_compilers): Sync Fortran extensions list with
5468         that in fortran/lang-specs.h.
5469         * doc/invoke.texi: Likewise.
5470         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
5471         * dwarf2out.c (gen_compile_unit_die): Likewise.
5472
5473 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
5474
5475         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
5476
5477 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
5478
5479         PR target/12329
5480         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
5481         attribute is used for nested functions.
5482
5483 2008-04-05  Jan Hubicka  <jh@suse.cz>
5484
5485         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
5486
5487         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
5488         letter argument.
5489         (dump_files): Update.
5490         (enable_rtl_dump_file): Do not accept letter argument.
5491         * tree-pass.h (dump_file_info): Remove letter argument.
5492         * toplev.c (decode_d_option): Update -da handling.
5493         * toplev.h (enable_rtl_dump_file): Update prototype.
5494         * passes.c (register_one_dump_file): Do not accept IPA argument; work
5495         it out based on pass type.
5496         (register_dump_files_1): Likewise.
5497         (init_optimization_passes): Update register_one_dump_file calls.
5498         (execute_one_pass): Sanity check that IPA passes are called at IPA
5499         level and RTL passes at RTL level.
5500         (execute_pass_list): IPA pass can not be after or subpass of
5501         GIMPLE/RTL pass.
5502         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
5503         disallov RTL subpasses of IPA subpasses.
5504
5505 2008-04-05  Ben Elliston  <bje@au.ibm.com>
5506
5507         * tree-cfg.c (need_fake_edge_p): Return false for calls to
5508         builtins that return exactly once and do not throw. Cache call to
5509         call_expr_flags.
5510
5511 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
5512
5513         PR rtl-optimization/34916
5514         PR middle-end/35519
5515         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
5516         between instruction pairs.
5517
5518 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
5519
5520         * doc/invoke.texi: Document -mbitops for SH.
5521         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
5522         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
5523         * config/sh/sh.c (print_operand): Add %t operand code.
5524         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
5525         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
5526         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
5527         (extendqihi2): Likewise.
5528         (movqi_i): Likewise.
5529         (insv): Use bset, bclr and bst instructions for SH2A if possible.
5530         (extv): Use bld instruction for SH2A if possible.
5531         (extzv): Likewise.
5532         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
5533         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
5534         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
5535         (bset.b, bclr.b): Define peepholes.
5536         * config/sh/sh.opt (mbitops): New option.
5537
5538 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
5539
5540         PR target/35620
5541         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
5542         and view convert expression.
5543
5544 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
5545
5546         PR target/35364
5547         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
5548
5549 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
5550
5551         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
5552
5553         * config/i386/cpuid.h (bit_AES): New.
5554         (bit_PCLMUL): Likewise.
5555
5556         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
5557         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
5558         SSE2 if AES or PCLMUL is enabled.
5559         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
5560         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
5561         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
5562         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
5563         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
5564         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
5565         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
5566         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
5567         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
5568         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
5569         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
5570         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
5571         __builtin_ia32_aeskeygenassist128 and
5572         __builtin_ia32_pclmulqdq128.
5573         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
5574         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
5575         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
5576
5577         * config/i386/i386.h (TARGET_AES): New.
5578         (TARGET_PCLMUL): Likewise.
5579         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
5580
5581         * config/i386/i386.md (UNSPEC_AESENC): New.
5582         (UNSPEC_AESENCLAST): Likewise.
5583         (UNSPEC_AESDEC): Likewise.
5584         (UNSPEC_AESDECLAST): Likewise.
5585         (UNSPEC_AESIMC): Likewise.
5586         (UNSPEC_AESKEYGENASSIST): Likewise.
5587         (UNSPEC_PCLMUL): Likewise.
5588
5589         * config/i386/i386.opt (maes): New.
5590         (mpclmul): Likewise.
5591
5592         * config/i386/sse.md (aesenc): New pattern.
5593         (aesenclast): Likewise.
5594         (aesdec): Likewise.
5595         (aesdeclast): Likewise.
5596         (aesimc): Likewise.
5597         (aeskeygenassist): Likewise.
5598         (pclmulqdq): Likewise.
5599
5600         * config/i386/wmmintrin.h: New.
5601
5602         * doc/extend.texi: Document AES and PCLMUL built-in function.
5603
5604         * doc/invoke.texi: Document -maes and -mpclmul.
5605
5606 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
5607
5608         * function.c (free_after_parsing): Replace with
5609         cxx_push_function_context from C++ front-end.
5610         (allocate_struct_function): Don't call langhook.
5611         * langhooks.h (struct lang_hooks_for_functions): Delete.
5612         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
5613         member "function".
5614         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
5615         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
5616         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
5617         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
5618         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
5619         remove LANG_HOOKS_FUNCTION_INITIALIZER.
5620         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
5621
5622         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
5623         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
5624         
5625 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
5626
5627         PR c/35440
5628         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
5629         for all types.
5630
5631 2008-04-04  Richard Guenther  <rguenther@suse.de>
5632
5633         PR middle-end/35823
5634         * fold-const.c (optimize_minmax_comparison): Use the correct
5635         type for the constant in the simplified comparison.
5636
5637 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
5638
5639         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
5640         Pass L2 size as "--param l2-cache-size" to the compiler.
5641         (decode_l2_cache): New function to decode L2 cache parameters using
5642         0x8000006 extended cpuid function.
5643         (detect_caches_amd): Determine parameters of L2 cache using
5644         decode_l2_caches function.
5645         (decode_caches_intel): Decode L2 cache parameters.
5646         (detect_caches_intel): Determine L2 cache parameters using
5647         decode_caches_intel and decode_l2_caches functions.
5648
5649 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
5650
5651         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
5652         secondary input reload for subword loads from the constant pool.
5653
5654 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
5655
5656         PR target/35713
5657         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
5658           constants of the appropriate size for runtime calculations.
5659
5660         PR c/35712
5661         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
5662           decimal-float literal constant zero.
5663
5664 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
5665
5666         PR c/35738
5667         * c-parser.c (c_parser_omp_atomic): Call
5668         default_function_array_conversion on the RHS.
5669
5670         PR middle-end/35818
5671         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
5672         call is_variable_sized if decl has incomplete type.
5673
5674 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
5675
5676         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
5677
5678 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
5679
5680         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
5681         iterators.
5682         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
5683         (sgt<u>): Merge sgt and sgtu into new expander.
5684         (sgt, sgtu): Remove expanders.
5685         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
5686         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
5687         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
5688         *sgtu_<mode>_mips16 into new pattern.
5689         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
5690         (sge<u>): Merge sge and sgeu into new expander.
5691         (sge, sgeu): Remove expanders.
5692         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
5693         new pattern.
5694         (*sge_<mode>, second *sge_<mode>): Remove patterns.
5695         (slt<u>): Merge slt and sltu into new expander.
5696         (slt, sltu): Remove expanders.
5697         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
5698         (*slt_<mode>, *sltu_<mode>): Remove patterns.
5699         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
5700         *sltu_<mode>_mips16 into new pattern.
5701         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
5702         (sle<u>): Merge sle and sleu into new expander.
5703         (sle, sleu): Remove expanders.
5704         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
5705         (*sle_<mode>, *sleu_<mode>): Remove patterns.
5706         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
5707         *sleu_<mode>_mips16 into new pattern.
5708         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
5709
5710 2008-04-03  Jan Hubicka  <jh@suse.cz>
5711
5712         PR tree-optimization/35795
5713         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
5714         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
5715         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
5716         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
5717         * score/score3.c (score3_output_mi_thunk): Likewise.
5718         * score/score7.c (score7_output_mi_thunk): Likewise.
5719         * mips/mips.c (mips_output_mi_thunk): Likewise.
5720
5721 2008-04-03  Richard Guenther  <rguenther@suse.de>
5722
5723         * tree-vrp.c (extract_range_from_unary_expr): Handle all
5724         conversions.  Simplify code.
5725
5726 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
5727
5728         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
5729
5730 2008-04-03  Tom Tromey  <tromey@redhat.com>
5731             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5732
5733         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
5734         * config/bfin/t-bfin-linux (generated_files): Add
5735         linux-sysroot-suffix.h.
5736         * doc/install.texi (Prerequisites): Require make 3.80.
5737         * doc/sourcebuild.texi (Front End Directory): Document new
5738         variable.
5739         * Makefile.in (generated_files): New variable.
5740         (ALL_HOST_OBJS): New variable.
5741         ($(ALL_HOST_OBJS)): New target.
5742
5743 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
5744
5745         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
5746         (remap_block): Call id->transform_lang_insert_block instead
5747         of langhook.
5748         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
5749         Set id.transform_lang_insert_block to NULL.
5750         (clone_body): Move to cp/optimize.c
5751         * tree-inline.h (struct copy_body_data): Change
5752         transform_lang_insert_block to function pointer.
5753         (copy_generic_body, copy_decl_no_change): Export.
5754         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
5755         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
5756         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
5757
5758         * c-tree.h (insert_block): Kill.
5759         * c-decl.c (insert_block): Kill.
5760
5761 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
5762
5763         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
5764         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
5765         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
5766         argument.
5767         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
5768         argument, call {push,pop}_function_context from here.
5769         * c-parser.c: Use c_{push,pop}_function_context.
5770
5771         * function.c (push_function_context_to): Move meat ...
5772         (push_function_context): ... here.  Simplify.
5773         * function.c (pop_function_context_from): Move meat ...
5774         (pop_function_context): ... here.  Simplify.
5775         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
5776         leave_nested).
5777         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
5778         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
5779         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
5780         * tree.h (push_function_context_to, pop_function_context_from): Remove.
5781
5782 2008-04-03  Ben Elliston  <bje@au.ibm.com>
5783
5784         * expmed.c (extract_force_align_mem_bit_field): Remove.
5785
5786 2008-04-03  Richard Guenther  <rguenther@suse.de>
5787
5788         PR middle-end/35800
5789         * expr.h (try_casesi): Adjust prototype.
5790         * expr.c (try_casesi): Take fallback label as extra parameter.
5791         Use that for gen_casesi if default_label is NULL.
5792         * stmt.c (expand_case): Pass fallback label to try_casesi,
5793         make sure to fill gaps with a fallback label if default_label
5794         is not present.
5795
5796 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
5797
5798         PR target/35801
5799         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
5800
5801 2008-04-03  Ben Elliston  <bje@au.ibm.com>
5802
5803         * expmed.c (extract_split_bit_field): Remove if (0) code.
5804         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
5805         (do_ds_constraint): Likewise.
5806
5807 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
5808
5809         * doc/cppopts.texi (-dU): Document.
5810         * c-common.h (flag_dump_macros): Update comment.
5811         * c-opts.c (handle_OPT_d): Handle -dU.
5812         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
5813         dump_queued_macros, cb_used_define, cb_used_undef): New.
5814         (init_pp_output): Handle -dU.
5815         (cb_line_change): Call dump_queued_macros.
5816         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
5817
5818 2008-04-02  Anatoly Sokolov <aesok@post.ru>
5819
5820         * config/avr/predicates.md (io_address_operand): New predicate. 
5821         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
5822         * config/avr/avr.c (avr_io_address_p): Remove function.
5823         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
5824         'avr_io_address_p' function.
5825         (out_movhi_r_mr): (Ditto.).
5826         (out_movqi_mr_r): (Ditto.).
5827         (out_movhi_mr_r): (Ditto.).
5828         (avr_address_cost): (Ditto.).
5829
5830 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
5831
5832         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
5833         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
5834         in 32bit mode when XMM registers are available to avoid store
5835         forwarding stalls.
5836         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
5837         corresponding post-reload splitters.
5838
5839 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
5840
5841         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
5842         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
5843         __builtin_ia32_roundss.
5844         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
5845         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
5846         __builtin_ia32_roundss.
5847         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
5848         IX86_BUILTIN_SHUFPD here.
5849
5850 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
5851
5852         * config/i386/i386.md (plogic): New.
5853         (plogicprefix): Likewise.
5854
5855         * config/i386/mmx.md (mmx_<code><mode>3): New.
5856         (mmx_and<mode>3): Removed.
5857         (mmx_ior<mode>3): Likewise.
5858         (mmx_xor<mode>3): Likewise.
5859
5860         * config/i386/sse.md (<code><mode>3): New.
5861         (*<code><mode>3): Likewise.
5862         (*<code><mode>3): Likewise.
5863         (<code><mode>3): Likewise.
5864         (*sse_<code><mode>3): Likewise.
5865         (*sse2_<code><mode>3): Likewise.
5866         (<code>tf3): Likewise.
5867         (*<code>tf3): Likewise.
5868         (and<mode>3): Likewise.
5869         (*and<mode>3): Likewise.
5870         (ior<mode>3): Removed.
5871         (*ior<mode>3): Likewise.
5872         (xor<mode>3): Likewise.
5873         (*xor<mode>3): Likewise.
5874         (*and<mode>3): Likewise.
5875         (*ior<mode>3): Likewise.
5876         (*xor<mode>3): Likewise.
5877         (and<mode>3): Likewise.
5878         (*sse_and<mode>3): Likewise.
5879         (*sse2_and<mode>3): Likewise.
5880         (andtf3): Likewise.
5881         (*andtf3): Likewise.
5882         (ior<mode>3): Likewise.
5883         (*sse_ior<mode>3): Likewise.
5884         (*sse2_ior<mode>3): Likewise.
5885         (iortf3): Likewise.
5886         (*iortf3): Likewise.
5887         (xor<mode>3): Likewise.
5888         (*sse_xor<mode>3): Likewise.
5889         (*sse2_xor<mode>3): Likewise.
5890         (xortf3): Likewise.
5891         (*xortf3): Likewise.
5892
5893 2008-04-02  Richard Guenther  <rguenther@suse.de>
5894
5895         PR tree-optimization/14495
5896         PR tree-optimization/34793
5897         * tree-vrp.c (struct switch_update): New structure.
5898         (to_remove_edges, to_update_switch_stmts): New VECs.
5899         (simplify_switch_using_ranges): New function.  Remove not taken
5900         case labels and edges.
5901         (simplify_stmt_using_ranges): Call it.
5902         (identify_jump_threads): Mark edges we have queued for removal
5903         so we don't thread them.
5904         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
5905         case label vector.
5906         * tree-cfg.c (group_case_labels): Deal with missing default label.
5907         (tree_verify_flow_info): Allow missing default label.
5908         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
5909         (emit_case_nodes): Likewise.
5910         (expand_case): Do not rely on the default label to be present.
5911         * expr.c (try_casesi): Deal with NULL default_label.
5912         (do_tablejump): Likewise.
5913
5914 2008-04-02  Richard Guenther  <rguenther@suse.de>
5915
5916         PR tree-optimization/14495
5917         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
5918         SWITCH_EXPR here ...
5919         (vrp_visit_switch_stmt): ... but here (new function).
5920         (find_case_label_index): New helper function.
5921         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
5922
5923 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5924
5925         * fwprop.c: Fix ISO-C99ism.
5926
5927 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5928
5929         PR bootstrap/35752
5930         * Makefile.in (objdir): Set it here.
5931         * configure.ac: Not here.  Find dynamic linker characteristics.
5932         * exec-tool.in: Use them.
5933         * aclocal.m4: Regenerate.
5934         * configure: Regenerate.
5935
5936 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5937
5938         * expr.c (expand_var): Delete it.
5939         * expr.h (expand_var): Delete prototype.
5940         * function.c (expand_function_start): Use expand_decl instead.
5941         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
5942         langhook.
5943
5944 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
5945
5946         PR rtl-optimization/35542
5947         * fwprop.c (forward_propagate_and_simplify): Replace
5948         loc_reg_mentioned_in_p with reg_mentioned_p.
5949
5950 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5951
5952         PR rtl-optimization/35281
5953         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
5954         (propagate_rtx_1): Handle PR_HANDLE_MEM.
5955         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
5956         (varying_mem_p): Move above propagate_rtx.
5957         (all_uses_available_at): Do not check MEMs.
5958
5959 2008-04-02  Rafael Espindola  <espindola@google.com>
5960
5961         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
5962         (register_edge_assert_for_2): Split the cond argument.
5963         (register_edge_assert_for_1): Adjust for the change in
5964         register_edge_assert_for_2.
5965         (register_edge_assert_for): Split the cond argument.
5966         (find_switch_asserts): Adjust for the change in
5967         register_edge_assert_for.
5968
5969 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
5970
5971         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
5972         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
5973         offsets for 64-bit mingw.
5974         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
5975         abi for x86_64-pc-mingw.
5976
5977 2008-04-02  Richard Guenther  <rguenther@suse.de>
5978
5979         * tree-vrp.c (extract_range_from_assert): Make sure to not
5980         produce range min/max with TREE_OVERFOW set.
5981         If merging a anti-range and a range keep the anti-range if
5982         the range covers all values of the type.
5983         (register_edge_assert_for_2): Only allow sign-changing
5984         conversions in detecting canonical range checks.  Also
5985         register an assert for the unsigned name if useful.
5986
5987         PR tree-optimization/35787
5988         * tree-vrp.c (vrp_val_max): New function.
5989         (vrp_val_min): Likewise.
5990         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
5991         (vrp_val_is_min): Likewise.
5992         (supports_overflow_infinity): Use vrp_val_{min,max}.
5993         (negative_overflow_infinity): Likewise.
5994         (positive_overflow_infinity): Likewise.
5995         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
5996         (is_positive_overflow_infinity): Likewise.
5997         (is_overflow_infinity): Likewise.
5998         (avoid_overflow_infinity): Use vrp_val_{min,max} and
5999         vrp_val_is_{min,max}.
6000         (set_and_canonicalize_value_range): Canonicalize anti-ranges
6001         to ranges if possible.  Avoid empty ranges.
6002
6003 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6004
6005         PR middle-end/35705
6006         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
6007         the expression is a function address.
6008
6009 2008-04-01  George Helffrich  <george@gcc.gnu.org>
6010
6011         PR fortran/35154, fortran/23057
6012         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
6013         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
6014         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
6015         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
6016         in common.
6017         (dbxout_syms): Check for COMMON-based symbol and wrap in
6018         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
6019         in bracket for efficiency.
6020
6021         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
6022         using DW_TAG_common_block + member offset.
6023         (add_pubname_string): New function.
6024         (dw_expand_expr): New function to find block name and offset for
6025         COMMON var.
6026         (common_check): New function to check whether symbol in Fortran COMMON.
6027         (gen_variable_die): If COMMON, use DW_TAG_common_block.
6028
6029 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
6030
6031         PR c/35436
6032         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
6033
6034 2008-04-02  Ben Elliston  <bje@au.ibm.com>
6035
6036         * config/v850/v850.md (casesi): Remove if (0) code.
6037         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
6038         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
6039
6040 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
6041
6042         * config/i386/i386.md (rex64suffix): New mode attribute.
6043         (floathi<mode>2): Disable expander for SSE math.
6044         (*floathi<mode>2_1): New insn insn_and_split pattern.
6045         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
6046         corresponding post-reload splitters.
6047         (*floathi<mode>2_i387): New macroized insn pattern.
6048         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
6049         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
6050         insn_and_split pattern.
6051         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
6052         New macroized instruction patterns and corresponding post-reload
6053         splitters.
6054         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
6055         and corresponding post-reload splitters.
6056         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
6057         New macroized instruction patterns.
6058         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
6059         macroized instruction patterns and corresponding post-reload splitters.
6060         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
6061         corresponding post-reload splitters.
6062         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
6063         New macroized instruction patterns.
6064         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
6065         corresponding post-reload splitters.
6066         (*floatsi<mode>2_i387): New macroized instruction patterns.
6067
6068 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
6069
6070         * config/i386/i386.md (smaxmin): New.
6071         (umaxmin): Likewise.
6072         (maxminiprefix): Likewise.
6073         (maxminfprefix): Likewise.
6074         (<code><mode>3): Likewise.
6075         (smin<mode>3): Removed.
6076         (smax<mode>3): Likewise.
6077
6078         * config/i386/mmx.md (mmx_<code>v2sf3): New.
6079         (mmx_<code>v4hi3): Likewise.
6080         (mmx_<code>v8qi3): Likewise.
6081         (mmx_smaxv2sf3): Removed.
6082         (mmx_sminv2sf3): Likewise.
6083         (mmx_umaxv8qi3): Likewise.
6084         (mmx_smaxv4hi3): Likewise.
6085         (mmx_uminv8qi3): Likewise.
6086         (mmx_sminv4hi3): Likewise.
6087
6088         * config/i386/sse.md (<addsub><mode>3): New.
6089         (*<addsub><mode>3): Likewise.
6090         (<sse>_vm<addsub><mode>3): Likewise.
6091         (<maxmin><mode>3): Likewise.
6092         (*<maxmin><mode>3_finite): Likewise.
6093         (*<maxmin><mode>3): Likewise.
6094         (<sse>_vm<maxmin><mode>3): Likewise.
6095         (sse3_h<addsub>v4sf3): Likewise.
6096         (sse3_h<addsub>v2df3): Likewise.
6097         (<maxmin>v16qi3): Likewise.
6098         (*<maxmin>v16qi3): Likewise.
6099         (<maxmin>v8hi3): Likewise.
6100         (*<maxmin>v8hi3): Likewise.
6101         (*sse4_1_<maxmin><mode>3): Likewise.
6102         (*sse4_1_<maxmin><mode>3): Likewise.
6103         (add<mode>3): Removed.
6104         (*add<mode>3): Likewise.
6105         (<sse>_vmadd<mode>3): Likewise.
6106         (sub<mode>3): Likewise.
6107         (*sub<mode>3): Likewise.
6108         (<sse>_vmsub<mode>3): Likewise.
6109         (smin<mode>3): Likewise.
6110         (*smin<mode>3_finite): Likewise.
6111         (*smin<mode>3): Likewise.
6112         (<sse>_vmsmin<mode>3): Likewise.
6113         (smax<mode>3): Likewise.
6114         (*smax<mode>3_finite): Likewise.
6115         (*smax<mode>3): Likewise.
6116         (<sse>_vmsmax<mode>3): Likewise.
6117         (sse3_haddv4sf3): Likewise.
6118         (sse3_haddv2df3): Likewise.
6119         (sse3_hsubv4sf3): Likewise.
6120         (sse3_hsubv2df3): Likewise.
6121         (umaxv16qi3): Likewise.
6122         (*umaxv16qi3): Likewise.
6123         (smaxv8hi3): Likewise.
6124         (*smaxv8hi3): Likewise.
6125         (*sse4_1_smax<mode>3): Likewise.
6126         (*sse4_1_umax<mode>3): Likewise.
6127         (uminv16qi3): Likewise.
6128         (*uminv16qi3): Likewise.
6129         (sminv8hi3): Likewise.
6130         (*sminv8hi3): Likewise.
6131         (*sse4_1_smin<mode>3): Likewise.
6132         (*sse4_1_umin<mode>3): Likewise.
6133
6134 2008-04-01  Rafael Espindola  <espindola@google.com>
6135
6136         * tree-cfg.c (verify_expr): remove in_phi.
6137         (verify_stmt): Don't call walk_tree with verify_expr. Use
6138         is_gimple_min_invariant instead of is_gimple_val.
6139
6140 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
6141
6142         * doc/include/gpl_v3.texi: Update for manpage generation.
6143         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
6144         gpl.texi.
6145         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
6146         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
6147         gpl_v3.texi instead of gpl.texi.
6148         (gpl.pod): New.
6149
6150 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
6151
6152         PR pch/13675
6153         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
6154
6155 2008-04-01  Rafael Espindola  <espindola@google.com>
6156
6157         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
6158         (extract_code_and_val_from_cond): Use
6159         extract_code_and_val_from_cond_with_ops.
6160
6161 2008-04-01  Jan Hubicka  <jh@suse.cz>
6162
6163         * function.c (free_after_compilation): Free epilogue_delay_list.
6164         (prepare_function_start): Assert that previous compilation was freed.
6165
6166 2008-04-01  Jan Hubicka  <jh@suse.cz>
6167             Jim Wilson  <wilson@tuliptree.org>
6168             Andreas Tobler <andreast@gcc.gnu.org>
6169
6170         PR middle-end/35781
6171         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
6172         rtl.emit instead cfun->emit.
6173         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
6174         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
6175
6176 2008-04-01  Ben Elliston  <bje@au.ibm.com>
6177
6178         * doc/c-tree.texi (Function Basics): Fix grammatical error.
6179
6180 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
6181
6182         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
6183         New options
6184         (fprofile-use): Add var flag_profile_use
6185         * coverage.c (coverage_begin_output): Do not open a gcno file for
6186         output only if -ftest-coverage is set.
6187         Do not add getpwd() to gcda file path.
6188         (build_gcov_info): Check the new flag
6189         flag_profile_datafile_relative_path.
6190         (coverage_init): Use profile_data_prefix.
6191         Read profile counter only if flag_profile_use is set.
6192         * opts.c (common_handle_option): New option fprofile-use=,
6193         fprofile-dir=, fprofile-generate=.
6194         * toplev.c (profile_data_prefix): New variable definition.
6195         * toplev.h (profile_data_prefix): New declaration.
6196         * doc/invoke.tex (Option Summary, Optimization Options):
6197         Add new options.
6198
6199 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
6200
6201         * varasm.c (output_constant_pool_1): In LABEL_REF check,
6202         use tmp consistently.
6203
6204         PR target/35695
6205         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
6206         * config/ia64/ia64.c (rtx_needs_barrier): Handle
6207         UNSPEC_FR_RECIP_APPROX_RES.
6208         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
6209
6210 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
6211
6212         PR c/35750
6213         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
6214
6215 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6216
6217         PR middle-end/30186
6218         * fold-const.c (fold_indirect_ref_1): Support accessing non first
6219         element of the vector via a pointer.
6220
6221 2008-03-31  Ian Lance Taylor  <iant@google.com>
6222
6223         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
6224
6225 2008-03-31  Jan Hubicka  <jh@suse.cz>
6226
6227         * builtins.c (expand_builtin_setjmp_receiver): Update call of
6228         get_arg_pointer_save_area.
6229         * expr.c (init_expr): Just clear out rtl.expr.
6230         * function.c (free_after_compilation): Clear out whole RTL structure.
6231         (get_func_frame_size): Merge into ...
6232         (get_frame_size): ... this one.
6233         (assign_stack_local_1): Merge into ...
6234         (assign_stack_local): ... this one.
6235         (expand_function_end): Update call of get_arg_pointer_save_area.
6236         (get_art_pointer_save_area): Remove cfun argument.
6237         * function.h (emit_status): regno_pointer_align does not need length
6238         attribute. Move x_regno_reg_rtx to ...
6239         (regno_reg_rtx): ... new global array.
6240         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
6241         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
6242         apply_args_value, forced_labels, stack_pointer_delta):
6243         Update accestors.
6244         (struct varasm_status): Move here from varasm.c
6245         (struct rtl_data): New. Move here some fields from struct function.
6246         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
6247         frame_offset, stack_check_probe_note, arg_pointer_save_area,
6248         used_temp_slots avail_temp_slots, temp_slot_level,
6249         nonlocal_goto_handler_labels): Update accesstors.
6250         (rtl): New global variable.
6251         (struct function): Move some fileds to rtl_data.
6252         (get_arg_pointer_save_area): Update prototype.
6253         * emit-rtl.c (rtl): Declare.
6254         (regno_reg_rtx): Declare.
6255         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
6256         Update.
6257         (gen_reg_rtx): Update.
6258         (init_virtual_regs): Do not tate emit_status argument.
6259         (init_emit): Do not allocate emit.
6260         * varasm.c (varasm_statuc): Move to function.h.
6261         (n_deferred_constatns): Update accestor.
6262         (init_varasm_status): Do not allocate varasm_status.
6263         (force_const_mem, get_pool_size, output_constant_pool): Update.
6264         * stmt.c (force_label_rtx): Do not use x_ prefixes.
6265         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
6266
6267 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
6268
6269         PR rtl-optimization/35729
6270         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
6271         references.
6272
6273 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
6274
6275         PR target/32000
6276         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
6277         load/store if memory is unaligned.
6278         (*movti_rex64): Likewise.
6279
6280         * config/i386/predicates.md (misaligned_operand): New.
6281
6282 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
6283
6284         PR tree-opt/35431
6285         * tree-ssa-phiopt.c (conditional_replacement): Return early for
6286         complex types.
6287
6288 2008-03-31  Jan Beulich  <jbeulich@novell.com>
6289
6290         * config/ia64/constraints.md: Add 'j' constraint.
6291         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
6292         (movdi_internal): Likewise.
6293
6294 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
6295
6296         PR c/35748
6297         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
6298
6299 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
6300
6301         PR target/35757
6302         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
6303         proper error message for the third argument on blendpd and
6304         blendps.
6305
6306         * config/i386/sse.md (blendbits): New.
6307         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
6308
6309 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
6310
6311         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
6312
6313 2008-03-30  Richard Guenther  <rguenther@suse.de>
6314
6315         PR middle-end/31023
6316         * fold-const.c (fold_sign_changed_comparison): Do leave
6317         conversions to base-types alone.
6318
6319 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6320
6321         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
6322         the link register if one altivec register is be saved.
6323
6324 2008-03-30  Ben Elliston  <bje@au.ibm.com>
6325
6326         * final.c (final_scan_insn): Remove if (0) code.
6327
6328 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
6329
6330         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
6331
6332 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
6333
6334         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
6335         of V4SFmode to ix86_binary_operator_ok.
6336
6337 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
6338
6339         * config/i386/i386.c (override_options): Initialize
6340         ix86_veclib_handler to ix86_veclibabi_svml when
6341         -mveclibabi=svml is used.
6342         (ix86_veclibabi_svml): New function for SVML ABI style
6343         vectorization support.
6344         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
6345
6346 2008-03-28  Rafael Espindola  <espindola@google.com>
6347
6348         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
6349         (tree_binary_nonnegative_warnv_p): Make it public.
6350         (tree_single_nonnegative_warnv_p): Make it public.
6351         (tree_invalid_nonnegative_warnv_p): Make it public.
6352         (tree_unary_nonzero_warnv_p): Make it public.
6353         (tree_binary_nonzero_warnv_p): Make it public
6354         (tree_single_nonzero_warnv_p): Make it public.
6355         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
6356         (extract_range_from_binary_expr): Split the expr argument.
6357         (extract_range_from_unary_expr): Split the expr argument.
6358         (extract_range_from_comparison): Split the expr argument.
6359         (extract_range_from_expr): Use the new aux functions.
6360         (vrp_evaluate_conditional_warnv): Use
6361         vrp_evaluate_conditional_warnv_with_ops.
6362         * tree.h (tree_unary_nonzero_warnv_p): Declare.
6363         (tree_binary_nonzero_warnv_p): Declare.
6364         (tree_single_nonzero_warnv_p): Declare.
6365         (tree_expr_nonzero_warnv_p): Declare.
6366         (tree_unary_nonnegative_warnv_p): Declare.
6367         (tree_binary_nonnegative_warnv_p): Declare.
6368         (tree_single_nonnegative_warnv_p): Declare.
6369         (tree_invalid_nonnegative_warnv_p): Declare.
6370
6371 2008-03-28  Richard Guenther  <rguenther@suse.de>
6372
6373         PR tree-optimization/30317
6374         PR tree-optimization/30911
6375         PR tree-optimization/34793
6376         * tree-vrp.c (set_and_canonicalize_value_range): New function.
6377         (struct assert_locus_d): New member EXPR.
6378         (register_new_assert_for): Add EXPR parameter to support
6379         ASSERT_EXPR <name, expr OP limit>.
6380         (register_edge_assert_for_1): Adjust callers.
6381         (find_assert_locations): Likewise.
6382         (process_assert_insertions_for): Build condition from expression.
6383         (extract_range_from_assert): Handle ASSERT_EXPRs
6384         of the form ASSERT_EXPR <name, expr OP limit>.
6385         (register_edge_assert_for_2): New helper registering
6386         asserts for comparisons.  Recognize range tests of the form
6387         (unsigned)i - CST1 OP CST2.
6388         (register_edge_assert_for_1): Use it.
6389         (register_edge_assert_for): Likewise.
6390         (needs_overflow_infinity): Integer sub-types
6391         do not need overflow infinities.
6392         (vrp_val_is_max): The extreme values of integer sub-types
6393         are those of the base type.
6394         (vrp_val_is_min): Likewise.
6395         * tree.def (ASSERT_EXPR): Document extra allowed conditional
6396         expressions.
6397
6398 2008-03-28  Nick Clifton  <nickc@redhat.com>
6399
6400         PR target/31110
6401         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
6402         Return GENERAL_REGS for stack adjustment reloads.
6403
6404 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6405
6406         PR target/31334
6407         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
6408         const_vector when all the vectors are constant.
6409
6410 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
6411
6412         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
6413         comparisons.
6414         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
6415         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
6416         (scc_sf): New.
6417         (s<code>_sf): Use new scc_sf attribute for opcode names.
6418
6419 2008-03-27  Tom Tromey  <tromey@redhat.com>
6420
6421         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
6422         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
6423         config/spu/t-spu-elf, config/i386/t-interix,
6424         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
6425         config/i386/x-darwin, config/i386/x-mingw32,
6426         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
6427         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
6428         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
6429         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
6430         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
6431         config/rs6000/x-darwin, config/rs6000/t-rs6000,
6432         config/score/t-score-elf, config/arm/t-strongarm-pe,
6433         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
6434         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
6435         Revert automatic dependency patch.
6436
6437 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
6438
6439         PR target/35657
6440         * config/i386/i386.c (ix86_function_arg_boundary): Align
6441         decimal floating point to its natural boundary.
6442
6443 2008-03-27  Richard Guenther  <rguenther@suse.de>
6444
6445         PR middle-end/35716
6446         * fold-const.c (fold_comparison): Restrict distinct decl
6447         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
6448         solely rely on operand_equal_p.
6449
6450 2008-03-27  Richard Guenther  <rguenther@suse.de>
6451
6452         PR c/32511
6453         * c-common.c (handle_weak_attribute): Reject combination of
6454         weak and inline.
6455
6456 2008-03-27  Richard Guenther  <rguenther@suse.de>
6457
6458         PR tree-optimization/32810
6459         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
6460         conversions from DECL_INITIAL.
6461         (fold_const_aggregate_ref): Likewise from constructor elements.
6462
6463 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
6464
6465         * tree-affine.h (aff_combination_expand): Declare.
6466         (get_inner_reference_aff): Likewise.
6467         * tree-affine.c (aff_combination_expand): Split out from
6468         tree_to_aff_combination_expand.
6469         (get_inner_reference_aff): New function.
6470         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
6471         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
6472         (struct lim_aux_data): sm_done field removed.
6473         (mem_ref_loc_p, mem_ref_locs_p): New types.
6474         (struct mem_ref): Added id, stored, accesses_in_loop,
6475         indep_loop, dep_loop, indep_ref, dep_ref fields.
6476         Removed is_stored, locs and next fields.
6477         (memory_accesses): New variable.
6478         (movement_possibility): Do not allow moving statements
6479         that store to memory.
6480         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
6481         New functions.
6482         (determine_max_movement): For statements with memory references,
6483         find the outermost loop in that the reference is independent.
6484         (move_computations_stmt): Mark the virtual operands for renaming.
6485         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
6486         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
6487         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
6488         add_vop_ref_mapping, create_vop_ref_mapping_loop,
6489         create_vop_ref_mapping, analyze_memory_references,
6490         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
6491         get_all_locs_in_loop, ref_always_accessed_p,
6492         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
6493         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
6494         store_motion_loop, store_motion): New functions.
6495         (struct vop_to_refs_elt): New type.
6496         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
6497         memref_hash, memref_eq, hoist_memory_references): Rewritten.
6498         (schedule_sm): Replaced by...
6499         (execute_sm): ... this.
6500         (determine_lsm_ref, hoist_memory_references,
6501         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
6502         find_more_ref_vops, free_mem_ref, free_mem_refs,
6503         determine_lsm_loop, determine_lsm): Removed.
6504         (tree_ssa_lim_finalize): Free data structures used by store motion.
6505         (tree_ssa_lim): Call analyze_memory_references.  Use
6506         store_motion instead of determine_lsm.
6507
6508 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
6509
6510         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
6511         rename tmake_file to m68hc11/t-m68hc11.
6512         (mcore): Set inhibit_libc to true.
6513         * config.host (alpha*-dec-*vms*): Set extra_programs.
6514         (interix3*): Don't use host_xmake_file.
6515         * configure.ac: Let config.gcc override inhibit_libc.
6516         * configure: Regenerate.
6517
6518         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
6519         * config/t-openbsd-thread: Remove commented out lines.
6520         
6521         * config/x-interix: Remove.
6522
6523         * config/m68hc11/t-m68hc11-gas: Rename to...
6524         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
6525
6526         * config/mcore/t-mcore: Remove T_CFLAGS.
6527         * config/mcore/t-mcore-pe: Likewise.
6528
6529 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
6530
6531         * configure.ac: Replace custom __GNU_SOURCE test with
6532         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
6533         * aclocal.m4: Regenerate.
6534         * configure: Regenerate.
6535         * config.in: Regenerate.
6536
6537 2008-03-27  Richard Guenther  <rguenther@suse.de>
6538
6539         * fold-const.c (target.h): Include.
6540         (fold_comparison): Fold comparison of addresses of decls
6541         that bind locally or of constants.  Consolidate address folding code.
6542         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
6543         results from fold_binary_to_constant.
6544         (compare_values_warnv): Likewise.
6545
6546 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
6547
6548         PR middle-end/35429
6549         * fold-const.c (fold_truthop): Check for integeral types when folding
6550         a == 0 && b == 0 and a != 0 || b != 0 .
6551
6552 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
6553
6554         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
6555
6556 2008-03-26  Andreas Schwab  <schwab@suse.de>
6557
6558         * doc/invoke.texi: Fix use of @item vs. @itemx.
6559
6560 2008-03-26  Tom Tromey  <tromey@redhat.com>
6561
6562         * Makefile.in (build/gensupport.o, build/print-rtl.o,
6563         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
6564         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
6565         build/gencodes.o, build/genconditions.o, build/genconfig.o,
6566         build/genconstants.o, build/genemit.o, build/genextract.o,
6567         build/genflags.o, build/genmddeps.o, build/genopinit.o,
6568         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
6569         options.h.
6570
6571 2008-03-26  Richard Guenther  <rguenther@suse.de>
6572
6573         Revert
6574         2008-03-26  Richard Guenther  <rguenther@suse.de>
6575
6576         * fold-const.c (target.h): Include.
6577         (fold_comparison): Fold comparison of addresses of two decls
6578         that bind locally.  Consolidate address folding code.
6579
6580 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6581
6582         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
6583         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
6584         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
6585         dconstsqrt2, dconstthird, dconste and/or dconst10.
6586         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
6587         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
6588         dconstsqrt2, dconste): Delete.
6589         (init_emit_once): Likewise.  Simplify initializing dconstm1.
6590         Constify variable.
6591         * real.c (get_real_const): New.
6592         * real.h (dconst3, dconst10, dconstm2, dconstthird,
6593         dconstsqrt2, dconste): Delete.
6594         (real_value_const, get_real_const): New.
6595
6596 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
6597
6598         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
6599
6600         * config/i386/i386.c (ix86_function_arg_boundary): Check
6601         BIGGEST_ALIGNMENT instead of 128.
6602         (setup_incoming_varargs_64): Likewise.
6603
6604 2008-03-26  Tom Tromey  <tromey@redhat.com>
6605
6606         * Makefile.in (DEPFILES): Add missing '/'.
6607
6608 2008-03-26  Richard Guenther  <rguenther@suse.de>
6609
6610         * fold-const.c (target.h): Include.
6611         (fold_comparison): Fold comparison of addresses of two decls
6612         that bind locally.  Consolidate address folding code.
6613
6614 2008-03-26  Nick Clifton  <nickc@redhat.com>
6615
6616         PR target/31232
6617         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
6618         not allow INT+INT as a legitimate addressing mode.
6619
6620 2008-03-26  Richard Guenther  <rguenther@suse.de>
6621
6622         * tree-flow.h (widen_bitfield): Remove declaration.
6623         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
6624         (widen_bitfield): Remove function.
6625         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
6626         code.
6627
6628 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6629
6630         PR target/31558
6631         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
6632         error_mark_node's.
6633
6634 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
6635
6636         PR rtl-optimization/35232
6637         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
6638         (forget_old_reloads_1, forget_marked_reloads): Don't clear
6639         reg_reloaded_call_part_clobbered here.
6640         (reload_regs_reach_end_p): New function.
6641         (reload_reg_rtx_for_input): New variable.
6642         (reload_reg_rtx_for_output): Likewise.
6643         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
6644         when reassigning a pseudo register.  Load reloadreg from 
6645         reload_reg_rtx_for_input, moving the mode and register
6646         calculation to...
6647         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
6648         instead of the original when deciding whether an input reload
6649         would be a no-op or whether an output reload can be deleted.
6650         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
6651         when setting up new_spill_reg_store.  Load it from
6652         reload_reg_rtx_for_output, moving the mode and register
6653         calculation to...
6654         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
6655         instead of the original when deciding whether an output reload
6656         would be a no-op.  Do the same when modifying insn notes.
6657         Use rtx_equal_p instead of == to compare the registers.
6658         (inherit_piecemeal_p): Take a mode and two register numbers
6659         as argument.
6660         (emit_reload_insns): Clear new_spill_reg_store for every hard
6661         register in the reload register.  Remove spill registers
6662         from reg_reloaded_valid before considering whether to record
6663         inheritance information for them.  Use reload_reg_rtx_for_output
6664         instead of reg_rtx when recording output reloads.  Use
6665         reload_reg_rtx_for_input instead of reg_rtx when recording
6666         input reloads.  Set or clear reg_reloaded_call_part_clobbered
6667         at the same time as setting reg_reloaded_valid.
6668         (delete_output_reload): Add a new_reload_reg parameter and use it
6669         instead of rld[j].reg_rtx.
6670         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
6671         calls accordingly.
6672
6673 2008-03-25  Tom Tromey  <tromey@redhat.com>
6674
6675         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
6676         (build/genattr.o): Likewise.
6677         (build/genattrtab.o): Likewise.
6678         (build/gencodes.o): Likewise.
6679         (build/genconfig.o): Likewise.
6680         (build/genconstants.o): Likewise.
6681         (build/genemit.o): Likewise.
6682         (build/genextract.o): Likewise.
6683         (build/genflags.o): Likewise.
6684
6685 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
6686         
6687         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
6688         instead of size_int for integer types.
6689         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
6690         to match type of MINUS_EXPR.
6691         
6692 2008-03-25  Tom Tromey  <tromey@redhat.com>
6693
6694         * configure: Rebuilt.
6695         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
6696         Makefile.
6697
6698 2008-03-25  Tom Tromey  <tromey@redhat.com>
6699
6700         * config/x-solaris (host-solaris.o): Update.
6701         * config/x-linux (host-linux.o): Update.
6702         * config/x-hpux (host-hpux.o): Update.
6703         * config/x-darwin (host-darwin.o): Update.
6704         * config/v850/t-v850e (v850-c.o): Update.
6705         * config/v850/t-v850 (v850-c.o): Update.
6706         * config/t-vxworks (vxworks.o): Update.
6707         * config/t-sol2 (sol2-c.o, sol2.o): Update.
6708         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
6709         * config/spu/t-spu-elf (spu-c.o): Update.
6710         (spu.o): Remove.
6711         * config/sh/t-symbian (sh-c.o): Update.
6712         (symbian.o): Update.
6713         * config/sh/t-sh (sh-c.o): Update.
6714         * config/score/t-score-elf (score7.o, score3.o): Update.
6715         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
6716         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
6717         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
6718         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
6719         (rs6000.o): Remove.
6720         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
6721         * config/m32c/t-m32c (m32c-pragma.o): Update.
6722         * config/ia64/t-ia64 (ia64-c.o): Update.
6723         * config/i386/x-mingw32 (host-mingw32.o): Update.
6724         * config/i386/x-i386 (driver-i386.o): Update.
6725         * config/i386/x-darwin (host-i386-darwin.o): Update.
6726         * config/i386/x-cygwin (host-cygwin.o): Update.
6727         * config/i386/t-nwld (nwld.o): Update.
6728         * config/i386/t-netware (netware.o): Update.
6729         * config/i386/t-interix (winnt.o): Update.
6730         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
6731         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
6732         msformat-c.o): Update.
6733         * config/bfin/t-bfin-linux (generated_files): Add
6734         linux-sysroot-suffix.h.
6735         * config/arm/t-wince-pe (pe.o): Update.
6736         * config/arm/t-strongarm-pe (pe.o): Update.
6737         * config/arm/t-pe (pe.o): Update.
6738         * config/arm/t-arm (arm-c.o): Update.
6739         * doc/install.texi (Prerequisites): Require make 3.80.
6740         * Makefile.in: Remove .o targets.
6741         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
6742         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
6743         (simple_generated_h, simple_generated_c): Move earlier.
6744         (generated_files): New variable.
6745         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
6746         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
6747         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
6748         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
6749         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
6750         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
6751         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
6752         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
6753         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
6754         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
6755         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
6756         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
6757         (.c.o): Remove.
6758         (COMPILE.base, COMPILE): New variables.
6759         (%.o): New pattern rule.
6760         (ALL_HOST_OBJS): New variable.
6761         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
6762         (dummy-checksum.o, cc1-checksum.o): Remove.
6763         (DRIVER_SHLIB): New variable.
6764         (DRIVER_DEFINES): Use it.
6765         (gencondmd.c): Move out of build/.
6766         (s-conditions): Update.
6767         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
6768         (ALL_BUILD_OBJS): Likewise.
6769         (build/%.o): Use BUILDCOMPILE.
6770         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
6771         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
6772         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
6773         build/gencheck.o, build/gencodes.o, build/genconditions.o,
6774         build/genconfig.o, build/genconstants.o, build/genemit.o,
6775         build/genextract.o, build/genflags.o, build/genmddeps.o,
6776         build/genopinit.o, build/genoutput.o, build/genpeep.o,
6777         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
6778         build/gen-protos.o, build/scan.o, build/fix-header.o,
6779         build/scan-decls.o): Simplify.
6780         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
6781         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
6782         prefix.o, toplev.o): Reduce to variable setting.
6783         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
6784         ($(out_object_file), gcc-options.o): New targets.
6785         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
6786         * configure: Rebuilt.
6787         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
6788         * doc/sourcebuild.texi (Front End Directory): Document new variable.
6789
6790 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
6791
6792         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
6793         complain when we hit an error, return ERROR_MARK_NODE.
6794
6795 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
6796
6797         * config/sh/constraints.md (Pso, Psz): New constraints.
6798         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
6799         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
6800
6801 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
6802
6803         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
6804         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
6805
6806 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
6807
6808         * config/sh/sh.md (prefetch): Add condition for SH2A target.
6809         (prefetch_sh2a): New.   
6810
6811 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
6812             Naveen.H.S  <naveen.hs@kpitcummins.com>
6813
6814         * config/sh/constraints.md (I28): New constraint.
6815         * config/sh/sh.c (broken_move): Add support for movi20s.
6816         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
6817
6818 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
6819             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
6820             Naveen.H.S  <naveen.hs@kpitcummins.com>
6821
6822         * config/sh/sh.c (SH_ATTRIBUTES): Define.
6823         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
6824         (print_operand): Handle resbank in %@ operand code.
6825         (sh_encode_section_info): New.
6826         (push_regs): Add conditions for resbank.
6827         (sh_expand_epilogue): Likewise.
6828         (sh_insert_attributes): Likewise.
6829         (sh_attribute_table): Likewise.
6830         (sh_handle_resbank_handler_attribute): New.
6831         (sh2a_handle_function_vector_handler_attribute): New.
6832         (sh2a_is_function_vector_call): New.
6833         (sh2a_get_function_vector_number): New.
6834         (sh2a_function_vector_p): New.
6835         (sh_cfun_resbank_handler_p): New.
6836         * config/sh/sh.md (calli): Emit jsr/n if possible.
6837         (calli_tbr_rel): New.
6838         (calli_pcrel): Emit jsr/n if possible.
6839         (return_i): Emit rts/n if possible.
6840         (call_valuei_tbr_rel): New.
6841         (call_valuei_pcrel): Add condition for SH2A target.
6842         (call_value): Likewise.
6843         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
6844         (sh2a_get_function_vector_number): Likewise.
6845         (sh2a_is_function_vector_call): Likewise.
6846         * doc/extend.texi: Document TBR relative addressing of SH2A.
6847         (resbank): Add description for SH2A.
6848
6849 2008-03-24  Richard Guenther  <rguenther@suse.de>
6850
6851         PR c/22371
6852         * gimplify.c (gimplify_modify_expr): For frontend type-correct
6853         pointer assignments change conversions according to middle-end rules.
6854         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
6855         * configure.ac: Include type checking in yes.
6856         * configure: Regenerate.
6857
6858 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6859
6860         * diagnostic.c (diagnostic_count_diagnostic): Delete.
6861         (diagnostic_report_diagnostic): Update. Handle ICEs here.
6862         
6863 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
6864
6865         * gthr-vxworks.h (UNUSED): Define.
6866
6867 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
6868
6869         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
6870
6871 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
6872
6873         * doc/extend.texi (Function Attributes): Add missing comma in the
6874         example of the "alloc_size" attribute.
6875         
6876 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
6877
6878         Revert:
6879         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
6880
6881         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
6882         32bit host.
6883
6884         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
6885
6886         PR target/35496
6887         * stor-layout.c (update_alignment_for_field): Set minimum alignment
6888         of the underlying type of a MS bitfield layout to the natural
6889         alignment of the type.
6890
6891         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
6892
6893         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
6894         to their natural alignment to avoid store forwarding stalls.
6895
6896 2008-03-22  Richard Guenther  <rguenther@suse.de>
6897
6898         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
6899         For PHI nodes verify the address is invariant.
6900         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
6901         (get_symbol_constant_value): Use is_gimple_min_invariant.
6902         (maybe_fold_stmt_indirect): Likewise.
6903
6904 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
6905
6906         PR rtl-optimization/33927
6907         * Makefile.in (dse.o): Depend on $(TM_P_H).
6908         * expr.h (extract_low_bits): Declare.
6909         * expmed.c (extract_low_bits): New function.
6910         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
6911         * dse.c: Include tm_p.h.
6912         (find_shift_sequence): Remove the read_reg argument and return the
6913         read value.  Emit the instructions instead of returning them.
6914         Iterate on new_mode rather than calculating it each time.
6915         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
6916         source to NEW_MODE and extract_low_bits to convert the shifted
6917         value to READ_MODE.
6918         (replace_read): Allow the load and store to have different mode
6919         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
6920         or extraction instructions before trying the replacement.  Update
6921         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
6922
6923 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
6924
6925         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
6926         to their natural alignment to avoid store forwarding stalls.
6927
6928 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6929
6930         PR target/27946
6931         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
6932         encouraging but not allowing gprs for input;
6933         change the input constraint to !f#r.
6934         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
6935         gprs for output;
6936         change the output constraint to !f#r.
6937
6938 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
6939
6940         PR target/13958
6941         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
6942         corresponding post-reload splitters.
6943         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
6944         when x87 FP math is selected.
6945         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
6946         New function prototype.
6947         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
6948         unreachable function to ease macroization of insn patterns.
6949
6950 2008-03-21  Martin Jambor  <mjambor@suse.cz>
6951
6952         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
6953         reference dumps if ddr is NULL or dependence is unknown.
6954
6955 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
6956
6957         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
6958         unsigned extension into account.
6959         (ATOMIC_COMPARE_AND_SWAP): Likewise.
6960         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
6961         Do computations on a scratch register.
6962
6963 2008-03-21  Richard Guenther  <rguenther@suse.de>
6964
6965         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
6966         Use is_gimple_min_invariant instead of TREE_INVARIANT.
6967         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
6968         * tree-ssa-dom.c (record_equality): Likewise.
6969         * tree-inline.c (copy_body_r): Likewise.
6970         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
6971         TREE_INVARIANT.
6972
6973 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
6974
6975         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
6976         as 'delete_unused' argument.
6977
6978 2008-03-20  Richard Guenther  <rguenther@suse.de>
6979
6980         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
6981         special casing of constant qualifiers.
6982         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
6983         care about them in general.
6984         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
6985         regardless of their type.
6986         (fold_stmt_r): Forcefully fold *& if we end up with that.
6987
6988 2008-03-20  Paul Brook  <paul@codesourcery.com>
6989
6990         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
6991         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
6992         linker flags.
6993         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
6994         definition.
6995         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
6996         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
6997
6998 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
6999
7000         * common.opt (Wmudflap): New option.
7001         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
7002         (mx_register_decls): Likewise.
7003         (mudflap_finish_file): Likewise.
7004         * doc/invoke.texi: Document -Wno-mudflap.
7005
7006 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
7007
7008         * c-format.c (replace_format_name_to_system_name): New.
7009         (cmp_attribs): New.
7010         (convert_format_name_to_system_name): New.
7011         (decode_format_attr): Add use of convert_format_name_to_system_name.
7012         (format_types_orig): Add gnu_ prefix to names.
7013         (check_format_info_main): Special treating of \0 escaped names for
7014         supporting multi-character format specifiers as I32, I64.
7015         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
7016         (gnu_target_overrides_format_attributes): New.
7017         * c-format.h: Add structure target_ovr_attr to hold
7018         system specific formatter names.
7019         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
7020         msformat-c.o file to c_target_objs and cxx_target_objs.
7021         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
7022         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
7023         (TARGET_N_FORMAT_TYPES): New.
7024         * config/i386/msformat-c.c: New.
7025         * config/i386/t-cygming: Add build rule for msformat-c.o.
7026         * doc/extend.texi: Add new format names gnu_* and ms_* and
7027         further details.
7028         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
7029
7030 2008-03-20  Ira Rosen  <irar@il.ibm.com>
7031
7032         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
7033         optimizations turned on under -O3.
7034         (ftree-vectorize): Add that the flag is turned on with -O3.
7035
7036 2008-03-20  Ben Elliston  <bje@au.ibm.com>
7037
7038         * regmove.c (try_auto_increment): Fix spelling error in comment.
7039         * final.c (final_scan_insn): Likewise.
7040
7041 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
7042
7043         PR target/14552
7044         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
7045         allocator preferences for "y" and "r" class registers.
7046         ("*mov<mode>_internal"): Ditto.
7047         ("*movv2sf_internal_rex64"): Ditto.
7048         ("*movv2sf_internal"): Ditto.
7049
7050 2008-03-19  Michael Matz  <matz@suse.de>
7051
7052         PR middle-end/35616
7053         * calls.c (expand_call): Check overlap of arguments with call
7054         address for sibcalls.
7055
7056 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
7057
7058         PR target/35496
7059         * stor-layout.c (update_alignment_for_field): Set minimum alignment
7060         of the underlying type of a MS bitfield layout to the natural
7061         alignment of the type.
7062
7063 2008-03-19  Jan Hubicka  <jh@suse.cz>
7064
7065         PR other/35094
7066         * toplev.c (decode_d_option): Handle all CPP flags.
7067         * tree-vrp.c: Update tree_pass descriptors.
7068         * regrename.c: Update tree_pass descriptors.
7069         * fwprop.c: Update tree_pass descriptors.
7070         * doc/invoke.texi: Remove documentation of dropped -d? flags.
7071         * tree-into-ssa.c: Update tree_pass descriptors.
7072         * tree-dump.c: Update tree_pass descriptors.
7073         * tree-complex.c: Update tree_pass descriptors.
7074         * tree-dump.h: Update tree_pass descriptors.
7075         * see.c: Update tree_pass descriptors.
7076         * cgraphbuild.c: Update tree_pass descriptors.
7077         * tracer.c: Update tree_pass descriptors.
7078         * tree-loop-distribution.c: Update tree_pass descriptors.
7079         * cgraph.c: Update tree_pass descriptors.
7080         * postreload-gcse.c: Update tree_pass descriptors.
7081         * postreload.c: Update tree_pass descriptors.
7082         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
7083         * tree-tailcall.c: Update tree_pass descriptors.
7084         * tree-pass.h (tree_opt_pass): Rename to ...
7085         (opt_pass) ... this one; add "type" field and remove letter field.
7086         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
7087         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
7088         all_lowering_passes): Update declaration.
7089         * ipa-cp.c: Update tree_pass descriptors.
7090         * final.c: Update tree_pass descriptors.
7091         * omp-low.c: Update tree_pass descriptors.
7092         * tree-ssa-dse.c: Update tree_pass descriptors.
7093         * ipa-reference.c: Update tree_pass descriptors.
7094         * tree-ssa-uncprop.c: Update tree_pass descriptors.
7095         * auto-inc-dec.c: Update tree_pass descriptors.
7096         * reorg.c: Update tree_pass descriptors.
7097         * cgraphunit.c: Update tree_pass descriptors.
7098         * tree-ssa-copyrename.c: Update tree_pass descriptors.
7099         * tree-ssa-ccp.c: Update tree_pass descriptors.
7100         * df-core.c: Update tree_pass descriptors.
7101         * mode-switching.c: Update tree_pass descriptors.
7102         * tree-nomudflap.c: Update tree_pass descriptors.
7103         * modulo-sched.c: Update tree_pass descriptors.
7104         * ipa-pure-const.c: Update tree_pass descriptors.
7105         * cse.c: Update tree_pass descriptors.
7106         * web.c: Update tree_pass descriptors.
7107         * tree-stdarg.c: Update tree_pass descriptors.
7108         * tree-ssa-math-opts.c: Update tree_pass descriptors.
7109         * tree-ssa-dom.c: Update tree_pass descriptors.
7110         * tree-nrv.c: Update tree_pass descriptors.
7111         * tree-ssa-alias.c: Update tree_pass descriptors.
7112         * loop-init.c: Update tree_pass descriptors.
7113         * gimple-low.c: Update tree_pass descriptors.
7114         * ipa-inline.c: Update tree_pass descriptors.
7115         * tree-ssa-sink.c: Update tree_pass descriptors.
7116         * global.c: Update tree_pass descriptors.
7117         * ifcvt.c: Update tree_pass descriptors.
7118         * jump.c: Update tree_pass descriptors.
7119         * predict.c: Update tree_pass descriptors.
7120         * tree-ssa-loop.c: Update tree_pass descriptors.
7121         * recog.c: Update tree_pass descriptors.
7122         * dse.c: Update tree_pass descriptors.
7123         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
7124         * tree-eh.c: Update tree_pass descriptors.
7125         * regmove.c: Update tree_pass descriptors.
7126         * local-alloc.c
7127         * function.c: Update tree_pass descriptors.
7128         * tree-vectorizer.c: Update tree_pass descriptors.
7129         * gcse.c: Update tree_pass descriptors.
7130         * ipa-type-escape.c: Update tree_pass descriptors.
7131         * tree-if-conv.c: Update tree_pass descriptors.
7132         * init-regs.c: Update tree_pass descriptors.
7133         * ipa.c: Update tree_pass descriptors.
7134         * tree-ssa-phiopt.c: Update tree_pass descriptors.
7135         * rtl-factoring.c: Update tree_pass descriptors.
7136         * lower-subreg.c: Update tree_pass descriptors.
7137         * bt-load.c: Update tree_pass descriptors.
7138         * tree-dfa.c: Update tree_pass descriptors.
7139         * except.c: Update tree_pass descriptors.
7140         * emit-rtl.c: Update tree_pass descriptors.
7141         * cfgexpand.c: Update tree_pass descriptors.
7142         * tree-cfgcleanup.c: Update tree_pass descriptors.
7143         * cfgcleanup.c: Update tree_pass descriptors.
7144         * tree-ssa-pre.c: Update tree_pass descriptors.
7145         * tree-sra.c: Update tree_pass descriptors.
7146         * tree-mudflap.c: Update tree_pass descriptors.
7147         * tree-ssa-copy.c: Update tree_pass descriptors.
7148         * cfglayout.c: Update tree_pass descriptors.
7149         * tree-ssa-forwprop.c: Update tree_pass descriptors.
7150         * tree-ssa-dce.c: Update tree_pass descriptors.
7151         * tree-ssa.c: Update tree_pass descriptors.
7152         * regclass.c: Update tree_pass descriptors.
7153         * integrate.c: Update tree_pass descriptors.
7154         * tree-optimize.c: Update tree_pass descriptors.
7155         * tree-ssa-phiprop.c: Update tree_pass descriptors.
7156         * tree-object-size.c: Update tree_pass descriptors.
7157         * combine.c: Update tree_pass descriptors.
7158         * tree-outof-ssa.c: Update tree_pass descriptors.
7159         * bb-reorder.c: Update tree_pass descriptors.
7160         * stack-ptr-mod.c: Update tree_pass descriptors.
7161         * var-tracking.c: Update tree_pass descriptors.
7162         * tree-profile.c: Update tree_pass descriptors.
7163         * tree-vect-generic.c: Update tree_pass descriptors.
7164         * reg-stack.c: Update tree_pass descriptors.
7165         * sched-rgn.c: Update tree_pass descriptors.
7166         * tree-ssa-structalias.c: Update tree_pass descriptors.
7167         * tree-cfg.c: Update tree_pass descriptors.
7168         * passes.c (current_pass): Update declaration.
7169         (finish_optimization_passes): Update.
7170         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
7171         (register_one_dump_file, register_dump_files_1, next_pass_1):
7172         Update arguments.
7173         (init_optimization_passes): Update handling of new types.
7174         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
7175         * ipa-struct-reorg.c: Update tree_pass descriptors.
7176         * tree-ssa-reassoc.c: Update tree_pass descriptors.
7177         * combine-stack-adj.c: Update tree_pass descriptors.
7178         * cfgrtl.c: Update tree_pass descriptors.
7179         * dce.c: Update tree_pass descriptors.
7180         * tree-ssanames.c: Update tree_pass descriptors.
7181
7182 2008-03-19  Richard Guenther  <rguenther@suse.de>
7183
7184         PR middle-end/35609
7185         * tree-ssa.c (walk_data): New structure.
7186         (warn_uninitialized_var): If not always_executed warn with "maybe"
7187         instead of "is".
7188         (execute_early_warn_uninitialized): Compute post-dominators.
7189         Initialize always_executed before processing each basic block.
7190
7191 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
7192
7193         PR target/35504
7194         * config/i386/i386.c (x86_this_parameter): Calculate correct location
7195         of "this" pointer when "regparm = N" or "fastcall" is in effect.
7196
7197 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7198
7199         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
7200
7201 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
7202
7203         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
7204         is true.
7205         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
7206         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
7207         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
7208         target after ignore has been set, and move there also the commputation
7209         of subtarget and original_target.
7210         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
7211         (LANG_HOOKS_INITIALIZER): Remove it.
7212         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
7213
7214 2008-03-18  Richard Guenther  <rguenther@suse.de>
7215
7216         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
7217         found an expression with constants, note that in the VN for the lhs.
7218         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
7219         fold them to constants if possible.  Run cleanup_cfg if done so.
7220         (execute_pre): Return todo.
7221         (do_pre): Likewise.
7222         (execute_fre): Likewise.
7223         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
7224         of constants.
7225         (get_prop_source_stmt): Look through pointer conversions.
7226
7227 2008-03-18  Jan Hubicka  <jh@suse.cz>
7228
7229         * tree-pretty-print.c: Include predict.h.
7230         (dump_generic_node): Dump predictor.
7231         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
7232         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
7233         * gimple-low.c (lower_stmt): Likewise.
7234         * expr.c (expand_expr_real): Likewise.
7235         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
7236         them.
7237         (build_predict_expr, build_predict_expr): New.
7238         * predict.h (predictor_name, build_predict_expr): Update.
7239         * c-typeck.c (c_finish_bc_stmt): Add prediction.
7240         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
7241         * predict.def (PRED_CONTINUE): Update hitrate.
7242         * tree.def (PREDICT_EXPR): Define.
7243         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
7244         do not handle BIND_EXPR.
7245         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
7246         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
7247         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
7248         operands.
7249
7250 2008-03-18  Michael Matz  <matz@suse.de>
7251
7252         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
7253
7254 2008-03-18  Richard Guenther  <rguenther@suse.de>
7255
7256         * tree-gimple.h (is_gimple_invariant_address): Declare.
7257         (is_gimple_constant): Likewise.
7258         * tree-gimple.c (is_gimple_constant): New function.
7259         (is_gimple_invariant_address): Likewise.
7260         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
7261         and is_gimple_invariant_address.
7262         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
7263         previous change.
7264         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
7265         an addressable base.
7266
7267 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
7268
7269         PR middle-end/35611
7270         * gimplify.c (gimplify_expr): Gimplify second operand of
7271         OMP_ATOMIC_LOAD.
7272
7273 2008-03-17  Richard Guenther  <rguenther@suse.de>
7274
7275         PR tree-optimization/19637
7276         * fold-const.c (fold_unary): Remove restrictions of removing
7277         intermediate pointer-conversions (P2)(P1)P0.
7278         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
7279         conversion to void pointer.
7280         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
7281
7282 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
7283
7284         PR debug/31510
7285         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
7286         emulated thread local variables.
7287
7288 2008-03-16  Richard Guenther  <rguenther@suse.de>
7289
7290         PR middle-end/35607
7291         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
7292         expand TREE_INVARIANT operations that are not gimple invariant.
7293
7294 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
7295
7296         * doc/extend.texi (Alignment): Say that the ABI controls
7297         the __alignof__ for non-strict-alignment targets rather
7298         than being a recommendation.
7299
7300 2008-03-15  Paul Brook  <paul@codesourcery.com>
7301
7302         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
7303         annotations.
7304         (arm_output_fn_unwind): Mark functions that can not be unwound.
7305
7306 2008-03-15  Paul Brook  <paul@codesourcery.com>
7307
7308         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
7309         extension instructions.
7310
7311 2008-03-15  Richard Guenther  <rguenther@suse.de>
7312
7313         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
7314         and fold constant aggregate refs.
7315         (fold_const_aggregate_ref): Handle string constants
7316         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
7317         (evaluate_stmt): Simplify now that ccp_fold folds constant
7318         aggregate refs.
7319
7320 2008-03-15  Paul Brook  <paul@codesourcery.com>
7321
7322         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
7323         (extzv): Use gen_extzv_t2.
7324         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
7325
7326 2008-03-15  Richard Guenther  <rguenther@suse.de>
7327
7328         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
7329         (fold_const_aggregate_ref): Likewise.
7330         (get_value): Return NULL if we don't have any values.
7331         (ccp_finalize): Set const_val to NULL after freeing it.
7332         * tree-flow.h (get_symbol_constant_value): Declare.
7333         (fold_const_aggregate_ref): Likewise.
7334         * tree-ssa-sccvn.c (try_to_simplify): Use them.
7335
7336 2008-03-15  Richard Guenther  <rguenther@suse.de>
7337
7338         PR middle-end/35593
7339         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
7340         to not produce negative array indices if not allowed.  Add
7341         parameter to indicate that.
7342         (maybe_fold_offset_to_component_ref): Allow negative array
7343         indices only for the first member of a structure.
7344         (maybe_fold_offset_to_reference): Allow negative array indices.
7345         (maybe_fold_stmt_addition): Likewise.
7346
7347 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
7348             Anatoly Sokolov <aesok@post.ru>
7349
7350         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
7351         (avr_arch): Add ARCH_AVR6.
7352         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
7353         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
7354         instead of fixed value 2.
7355         (print_operand_address): Use gs() asm specifier instead of pm().
7356         (avr_assemble_integer): (Ditto.).
7357         (avr_output_addr_vec_elt): (Ditto.).
7358         (print_operand): Handle "!" code.
7359         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
7360         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
7361         (AVR_HAVE_EIJMP_EICALL): Define.
7362         (AVR_3_BYTE_PC): Redefine.
7363         (AVR_2_BYTE_PC): (Ditto.).
7364         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
7365         (LINK_SPEC): Add atmega2560 and atmega2561.
7366         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
7367         (crtm2561.o).
7368         * config/avr/avr.md (call_insn): Use eicall instead of icall 
7369         for 3 byte PC devices.
7370         (call_value_insn): (Ditto.).
7371         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
7372         (indirect_jump): Use only for for 2 byte PC devices.
7373         (*tablejump): (Ditto.).
7374         (*indirect_jump_avr6): Add insn.
7375         (*tablejump_rjmp): Don't use for 3 byte PC devices.
7376         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
7377         instead of ijmp for 3 byte PC devices.
7378         (__tablejump2__): (Ditto.).
7379         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
7380         (MULITLIB_DIRNAMES): (Ditto.). 
7381         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
7382
7383 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
7384
7385         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
7386         "sse2_umulsidi3".  Use V1DI mode for operand 0.
7387         ("mmx_psadbw"): Use V1DI mode for operand 0.
7388         * config/i386/i386-modes.def (V1SI): New vector mode.
7389         * config/i386/i386.c (struct builtin_description)
7390         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
7391         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
7392         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
7393         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
7394         v1di_ftype_v8qi_v8qi type.
7395         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
7396
7397         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
7398         __builtin_ia32_pmuludq]: Fix the mode of return value.
7399
7400 2008-03-15  Richard Guenther  <rguenther@suse.de>
7401
7402         PR middle-end/35595
7403         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
7404         being a PHI_NODE.
7405
7406 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
7407         
7408         * doc/invoke.texi (Option Summary, Xtensa Options): Document
7409         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
7410         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
7411         unless TARGET_SERIALIZE_VOLATILE is enabled.
7412         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
7413         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
7414         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
7415
7416 2008-03-14  Richard Guenther  <rguenther@suse.de>
7417
7418         PR tree-optimization/34172
7419         * tree-flow.h (refs_may_alias_p): Declare.
7420         (get_single_def_stmt): Likewise.
7421         (get_single_def_stmt_from_phi): Likewise.
7422         (get_single_def_stmt_with_phi): Likewise.
7423         * tree-dfa.c (refs_may_alias_p): New function.
7424         (get_single_def_stmt): Likewise.
7425         (get_single_def_stmt_from_phi): Likewise.
7426         (get_single_def_stmt_with_phi): Likewise.
7427         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
7428         (vn_reference_lookup_1): New helper function.
7429         (vn_reference_lookup): Walk the virtual use-def chain to
7430         continue searching for a match if the def does not alias the
7431         reference we are looking for.
7432
7433 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
7434
7435         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
7436         archive and Perzl.  Update The Written Word listing.
7437
7438 2008-03-14  Richard Guenther  <rguenther@suse.de>
7439
7440         PR tree-optimization/34043
7441         PR tree-optimization/33989
7442         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
7443         when doing FRE.
7444         (bitmap_find_leader): Use extra argument to verify dominance
7445         relationship inside a basic-block.
7446         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
7447         (find_leader_in_sets): Adjust.
7448         (create_component_ref_by_pieces): Take extra argument for
7449         dominance check, handle lookup failures.
7450         (find_or_generate_expression): Likewise.
7451         (create_expression_by_pieces): Likewise.
7452         (insert_into_preds_of_block): Adjust.
7453         (create_value_expr_from): If asked for, verify all operands
7454         are in the blocks AVAIL_OUT set.
7455         (make_values_for_stmt): Check for SSA_NAMEs that are life
7456         over an abnormal edge.
7457         (compute_avail): Remove such check.
7458         (do_SCCVN_insertion): New function.
7459         (eliminate): If we do not find a leader suitable for replacement
7460         insert a replacement expression from SCCVN if available.
7461         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
7462         (struct vn_ssa_aux): Add needs_insertion flag.
7463         * tree-ssa-sccvn.c (may_insert): New global flag.
7464         (copy_reference_ops_from_ref): Value-number union member access
7465         based on its size, not type and member if insertion is allowed.
7466         (visit_reference_op_load): For a weak match from union type
7467         punning lookup a view-converted value and insert a SSA_NAME
7468         for that value if that is not found.
7469         (visit_use): Make dumps shorter.  Do not disallow value numbering
7470         SSA_NAMEs that are life over an abnormal edge to constants.
7471         (free_scc_vn): Release inserted SSA_NAMEs.
7472         (run_scc_vn): New flag to specify whether insertion is allowed.
7473         Process SSA_NAMEs in forward order.
7474         * tree-ssa-loop-im.c (for_each_index): Handle invariant
7475         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
7476         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
7477         pointer type to/from integral types that do not change the
7478         precision to regular conversions.
7479
7480 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
7481
7482         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
7483         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
7484         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
7485         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
7486         input arguments and the mode of return value.  Built-in functions
7487         that operate on whole 64-bit MMX register now use V1DI mode.
7488
7489 2008-03-13  Alon Dayan  <alond@il.ibm.com>
7490             Olga Golovanevsky  <olga@il.ibm.com>
7491
7492         PR tree-optimization/35041
7493         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
7494         to locate the right position in a statement.
7495
7496 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
7497
7498         PR target/34000
7499         PR target/35553
7500         * config/i386/xmmintrin.h:  Change all static inline functions to
7501         extern inline and add __gnu_inline__ attribute.
7502         * config/i386/bmintrin.h: Ditto.
7503         * config/i386/smmintrin.h: Ditto.
7504         * config/i386/tmmintrin.h: Ditto.
7505         * config/i386/mmintrin-common.h: Ditto.
7506         * config/i386/ammintrin.h: Ditto.
7507         * config/i386/emmintrin.h: Ditto.
7508         * config/i386/pmmintrin.h: Ditto.
7509         * config/i386/mmintrin.h: Ditto.
7510         * config/i386/mm3dnow.h: Ditto.
7511
7512 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
7513
7514         PR middle-end/35185
7515         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
7516         (lower_omp_2): New function.
7517         (lower_omp_1, lower_omp): Rewritten.
7518
7519 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
7520
7521         PR 35054
7522         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
7523         with the phrase "Microsoft Windows compilers".
7524         (Push/Pop Macro Pragmas): New subsection. Document
7525         #pragma push_macro and pragma pop_macro.
7526
7527 2008-03-12  Paul Brook  <paul@codesourcery.com>
7528
7529         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
7530
7531 2008-03-12  Paul Brook  <paul@codesourcery.com>
7532
7533         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
7534         (thumb2_alusi3_short): Exclude PLUS and MINUS.
7535         (thumb2_addsi_shortim): Rename ...
7536         (thumb2_addsi_short): ... to this.  Allow register operands.
7537         (thumb2_subsi_short): New pattern.
7538         (thumb2_one_cmplsi2_short,
7539         thumb2_negsi2_short): New patterns and peepholes.
7540
7541 2008-03-12  Paul Brook  <paul@codesourcery.com>
7542
7543         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
7544
7545 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
7546
7547         * config/i386/i386.md (int_cond): New code iterator.
7548         (fp_cond): Ditto.
7549         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
7550         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
7551         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
7552         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
7553         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
7554         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
7555         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
7556         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
7557
7558 2008-03-12  Paul Brook  <paul@codesourcery.com>
7559
7560         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
7561         instead of {arm,thumb}_compute_save_reg_mask.
7562         (output_return_instruction): Ditto.
7563         (thumb_unexpanded_epilogue): Ditto.
7564         (thumb1_expand_prologue): Ditto.
7565         (thumb1_output_function_prologue): Ditto.
7566         (arm_set_return_address): Ditto.
7567         (thumb_set_return_address): Ditto.
7568         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
7569         regs to achieve stack alignment.
7570         (thumb1_compute_save_reg_mask): Fix compiler warning.
7571         (arm_output_epilogue): Use offsets->saved_regs_mask.
7572         Adjust stack pointer by poping call clobered registers.
7573         (arm_expand_prologue): Use offsets->saved_regs_mask.
7574         Adjust stack pointer by pushing extra registers.
7575         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
7576
7577 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
7578
7579         PR tree-opt/35422
7580         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
7581         conversion to the operands of a multiplication.
7582
7583 2008-03-12  Richard Guenther  <rguenther@suse.de>
7584
7585         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
7586         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
7587         * timevar.def (TV_TREE_PHIPROP): Add.
7588         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
7589         pass description.  Use TV_TREE_PHIPROP.
7590         * tree-ssa-forwprop.c: Remove phiprop code.
7591
7592 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
7593
7594         PR middle-end/35549
7595         * omp-low.c (maybe_lookup_decl): Constify first argument.
7596         (use_pointer_for_field): Change last argument from bool to
7597         omp_context *.  Disallow shared copy-in/out in nested
7598         parallel if decl is shared in outer parallel too.
7599         (build_outer_var_ref, scan_sharing_clauses,
7600         lower_rec_input_clauses, lower_copyprivate_clauses,
7601         lower_send_clauses, lower_send_shared_vars): Adjust callers.
7602
7603 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
7604             Ira Rosen  <irar@il.ibm.com>
7605
7606         * tree-vectorizer.c (free_stmt_vec_info): New function.
7607         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
7608         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
7609         * tree-vectorizer.h (free_stmt_vec_info): Declare.
7610         * tree-vect-transform.c (vectorizable_conversion): Free
7611         vec_oprnds0 if it was allocated.
7612         (vect_permute_store_chain): Remove unused VECs.
7613         (vectorizable_store): Free VECs that are allocated in the..
7614         function.
7615         (vect_transform_strided_load, vectorizable_load): Likewise.
7616         (vect_remove_stores): Simplify the code.
7617         (vect_transform_loop): Move code to vect_remove_stores().
7618         Call vect_remove_stores() and free_stmt_vec_info().
7619
7620 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7621
7622         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
7623         TARGET_HPUX.  Revise comment.
7624         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
7625         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
7626         Use sr4 variant of `be' instruction when not generating PIC code.
7627         (attr_length_call): Adjust for above change.
7628
7629 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7630
7631         * ipa-reference.c (static_execute): Remove module_statics_const and
7632         associated setting code.
7633
7634 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
7635
7636         PR target/35540
7637         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
7638         predicate for operand 1.
7639         (paritysi2_cmp): Use register_operand predicate for operand 2.
7640         Use earlyclobber modifier for operand 1.  Remove support for
7641         memory operands.
7642         (paritydi2_cmp): Use register_operand predicate for operand 3.
7643         Use earlyclobber modifier for operand 1.  Remove support for
7644         memory operands.
7645
7646 2008-03-11  Paul Brook  <paul@codesourcery.com>
7647             Vladimir Prus  <vladimir@codesourcery.com>
7648
7649         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
7650         (arm_compute_save_reg0_reg12_mask): Always
7651         check if register 11 must be saved.  Always safe hard frame pointer
7652         when frame_pointer_needeed.
7653         (arm_compute_save_reg_mask): Save IP and PC
7654         only with apcs frames.
7655         (arm_output_epilogue): Adjust Thumb2 codepath to
7656         be also invoked and work for ARM non-apcs frames.
7657         (arm_expand_prologue): Don't bother saving IP
7658         for non-apcs frame, since it's not clobbered by
7659         prologue code.  Implement non-apcs frame
7660         layout.
7661
7662 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
7663
7664         PR rtl-optimization/35281
7665         * expr.c (convert_move): Use a new pseudo for the intermediate
7666         from_mode->word_mode result.
7667
7668 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
7669
7670         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
7671         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
7672         * toplev.c (compile_file): Don't call it.
7673
7674 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
7675
7676         PR middle-end/35526
7677         * expr.c (store_expr): Call emit_block_move if the mode
7678         of "temp" RTX is BLKmode.
7679
7680 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7681             Richard Guenther  <rguenther@suse.de>
7682
7683         PR tree-optimization/31358
7684         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
7685         the step with a NULL_TREE.
7686         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
7687         to sizetype if type is a pointer type.
7688         (add_candidate_1): Don't convert the base and step to
7689         the generic type if the orginal type is a pointer type.
7690         (add_iv_value_candidates): Use sizetype for the step
7691         if type is a pointer type.
7692         (cand_value_at): Likewise.
7693         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
7694         for pointer types.
7695         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
7696         Don't convert the tem affine to the type.
7697         (add_elt_to_tree): Use sizetype for the step if a pointer.
7698         Use POINTER_PLUS_EXPR for pointers.
7699         (aff_combination_to_tree): Use sizetype for the step if a
7700         pointer.
7701
7702 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
7703
7704         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
7705         Remove commutativity hint.
7706
7707 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
7708
7709         PR c/35438
7710         PR c/35439
7711         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
7712         errorneous type.  Check that v is a VAR_DECL.
7713
7714         PR middle-end/35099
7715         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
7716
7717 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
7718
7719         PR tree-optimization/35494
7720         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
7721         may be overriden at link and run time.
7722
7723 2008-03-10  Richard Guenther  <rguenther@suse.de>
7724
7725         PR tree-optimization/34677
7726         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
7727         (poolify_tree): Likewise.
7728         (modify_expr_template): Likewise.
7729         (poolify_modify_stmt): Likewise.
7730         (insert_fake_stores): Handle all component-ref style stores
7731         in addition to INDIRECT_REF.  Also handle complex types.
7732         Do not poolify the inserted load.
7733         (realify_fake_stores): Do not rebuild the tree but only
7734         make it a SSA_NAME copy.
7735         (init_pre): Remove initialzation of modify_expr_template.
7736         Do not allocate modify_expr_node_pool.
7737         (fini_pre): Do not free modify_expr_node_pool.
7738
7739 2008-03-10  Paul Brook  <paul@codesourcery.com>
7740
7741         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
7742         to avoid conflicts.
7743
7744 2008-03-10  Paul Brook  <paul@codesourcery.com>
7745             Mark Shinwell  <shinwell@codesourcery.com>
7746
7747         * config/arm/cortex-r4.md: New.
7748         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
7749         insn attributes.
7750         * config/arm/arm.md: Include cortex-r4.md.
7751         (insn): Add smmls, sdiv and udiv values.
7752         (generic_sched): Don't use generic scheduling for Cortex-R4.
7753         (arm_issue_rate): New function.
7754         (TARGET_SCHED_ISSUE_RATE): Define.
7755
7756 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
7757
7758         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
7759
7760 2008-03-10  Richard Guenther  <rguenther@suse.de>
7761
7762         * tree-ssa-pre.c (get_sccvn_value): Simplify.
7763         (compute_avail): Do not add stmt uses to AVAIL_OUT.
7764
7765 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
7766
7767         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
7768         Set default to true.
7769
7770 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7771
7772         * c.opt (Wsynth): Deprecate.
7773         * doc/invoke.texi (Option Summary, Warning Options): Document
7774         -Wno-format-contains-nul.
7775
7776 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
7777
7778         PR target/35496
7779         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
7780         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
7781
7782 2008-03-09  Ira Rosen  <irar@il.ibm.com>
7783
7784         * config/rs6000/rs6000.c (builtin_description): Rename vector
7785         left shift operations.
7786         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
7787         (altivec_vsl<VI_char>): Rename to ...
7788         (ashl<mode>3): ... new name.
7789         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
7790         gen_ashlv4si3.
7791         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
7792
7793 2008-03-08  Richard Guenther  <rguenther@suse.de>
7794
7795         * coverage.h (tree_coverage_counter_addr): Declare.
7796         * coverage.c (tree_coverage_counter_addr): New function.
7797         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
7798         before using again.
7799         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
7800         (tree_gen_one_value_profiler): Likewise.
7801         (tree_gen_ic_profiler): Likewise.
7802         (tree_gen_average_profiler): Likewise.
7803         (tree_gen_ior_profiler): Likewise.
7804
7805 2008-03-08  Richard Guenther  <rguenther@suse.de>
7806
7807         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
7808         (vn_binary_op_insert): Likewise.
7809         (vn_unary_op_lookup): Likewise.
7810         (vn_unary_op_insert): Likewise.
7811         (vn_nary_op_lookup): Declare.
7812         (vn_nary_op_insert): Likewise.
7813         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
7814         and binary hashes, use a single obstack for unary_op_pool
7815         and binary_op_pool.
7816         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
7817         a single struct vn_nary_op_s.  Store tree code length and
7818         a variable number of operands.
7819         (struct vn_reference_op_struct): Remove unused op2.
7820         (vn_reference_op_eq): Do not compare op2.
7821         (vn_reference_op_compute_hash): Do not compute hash of op2.
7822         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
7823         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
7824         with vn_nary_op_compute_hash.
7825         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
7826         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
7827         vn_nary_op_lookup.
7828         (vn_unary_op_insert, vn_binary_op_insert): Replace with
7829         vn_nary_op_insert.
7830         (visit_unary_op): Call nary functions.
7831         (visit_binary_op): Likewise.
7832         (process_scc): Adjust for struct vn_tables_s changes.
7833         (allocate_vn_table): Likewise.
7834         (free_vn_table): Likewise.
7835         * tree-vn.c (vn_add): Call nary functions.
7836         (vn_lookup): Likewise.
7837
7838 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
7839
7840         PR target/35498
7841         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
7842         wdst back after sync_compare_and_swapqhi_internal.
7843
7844 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
7845
7846         PR target/22152
7847         * config/i386/i386-modes.def (V1DI): New vector mode.
7848         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
7849         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
7850         (MMXMODE248): Ditto.
7851         (MMXMODE): Add V1DI mode.
7852         (mmxvecsize): Change DI mode to V1DI mode.
7853         ("mov<mode>): Use MMXMODEI8 mode iterator.
7854         ("*mov<mode>_internal_rex64"): Ditto.
7855         ("*mov<mode>_internal"): Ditto.
7856         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
7857         ("mmx_sub<mode>3"): Ditto.
7858         ("mmx_adddi3"): Remove insn pattern.
7859         ("mmx_subdi3"): Ditto.
7860         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
7861         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
7862         ("mmx_ashl<mode>3"): Ditto.
7863         ("mmx_lshrdi3"): Remove insn pattern.
7864         ("mmx_ashldi3"): Ditto.
7865         * config/i386/i386.c (classify_argument): Handle V1DImode.
7866         (function_arg_advance_32): Ditto.
7867         (function_arg_32): Ditto.
7868         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
7869         mmx_addv1di3 insn pattern.
7870         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
7871         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
7872         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
7873         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
7874         Remove definitions of built-in functions.
7875         (V1DI_type_node): New node.
7876         (v1di_ftype_v1di_int): Ditto.
7877         (v1di_ftype_v1di_v1di): Ditto.
7878         (v2si_ftype_v2si_si): Ditto.
7879         (v4hi_ftype_v4hi_di): Remove node.
7880         (v2si_ftype_v2si_di): Ditto.
7881         (ix86_init_mmx_sse_builtins): Handle V1DImode.
7882         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
7883         Redefine builtins using def_builtin_const with *_ftype_*_int node.
7884         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
7885         Add new builtins using def_builtin_const.
7886         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
7887         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
7888         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
7889         * config/i386/mmintrin.h (__v1di): New typedef.
7890         (_mm_add_si64): Cast arguments to __v1di type.
7891         (_mm_sub_si64): Ditto.
7892         (_mm_sll_pi16): Cast __count to __v4hi type.
7893         (_mm_sll_pi32): Cast __count to __v2si type.
7894         (_mm_sll_si64): Cast arguments to __v1di type.
7895         (_mm_srl_pi16): Cast __count to __v4hi type.
7896         (_mm_srl_pi32): Cast __count to __v2si type.
7897         (_mm_srl_si64): Cast arguments to __v1di type.
7898         (_mm_sra_pi16): Cast __count to __v4hi type.
7899         (_mm_sra_pi32): Cast __count to __v2si type.
7900         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
7901         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
7902         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
7903         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
7904         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
7905         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
7906         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
7907         (_mm_srai_pi32): Use __builtin_ia32_psradi.
7908         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
7909         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
7910         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
7911         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
7912
7913 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
7914
7915         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
7916
7917 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
7918
7919         PR target/35373
7920         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
7921         reg+const addressing for Altivec modes.  Don't generate reg+reg
7922         addressing for TFmode or TDmode quantities.
7923
7924 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
7925
7926         * c-common.c (vector_types_convertible_p): Call langhook
7927         instead of comptypes.
7928
7929 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7930
7931         PR tree-opt/35402
7932         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
7933         integral and scalar float variables which have a
7934         NULL DECL_INITIAL.
7935
7936 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
7937
7938         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
7939         dwarf_register_span hook when emitting unwind information for
7940         register-to-memory saves.
7941         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
7942         (rs6000_frame_related): Remove call to spe_synthesize_frame.
7943
7944 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
7945
7946         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
7947         for the same VAR_DECL.
7948
7949 2008-03-06  Tom Tromey  <tromey@redhat.com>
7950
7951         * treelang: Delete.
7952         * doc/standards.texi (Standards): Don't mention treelang.
7953         * doc/invoke.texi (Overall Options): Don't mention treelang.
7954         * doc/install.texi (Prerequisites): Don't mention bison or
7955         treelang.
7956         (Configuration): Don't mention treelang.
7957         (Building): Likewise.
7958         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
7959
7960 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
7961
7962         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
7963         word-extractions out of a multi-word object.
7964
7965 2008-03-06  Richard Guenther  <rguenther@suse.de>
7966
7967         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
7968         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
7969         result type and precision.
7970         * expr.c (get_inner_reference): Set unsignedp based on the result
7971         type of BIT_FIELD_REF.
7972         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
7973         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
7974         (try_instantiate_multiple_fields): Likewise.  Use the correct type
7975         for BIT_FIELD_REF.
7976         (sra_build_assignment): Likewise.
7977         (sra_build_elt_assignment): Likewise.
7978         (sra_explode_bitfield_assignment): Likewise.
7979         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
7980         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
7981         set BIT_FIELD_REF_UNSIGNED.
7982         (vectorizable_load): Likewise.
7983
7984 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
7985
7986         * cse.c (cse_extended_basic_block): Invalidate artificial defs
7987         at bb start.
7988
7989 2008-03-06  Richard Guenther  <rguenther@suse.de>
7990
7991         * alias.c (struct alias_set_entry): Move has_zero_child field
7992         to pack with alias_set.
7993
7994 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
7995
7996         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
7997         32bit host.
7998
7999 2008-03-05  Ian Lance Taylor  <iant@google.com>
8000
8001         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
8002
8003 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
8004
8005         * fwprop.c (update_df): Support width and offset parameters of
8006         df_ref_create.
8007         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
8008         global_conflicts): Change DF_REF_EXTRACT to either
8009         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
8010         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
8011         * df-scan.c (df_ref_record, df_defs_record,
8012         df_ref_create_structure, df_def_record_1, df_uses_record,
8013         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
8014         df_bb_refs_collect, df_entry_block_defs_collect,
8015         df_exit_block_uses_collect): Support new width and offset fields.
8016         (ref_extract_pool): New storage pool.
8017         (df_free_ref): New function.
8018         (df_reg_chain_unlink, df_free_collection_rec,
8019         df_sort_and_compress_refs): Call df_free_ref.
8020         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
8021         of df_ref_extract.
8022         (df_ref_create_structure): Allocate df_ref_extract if offset and
8023         width fields are used.
8024         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
8025         (df_uses_record): Get offset and width from ZERO_EXTRACT 
8026         and SIGN_EXTRACT.
8027         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
8028         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
8029         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
8030         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
8031         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
8032         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
8033         (df_ref_extract): New structure.
8034         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
8035         (df_ref_create): Add width and offset parameters.
8036         
8037 2008-03-05  Richard Guenther  <rguenther@suse.de>
8038
8039         * tree-ssa-structalias.c (get_constraint_for_component_ref):
8040         Use ranges_overlap_p.
8041         (offset_overlaps_with_access): Rename
8042         to ranges_overlap_p and move ...
8043         * tree-flow-inline.h (ranges_overlap_p): ... here.
8044
8045         * tree.h (get_inner_reference, handled_component_p): Update
8046         comments.
8047
8048         * tree.h (record_component_aliases, get_alias_set,
8049         alias_sets_conflict_p, alias_sets_must_conflict_p,
8050         objects_must_conflict_p): Move declarations ...
8051         * alias.h (record_component_aliases, get_alias_set,
8052         alias_sets_conflict_p, alias_sets_must_conflict_p,
8053         objects_must_conflict_p): ... here.
8054         Include coretypes.h.
8055         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
8056
8057 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
8058
8059         * cfg.c: Include tree-flow.h.
8060         (remove_edge_raw): Call redirect_edge_var_map_clear.
8061         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
8062         * tree-flow-inline.h (redirect_edge_var_map_def): New.
8063         (redirect_edge_var_map_result): New.
8064         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
8065         PENDING_STMT use with redirect_edge_var_map_*.
8066         * tree-ssa.c (edge_var_maps): New definition.
8067         (redirect_edge_var_map_add): New.
8068         (redirect_edge_var_map_clear): New.
8069         (redirect_edge_var_map_dup): New.
8070         (redirect_edge_var_map_vector): New.
8071         (redirect_edge_var_map_destroy): New.
8072         (ssa_redirect_edge): Replace PENDING_STMT use with
8073         redirect_edge_var_map_*.
8074         (flush_pending_stmts): Same.
8075         (delete_tree_ssa): Destroy edge var map.
8076         * tree-flow.h (struct _edge_var_map): New.
8077         Define edge_var_map vector type.
8078         Declare redirect_edge_var_map_* prototypes.
8079         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
8080         * tree-cfg.c (reinstall_phi_args): Replace
8081         PENDING_STMT use with redirect_edge_var_map_*.
8082
8083 2008-03-05  Richard Guenther  <rguenther@suse.de>
8084
8085         PR tree-optimization/35472
8086         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
8087         whose single use_stmt has a overlapping set of loaded and
8088         stored symbols as that use_stmt might be a noop assignment then.
8089
8090 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
8091
8092         * gthr-rtems.h: Implement __gthread_mutex_destroy.
8093
8094 2008-03-05  Richard Guenther  <rguenther@suse.de>
8095
8096         PR c++/35336
8097         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
8098         should be constants.
8099         * tree-cfg.c (verify_expr): Verify it.
8100         * fold-const.c (fold_truthop): Remove code generating
8101         BIT_FIELD_REFs of structure bases.
8102         (fold_binary): Likewise.
8103         (fold_ternary): Position and size of BIT_FIELD_REFs are
8104         always host integers.
8105         (make_bit_field_ref): Remove.
8106         (optimize_bit_field_compare): Remove.
8107         (all_ones_mask_p): Remove.
8108
8109 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
8110
8111         PR gcc/33009
8112         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
8113         (split_block_and_df_analyze): New. Split basic block and rebuild
8114         dataflow.
8115         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
8116         SPLIT_BLOCK.
8117         (split_pattern_seq): Likewise.
8118         (erase_matching_seqs): Likewise.
8119         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
8120
8121 2008-03-04  Geoff Keating  <geoffk@apple.com>
8122
8123         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
8124         declaration and code.
8125         (tree_invalid_nonnegative_warnv_p): Likewise.
8126
8127 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
8128
8129         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
8130         examples.  Truncate option-names then causing overfull hbox.
8131
8132 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8133
8134         PR target/35222
8135         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
8136         on hpux10.
8137         * configure: Rebuilt.
8138
8139 2008-03-04  Rafael Espindola  <espindola@google.com>
8140
8141         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
8142         (tree_unary_nonnegative_warnv_p): New.
8143         (tree_binary_nonnegative_warnv_p): New.
8144         (tree_single_nonnegative_warnv_p): New.
8145         (tree_invalid_nonnegative_warnv_p): New.
8146         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
8147
8148 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8149
8150         PR 28322
8151         * opts.c (handle_option): Postpone 'unknown option' errors only for
8152         warning options.
8153
8154 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
8155
8156         PR target/35453
8157         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
8158         (_SIDD_XXX): This.
8159
8160 2008-03-04  Rafael Espindola  <espindola@google.com>
8161
8162         * fold-const.c (tree_unary_nonzero_warnv_p): New.
8163         (tree_binary_nonzero_warnv_p): New.
8164         (tree_single_nonzero_warnv_p): New.
8165         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
8166
8167 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
8168
8169         PR middle-end/35456
8170         * fold-const.c (fold_cond_expr_with_comparison): Prevent
8171         transformations for modes that have signed zeros.
8172         * ifcvt.c (noce_try_abs): Ditto.
8173
8174 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
8175
8176         * config/i386/i386.c (override_options): Force
8177         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
8178
8179 2008-03-04  Jan Hubicka  <jh@suse.cz>
8180
8181         PR c++/35262
8182         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
8183         in last commit.
8184
8185 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
8186
8187         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
8188         label to probe the stack.
8189
8190 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
8191
8192         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
8193         (__gthr_win32_mutex_destroy): Declare.
8194         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
8195         __gthr_win32_mutex_destroy.
8196         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
8197
8198 2008-03-03  Jan Hubicka  <jh@suse.cz>
8199
8200         PR c++/35262
8201         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
8202         aggressive on inlining cold calls.
8203
8204 2008-03-03  Richard Guenther  <rguenther@suse.de>
8205
8206         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
8207         struct copies into the expression table.
8208         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
8209         (try_to_simplify): Likewise.
8210         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
8211         integral and pointer arguments which do not change the
8212         precision to NOP_EXPRs.
8213         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
8214         VIEW_CONVERT_EXPR case.
8215
8216 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
8217
8218         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
8219         defined in a loop at depth 0 is invariant.
8220         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
8221         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
8222         be called at loop depth 0.
8223
8224 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
8225
8226         PR driver/35420
8227         * gcc.c (process_command): Update copyright notice dates.
8228         * gcov.c (print_version): Likewise.
8229         * gcov-dump.c (print_version): Likewise.
8230         * mips-tfile.c (main): Likewise.
8231         * mips-tdump.c (main): Likewise.
8232
8233 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8234
8235         PR 24924
8236         * c-common.c (flag_permissive): Delete.
8237         (constant_expression_warnings): Check flags first.
8238         (constant_expression_error): New.
8239         * c-common.h (flag_permissive): Delete.
8240         (constant_expression_error): Declare.
8241         * flags.h (flag_permissive): Declare. Update description.
8242         * diagnostic.c (pedwarn): Update.
8243         (permerror): New.
8244         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
8245         (permissive_error_kind): New.
8246         * toplev.c (flag_permissive): Define. Update description.
8247         * toplev.h (permissive_error_kind): Declare.
8248         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
8249         (pedwarn_c90): Use pedantic_warning_kind.
8250         * c-opts.c (c_common_post_options): flag_permissive does not affect
8251         flag_pedantic_errors.
8252
8253 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
8254
8255         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
8256         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
8257         __absvsi2, __absvDI2): Use unsigned arithmetic.
8258
8259 2008-03-02  Andi Kleen  <ak@suse.de>
8260             Richard Guenther  <rguenther@suse.de>
8261
8262         * struct-equiv.c: Remove file.
8263         * cfg_cleanup.c (condjump_equiv_p): Remove.
8264         * Makefile.in (OBJS-common): Remove struct-equiv.o.
8265         (struct-equiv.o): Remove rule.
8266         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
8267         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
8268         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
8269
8270 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
8271
8272         * ifcvt.c (noce_process_if_block): Try to handle only the then
8273         block if the else block exists but isn't suitable.
8274
8275 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
8276
8277         PR gcc/35063
8278         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
8279         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
8280         regression from previous patch.
8281
8282 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
8283
8284         PR gcc/35063
8285         * gthr.h: Add __gthread_mutex_destroy as a function that must be
8286         implemented.
8287         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
8288         * gthr-single.h (__gthread_mutex_destroy): Likewise.
8289         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
8290         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
8291         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
8292         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
8293         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
8294         (__gthread_mutex_destroy_function): Rename to
8295         __gthread_mutex_destroy.
8296         * gthr-dce.h (__gthread_mutex_destroy): Call
8297         pthread_mutex_destroy.
8298         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
8299         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
8300         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
8301
8302 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
8303
8304         * df-scan.c (df_ref_chain_change_bb): Simplify.
8305         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
8306         set_block_for_insn if there's any change.
8307         * df.h ((df_insn_change_bb): Fix prototype.
8308         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
8309         df_insn_change_bb, don't call set_block_for_insn.
8310         * emit-rtl.c (reorder_insns): Likewise.
8311         * haifa-sched.c (move_insn): Likewise.
8312
8313 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
8314
8315         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
8316
8317 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
8318
8319         * tree-flow-inline.h (next_readonly_imm_use): Return
8320         NULL_USE_OPERAND_P after the end.
8321
8322 2008-03-01  Richard Guenther  <rguenther@suse.de>
8323
8324         PR tree-optimization/35411
8325         * tree-sra.c (sra_build_assignment): Split conversion to
8326         final type to a separate statement if we are not assigning
8327         to a register.
8328
8329 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
8330
8331         * fold-const.c (fold_convertible_p): Correct the logic to follow
8332         that in fold_convert().
8333
8334 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
8335
8336         PR c++/35315
8337         * tree-inline.c (build_duplicate_type): When we make a
8338         duplicate type, make it unique in the canonical types system.
8339
8340 2008-02-29  Tom Tromey  <tromey@redhat.com>
8341
8342         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
8343         input_file_stack_history, input_file_stack_restored): Remove.
8344         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
8345         * input.h (struct file_stack): Remove.
8346         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
8347         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
8348         Likewise.
8349         * diagnostic.h (struct diagnostic_context) <last_module>: Change
8350         type.
8351         (diagnostic_last_module_changed): Add 'map' argument.
8352         (diagnostic_set_last_function): Likewise.
8353         * diagnostic.c (undiagnostic_report_current_module): Iterate using
8354         line map, not input_file_stack.
8355         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
8356
8357 2008-02-29  Paul Brook  <paul@codesourcery.com>
8358
8359         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
8360
8361 2008-02-29  Paul Brook  <paul@codesourcery.com>
8362
8363         * config/arm/ieee754-df.S (muldf3): Use RET macros.
8364
8365 2008-02-29  Richard Guenther  <rguenther@suse.de>
8366
8367         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
8368         vn_lookup_or_add.
8369         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
8370         value for comparing for a store match.
8371         (simplify_unary_expression): Do nothing for SSA_NAMEs.
8372         (try_to_simplify): Do not do a full-blown reference lookup.
8373
8374 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
8375
8376         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
8377         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
8378
8379         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
8380
8381 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
8382
8383         * tree-loop-linear.c (try_interchange_loops): Compare memory access
8384         strides against cache sizes.
8385
8386 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
8387
8388         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
8389         constant to fpul.
8390
8391 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
8392
8393         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
8394         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
8395         is smaller than the original promoted value.
8396         (simplify_subreg): If OP is a SUBREG, try to preserve its
8397         SUBREG_PROMOTED_VAR_P information.
8398
8399 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
8400
8401         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
8402         (VN_INFO_GET): Allocate new objects on the obstack.
8403         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
8404         for rpo_numbers_temp, for consistency.
8405         (free_scc_vn): Free the obstack.
8406
8407 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
8408
8409         * doc/invoke.texi: Document -ftree-loop-distribution.
8410         * tree-loop-distribution.c: New.
8411         * tree-pass.h (pass_loop_distribution): New.
8412         * graphds.h (struct graph): Add htab_t indices.
8413         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
8414         * tree-vectorizer.c (rename_variables_in_loop): Extern.
8415         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
8416         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
8417         * tree-data-ref.c (debug_data_dependence_relations): New.
8418         (dump_data_dependence_relation): Also print data references.
8419         (free_data_ref): Extern.
8420         (same_access_functions): Moved...
8421         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
8422         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
8423         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
8424         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
8425         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
8426         (stmts_from_loop): Skip LABEL_EXPR.
8427         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
8428         New.
8429         (build_rdg): Initialize rdg->indices htab.
8430         (free_rdg, stores_from_loop, ref_base_address,
8431         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
8432         have_similar_memory_accesses_1, ref_base_address_1,
8433         remove_similar_memory_refs): New.
8434         * tree-data-ref.h: Depend on tree-chrec.h.
8435         (debug_data_dependence_relations, free_data_ref): Declared.
8436         (same_access_functions): ... here.
8437         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
8438         New.
8439         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
8440         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
8441         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
8442         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
8443         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
8444         rdg_vertex_for_stmt): Declared.
8445         (struct rdg_edge): Add level.
8446         (RDGE_LEVEL): New.
8447         (free_rdg, stores_from_loop, remove_similar_memory_refs,
8448         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
8449         Declared.
8450         (rdg_has_similar_memory_accesses): New.
8451         * tree-vect-analyze.c: Remove unused static decls.
8452         * lambda.h (dependence_level): New.
8453         * common.opt (ftree-loop-distribution): New.
8454         * tree-flow.h (mark_virtual_ops_in_bb, 
8455         slpeel_tree_duplicate_loop_to_edge_cfg,
8456         rename_variables_in_loop): Declared.
8457         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
8458         (OBJS-common): Add tree-loop-distribution.o.
8459         (tree-loop-distribution.o): New rule.
8460         * tree-cfg.c (mark_virtual_ops_in_bb): New.
8461         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
8462         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
8463
8464 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
8465
8466         PR target/33963
8467         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
8468         other than structures and unions.
8469
8470 2008-02-28  Richard Guenther  <rguenther@suse.de>
8471
8472         Revert:
8473         2008-02-26  Richard Guenther  <rguenther@suse.de>
8474
8475         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8476         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8477         (lookup_decl_from_uid): Declare.
8478         (remove_decl_from_map): Likewise.
8479         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8480         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8481         (decl_for_uid_map): New global hashtable mapping DECL_UID
8482         to the decl tree.
8483         (init_ttree): Allocate it.
8484         (insert_decl_to_uid_decl_map): New helper function.
8485         (make_node_stat): Insert new decls into the map.
8486         (copy_node_stat): Likewise.
8487         (lookup_decl_from_uid): New function.
8488         (remove_decl_from_map): Likewise.
8489         (print_decl_for_uid_map_statistics): New helper.
8490         (dump_tree_statistics): Call it.
8491
8492         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8493         (referenced_var_iterator): Adjust.
8494         (FOR_EACH_REFERENCED_VAR): Adjust.
8495         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8496         (num_referenced_vars): Adjust.
8497         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8498         (first_referenced_var): Remove.
8499         (end_referenced_vars_p): Likewise.
8500         (next_referenced_var): Likewise.
8501         (referenced_var_iterator_set): New helper function.
8502         * tree-dfa.c (referenced_var_lookup): Adjust.
8503         (referenced_var_check_and_insert): Likewise.
8504         (remove_referenced_var): Likewise.
8505         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8506         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8507         (verify_call_clobbering): Likewise.
8508         (verify_memory_partitions): Likewise.
8509         (init_tree_ssa): Allocate bitmap instead of hashtable for
8510         referenced_vars.
8511         (delete_tree_ssa): Adjust.
8512         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8513         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8514         (compute_tag_properties): Likewise.
8515         (set_initial_properties): Likewise.
8516         (find_partition_for): Likewise.
8517         (update_reference_counts): Likewise.
8518         (dump_may_aliases_for): Likewise.
8519         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8520         (add_call_clobber_ops): Likewise.
8521         (add_call_read_ops): Likewise.
8522         (get_asm_expr_operands): Likewise.
8523         * tree-into-ssa.c (dump_decl_set): Likewise.
8524         (update_ssa): Likewise.
8525         * tree-sra.c (scan_function): Likewise.
8526         (decide_instantiations): Likewise.
8527         (scalarize_parms): Likewise.
8528         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8529         (dsa_named_for): Likewise.
8530         * tree-ssa-structalias.c (update_alias_info): Likewise.
8531         (merge_smts_into): Likewise.
8532
8533 2008-02-27  David Daney  <ddaney@avtrex.com>
8534
8535         PR target/34409
8536         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
8537         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
8538         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
8539         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
8540         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
8541
8542 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
8543
8544         PR target/25477
8545         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
8546         (BUILT_IN_NEXTTOWARD): Remove.
8547         (BUILT_IN_NEXTTOWARDF): Ditto.
8548         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
8549         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
8550
8551 2008-02-27  Tom Tromey  <tromey@redhat.com>
8552
8553         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
8554         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
8555
8556 2008-02-27  Jan Beulich  <jbeulich@novell.com>
8557
8558         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
8559         update the respective field on newdecl.
8560
8561 2008-02-27  Revital Eres  <eres@il.ibm.com>
8562
8563         PR rtl-optimization/34999
8564         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
8565         crossing edges that ends with a call insn.
8566         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
8567         call insn and clear the EDGE_CROSSING flag of the crossing edge
8568         when fixing fallthru edges.
8569
8570 2008-02-27  Richard Guenther  <rguenther@suse.de>
8571
8572         PR middle-end/35390
8573         * fold-const.c (fold_unary): Return the correct argument,
8574         converted to the result type.
8575
8576 2008-02-27  Richard Guenther  <rguenther@suse.de>
8577
8578         PR middle-end/34971
8579         * expr.c (expand_expr_real_1): Assert on rotates that operate
8580         on partial modes.
8581         * fold-const.c (fold_binary): Use the types precision, not the
8582         bitsize of the mode if folding rotate expressions.  Build rotates
8583         only for full modes.
8584
8585 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
8586
8587         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
8588         and CPP_PRAGMA_EOL.
8589         * c-pragma.c (pragma_ns_name): New typedef.
8590         (registered_pp_pragmas): New variable.
8591         (c_pp_lookup_pragma): New function.
8592         (c_register_pragma_1): If flag_preprocess_only, do nothing
8593         for non-expanded pragmas, for expanded ones push pragma's
8594         namespace and name into registered_pp_pragmas vector.
8595         (c_invoke_pragma_handler): Register OpenMP pragmas even when
8596         flag_preprocess_only, don't register GCC pch_preprocess
8597         pragma if flag_preprocess_only.
8598         * c-opts.c (c_common_init): Call init_pragma even if
8599         flag_preprocess_only.
8600         * c-pragma.c (c_pp_lookup_pragma): New prototype.
8601         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
8602         cpp_register_pragma if flag_preprocess_only.
8603
8604 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8605
8606         PR c/28800
8607         * c-parser.c (c_parser_translation_unit): Warn for empty
8608         translation unit, not empty source file.
8609
8610 2008-02-26  Paul Brook  <paul@codesourcery.com>
8611
8612         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
8613         operand for Thumb-2.
8614         * config/arm/arm.h (reg_class): Add CORE_REGS.
8615         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
8616         (BASE_REG_CLASS): Use CORE_REGS.
8617         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
8618         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
8619         (REGNO_OK_FOR_INDEX_P): Exclude SP.
8620         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
8621         ARM_REGNO_OK_FOR_INDEX_P.
8622         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
8623         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
8624         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
8625         (ldm/stm peepholes): Ditto.
8626         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
8627         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
8628         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
8629         * config/arm/constraints.md: Enable "k" constraint on ARM.
8630
8631 2008-02-27  Ben Elliston  <bje@au.ibm.com>
8632
8633         * config/rs6000/rs6000.c: Annotate cache line size field in all
8634         instances of struct processor_costs.
8635
8636 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
8637
8638         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
8639         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
8640         jump_bypass): New counters.
8641         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
8642         * dce.c (gate_ud_dce): Same.
8643         (gate_fast_dce): Same.
8644         * dse.c (gate_dse1): New function.
8645         (gate_dse2): New function.
8646         (gate_dse): Merge results of new gate functions.
8647         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
8648         (gate_handle_jump_bypass): Add dbg_cnt.
8649         (gate_handle_gcse): Add dbg_cnt.
8650         * ifcvt.c (gate_handle_if_conversion): Same.
8651         (gate_handle_if_after_combine): Same.
8652         (gate_handle_if_after_reload): Same.
8653         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
8654
8655 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
8656
8657         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
8658         line sizes.
8659         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
8660
8661 2008-02-26  Jason Merrill  <jason@redhat.com>
8662
8663         PR c++/35315
8664         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
8665         alone if it's the naming decl for the type's main variant.
8666
8667 2008-02-26  Tom Tromey  <tromey@redhat.com>
8668
8669         * system.h (USE_MAPPED_LOCATION): Poison.
8670         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
8671         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
8672         (make_goto_expr_edges): Likewise.
8673         (remove_bb): Likewise.
8674         (execute_warn_function_return): Likewise.
8675         * basic-block.h (struct edge_def) <goto_locus>: Change type to
8676         location_t.
8677         * c-common.c (fname_decl): Remove old location code.
8678         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
8679         location code.
8680         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
8681         variant.
8682         (ASM_INPUT_SOURCE_LOCATION): Likewise.
8683         (gen_rtx_ASM_INPUT): Likewise.
8684         (gen_rtx_ASM_INPUT_loc): Likewise.
8685         (get_rtx_asm_OPERANDS): Remove.
8686         * cfglayout.c (insn_locators_alloc): Remove old location code.
8687         (set_curr_insn_source_location): Likewise.
8688         (curr_insn_locator): Likewise.
8689         * print-tree.c (print_node): Remove old location code.
8690         * tree-mudflap.c (mf_varname_tree): Remove old location code.
8691         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
8692         * cfgexpand.c (expand_gimple_cond_expr): Don't use
8693         location_from_locus.
8694         (construct_exit_block): Remove old location code.
8695         * emit-rtl.c (force_next_line_note): Remove old location code.
8696         * profile.c (branch_prob): Remove old location code.
8697         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
8698         LOC_LINE): Remove old-location variants.
8699         * langhooks.c (lhd_print_error_function): Remove old location
8700         code.
8701         * configure, config.in: Rebuilt.
8702         * configure.ac (--enable-mapped-location): Remove.
8703         * c-decl.c (c_init_decl_processing): Remove old location code.
8704         (finish_function): Likewise.
8705         * recog.c (decode_asm_operands): Remove old location code.
8706         * c-pch.c (c_common_read_pch): Remove old location code.
8707         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
8708         variants.
8709         * gimple-low.c (lower_function_body): Remove old location code.
8710         * toplev.c (unknown_location): Remove.
8711         (push_srcloc): Remove old-location variant.
8712         (process_options): Remove old location code.
8713         (lang_dependent_init): Likewise.
8714         * input.h (UNKNOWN_LOCATION): Move definition.
8715         (location_t): Undeprecate.
8716         (source_locus): Remove.
8717         (location_from_locus): Remove.
8718         (struct location_s): Remove.
8719         Remove all old-location code.
8720         (input_line, input_filename): Remove.
8721         * final.c (final_scan_insn): Remove old location code.
8722         * diagnostic.c (diagnostic_build_prefix): Remove
8723         USE_MAPPED_LOCATION test.
8724         * tree.h (gimple_stmt) <locus>: Now a location_t.
8725         (tree_exp) <locus>: Likewise.
8726         (DECL_IS_BUILTIN): Remove old-location variant.
8727         (annotate_with_file_line, annotate_with_locus): Likewise.
8728         (expr_locus, set_expr_locus): Update.
8729         * tree.c (build1_stat): Remove old location code.
8730         (last_annotated_node): Remove.
8731         (annotate_with_file_line): Remove old-location variant.
8732         (annotate_with_locus): Likewise.
8733         (expr_location): Remove old location code.
8734         (set_expr_location): Likewise.
8735         (expr_has_location): Likewise.
8736         (expr_locus): Likewise.
8737         (set_expr_locus): Likewise.
8738         (expr_filename): Don't use location_from_locus.
8739         (expr_lineno): Likewise.
8740         * rtl-error.c (location_for_asm): Remove old location code.
8741         * c-lex.c (cb_line_change): Remove old location code.
8742         (fe_file_change): Likewise.
8743         (cb_def_pragma): Likewise.
8744         (c_lex_with_flags): Likewise.
8745         * gengtype.c (do_typedef): Don't special-case location types.
8746         (define_location_structures): Remove.
8747         (main): Don't call define_location_structures.
8748         * tree-pretty-print.c (dump_implicit_edges): Remove old location
8749         code.
8750
8751 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8752
8753         PR 26264
8754         * builtins.def (BUILT_IN_STDARG_START): Remove.
8755         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
8756         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
8757         * tree-inline.c (inline_forbidden_p_1): Likewise.
8758         
8759 2008-02-26  Richard Guenther  <rguenther@suse.de>
8760
8761         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8762         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8763         (lookup_decl_from_uid): Declare.
8764         (remove_decl_from_map): Likewise.
8765         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8766         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8767         (decl_for_uid_map): New global hashtable mapping DECL_UID
8768         to the decl tree.
8769         (init_ttree): Allocate it.
8770         (insert_decl_to_uid_decl_map): New helper function.
8771         (make_node_stat): Insert new decls into the map.
8772         (copy_node_stat): Likewise.
8773         (lookup_decl_from_uid): New function.
8774         (remove_decl_from_map): Likewise.
8775         (print_decl_for_uid_map_statistics): New helper.
8776         (dump_tree_statistics): Call it.
8777
8778         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8779         (referenced_var_iterator): Adjust.
8780         (FOR_EACH_REFERENCED_VAR): Adjust.
8781         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8782         (num_referenced_vars): Adjust.
8783         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8784         (first_referenced_var): Remove.
8785         (end_referenced_vars_p): Likewise.
8786         (next_referenced_var): Likewise.
8787         (referenced_var_iterator_set): New helper function.
8788         * tree-dfa.c (referenced_var_lookup): Adjust.
8789         (referenced_var_check_and_insert): Likewise.
8790         (remove_referenced_var): Likewise.
8791         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8792         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8793         (verify_call_clobbering): Likewise.
8794         (verify_memory_partitions): Likewise.
8795         (init_tree_ssa): Allocate bitmap instead of hashtable for
8796         referenced_vars.
8797         (delete_tree_ssa): Adjust.
8798         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8799         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8800         (compute_tag_properties): Likewise.
8801         (set_initial_properties): Likewise.
8802         (find_partition_for): Likewise.
8803         (update_reference_counts): Likewise.
8804         (dump_may_aliases_for): Likewise.
8805         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8806         (add_call_clobber_ops): Likewise.
8807         (add_call_read_ops): Likewise.
8808         (get_asm_expr_operands): Likewise.
8809         * tree-into-ssa.c (dump_decl_set): Likewise.
8810         (update_ssa): Likewise.
8811         * tree-sra.c (scan_function): Likewise.
8812         (decide_instantiations): Likewise.
8813         (scalarize_parms): Likewise.
8814         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8815         (dsa_named_for): Likewise.
8816         * tree-ssa-structalias.c (update_alias_info): Likewise.
8817         (merge_smts_into): Likewise.
8818
8819 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8820
8821         PR 34351
8822         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
8823         * c-opts.c (c_common_handle_option): Wall enables
8824         Wvolatile-register-var.
8825         * common.opt: Move Wvolatile-register-var to...
8826         * c.opt: ...here.
8827         
8828 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8829
8830         * common.opt (Wlarger-than=): New.
8831         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
8832         -Wlarger-than=.
8833         * opts.c (common_handle_option): Handle -Wlarger-than=.
8834         * optc-gen.awk: Likewise.
8835         * opth-gen.awk: Likewise.
8836         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
8837         * tree-optimize.c (tree_rest_of_compilation): Likewise.
8838         
8839 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8840
8841         * c-common.c (match_case_to_enum_1): Add appropriate
8842         OPT_W* parameter to warning.
8843         (c_do_switch_warnings): Likewise.
8844         * c-typeck.c (warning_init): Add one more parameter following
8845         'warning' function.
8846         (push_init_level): Update call to warning_init.
8847         (pop_init_level): Likewise.
8848         (add_pending_init): Likewise.
8849         (output_init_element: Likewise.
8850
8851 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8852
8853         PR 28322
8854         * toplev.c (toplev_main): If there are warnings or error, print
8855         errors for ignored options.
8856         * opts.c (ignored_options): New static variable.
8857         (postpone_unknown_option_error): New.
8858         (print_ignored_options): New.
8859         (handle_option): Postpone errors for unknown -Wno-* options.
8860         * opts.h (print_ignored_options): Declare.
8861         
8862 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
8863
8864         * config/mips/mips.md (loadgp_blockage, blockage): Change type
8865         to "ghost".
8866
8867 2008-02-25  Richard Guenther  <rguenther@suse.de>
8868
8869         Revert:
8870         2008-02-25  Richard Guenther  <rguenther@suse.de>
8871
8872         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8873         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8874         (lookup_decl_from_uid): Declare.
8875         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8876         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8877         (decl_for_uid_map): New global hashtable mapping DECL_UID
8878         to the decl tree.
8879         (init_ttree): Allocate it.
8880         (insert_decl_to_uid_decl_map): New helper function.
8881         (make_node_stat): Insert new decls into the map.
8882         (copy_node_stat): Likewise.
8883         (lookup_decl_from_uid): New function.
8884         (print_decl_for_uid_map_statistics): New helper.
8885         (dump_tree_statistics): Call it.
8886
8887         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8888         (referenced_var_iterator): Adjust.
8889         (FOR_EACH_REFERENCED_VAR): Adjust.
8890         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8891         (num_referenced_vars): Adjust.
8892         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8893         (first_referenced_var): Remove.
8894         (end_referenced_vars_p): Likewise.
8895         (next_referenced_var): Likewise.
8896         (referenced_var_iterator_set): New helper function.
8897         * tree-dfa.c (referenced_var_lookup): Adjust.
8898         (referenced_var_check_and_insert): Likewise.
8899         (remove_referenced_var): Likewise.
8900         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8901         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8902         (verify_call_clobbering): Likewise.
8903         (verify_memory_partitions): Likewise.
8904         (init_tree_ssa): Allocate bitmap instead of hashtable for
8905         referenced_vars.
8906         (delete_tree_ssa): Adjust.
8907         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8908         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8909         (compute_tag_properties): Likewise.
8910         (set_initial_properties): Likewise.
8911         (find_partition_for): Likewise.
8912         (update_reference_counts): Likewise.
8913         (dump_may_aliases_for): Likewise.
8914         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8915         (add_call_clobber_ops): Likewise.
8916         (add_call_read_ops): Likewise.
8917         (get_asm_expr_operands): Likewise.
8918         * tree-into-ssa.c (dump_decl_set): Likewise.
8919         (update_ssa): Likewise.
8920         * tree-sra.c (scan_function): Likewise.
8921         (decide_instantiations): Likewise.
8922         (scalarize_parms): Likewise.
8923         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8924         (dsa_named_for): Likewise.
8925         * tree-ssa-structalias.c (update_alias_info): Likewise.
8926         (merge_smts_into): Likewise.
8927
8928 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
8929
8930         PR fortran/29549
8931         * doc/invoke.texi (-fcx-limited-range): Document new option.
8932         * toplev.c (process_options): Handle -fcx-fortran-rules.
8933         * common.opt: Add documentation for -fcx-fortran-rules.
8934
8935 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
8936
8937         PR c/35162
8938         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
8939         actual behaviour and C99.
8940         
8941 2008-02-26  Ben Elliston  <bje@au.ibm.com>
8942
8943         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
8944         (ASM_CPU_POWER6_SPEC): Likewise.
8945         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
8946         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
8947         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
8948
8949 2008-02-25  Richard Guenther  <rguenther@suse.de>
8950
8951         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8952         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8953         (lookup_decl_from_uid): Declare.
8954         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8955         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8956         (decl_for_uid_map): New global hashtable mapping DECL_UID
8957         to the decl tree.
8958         (init_ttree): Allocate it.
8959         (insert_decl_to_uid_decl_map): New helper function.
8960         (make_node_stat): Insert new decls into the map.
8961         (copy_node_stat): Likewise.
8962         (lookup_decl_from_uid): New function.
8963         (print_decl_for_uid_map_statistics): New helper.
8964         (dump_tree_statistics): Call it.
8965
8966         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8967         (referenced_var_iterator): Adjust.
8968         (FOR_EACH_REFERENCED_VAR): Adjust.
8969         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8970         (num_referenced_vars): Adjust.
8971         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8972         (first_referenced_var): Remove.
8973         (end_referenced_vars_p): Likewise.
8974         (next_referenced_var): Likewise.
8975         (referenced_var_iterator_set): New helper function.
8976         * tree-dfa.c (referenced_var_lookup): Adjust.
8977         (referenced_var_check_and_insert): Likewise.
8978         (remove_referenced_var): Likewise.
8979         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8980         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8981         (verify_call_clobbering): Likewise.
8982         (verify_memory_partitions): Likewise.
8983         (init_tree_ssa): Allocate bitmap instead of hashtable for
8984         referenced_vars.
8985         (delete_tree_ssa): Adjust.
8986         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8987         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8988         (compute_tag_properties): Likewise.
8989         (set_initial_properties): Likewise.
8990         (find_partition_for): Likewise.
8991         (update_reference_counts): Likewise.
8992         (dump_may_aliases_for): Likewise.
8993         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8994         (add_call_clobber_ops): Likewise.
8995         (add_call_read_ops): Likewise.
8996         (get_asm_expr_operands): Likewise.
8997         * tree-into-ssa.c (dump_decl_set): Likewise.
8998         (update_ssa): Likewise.
8999         * tree-sra.c (scan_function): Likewise.
9000         (decide_instantiations): Likewise.
9001         (scalarize_parms): Likewise.
9002         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
9003         (dsa_named_for): Likewise.
9004         * tree-ssa-structalias.c (update_alias_info): Likewise.
9005         (merge_smts_into): Likewise.
9006
9007 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
9008
9009         PR target/35258
9010         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
9011         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
9012         * alias.h (nonoverlapping_memrefs_p): Likewise.
9013
9014 2008-02-25  Jan Beulich  <jbeulich@novell.com>
9015
9016         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
9017         * config/i386/netware-libgcc.exp: Add __bswap?i2,
9018         __emultls_get_address, __emultls_register_common,
9019         __floatundi?f, and _Unwind_GetIPInfo.
9020         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
9021         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
9022         (gen_regparm_prefix): Likewise.
9023         (i386_nlm_encode_section_info): Sync with
9024         config/i386/winnt.c:i386_pe_encode_section_info().
9025         (i386_nlm_maybe_mangle_decl_assembler_name): New.
9026         i386_nlm_mangle_decl_assembler_name): New.
9027         (netware_override_options): New.
9028         * config/i386/netware.h (netware_override_options): Declare.
9029         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
9030         (i386_nlm_mangle_decl_assembler_name): Declare.
9031         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
9032
9033 2008-02-25  Ben Elliston  <bje@au.ibm.com>
9034
9035         PR other/32948
9036         * c-decl.c (grokdeclarator): Remove unused local variables
9037         `typedef_type' and `type_as_written'.
9038         * bb-reorder.c
9039         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
9040         unused local variable `has_hot_blocks'.
9041         (fix_crossing_conditional_branches): Remove unused local variable
9042         `prev_bb'.
9043         
9044 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
9045
9046         PR middle-end/19984
9047         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
9048         using DEF_C99_BUILTIN.
9049         (BUILT_IN_NANF): Ditto.
9050         (BUILT_IN_NANL): Ditto.
9051
9052 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
9053             Revital Eres  <eres@il.ibm.com>
9054
9055         * modulo-sched.c (calculate_must_precede_follow): Address TODO
9056         regarding the order of two dependent insns in the same row.
9057
9058 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
9059
9060         * stor-layout.c (layout_decl): Do not bump the alignment of a
9061         bit-field to more than byte alignment if it is packed.
9062
9063 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
9064
9065         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
9066         e300c2 and e300c3.
9067
9068 2008-02-24  Diego Novillo  <dnovillo@google.com>
9069
9070         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
9071
9072         PR 33738
9073         * tree-vrp.c (vrp_evaluate_conditional): With
9074         -Wtype-limits, emit a warning when comparing against a
9075         constant outside the natural range of OP0's type.
9076         * c.opt (Wtype-limits): Move ...
9077         * common.opt (Wtype-limits): ... here.
9078
9079 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
9080
9081         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
9082         * config/rs6000/e300c2c3.md: New file.
9083         * config/rs6000/rs6000.c (processor_costs): Add new costs for
9084         e300c2 and e300c3.
9085         (rs6000_override_options): Add e300c2 and e300c3 cases to
9086         processor_target_table. Do not allow usage of Altivec or Spe
9087         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
9088         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
9089         * config/rs6000/rs6000.h (processor_type): Add
9090         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
9091         (ASM_CPU_SPEC): Add e300c2 and e300c3.
9092         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
9093         and ppce300c3. Include e300c2c3.md.
9094
9095 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
9096
9097         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
9098         instead of TARGET_STRICT_ALIGN.
9099
9100 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
9101
9102         * explow.c (memory_address): Assert that the generated address is
9103         valid.
9104
9105 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
9106
9107         PR target/25477
9108         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
9109         * config/darwin-ppc-ldouble-patch.def: New file.
9110         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
9111         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
9112         SUBTARGET_INIT_BUILTINS if defined.
9113         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
9114         New functions.
9115
9116 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9117
9118         PR rtl-opt/33512
9119         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
9120         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
9121
9122 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9123
9124         PR pch/35027
9125         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
9126         file" warning condtional on -Winvalid-PCH.
9127
9128 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
9129
9130         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
9131
9132 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
9133
9134         PR target/22076
9135         PR target/34256 
9136         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
9137         prevent reload from using MMX registers.
9138         (*mov<mode>_internal): Ditto.
9139         (*movv2sf_internal_rex64): Ditto.
9140         (*movv2sf_internal): Ditto.
9141
9142 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9143
9144         PR documentation/31569
9145         * doc/install.texi2html: Use makeinfo --no-number-sections.
9146
9147 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
9148
9149         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
9150         ensure that we can address an entire entity > 8 bytes.  Don't
9151         generate reg+reg addressing for such data.
9152
9153 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
9154
9155         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
9156         strings when optimizing for size, unless the target cares about
9157         alignment.
9158
9159 2008-02-22  Tom Tromey  <tromey@redhat.com>
9160
9161         * regclass.c (current_pass): Remove declaration.
9162
9163 2008-02-22  Anatoly Sokolov <aesok@post.ru>
9164
9165         * config/avr/libgcc.S (__RAMPZ__): Define.
9166         (__do_copy_data): Add for devices with 128KB code memory.
9167
9168 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
9169
9170         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
9171         Use spe_abi.
9172         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
9173
9174 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
9175
9176         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
9177         GENNONACR_REGS.
9178
9179 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9180
9181         PR c/19999
9182         * c-typeck.c (build_binary_op): Warn about floating point
9183         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
9184
9185 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
9186
9187         PR target/34526
9188         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
9189         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
9190         add vrsave.
9191         (rs6000_override_options): Set altivec_abi as default, not override,
9192         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
9193         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
9194         is used; use new member spe_abi.
9195         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
9196         spe_abi and altivec_abi.
9197
9198 2008-02-22  Tomas Bily  <tbily@suse.cz>
9199
9200         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
9201
9202 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9203
9204         PR bootstrap/35273
9205         * config.build (build_file_translate): Set to `CMD //c' only if
9206         it works.
9207         * Makefile.in (build_file_translate): Improve comment.
9208
9209 2008-02-21  Jan Hubicka  <jh@suse.cz>
9210
9211         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
9212         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
9213         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
9214
9215 2008-02-21  Michael Matz  <matz@suse.de>
9216
9217         PR target/35264
9218         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
9219
9220 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
9221
9222         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
9223         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
9224         as insn constraint.
9225         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
9226         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
9227         SSE_VEC_FLOAT_MODE_P as insn constraint.
9228         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
9229         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
9230         sse4a_movntdf using MODEF mode iterator.
9231         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
9232         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
9233         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
9234         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
9235         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
9236         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
9237         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
9238
9239 2008-02-21  Richard Guenther  <rguenther@suse.de>
9240
9241         * tree.def (PAREN_EXPR): New tree code.
9242         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
9243         and PAREN_EXPR.
9244         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
9245         * expr.c (expand_expr_real_1): Likewise.
9246         * tree-inline.c (estimate_num_insns_1): Likewise.
9247         * tree-complex.c (expand_complex_move): Likewise.
9248         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
9249         as plain x.
9250
9251 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
9252
9253         PR target/35225
9254         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
9255
9256 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
9257
9258         PR target/35190
9259         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
9260
9261         * config/sh/sh.c (find_barrier): Don't go past
9262         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
9263
9264 2008-02-20  DJ Delorie  <dj@redhat.com>
9265
9266         * config/h8300/h8300.md (insv): Force source operand to be a register.
9267
9268         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
9269         as a jump, not as a plain insn.
9270         
9271 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
9272
9273         * doc/invoke.texi (Warning Options): Add new option
9274         -Wframe-larger-than=.
9275         (-Wframe-larger-than): Document.
9276
9277         * flags.h (warn_frame_larger_than, frame_larger_than_size):
9278         Add declarations for new option variables.
9279
9280         * final.c (final_start_function): Check the frame size
9281         before emission and issue a Wframe-larger-than warning.
9282
9283         * opts.c (warn_frame_larger_than, frame_larger_than_size):
9284         Add definitions for new option variables.
9285         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
9286
9287         * common.opt (Wframe-larger-than=): New option.
9288
9289 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
9290
9291         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
9292         (<sse>_div<mode>3): Ditto.
9293         (<sse>_vmdiv<mode>3): Ditto.
9294         (<sse>_vmsqrt<mode>2): Ditto.
9295         (*smax<mode>3): Ditto.
9296         (sse5_frcz<mode>2): Ditto.
9297         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
9298         as insn constraint.
9299
9300 2008-02-20  Richard Guenther  <rguenther@suse.de>
9301
9302         PR middle-end/35265
9303         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
9304         be happy with INTEGRAL_TYPE_P.
9305
9306 2008-02-20  Richard Guenther  <rguenther@suse.de>
9307
9308         * fold-const.c (split_tree): Associate floatig-point expressions
9309         if flag_associative_math is set.
9310
9311 2008-02-20  Richard Guenther  <rguenther@suse.de>
9312
9313         * tree.h (fold_real_zero_addition_p): Declare.
9314         * fold-const.c (fold_real_zero_addition_p): Export.
9315         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
9316         floating-point operations with zero and one.
9317
9318 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
9319
9320         * doc/install.texi: Correct references to CFLAGS, replacing them
9321         with BOOT_CFLAGS.  Document flags used during bootstrap for
9322         target libraries.
9323                                 
9324 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
9325
9326         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
9327         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
9328         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
9329         insn constraint.
9330         (smin<mode>3): Ditto from similar patterns.
9331         (smax<mode>3): Ditto.
9332         (*ieee_smin<mode>3): Ditto.
9333         (*ieee_smax<mode>3): Ditto.
9334         * config/i386/sse.md (sse): New mode attribute.
9335         (mov<mode>): Macroize expander from movv4sf and movv2df using
9336         SSEMODEF2P mode iterator.
9337         (<sse>_movnt<mode>): Ditto from similar patterns. Use
9338         SSE_VEC_FLOAT_MODE_P as insn constraint.
9339         (storent<mode>): Ditto.
9340         (storent<mode>): Macroize expander from storentsf and storentdf using
9341         MODEF mode iterator.
9342         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
9343         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
9344         (abs<mode>2): Ditto from similar patterns.
9345         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
9346         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
9347         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
9348         (<sse>_vmsqrt<mode>2): Ditto.
9349         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
9350         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
9351         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
9352         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
9353         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
9354         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
9355         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
9356         insn constraint.
9357         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
9358         iterator and SSE_FLOAT_MODE_P as insn constraint.
9359         (<sse>_ucomi): Ditto from similar patterns.
9360         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
9361         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
9362         SSE_VEC_FLOAT_MODE_P as insn constraint.
9363         (vcond<mode>): Ditto from similar patterns.
9364         (and<mode>3, *and<mode>3): Ditto.
9365         (<sse>_nand<mode>3): Ditto.
9366         (ior<mode>3, *ior<mode>3): Ditto.
9367         (xor<mode>3, *xor<mode>3): Ditto.
9368         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
9369         iterator and SSE_FLOAT_MODE_P as insn constraint.
9370         (*nand<mode>3): Ditto from similar patterns.
9371         (*ior<mode>3): Ditto.
9372         (*xor<mode>3): Ditto.
9373
9374 2008-02-20  Ira Rosen  <irar@il.ibm.com>
9375
9376         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
9377         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
9378         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
9379
9380 2008-02-19  Jan Hubicka  <jh@suse.cz>
9381
9382         * predict.c (tree_bb_level_predictions): Remove variable next
9383         mistakely introduced by previous commit.
9384
9385 2008-02-19  Jan Hubicka  <jh@suse.cz>
9386
9387         * predict.c (predict_paths_leading_to): Rewrite.
9388         (predict_paths_for_bb): New.
9389         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
9390
9391 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9392
9393         PR bootstrap/35218
9394         * Makefile.in (build_file_translate): New.
9395         (gcc-vers.texi): Use it for translating $(abs_srcdir).
9396         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
9397         * configure.ac (build_file_translate): Substitute it.
9398         * configure: Regenerate.
9399
9400 2008-02-19  Jan Hubicka  <jh@suse.cz>
9401
9402         PR rtl-optimization/34408
9403         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
9404         invalid sharing.
9405
9406 2008-02-19  Jan Hubicka  <jh@suse.cz>
9407
9408         PR middle-end/28779
9409         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
9410         call_expr.
9411
9412 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
9413
9414         PR Ada/35186
9415         * config/i386/i386-modes.def: Revert the last DI alignment
9416         change until Ada people can look into it.
9417
9418 2008-02-19  Nick Clifton  <nickc@redhat.com>
9419
9420         * opts.c (print_specific_help): Fix typo in --help text.
9421
9422 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
9423
9424         PR target/35239
9425         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
9426         32-bit inline asm without asm alternatives for host GCC < 3.0.
9427
9428 2008-02-19  Richard Guenther  <rguenther@suse.de>
9429
9430         PR tree-optimization/34989
9431         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
9432         Allow propagation to INDIRECT_REF if we can simplify only.
9433
9434 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9435
9436         * c-common.c (warn_for_collisions_1): Use appropriate option when
9437         warning.
9438
9439 2008-02-19  Nick Clifton  <nickc@redhat.com>
9440
9441         PR other/31349
9442         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
9443         (handle_options): Fix indentation.
9444         (print_filtered_help): If no language-specific options were
9445         displayed tell the user how to list all the options supported by
9446         the language's front-end.
9447         (print_specific_help): Fix indentation and remove duplicate line.
9448         (common_handle_option): Handle the -v option.
9449         For --help enable the display of undocumented options if the -v
9450         switch has been included on the command line.
9451         For --help= check for overlaps in the arguments between the option
9452         classes and the language names and issue a warning when they
9453         cannot be disambiguated.
9454         * c.opt (v): Pass on to the common option handler.
9455
9456 2008-02-19  Revital Eres  <eres@il.ibm.com> 
9457
9458         * modulo-sched.c (sms_schedule): Change dump message when
9459         create_ddg function fails.
9460         (try_scheduling_node_in_cycle): Rename row to cycle.
9461         (print_partial_schedule): Rename CYCLE to ROW.
9462
9463 2008-02-19  Christian Bruel  <christian.bruel@st.com>
9464             Zdenek Dvorak  <ook@ucw.cz>
9465
9466         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
9467
9468 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
9469
9470         PR target/33555
9471         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
9472         (*x86_movdicc_0_m1_se): Ditto.
9473
9474 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
9475
9476         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
9477         (CMPtype): Define as __gcc_CMPtype.
9478         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
9479         (CMPtype): Define as __gcc_CMPtype.
9480
9481 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
9482
9483         Support valgrind 3.3 for --enable-checking=valgrind.
9484         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
9485         here.
9486         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
9487         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
9488         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
9489         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
9490         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
9491         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
9492         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
9493         respectively.
9494         * ggc-zone.c: Similar.
9495         * ggc-page.c: Similar.
9496
9497 2008-02-19  Paul Brook  <paul@codesourcery.com>
9498
9499         PR target/35071
9500         * config/arm/ieee754-df.S: Fix do_it typo.
9501         * config/arm/ieee754-sf.S: Fix do_it typo.
9502
9503 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
9504
9505         PR target/35189
9506         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
9507         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
9508         (OPTION_MASK_ISA_SSE_SET): Likewise.
9509         (OPTION_MASK_ISA_SSE2_SET): Likewise.
9510         (OPTION_MASK_ISA_SSE3_SET): Likewise.
9511         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
9512         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
9513         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
9514         (OPTION_MASK_ISA_SSE4_SET): Likewise.
9515         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
9516         (OPTION_MASK_ISA_SSE5_SET): Likewise.
9517         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
9518         (OPTION_MASK_ISA_MMX_UNSET): Updated.
9519         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
9520         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
9521         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
9522         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
9523         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
9524         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
9525         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
9526         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
9527         (OPTION_MASK_ISA_SSE4): Removed.
9528         (ix86_handle_option): Turn on bits in ix86_isa_flags and
9529         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
9530         (override_options): Don't turn on implied SSE/MMX bits in
9531         ix86_isa_flags.
9532
9533 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
9534
9535         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
9536         32bit host.
9537
9538 2008-02-18  Joey Ye  <joey.ye@intel.com>
9539
9540         PR middle-end/34921
9541         * tree-nested.c (insert_field_into_struct): Set type alignment
9542         to field alignment if the former is less than the latter.
9543
9544 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
9545
9546         * BASE-VER: Set to 4.4.0.
9547
9548 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9549
9550         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
9551         * doc/cfg.texi: Likewise.
9552         * doc/extend.texi: Likewise.
9553         * doc/gty.texi: Likewise.
9554         * doc/invoke.texi: Likewise.
9555         * doc/loop.texi: Likewise.
9556         * doc/md.texi: Likewise.
9557         * doc/passes.texi: Likewise.
9558         * doc/rtl.texi: Likewise.
9559         * doc/sourcebuild.texi: Likewise.
9560         * doc/tm.texi: Likewise.
9561         * doc/tree-ssa.texi: Likewise.
9562
9563 2008-02-17  Richard Guenther  <rguenther@suse.de>
9564
9565         PR middle-end/35227
9566         * tree-complex.c (init_parameter_lattice_values): Handle parameters
9567         without default definition.
9568
9569 2008-02-17  Richard Guenther  <rguenther@suse.de>
9570
9571         PR tree-optimization/35231
9572         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
9573         if A | B != 1.
9574
9575 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
9576
9577         Revert:
9578         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
9579         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
9580         libgcc_cmp_return mode.
9581
9582 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9583
9584         PR c/28368
9585         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
9586
9587 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
9588
9589         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
9590         multilibs.
9591
9592 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9593
9594         * doc/c-tree.texi: Use `@.' where appropriate.
9595         * doc/extend.texi: Likewise.
9596         * doc/install.texi: Likewise.
9597         * doc/invoke.texi: Likewise.
9598         * doc/loop.texi: Likewise.
9599         * doc/makefile.texi: Likewise.
9600         * doc/md.texi: Likewise.
9601         * doc/passes.texi: Likewise.
9602         * doc/standards.texi: Likewise.
9603         * doc/tm.texi: Likewise.
9604
9605 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
9606
9607         PR middle-end/35196
9608         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
9609         in entry_bb.
9610         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
9611         rather than in entry_bb.
9612
9613 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
9614
9615         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
9616         libgcc_cmp_return mode.
9617
9618 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
9619
9620         PR middle-end/35130
9621         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
9622         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
9623
9624 2008-02-15  Richard Guenther  <rguenther@suse.de>
9625             Zdenek Dvorak  <ook@ucw.cz>
9626
9627         PR tree-optimization/35164
9628         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
9629         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
9630         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
9631         Only propagate addresses which do not have abnormal SSA_NAMEs
9632         in their operands.
9633
9634 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
9635
9636         PR target/35088
9637         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
9638
9639 2008-02-15  Jan Hubicka  <jh@suse.cz>
9640
9641         PR middle-end/35149
9642         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
9643
9644 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
9645
9646         PR middle-end/34621
9647         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
9648         when calculating alignment_pad.
9649
9650 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
9651
9652         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
9653         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
9654         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
9655         and STACK_BOUNDARY define.
9656
9657 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
9658
9659         PR preprocessor/35061
9660         * c-pragma.c (handle_pragma_pop_macro): Check that
9661         pushed_macro_table has been allocated.
9662
9663 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
9664
9665         PR middle-end/35136
9666         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
9667         (force_gimple_operand): Likewise.
9668         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
9669         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
9670         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
9671         (find_interesting_uses_address): Check addressability and alignment
9672         of the base expression only after substituting bases of IVs into it.
9673
9674 2008-02-14  Michael Matz  <matz@suse.de>
9675
9676         PR target/34930
9677         * function.c (instantiate_virtual_regs_in_insn): Reload address
9678         before falling back to reloading the whole operand.
9679
9680 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
9681
9682         * config/s390/s390.c (s390_mainpool_start): Emit the pool
9683         before the first section switch note.
9684
9685 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9686
9687         * doc/bugreport.texi: Update copyright years.
9688         * doc/c-tree.texi: Likewise.
9689         * doc/cfg.texi: Likewise.
9690         * doc/cpp.texi: Likewise.
9691         * doc/cppinternals.texi: Likewise.
9692         * doc/fragments.texi: Likewise.
9693         * doc/frontends.texi: Likewise.
9694         * doc/gcc.texi: Likewise.
9695         * doc/gty.texi: Likewise.
9696         * doc/hostconfig.texi: Likewise.
9697         * doc/implement-c.texi: Likewise.
9698         * doc/libgcc.texi: Likewise.
9699         * doc/loop.texi: Likewise.
9700         * doc/makefile.texi: Likewise.
9701         * doc/options.texi: Likewise.
9702         * doc/passes.texi: Likewise.
9703         * doc/rtl.texi: Likewise.
9704         * doc/sourcebuild.texi: Likewise.
9705         * doc/standards.texi: Likewise.
9706         * doc/tree-ssa.texi: Likewise.
9707         * doc/trouble.texi: Likewise.
9708
9709         * doc/extend.texi: Use @: or add comma where appropriate.
9710         * doc/invoke.texi: Likewise.
9711         * doc/tm.texi: Likewise.
9712
9713 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
9714
9715         PR target/34393
9716         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
9717         to a reg.
9718
9719 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
9720
9721         * doc/md.texi (clz, ctz): Add reference.
9722         * doc/rtl.texi (clz, ctz): Likewise.
9723
9724 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9725
9726         PR other/35148
9727         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
9728         srcdir.
9729
9730 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
9731
9732         * config/s390/s390.c (struct constant_pool): New field
9733         emit_pool_after added.
9734         (s390_mainpool_start): Set the emit_pool_after flag according
9735         to the section switch notes.
9736         (s390_mainpool_finish): Consider emit_pool_after when emitting
9737         the literal pool at the end of the function.
9738         (s390_chunkify_start): Force literal pool splits at section
9739         switch notes.
9740
9741 2008-02-13  Michael Matz  <matz@suse.de>
9742
9743         PR debug/35065
9744         * var-tracking.c (clobber_variable_part): Correctly traverse the
9745         list.
9746
9747 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9748
9749         PR 29673
9750         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
9751         Add -fdump-ipa-inline.
9752         * tree-dump.c (dump_files): Remove tree-inlined dump.
9753         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
9754         
9755 2008-02-12  Richard Guenther  <rguenther@suse.de>
9756
9757         PR tree-optimization/35171
9758         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
9759         default defs.
9760
9761 2008-02-12  Richard Guenther  <rguenther@suse.de>
9762
9763         PR middle-end/35163
9764         * fold-const.c (fold_widened_comparison): Use get_unwidened in
9765         value-preserving mode.  Disallow final truncation.
9766
9767 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
9768
9769         PR middle-end/35136
9770         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
9771         code from here to...
9772         (force_gimple_operand): ...here.
9773
9774 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
9775
9776         PR c++/35144
9777         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
9778         non-compatible pointers.
9779         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
9780         different FIELD_DECLs, try harder by comparing field offsets, sizes
9781         and types.
9782
9783         PR inline-asm/35160
9784         * function.c (match_asm_constraints_1): Don't replace the same input
9785         multiple times.
9786
9787 2008-02-12  Anatoly Sokolov <aesok@post.ru>
9788
9789         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
9790         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
9791         (expand_epilogue): Restore RAMPZ register.
9792         * config/avr/avr.md (RAMPZ_ADDR): New constant.
9793
9794 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
9795
9796         * config/i386/cygwin.asm: (__alloca): Correct calling
9797         convention and alignment.
9798         (__chkstk): Force 8 byte stack alignment.
9799
9800 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
9801             Richard Guenther  <rguenther@suse.de>
9802
9803         PR tree-optimization/33992
9804         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
9805         the zero we compare against.
9806
9807 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
9808
9809         PR libfortran/35063
9810         * gthr-win32.h (__gthread_mutex_destroy_function): New function
9811         to CloseHandle after unlocking to prevent accumulation of handle
9812         count.
9813
9814 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9815
9816         PR middle_end/34150
9817         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
9818         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
9819         and update LABEL_NUSES during and after reload.
9820
9821 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
9822
9823         PR middle-end/34627
9824         * combine.c (simplify_if_then_else): Make sure the comparison is
9825         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
9826
9827 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
9828
9829         PR bootstrap/35051
9830         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
9831         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
9832         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
9833         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
9834         * tree.h (get_type_static_bounds): Likewise.
9835
9836 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9837
9838         * doc/invoke.texi (Option Summary, C++ Dialect Options)
9839         (Objective-C and Objective-C++ Dialect Options, Warning Options):
9840         Make -Wfoo language annotations match what the compiler outputs.
9841
9842 2008-02-08  Sa Liu  <saliu@de.ibm.com>
9843
9844         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
9845         intrinsics spu_convts, spu_convtu, spu_convtf.
9846
9847 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
9848
9849         * doc/extend.texi (Function Attributes) <noinline>: Mention
9850         asm ("") as method to keep calls.
9851
9852 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9853
9854         PR other/32754
9855         * doc/options.texi (Options): Replace references to opts.sh with
9856         optc-gen.awk.
9857         * opts-common.c: Likewise.
9858         * optc-gen.awk: Likewise.
9859         
9860 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
9861
9862         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
9863
9864 2008-02-07  Richard Henderson  <rth@redhat.com>
9865
9866         PR rtl-opt/33410
9867         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
9868         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
9869         funny mode.
9870
9871 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
9872
9873         PR tree-optimization/35085
9874         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
9875         for operand entry oe2 in addition to operand entry oe3 in order to
9876         expose more opportunities for vectorizer sum reduction.
9877
9878 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9879
9880         PR other/35107
9881         * Makefile.in (LIBS): Remove $(GMPLIBS).
9882         (cc1-dummy, cc1): Add $(GMPLIBS).
9883
9884 2008-02-06  Jan Hubicka  <jh@suse.cz>
9885
9886         PR target/23322
9887         * i386.md (moddf_integer): Do not produce partial memory stalls for
9888         targets where it hurts.
9889
9890 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
9891
9892         PR target/35083
9893         * optabs.c (expand_float): Do not check for decimal modes when
9894         expanding unsigned integer through signed conversion.
9895
9896 2008-02-06  Nick Clifton  <nickc@redhat.com>
9897
9898         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
9899         inside the clobber with a match_operand and duplicated operand
9900         number in the constraint.
9901         (ineqbranchsi): Delete redundant comment.
9902
9903 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
9904
9905         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
9906         builtin_define ("__USE_INIT_FINI__").
9907         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
9908         -msx multilibs.
9909         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
9910
9911 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9912
9913         PR documentation/30330
9914         * doc/invoke.texi (C++ Dialect Options)
9915         (Objective-C and Objective-C++ Dialect Options, Warning Options):
9916         For each warning option -Wfoo that allows -Wno-foo, ensure both
9917         -Wfoo and -Wno-foo are listed in the option index.  Fix index
9918         entry of -Wswitch-default, index -Wnormalized= including the
9919         `=', and -Wlarger-than-@var{len} including @var{len}.
9920
9921 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
9922
9923         * config/i386/i386.md (floatunssisf2): Use
9924         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
9925         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
9926         Macroize expander using MODEF mode iterator.
9927
9928 2008-02-05  Diego Novillo  <dnovillo@google.com>
9929
9930         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
9931
9932         PR 33738
9933         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
9934
9935 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9936
9937         PR other/35070
9938         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
9939
9940 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
9941
9942         PR target/35084
9943         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
9944         to indicate if a message should be generated.
9945         (init_cumulative_args): Updated.
9946         (function_value_32): Likewise.
9947
9948 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
9949
9950         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
9951
9952 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
9953
9954         PR target/35083
9955         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
9956         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
9957
9958 2008-02-04  Diego Novillo  <dnovillo@google.com>
9959
9960         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
9961
9962         PR 33738
9963         * tree-vrp.c (vrp_evaluate_conditional): With
9964         -Wtype-limits, emit a warning when comparing against a
9965         constant outside the natural range of OP0's type.
9966
9967 2008-02-04  Richard Guenther  <rguenther@suse.de>
9968
9969         PR middle-end/33631
9970         * expr.c (count_type_elements): Give for unions instead of
9971         guessing.
9972
9973 2008-02-04  Richard Guenther  <rguenther@suse.de>
9974
9975         PR middle-end/35043
9976         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
9977         to TYPE_DOMAINs base type instead of using bitsizetype here.
9978
9979 2008-02-03  Jason Merrill  <jason@redhat.com>
9980
9981         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
9982
9983 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9984
9985         PR other/29972
9986         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
9987         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
9988         (RS/6000 and PowerPC Options): Fix typos and markup.
9989         * doc/passes.texi (Tree-SSA passes): Likewise.
9990
9991 2008-02-02  Michael Matz  <matz@suse.de>
9992
9993         PR target/35045
9994         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
9995         from record_last_reg_set_info.
9996         (record_last_reg_set_info): Take an RTX argument, iterate over all
9997         constituent hardregs.
9998         (record_last_set_info, record_opr_changes): Change calls to
9999         new signature or to record_last_reg_set_info_regno.
10000
10001 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
10002
10003         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
10004
10005 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
10006
10007         PR rtl-optimization/34773
10008         * reg-notes.def (EQUAL): Mention significance of combination of
10009         REG_EQUAL and REG_RETVAL.
10010         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
10011         insn that has a REG_RETVAL.
10012
10013 2008-02-01  Roger Sayle  <roger@eyesopen.com>
10014
10015         PR bootstrap/33781
10016         * configure.ac (--enable-fixed-point): Disable unless explicitly
10017         requested on IRIX.
10018         * configure: Regenerate.
10019
10020 2008-02-01  Richard Guenther  <rguenther@suse.de>
10021
10022         PR other/35042
10023         * invoke.texi (-finline-limit): Remove no longer true parts
10024         of the documentation.  Note that there is no default value.
10025
10026 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
10027             Mark Mitchell  <mark@codesourcery.com>
10028             Ben Elliston  <bje@au.ibm.com>
10029
10030         PR c/29326
10031         * doc/extend.texi (Other Builtins): Document.
10032
10033 2008-01-31  Tom Browder <tom.browder@gmail.com>
10034
10035         * doc/c-tree.texi (Types): Fix grammar.
10036         (Expression trees): Ditto.
10037         * doc/passes.texi (Tree-SSA passes): Ditto.
10038         
10039         * doc/configterms.texi (Configure Terms): Fix typo.
10040         * doc/cpp.texi (Common Predefined Macros): Ditto.
10041         * doc/md.texi (Machine Constraints): Ditto.
10042         
10043         * doc/makefile.texi (Makefile): Add comma.
10044
10045 2008-01-31  Tom Browder  <tom.browder@gmail.com>
10046             Gerald Pfeifer  <gerald@pfeifer.com>
10047         
10048         * doc/sourcebuild.texi (Front End): Remove references to CVS
10049         and CVSROOT/modules.
10050         (Texinfo Manuals): Replace reference to CVS by one to SVN.
10051         (Back End): Remove reference to CVS.
10052
10053 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
10054
10055         PR target/34900
10056         * config/mips/mips.c (gen_load_const_gp): New function, taking a
10057         comment from...
10058         (mips16_gp_pseudo_reg): ...here.
10059         * config/mips/mips.md (load_const_gp): Replace with...
10060         (load_const_gp_<mode>): ...this :P-based insn.
10061
10062 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10063
10064         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
10065         options. Minor fixes.
10066         (-std): Move reference to standards closer to where language
10067         standards are first mentioned.
10068         
10069 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
10070
10071         PR rtl-optimization/34995
10072         * reload.c (alternative_allows_const_pool_ref): Take an rtx
10073         parameter and return a bool.  If the rtx parameter is nonnull,
10074         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
10075         (find_reloads): Update call accordingly.  Pass the new operand
10076         if it needed no address reloads, otherwise pass null.
10077
10078 2008-01-30  Richard Henderson  <rth@redhat.com>
10079
10080         PR c/34993
10081         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
10082         for unbounded arrays.
10083
10084 2008-01-30  Silvius Rus  <rus@google.com>
10085
10086         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
10087
10088 2008-01-30  Jan Hubicka  <jh@suse.cz>
10089
10090         PR target/34982
10091         * i386.c (init_cumulative_args): Use real function declaration when
10092         calling locally.
10093
10094 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
10095
10096         PR rtl-optimization/34998
10097         * global.c (build_insn_chain): Treat non-subreg_lowpart
10098         SUBREGs of pseudos as clobbering all the words covered by the
10099         SUBREG, not just all the bytes.
10100         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
10101         original df_ref rather than an extract parameter.
10102         (global_conflicts): Update call accordingly.
10103
10104 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
10105
10106         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
10107         the overflow check to make it easier to read.
10108         (__fixtfdi): Change the type of the ll member in union
10109         long_double to UDItype_x.
10110
10111 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
10112
10113         PR middle-end/34969
10114         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
10115         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
10116         * tree-inline.c (fold_marked_statements): Call
10117         cgraph_update_edges_for_call_stmt if folding a call statement.
10118         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
10119         debug_generic_stmt calls, reset it back afterwards.
10120
10121         PR c/35017
10122         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
10123         static decls.
10124         * c-typeck.c (build_external_ref): Don't pedwarn about
10125         static vars in current function's scope.
10126
10127 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
10128
10129         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
10130
10131 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
10132
10133         PR c/35002
10134         * ipa-struct-reorg.c: Fix spelling.
10135         * params.def: Ditto.
10136
10137 2008-01-29  Richard Guenther  <rguenther@suse.de>
10138
10139         PR middle-end/35006
10140         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
10141         field.
10142         * tree-inline.c (remap_type): Increment remapping_type_depth
10143         around remapping types.
10144         (copy_body_r): Only add referenced variables if they are referenced
10145         from code, not types.
10146
10147 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
10148
10149         PR c++/34055
10150         PR c++/34103
10151         PR c++/34219
10152         PR c++/34606
10153         PR c++/34753
10154         PR c++/34754
10155         PR c++/34755
10156         PR c++/34919
10157         PR c++/34961
10158         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
10159         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
10160
10161 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
10162
10163         PR target/34412
10164         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
10165         pointer for tiny stack.
10166
10167 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
10168
10169         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
10170
10171 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
10172
10173         * config/vx-common.h: Fix typo in comment.
10174
10175 2008-01-28  Ian Lance Taylor  <iant@google.com>
10176
10177         PR c++/34862
10178         PR c++/33407
10179         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
10180         coalesce pointers if they have different DECL_NO_TBAA_P values.
10181         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
10182         between variables with different DECL_NO_TBAA_P values.
10183
10184 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
10185
10186         PR 31535
10187         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
10188         are not legitimate small data references on SPE targets.
10189
10190 2008-01-28  David Daney  <ddaney@avtrex.com>
10191
10192         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
10193
10194 2008-01-28  David Daney  <ddaney@avtrex.com>
10195
10196         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
10197
10198 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
10199
10200         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
10201         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
10202         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
10203         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
10204         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
10205         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
10206         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
10207         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
10208
10209 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
10210
10211         * basic-block.h (condjump_equiv_p): Fix comment.
10212
10213 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
10214
10215         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
10216         print_generic_stmt_indented): Fix comment.
10217
10218 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
10219
10220         * configure.ac (__stack_chk_fail): Add detecion for availability
10221         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
10222         * configure: Regenerate.
10223
10224 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
10225
10226         PR middle-end/34688
10227         * final.c (output_addr_const): Handle TRUNCATE.
10228
10229 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
10230
10231         PR target/34711
10232         * tree-ssa-loop-ivopts.c (comp_cost): New type.
10233         (zero_cost, infinite_cost): New constants.
10234         (struct cost_pair): Change type of cost to comp_cost.
10235         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
10236         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
10237         New functions.
10238         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
10239         split_address_cost, ptr_difference_cost, difference_cost,
10240         get_computation_cost_at, get_computation_cost,
10241         determine_use_iv_cost_generic, determine_use_iv_cost_address,
10242         determine_use_iv_cost_condition, determine_use_iv_costs,
10243         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
10244         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
10245         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
10246         Change type of cost to comp_cost.
10247         (determine_iv_cost): Increase cost of non-original ivs, instead
10248         of decreasing the cost of original ones.
10249         (get_address_cost): Indicate the complexity of the addressing mode 
10250         in comp_cost.
10251         (try_add_cand_for): Prefer using ivs not specific to some object.
10252         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
10253
10254 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
10255             Janis Johnson  <janis187@us.ibm.com>
10256
10257         PR target/34814
10258         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
10259         (TARGET_INSTANTIATE_DECLS): Likewise.
10260         * target.h (expand_to_rtl_hook): New target hook.
10261         (instantiate_decls): Likewise.
10262         * function.c (instantiate_decl): Make non-static.  Rename to...
10263         (instantiate_decl_rtl): ... this.
10264         (instantiate_expr): Use instantiate_decl_rtl.
10265         (instantiate_decls_1): Likewise.
10266         (instantiate_decls): Likewise.
10267         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
10268         * function.h (instantiate_decl_rtl): Add prototype.
10269         * cfgexpand.c (target.h): New include.
10270         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
10271         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
10272         (TARGET_INSTANTIATE_DECLS): Likewise.
10273         (TARGET_INITIALIZER): New target hooks added.
10274         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
10275         New prototype.
10276         * config/rs6000/rs6000.c (tree-flow.h): New include.
10277         (machine_function): Add sdmode_stack_slot field.
10278         (rs6000_alloc_sdmode_stack_slot): New function.
10279         (rs6000_instantiate_decls): Likewise.
10280         (rs6000_secondary_memory_needed_rtx): Likewise.
10281         (rs6000_check_sdmode): Likewise.
10282         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
10283         (TARGET_INSTANTIATE_DECLS): Likewise.
10284         (rs6000_hard_regno_mode_ok): Allow SDmode.
10285         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
10286         (rs6000_emit_move): Handle SDmode.
10287         (function_arg_advance): Likewise.
10288         (function_arg): Likewise.
10289         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
10290         SDmode var args for 32-bit compiles.
10291         (rs6000_secondary_reload_class): Handle SDmode.
10292         (rs6000_output_function_epilogue): Likewise.
10293         (rs6000_function_value): Simplify if statement.
10294         (rs6000_libcall_value): Likewise.
10295         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
10296         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
10297         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
10298         (movsd_hardfloat): New define_insn.
10299         (movsd_softfloat): Likewise.
10300         (movsd_store): Likewise.
10301         (movsd_load): Likewise.
10302         (extendsddd2): Likewise.
10303         (extendsdtd2): Likewise.
10304         (truncddsd2): Likewise.
10305         (movdd_hardfloat64): Fixup comment.
10306         (UNSPEC_MOVSD_LOAD): New constant.
10307         (UNSPEC_MOVSD_STORE): Likewise.
10308
10309 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
10310
10311         PR c++/34965
10312         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
10313         TRUTH_XOR_EXPR.
10314         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
10315         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
10316         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
10317         and TRUTH_XOR_EXPR.
10318
10319 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
10320
10321         PR target/34794
10322         * config.gcc: Separate AIX 5.3 from AIX 6.1.
10323         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
10324         __LONGDOUBLE128 too.
10325         * config/rs6000/aix61.h: New file.
10326
10327 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
10328
10329         PR rtl-optimization/34959
10330         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
10331         popcount and parity rtxes the same mode as their operand.
10332         Truncate or extend the result to the return value's mode
10333         if necessary.
10334
10335 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
10336
10337         PR target/34981
10338         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
10339         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
10340         to GOT_VERSION_REGNUM.
10341         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
10342         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
10343         * config/mips/mips.c (mips_emit_call_insn): New function.
10344         (mips_call_tls_get_addr): Call mips_expand_call directly.
10345         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
10346         emit_call_insn.
10347         (mips16_build_call_stub): Likewise.  Return the call insn or null.
10348         (mips_expand_call): Update the call to mips16_build_call_stub
10349         accordingly and a remove redundant condition.  Assert that MIPS16
10350         stubs do not use lazy binding.  Use mips_emit_call_insn and return
10351         the call insn.
10352         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
10353         TARGET_USE_GOT.
10354         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
10355         (mips_avoid_hazard): Remove hazard_set handling.
10356         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
10357         (UNSPEC_RESTORE_GP): ...this.
10358         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
10359         (FAKE_CALL_REGNO): Rename to...
10360         (GOT_VERSION_REGNUM): ...this.
10361         (type): Add "ghost" value.  Add an associated insn reservation.
10362         (hazard_set): Remove.
10363         (exception_receiver): Rename to...
10364         (restore_gp): ...this and update the unspec identifier accordingly.
10365         (exception_receiver, nonlocal_got_receiver): New expanders.
10366         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
10367         FAKE_CALL_REGNO.  Remove hazard_set attribute.
10368         (set_got_version, update_got_version): New patterns.
10369
10370 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
10371
10372         PR target/34970
10373         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
10374
10375 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
10376
10377         PR other/31955
10378         * doc/install.texi2html: Generate gcc-vers.texi.
10379
10380 2008-01-25  DJ Delorie  <dj@redhat.com>
10381
10382         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
10383
10384 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
10385
10386         * config/c4x: Remove directory.
10387         * config.gcc (crx-*, mt-*): Mark obsolete.
10388         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
10389         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
10390         sh-*-rtemscoff*): Remove cases.
10391         * defaults.h (C4X_FLOAT_FORMAT): Remove.
10392         * real.c (encode_c4x_single, decode_c4x_single,
10393         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
10394         c4x_extended_format): Remove.
10395         * real.h (c4x_single_format, c4x_extended_format): Remove.
10396         * doc/extend.texi (interrupt, naked): Remove mention of attributes
10397         on C4x.
10398         (Pragmas): Remove comment about c4x pragmas.
10399         * doc/install.texi (c4x): Remove target-specific instructions.
10400         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
10401         * doc/md.texi (Machine Constraints): Remove C4x documentation.
10402         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
10403         refer to C4x source files as examples.
10404         (C4X_FLOAT_FORMAT): Remove documentation.
10405
10406 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
10407
10408         * config/bfin/bfin.c (override_options): Reorder tests so that
10409         flag_pic gets enabled for -msep-data.
10410
10411 2008-01-25  Richard Guenther  <rguenther@suse.de>
10412
10413         PR middle-end/32244
10414         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
10415         to its bitfield precision if required.
10416
10417 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
10418
10419         PR middle-end/33880
10420         * tree-nested.c (walk_omp_for): New function.
10421         (convert_nonlocal_reference, convert_local_reference): Call
10422         walk_omp_for on OMP_FOR.
10423         (convert_call_expr): Call walk_body on OMP_FOR's
10424         OMP_FOR_PRE_INIT_BODY.
10425
10426 2008-01-25  Richard Guenther  <rguenther@suse.de>
10427
10428         PR tree-optimization/34966
10429         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
10430         default defs and PHI_NODEs we have to insert after the
10431         defining statement.
10432
10433 2008-01-24  Nick Clifton  <nickc@redhat.com>
10434
10435         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
10436         Provide a default definition.
10437         (LIBGCC2_UNITS_PER_WORD): Likewise.
10438
10439         * config/stormy16/stormy16.c: Include df.h for the prototype
10440         for df_regs_ever_live_p.
10441         (xstormy16_expand_builtin_va_start): Convert the stack offset
10442         into a component_ref and then use POINTER_PLUS_EXPR to add it
10443         to the incoming_virtual_args_rtx.
10444         (xstormy16_gimplify_va_arg_expr): Rename to
10445         xstormy16_gimplify_va_arg_expr.
10446         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
10447         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
10448         xstormy16_gimplify_va_arg_expr.
10449         Fix up some formatting issues.
10450
10451         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
10452         Move to predicates.md.
10453         (xs_hi_general_operand): Likewise.
10454         (xs_hi_nonmemory_operand): Likewise.
10455         * config/stormy16/predicates.md:
10456         (xstormy16_carry_plus_operand): New predicate.
10457         (xs_hi_general_operand): New predicate.
10458         (xs_hi_nonmemory_operand): New predicate.
10459         * config/stormy16/stormy16-protos.h:
10460         (xstormy16_carry_plus_operand): Delete prototype.
10461         (xs_hi_general_operand): Likewise.
10462         (xs_hi_nonmemory_operand): Likewise.
10463
10464         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
10465         modifiers as they are no longer needed and they can trigger
10466         reload spill failures.
10467
10468         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
10469         with a match_operand in order to help reload.
10470
10471         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
10472         constraint with 'e' for the 8th alternative as this version of
10473         the mov.w instruction only accepts the lower 8 registers.
10474
10475 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
10476
10477         PR target/34856
10478         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
10479         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
10480         vector elements.
10481
10482 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
10483
10484         PR middle-end/33333
10485         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
10486
10487 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
10488
10489         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
10490         New functions.
10491         (remove_structure): Update allocations list before removing structure.
10492         
10493 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
10494
10495         * ipa-struct-reorg.c (is_safe_cond_expr, 
10496         create_new_stmts_for_cond_expr): Use integer_zerop function,
10497         that recognize not only zero-pointer, but zero-integer too.
10498
10499 2008-01-25  Ben Elliston  <bje@au.ibm.com>
10500
10501         PR other/22232
10502         * fixproto: Escape "." in sed expression that strips leading "./".
10503
10504 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
10505
10506         PR driver/34904
10507         * gcc.c (SWITCH_OK): Removed.
10508         (SWITCH_LIVE): Changed to bit.
10509         (SWITCH_FALSE): Likewise.
10510         (SWITCH_IGNORE): Likewise.
10511         (switchstr): Change live_cond to unsigned int.
10512         (process_command): Replace SWITCH_OK with 0.
10513         (do_self_spec): Likewise.
10514         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
10515         (give_switch): Likewise.
10516         (used_arg): Likewise.
10517         (do_spec_1): Set the SWITCH_IGNORE bit.
10518         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
10519         bits.  Set the SWITCH_LIVE bit.
10520
10521 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
10522
10523         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
10524
10525 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
10526
10527         PR tree-optimization/34472
10528         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
10529         parameter to a "bool *" and set *DATA to false if there is
10530         an unsafe access.  Do not delete the structure here.
10531         (check_cond_exprs): Delete it here instead.
10532         (check_cond_exprs, exclude_cold_structs): Do not increase
10533         I when removing a structure.
10534
10535 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
10536
10537         PR target/34856
10538         * config/i386/i386.c (ix86_expand_vector_init): Consider only
10539         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
10540
10541 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
10542
10543         PR middle-end/34934
10544         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
10545         a fixed vector for stack.
10546
10547 2008-01-24  Ben Elliston  <bje@au.ibm.com>
10548
10549         PR c++/25701
10550         * doc/gcc.texi (Software development): Add a direntry for g++.
10551         
10552 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
10553
10554         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
10555         stale and straggling -fforce-addr comments above.
10556
10557         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
10558         define.
10559         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
10560         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
10561
10562 2008-01-23  Michael Matz  <matz@suse.de>
10563
10564         PR debug/34895
10565         * dwarf2out.c (force_type_die): Use modified_type_die instead of
10566         gen_type_die.
10567
10568 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
10569
10570         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
10571         malloc result type.
10572
10573 2008-01-23 Anatoly Sokolov <aesok@post.ru>
10574
10575         * config/avr/avr.c (avr_current_arch): New variable.
10576         (avr_arch_types): Add 'avr31' and 'avr51' entries.
10577         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
10578         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
10579         (avr_override_options): Init 'avr_current_arch'. 
10580         (base_arch_s): Move from here...
10581         * config/avr/avr.h (base_arch_s): ... here. Add new members 
10582         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
10583         'mega' to 'have_jmp_call'.
10584         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
10585         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
10586         macros.
10587         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
10588         architectures.
10589         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
10590         MULTILIB_MATCHES): (Ditto.).
10591
10592 2008-01-23  Richard Guenther  <rguenther@suse.de>
10593
10594         PR middle-end/31529
10595         * cgraphunit.c (cgraph_reset_node): Always mark the node
10596         not reachable if it is not queued already.
10597
10598 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
10599
10600         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
10601         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
10602         (cputype_selected): New static variable.
10603         (bfin_handle_option): Set it if -mcpu is used.
10604         (override_option): Select default set of workarounds if no cpu type
10605         selected on the command line.
10606         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
10607
10608         From  Michael Frysinger  <michael.frysinger@analog.com>
10609         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
10610         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
10611
10612         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
10613         for bf547, bf523, bf524, and bf526.
10614         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
10615         bf526.
10616         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
10617         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
10618         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
10619         __ADSPBF547__ and __ADSPBF54x__ for bf547.
10620         * doc/invoke.texi (Blackfin Options): Document that
10621         -mcpu now accept bf547, bf523, bf524, and bf526.
10622
10623 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
10624
10625         PR rtl-optimization/34628
10626         * combine.c (try_combine): Stop and undo after the first combination
10627         if an autoincrement side-effect on the first insn has effectively
10628         been lost.
10629
10630 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
10631
10632         PR target/34529
10633         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
10634         Offset addresses are not valid for Altivec or paired float modes.
10635
10636 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
10637
10638         PR c++/34607
10639         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
10640         if DECL_INITIAL (decl) is error_mark_node.
10641
10642         PR c++/34914
10643         * c-common.c (handle_vector_size_attribute): Only allow
10644         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
10645         the same way as pointer, array etc. types.
10646         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
10647
10648         PR c++/34917
10649         * tree.c (build_type_attribute_qual_variant): Call
10650         build_qualified_type if attributes are equal, but quals are not.
10651
10652 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10653
10654         PR 32102
10655         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
10656         * flags.h (warn_strict_aliasing): Remove.
10657         (warn_strict_overflow): Remove.
10658         * opts.c (warn_strict_aliasing): Remove.
10659         (warn_strict_overflow): Remove.
10660         * c-opts.c (c_common_handle_option): -Wall only sets
10661         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
10662         (c_common_post_options): Give default values to -Wstrict-aliasing
10663         and -Wstrict-overflow if they are uninitialized.
10664         * common.opt (Wstrict-aliasing): Specify Var and Init.
10665         (Wstrict-overflow): Likewise.
10666
10667 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
10668
10669         PR rtl-optimization/26854
10670         PR rtl-optimization/34400
10671         PR rtl-optimization/34884
10672         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
10673         DF_RD->gen.
10674         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
10675         (df_rd_bb_info.expanded_lr_out): Deleted
10676         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
10677         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
10678         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
10679         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
10680         Removed code to allocate, initialize or free expanded_lr_out.
10681         (df_rd_bb_local_compute_process_def): Restructured to make more
10682         understandable.
10683         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
10684         sets if the sets are being trimmed.
10685
10686 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
10687
10688         PR bootstrap/32287
10689         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
10690         (as_vers): Likewise.
10691         * configure: Regenerated.
10692
10693 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10694
10695         PR middle-end/33092
10696         * tree-pass.h (pass_build_alias): New pass.
10697         * tree-ssa-alias.c (gate_build_alias): New.
10698         (pass_build_alias): New.
10699         * passes.c (init_optimization_passes): Add pass_build_alias after
10700         pass_create_structure_vars.
10701
10702 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
10703
10704         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
10705         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
10706         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
10707         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
10708         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
10709         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
10710         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
10711         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
10712         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
10713         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
10714         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
10715         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
10716         * config/s390/s390.md (FP_ALL): New mode iterator.
10717         (_d): New mode attribute.
10718         ("*signbit<mode>2>"): Changed mode of first operand.
10719         ("isinf<mode>2"): Changed mode of first operand.
10720         ("*TDC_insn"): Adaptation for DFP modes.
10721
10722 2008-01-22  Ben Elliston  <bje@au.ibm.com>
10723
10724         * tree.c (check_qualified_type): Improve function description.
10725
10726 2008-01-21  Jason Merrill  <jason@redhat.com>
10727
10728         PR c++/34196
10729         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
10730         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
10731         if it is set.
10732
10733 2008-01-21  DJ Delorie  <dj@redhat.com>
10734
10735         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
10736         return zero.
10737
10738 2008-01-21  Richard Guenther  <rguenther@suse.de>
10739
10740         PR middle-end/34856
10741         * tree-cfg.c (verify_expr): Allow all invariant expressions
10742         instead of just constant class ones as reference argument.
10743         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
10744         like any other constant.
10745         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
10746
10747 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
10748
10749         * regmove.c (fixup_match_1): Update call crossed frequencies.
10750
10751 2008-01-21  Richard Guenther  <rguenther@suse.de>
10752
10753         PR c/34885
10754         * tree-inline.c (setup_one_parameter): Deal with mismatched
10755         types using a VIEW_CONVERT_EXPR.
10756
10757 2008-01-21  Alon Dayan  <alond@il.ibm.com>
10758             Olga Golovanevsky  <olga@il.ibm.com>
10759         
10760         PR tree-optimization/34701
10761         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
10762         when the structure size is not a power of 2.
10763
10764 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
10765
10766         * doc/install.texi: Add doc for --enable-checking=df.
10767         
10768 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
10769
10770         PR rtl-optimization/34808
10771         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
10772
10773 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
10774
10775         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
10776         input.
10777
10778 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
10779
10780         PR rtl-optimization/26854
10781         PR rtl-optimization/34400
10782         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
10783         DF_RD->gen.
10784         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
10785         (df_rd_bb_info.expanded_lr_out): New.
10786         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
10787         * loop_iv.c (iv_analysis_loop_init): Ditto.
10788         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
10789         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
10790         Added code to allocate, initialize or free expanded_lr_out.
10791         (df_rd_bb_local_compute_process_def): Restructured to make
10792         more understandable.
10793         (df_rd_confluence_n): Add code to do nothing with fake edges and
10794         code to no apply invalidate_by_call sets if the sets are being trimmed.
10795         (df_lr_local_finalize): Renamed to df_lr_finalize.
10796         (df_live_local_finalize): Renamed to df_live_finalize.
10797
10798 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
10799
10800         PR target/34831
10801         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
10802         deciding whether to use reciprocal instructions.
10803
10804 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
10805
10806         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
10807         dwarf2out_note_section_used if cold_text_section is NULL.
10808
10809 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
10810
10811         PR gcov-profile/34610
10812         * tree-cfg.c (make_edges): Mark both outgoing edges from
10813         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
10814         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
10815         from OMP_FOR and OMP_CONTINUE outgoing edges.
10816
10817         * tree-profile.c (tree_profiling): Return early if
10818         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
10819         at the end.
10820         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
10821         from cfun to child_cfun.
10822         * function.h (struct function): Add after_tree_profile bit.
10823
10824 2008-01-19 Anatoly Sokolov <aesok@post.ru>
10825
10826         * config/avr/avr.S (_exit): Disable interrupt.
10827
10828 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
10829             Steven Bosscher  <stevenb.gcc@gmail.com>
10830
10831         PR rtl-optimization/26854
10832         PR rtl-optimization/34400
10833         * df-problems.c (df_live_scratch): New scratch bitmap.
10834         (df_live_alloc): Allocate df_live_scratch when doing df_live.
10835         (df_live_reset): Clear the proper bitmaps.
10836         (df_live_bb_local_compute): Only process the artificial defs once
10837         since the order is not important.
10838         (df_live_init): Init the df_live sets only with the variables
10839         found live by df_lr.
10840         (df_live_transfer_function): Use the df_lr sets to prune the
10841         df_live sets as they are being computed.  
10842         (df_live_free): Free df_live_scratch.
10843
10844 2008-01-18  Ian Lance Taylor  <iant@google.com>
10845
10846         * common.opt: Add fmerge-debug-strings.
10847         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
10848         flag_merge_debug_strings rather than flag_merge_constants.
10849         * doc/invoke.texi (Option Summary): Mention
10850         -fmerge-debug-strings.
10851         (Debugging Options): Document -fmerge-debug-strings.
10852
10853 2008-01-18  Ian Lance Taylor  <iant@google.com>
10854
10855         PR c++/33407
10856         * tree.h (DECL_IS_OPERATOR_NEW): Define.
10857         (struct tree_function_decl): Add new field operator_new_flag.
10858         * tree-inline.c (expand_call_inline): When inlining a call to
10859         operator new, force the return value to go into a variable, and
10860         set DECL_NO_TBAA_P on that variable.
10861         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
10862
10863 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
10864
10865         PR debug/34484
10866         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
10867         DWARF2_DEBUGGING_INFO.
10868         (dwarf2out_note_section_used): Ditto.  Add prototype.
10869         (have_multiple_function_sections, text_section_used,
10870         cold_text_section_used, *cold_text_sections): Move declarations
10871         before their uses.
10872
10873 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
10874
10875         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
10876         field and add signal_ra.
10877         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
10878         assignments to frame state pc.  Move end of stack check after
10879         MD_FALLBACK_FRAME_STATE_FOR.
10880         (uw_update_context_1): Use frame state signal_regs if set, instead
10881         of checking signal_frame flag.
10882         (uw_update_context): Use frame state signal_ra if set.
10883         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
10884         * config/xtensa/linux-unwind.h: New file.
10885
10886 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
10887
10888         * modulo-sched.c (get_sched_window): Fix comment typo.
10889
10890 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
10891
10892         PR tree-optimization/34648
10893         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
10894
10895 2008-01-17  Anatoly Sokolov <aesok@post.ru>
10896
10897         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
10898         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
10899
10900 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
10901
10902         PR rtl-optimization/34400
10903         * df-core.c (df_worklist_dataflow_overeager,
10904         df_worklist_dataflow_doublequeue): New functions.
10905         (df_worklist_dataflow): Two different worklist solvers.
10906         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
10907         New param.
10908
10909 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10910
10911         PR testsuite/34821
10912         * doc/invoke.texi: Document the dependence on pthread for fopenmp
10913         and ftree-parallelize-loops.
10914
10915 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
10916
10917         PR rtl-optimization/34826
10918         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
10919
10920 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
10921
10922         * global.c (find_reg): Mark the eh regs as used if necessary.
10923         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
10924         * ra.h (struct allocno): no_eh_reg field added.  Changed
10925         no_stack_reg type to bitfield.
10926
10927 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
10928
10929         * tree.c (substitute_in_expr): Add missing 'break'.
10930
10931 2008-01-17  Richard Guenther  <rguenther@suse.de>
10932
10933         PR tree-optimization/34825
10934         * tree-ssa-math-opts.c (is_division_by): Do not recognize
10935         x / x as division to handle.
10936
10937 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10938
10939         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
10940         "-pthread" is specified.
10941         * pa-hpux11.h (LIB_SPEC): Likewise.
10942
10943 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
10944             Peter Bergner  <bergner@vnet.ibm.com>
10945
10946         PR rtl-optimization/33796
10947         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
10948
10949 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10950
10951         PR libgfortran/34699
10952         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
10953         static links.
10954         * pa-hpux10.h (LINK_SPEC): Likewise.
10955         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
10956
10957 2008-01-16  Richard Guenther  <rguenther@suse.de>
10958
10959         PR middle-end/32628
10960         * fold-const.c (fold_convert_const_int_from_int): Do not
10961         set overflow if that occured only because of a sign extension
10962         change when converting from/to a sizetype with the same
10963         precision and signedness.
10964
10965 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
10966
10967         PR debug/34249
10968         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
10969         location address to the correct place.  Update copyright year.
10970
10971 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10972
10973         * lambda-code.c (lambda_transform_legal_p): Handle the case of
10974         no dependences in the dependence_relations vector.
10975
10976 2008-01-16  Jan Hubicka  <jh@suse.cz>
10977
10978         PR rtl-optimization/31396
10979         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
10980         * cfg.c (dump_reg_info): Print it.
10981         * regs.h (struct reg_info_t): add freq_calls_crossed.
10982         (REG_FREQ_CALLS_CROSSED): New macro.
10983         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
10984         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
10985         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
10986         regmove_optimize): Update call crossed frequencies.
10987         * local-alloc.c (struct qty): Add freq_calls_crossed.
10988         (alloc_qty): Copute freq_calls_crossed.
10989         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
10990         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
10991         * ra.h (struct allocno): Add freq_calls_crossed.
10992
10993 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10994
10995         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
10996         libgomp when compiling with ftree-parallelize-loops.
10997         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
10998
10999 2008-01-16  Richard Guenther  <rguenther@suse.de>
11000
11001         PR tree-optimization/34769
11002         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
11003         * tree.c (int_cst_value): Instead make this function more
11004         permissive in what it accepts as valid input.  Document this
11005         function always sign-extends the value.
11006
11007 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
11008             Richard Guenther  <rguenther@suse.de>
11009
11010         PR c/34668
11011         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
11012         (gimple_fold_indirect_ref_rhs): ... this.
11013         (gimple_fold_indirect_ref): New function with foldings
11014         that preserve lvalueness.
11015         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
11016         * tree-flow.h (gimple_fold_indirect_ref): Declare.
11017         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
11018         to fold an INDIRECT_REF, fall back to the old use of
11019         fold_indirect_ref_1.
11020
11021 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
11022
11023         * tree-data-ref.c (subscript_dependence_tester_1): Call 
11024         free_conflict_function.
11025         (compute_self_dependence): Same.
11026
11027 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
11028
11029         PR debug/34249
11030         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
11031         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
11032         function global.
11033         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
11034         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
11035         for DWARF2_UNWIND_INFO targets.
11036
11037 2008-01-16  Richard Guenther  <rguenther@suse.de>
11038
11039         PR c/34768
11040         * c-typeck.c (common_pointer_type): Do not merge inconsistent
11041         type qualifiers for function types.
11042
11043 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
11044
11045         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
11046         loop_iterator li from previous commit.
11047
11048 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
11049
11050         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
11051
11052 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
11053
11054         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
11055         (parallelize_loops): Don't parallelize irreducible components.
11056
11057 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11058
11059         PR c++/24924
11060         * c-opts (c_common_post_options): Do not enable CPP
11061         flag_pedantic_errors by default.
11062         
11063 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
11064
11065         PR rtl-optimization/31944
11066         * cse.c (remove_pseudo_from_table): New function.
11067         (merge_equiv_classes): Use above function to remove pseudo-registers.
11068         (invalidate): Likewise.
11069
11070 2008-01-13  Richard Guenther  <rguenther@suse.de>
11071
11072         PR middle-end/34601
11073         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
11074         instead of TYPE_MODE to deal with calls from expand_one_error_var.
11075
11076 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
11077
11078         * gcse.c (cprop_jump): Call validate_unshare_change instead of
11079         validate_change to unshare the source of the PC set.
11080
11081 2008-01-12  Jan Hubicka  <jh@suse.cz>
11082
11083         PR middle-end/32135
11084         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
11085         references above array bounds.  This might trigger bounds checks for
11086         pointers to arrays.
11087
11088 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
11089
11090         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
11091         new_replaceable_dependencies.
11092
11093 2008-01-12  Doug Kwan  <dougkwan@google.com>
11094
11095         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
11096         instead of OPT_Wreturn_type in warning due to ignored return type
11097         qualifiers.
11098         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
11099         options included in -Wextra.
11100         * c.opt: New option -Wignored_qualifiers.
11101         * doc/invoke.texi (Warning Options, -Wextra): Add new option
11102         -Wignore_qualifiers.
11103         (-Wignored-qualifiers): Document.
11104         (-Wreturn-type): Remove description of functionality now handled
11105         by -Wignored-qualifiers.
11106
11107 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
11108
11109         PR ada/33788
11110         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
11111         NOP_EXPR if it is between integral types with the same precision.
11112
11113 2008-01-12  Jan Hubicka  <jh@suse.cz>
11114
11115         PR other/28023
11116         * invoke.texi (max-inline-recursive-depth): Fix default value.
11117
11118 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
11119
11120         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
11121         correct type.
11122
11123 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
11124         
11125         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
11126         
11127 2008-01-11  James E. Wilson  <wilson@specifix.com>
11128
11129         PR target/26015
11130         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
11131
11132 2008-01-11  Anatoly Sokolov <aesok@post.ru>
11133
11134         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
11135         save/restore frame pointer register and don't use 'call-prologues' 
11136         optimization in function with "OS_task" attribute.
11137
11138 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
11139
11140         PR middle-end/31309
11141         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
11142         when copying to memory.
11143
11144 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
11145
11146         PR rtl-optimization/30905
11147         * cfgcleanup.c: Include dce.h
11148         (crossjumps_occured): New global variable.
11149         (try_crossjump_bb): Exit loop after finding a fallthru edge.
11150         If something changed, set crossjumps_occured to true.
11151         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
11152         Don't add/remove fake edges to exit here...
11153         (cleanup_cfg): ...but do it here, when crossjumping.
11154         Run a fast DCE when successful crossjumps occured in the latest
11155         iteration of try_optimize_cfg.
11156
11157 2008-01-11  Richard Guenther  <rguenther@suse.de>
11158
11159         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
11160         (struct vn_unary_op_s): Likewise.
11161         (vn_reference_insert): Free old reference on hash collision.
11162
11163 2008-01-10  Raksit Ashok  <raksit@google.com>
11164
11165         PR rtl-optimization/27971
11166         * combine.c (find_split_point): Split PLUS expressions which are
11167         inside a MEM rtx, and whose first operand is complex.
11168
11169 2008-01-10  DJ Delorie  <dj@redhat.com>
11170
11171         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
11172         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
11173         (m32c_hard_regno_ok): Call the underlying function.
11174
11175 2008-01-10  Richard Guenther  <rguenther@suse.de>
11176
11177         PR middle-end/34683
11178         * tree-cfg.c (tree_merge_blocks): Do not go through the
11179         full-blown folding and stmt updating path if we just deal
11180         with virtual operands.
11181         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
11182         test for abnormal SSA_NAMEs.
11183
11184 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
11185
11186         PR middle-end/34641
11187         * reload.c (push_reload): Add assertions.  All constants from
11188         reg_equiv_constant should have been used for replacing the respective
11189         pseudo earlier.
11190         (find_reloads_address): Invoke find_reloads_address_part for
11191         constant taken from the reg_equiv_constant array.
11192
11193 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
11194
11195         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
11196         field (valnum) the first in the struct.  Replace bools with
11197         unit bit fields.
11198
11199 2008-01-10  Richard Guenther  <rguenther@suse.de>
11200
11201         PR tree-optimization/34651
11202         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
11203         types and ordering for masking and converting.
11204
11205 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
11206
11207         PR tree-optimization/34017
11208         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
11209         also for PHI_NODE expressions.
11210
11211 2008-01-09  Jan Hubicka  <jh@suse.cz>
11212
11213         PR tree-optimization/34708
11214         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
11215         based on number of case labels.
11216         (init_inline_once): Remove switch_cost.
11217         * tree-inline.h (eni_weights_d): Remove switch_cost.
11218
11219 2008-01-09  Richard Guenther  <rguenther@suse.de>
11220         Andrew Pinski  <andrew_pinski@playstation.sony.com>
11221
11222         PR middle-end/30132
11223         * gimplify.c (gimplify_cond_expr): Do not create an addressable
11224         temporary if an rvalue is ok or an lvalue is not required.
11225
11226 2008-01-09  Richard Guenther  <rguenther@suse.de>
11227
11228         PR middle-end/34458
11229         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
11230         adjust return type.
11231
11232 2008-01-09  Richard Guenther  <rguenther@suse.de>
11233
11234         PR middle-end/34679
11235         * tree.c (host_integerp): Check for sizetype only if the
11236         type is an integer type.
11237
11238 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
11239
11240         PR debug/26364
11241         * opts.c (decode_options): Disable inlining of functions called
11242         once if not in unit-at-a-time mode.
11243
11244 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
11245
11246         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
11247
11248 2008-01-08  Richard Guenther  <rguenther@suse.de>
11249
11250         PR middle-end/31863
11251         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
11252         out early if the result will be unused.
11253
11254 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
11255
11256         PR target/34709
11257         Revert:
11258
11259         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
11260         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
11261         for TARGET_RECIP.       
11262         
11263 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
11264         
11265         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
11266         for vectorization tuned.
11267         
11268 2008-01-08  Richard Guenther  <rguenther@suse.de>
11269
11270         PR tree-optimization/34683
11271         * tree-ssa-operands.c (operand_build_cmp): Export.
11272         * tree-ssa-operands.h (operand_build_cmp): Declare.
11273         * tree-vn.c (vuses_compare): Remove.
11274         (sort_vuses): Use operand_build_cmp.
11275         (sort_vuses_heap): Likewise.
11276         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
11277         to re-use old VEC if available.  Do not sort already sorted VUSEs.
11278         (vdefs_to_vec): Do not sort already sorted VDEFs.
11279
11280 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
11281
11282         PR middle-end/34694
11283         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
11284
11285 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
11286
11287         PR target/34702
11288         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
11289         limitations of reciprocal sequences on x86 targets.
11290
11291 2008-01-08  Richard Guenther  <rguenther@suse.de>
11292
11293         PR tree-optimization/34683
11294         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
11295
11296 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
11297
11298         PR target/34622
11299         * config/darwin.c (darwin_mergeable_string_section): Don't use
11300         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
11301
11302 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
11303
11304         PR target/34682
11305         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
11306         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
11307         predicates of op0 and op1 to register_operand.
11308         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
11309         expander using X87MODEF mode iterator.  Change predicates of
11310         op0 and op1 to register_operand.
11311         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
11312         corresponding patterns and macroize using MODEF macro.  Change
11313         predicates of op0 and op1 to register_operand and remove
11314         "m" constraint. Disparage "r" alternative with "!".
11315         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
11316         macroize using X87MODEF macro.  Change predicates of op0 and op1
11317         to register_operand and remove "m" constraint.  Disparage "r"
11318         alternative with "!".
11319         (absneg splitter with memory operands): Remove.
11320         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
11321         patterns and macroize using X87MODEF mode iterator.
11322         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
11323         Change predicate of op1 to register_operand.
11324         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
11325         for memory operands.
11326
11327 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
11328
11329         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
11330
11331 2008-01-07  Richard Guenther  <rguenther@suse.de>
11332
11333         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
11334         fields.
11335
11336 2008-01-07  Richard Guenther  <rguenther@suse.de>
11337
11338         PR tree-optimization/34683
11339         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
11340         VOPs of the needed size to save memory.  Use VEC_quick_push
11341         to save compile-time.
11342         (vdefs_to_vec): Likewise.
11343
11344 2008-01-07  Sa Liu  <saliu@de.ibm.com>
11345
11346         * config/spu/spu.md (divdf3): Genetate inline code for double
11347         division.  The implementation doesn't handle INF or NAN, therefore it
11348         only applies when -ffinite-math-only is given.
11349
11350 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
11351
11352         PR libstdc++/34680
11353         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
11354         * doc/cpp.texi ([Common Predefined Macros]): Document.
11355
11356 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
11357
11358         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
11359         order to use commutative addition instead of subtraction.
11360
11361 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11362             Mircea Namolaru  <namolaru@il.ibm.com>
11363             Vladimir Yanovsky  <yanov@il.ibm.com>
11364             Revital Eres  <eres@il.ibm.com>
11365
11366         PR tree-optimization/34263
11367         * tree-outof-ssa.c (process_single_block_loop_latch,
11368         contains_tree_r): New functions.
11369         (analyze_edges_for_bb): Call process_single_block_loop_latch
11370         function to empty single-basic-block latch block if possible.
11371
11372 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
11373
11374         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
11375         for TARGET_RECIP.
11376         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
11377
11378 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
11379
11380         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
11381
11382 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
11383
11384         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
11385
11386 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
11387
11388         PR tree-optimization/34618
11389         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
11390         flag from T.
11391
11392 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
11393
11394         PR target/34673
11395         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
11396         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
11397         Update copyright year.
11398
11399         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
11400         Update copyright year.
11401         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
11402         using NR fixup.
11403
11404 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
11405
11406         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
11407         edge does not point to current bb before changing need_assert.
11408
11409 2008-01-04  Richard Guenther  <rguenther@suse.de>
11410
11411         PR middle-end/34029
11412         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
11413         for verifying purposes if they are is_gimple_min_invariant.
11414
11415 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
11416
11417         PR tree-optimization/34448
11418         PR tree-optimization/34465
11419         * gimplify.c (gimplify_init_constructor): Add new parameter
11420         notify_temp_creation.  Use it.
11421         (gimplify_modify_expr_rhs): Take volatiles into account when
11422         optimizing constructors.
11423         Do not optimize constructors if gimplify_init_constructor will dump to
11424         memory.
11425         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
11426         * gcc.c-torture/compile/pr34448.c: New.
11427
11428 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
11429
11430         PR gcov-profile/34609
11431         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
11432         return_slot if result is TREE_ADDRESSABLE.
11433
11434 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
11435
11436         * config/mips/mips.md (sqrt_condition): Tweak comment.
11437         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
11438
11439 2008-01-03  Tom Tromey  <tromey@redhat.com>
11440
11441         PR c/34457
11442         * c-common.c (c_type_hash): Handle VLAs.
11443
11444 2008-01-03  Jan Hubicka  <jh@suse.cz>
11445
11446         PR tree-optimization/31081
11447         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
11448         0 when inlining and not inlining to first basic block.
11449         (remap_decl): When var is initialized to 0, don't set default_def.
11450         (expand_call_inline): Set entry_bb.
11451         * tree-inline.h (copy_body_data): Add entry_bb.
11452
11453 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
11454
11455         PR c++/34619
11456         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
11457         before returning.
11458
11459         PR tree-optimization/29484
11460         * tree-inline.c (inline_forbidden_p_2): New function.
11461         (inline_forbidden_p): Disallow inlining if some static var
11462         has an address of a local LABEL_DECL in its initializer.
11463         * doc/extend.texi (Labels as Values): Document &&foo behaviour
11464         vs. inlining.
11465
11466 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
11467
11468         PR tree-optimization/34635
11469         * tree-data-ref.c (add_other_self_distances): Make sure that the
11470         evolution step is constant.
11471
11472 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
11473
11474         PR middle-end/34608
11475         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
11476
11477 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
11478
11479         * tree-sra.c (scalarize_init): Insert the generate_element_init
11480         statements after the generate_element_zero statements.
11481
11482 2008-01-02  Richard Guenther  <rguenther@suse.de>
11483
11484         PR middle-end/34093
11485         PR middle-end/31976
11486         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
11487         for very large number of operands instead of ICEing.
11488
11489 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
11490
11491         PR target/34013
11492         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
11493         while stack probing.
11494
11495 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
11496
11497         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
11498         in C++0x mode.
11499
11500 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
11501
11502         PR libmudflap/26442
11503         * tree-mudflap.c (mx_register_decls): Guard warning by
11504         !DECL_ARTIFICIAL check.
11505
11506 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
11507
11508         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
11509         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
11510         sse5_perm<mode>): Fix constraints.