OSDN Git Service

Correct changelog entry as
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
2
3         *  config/i386/i386.c (ix86_gen_leave): New.
4         (ix86_gen_pop1): Likewise.
5         (ix86_gen_add3): Likewise.
6         (ix86_gen_sub3): Likewise.
7         (ix86_gen_sub3_carry): Likewise.
8         (ix86_gen_one_cmpl2): Likewise.
9         (ix86_gen_monitor): Likewise.
10         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
11         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
12         ix86_gen_one_cmpl2 and ix86_gen_monitor.
13         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
14         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
15         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
16         (ix86_expand_epilogue): Updated.
17         (print_operand): Handle integer register operand for 'z'.
18         (ix86_expand_strlensi_unroll_1): Likewise.
19         (ix86_expand_strlen): Likewise.
20         (ix86_expand_builtin): Likewise.
21         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
22         mov{q}/mov{l} and add{q}/add{l}.
23
24 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
25
26         * config/i386/i386.md (P): New mode iterator.
27         (SFmode push_operand splitter): Macroize DImode and SImode pushes
28         using P mode iterator.
29         (DFmode ...): Ditto.
30         (XFmode ...): Ditto.
31         (DFmode float_extend SFmode push_operand splitter): Ditto.
32         (XFmode float_extend SFmode push_operand splitter): Do not generate
33         SImode pushes for 64bit target.  Macroize Dimode and SImode ...
34         (XFmode float_extedn DFmode push_operand splitter): Ditto.
35
36 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
37
38         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
39         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed
40         prototype.
41         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
42         return type to int.
43         (ix86_call_abi_override): Remove check for call_used_regs.
44
45 2008-06-03  Richard Guenther  <rguenther@suse.de>
46
47         * tree-ssa-structalias.c (find_func_aliases): Add constraints
48         for the lhs of calls if the return type contains pointers.
49
50 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
51
52         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
53         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
54         * function.c (allocate_struct_function): Use of
55         OVERRIDE_ABI_FORMAT.
56         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
57         of cfun and DEFAULT_ABI to deceide abi mode.
58         (DEFAULT_ABI): New.
59         (REG_PARM_STACK_SPACE): Removed.
60         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
61         (STACK_BOUNDARY): Use default target to deceide stack boundary.
62         * config/i386/i386-protos.h (ix86_cfun_abi): New.
63         (ix86_function_abi): Likewise.
64         (ix86_function_type_abi): Likewise.
65         (ix86_call_abi_override): Likewise.
66         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
67         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
68         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
69         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
70         specific defines.
71         (X86_64_REGPARM_MAX): New.
72         (X86_64_SSE_REGPARM_MAX): New.
73         (X64_REGPARM_MAX): New.
74         (X64_SSE_REGPARM_MAX): New.
75         (X86_32_REGPARM_MAX): New.
76         (X86_32_SSE_REGPARM_MAX): New.
77         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
78         (ix86_function_regparm): Handle user calling abi.
79         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
80         by DEFAULT_ABI versus SYSV_ABI check.
81         (ix86_reg_parm_stack_space): New.
82         (ix86_function_type_abi): New.
83         (ix86_call_abi_override): New.
84         (ix86_function_abi): New.
85         (ix86_cfun_abi): New.
86         (init_cumulative_args): Call abi specific initialization.
87         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
88         (function_arg_64): Extend SSE_REGPARM_MAX check.
89         (function_arg (): Remove TARGET_64BIT_MS_ABI.
90         (ix86_pass_by_reference): Likewise.
91         (ix86_function_value_regno_p): Likewise.
92         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
93         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
94         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
95         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
96         (setup_incoming_varargs_64): Adjust regparm for call abi.
97         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
98         (ix86_va_start): Likewise.
99         (ix86_gimplify_va_arg): Likewise.
100         (ix86_expand_prologue): Likewise.
101         (output_pic_addr_const): Likewise.
102         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
103         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
104         (x86_output_mi_thunk): Likewise.
105         (x86_function_profiler): Likewise.
106         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
107         (SYSV_ABI, MS_ABI): New constants.
108         (DEFAULT_ABI): New.
109         (init_regs): Add prototype of function in regclass.c file.
110         (OVERRIDE_ABI_FORMAT): New.
111         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
112         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
113         (OUTGOING_REG_PARM_STACK_SPACE): New.
114         (ix86_reg_parm_stack_space): New prototype.
115         (CUMULATIVE_ARGS): Add call_abi member.
116         (machine_function): Add call_abi member.
117         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace TARGET_64BIT_MS_ABI
118         by DEFAULT_ABI compare to MS_ABI.
119
120 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com> 
121
122         PR target/34879
123         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
124         (avr_builtin_setjmp_frame_value): New function.
125         * config/avr/avr.md (nonlocal_goto_receiver): Define.
126         (nonlocal_goto): Define.
127
128 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
129
130         * config/mips/mips.c (mips_emit_loadgp): Return early if
131         there is nothing do to, otherwise emit a blockage if
132         !TARGET_EXPLICIT_RELOCS || crtl->profile.
133         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
134
135 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
136
137         * configure.ac: Drop unneeded backslash ending up in config.in.
138         * acinclude.m4: Likewise.
139         * config.in: Regenerate.
140
141 2008-05-26  Jan Hubicka  <jh@suse.cz>
142
143         * predict.c (maybe_hot_frequency_p): Break out of...
144         (maybe_hot_bb_p): ... here.
145         (maybe_hot_edge_p): New.
146         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
147         * basic-block.h (maybe_hot_edge_p): Declare.
148
149 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
150
151         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
152         (*cmpfp_<mode>_cc): Ditto.
153         (*fp_jcc_8<mode>_387): Ditto.
154         (*fop_<MODEF:mode>_2_i387): Ditto.
155         (*fop_<MODEF:mode>_3_i387): Ditto.
156         (*fop_xf_2_i387): Ditto.
157         (*fop_xf_3_i387): Ditto.
158
159 2008-06-02  Tomas Bily  <tbily@suse.cz>
160
161         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
162
163 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
164
165         * config/mips/mips.c (mips_valid_offset_p): New function.
166         (mips_valid_lo_sum_p): Likewise.
167         (mips_classify_address): Use them.
168         (mips_force_address): New function.
169         (mips_legitimize_address): Use it.
170         * config/mips/mips.md (MOVE128): New mode iterator.
171         (movtf): Require TARGET_64BIT.  Remove empty strings.
172         (*movtf_internal): Rename to...
173         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
174         of "R" and use {,fp}{load,store} attributes instead of "multi".
175         Use a separate define_split.
176         (*movtf_mips16): New pattern.
177
178 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
179
180         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
181         * config/mips/mips.c (mips_expand_before_return): New function.
182         (mips_expand_epilogue): Call it.
183         * config/mips/mips.md (return): Turn into a define_expand.
184         (*return): New insn.
185
186 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
187
188         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
189         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
190         functions.  Do not emit uses and clobbers of CONCATs; individually
191         use and clobber their operands.
192         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
193         gen_clobber, emit_use and gen_use.
194         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
195         (expand_builtin_return): Likewise.
196         * cfgbuild.c (count_basic_blocks): Likewise.
197         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
198         * explow.c (emit_stack_restore): Likewise.
199         * expmed.c (extract_bit_field_1): Likewise.
200         * expr.c (convert_move, emit_move_complex_parts): Likewise.
201         (emit_move_multi_word, store_constructor): Likewise.
202         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
203         (thread_prologue_and_epilogue_insns): Likewise.
204         * lower-subreg.c (resolve_simple_move): Likewise.
205         * optabs.c (widen_operand, expand_binop): Likewise.
206         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
207         * reload.c (find_reloads): Likewise.
208         * reload1.c (eliminate_regs_in_insn): Likewise.
209         * stmt.c (expand_nl_goto_receiver): Likewise.
210         * config/alpha/alpha.md (builtin_longjmp): Likewise.
211         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
212         * config/arm/arm.c (arm_load_pic_register): Likewise.
213         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
214         * config/arm/arm.md (untyped_return): Likewise.
215         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
216         * config/avr/avr.c (expand_prologue): Likewise.
217         * config/bfin/bfin.c (do_unlink): Likewise.
218         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
219         * config/cris/cris.c (cris_expand_prologue): Likewise.
220         * config/darwin.c (machopic_indirect_data_reference): Likewise.
221         (machopic_legitimize_pic_address): Likewise.
222         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
223         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
224         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
225         (ix86_expand_convert_uns_didf_sse): Likewise.
226         (ix86_expand_vector_init_general): Likewise.
227         * config/ia64/ia64.md (eh_epilogue): Likewise.
228         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
229         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
230         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
231         (config/iq2000/iq2000.c): Likewise.
232         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
233         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
234         (builtin_longjmp): Likewise.
235         * config/mn10300/mn10300.md (call, call_value): Likewise.
236         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
237         * config/pdp11/pdp11.md (abshi2): Likewise.
238         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
239         * config/s390/s390.c (s390_emit_prologue): Likewise.
240         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
241         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
242         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
243         * config/sh/sh.c (prepare_move_operands): Likewise.
244         (output_stack_adjust, sh_expand_epilogue): Likewise.
245         (sh_set_return_address, sh_expand_t_scc): Likewise.
246         * config/sparc/sparc.c (load_pic_register): Likewise.
247         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
248         * config/spu/spu.c (spu_expand_epilogue): Likewise.
249         * config/v850/v850.c (expand_epilogue): Likewise.
250
251 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
252
253         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
254         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
255         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
256         * config/avr/avr.c (expand_prologue, expand_epilogue): Use 
257         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the 
258         stack pointer register.
259         (output_movhi): Remove code for interrupt specific writing to the 
260         stack pointer register.
261
262 2008-05-31  Richard Guenther  <rguenther@suse.de>
263
264         PR tree-optimization/34244
265         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
266         (tree_expr_nonzero_warnv_p): Likewise.
267         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
268         ssa_name_nonnegative_p.
269         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
270         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
271         not tree_expr_nonzero_warnv_p.
272
273         PR tree-optimization/36262
274         Revert
275         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
276
277         PR tree-optimization/34244
278         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
279         (record_numbers_of_iterations): New function.
280         (execute_vrp): Cache the numbers of iterations of loops.
281         * tree-scalar-evolution.c (scev_reset_except_niters):
282         New function.
283         (scev_reset): Use scev_reset_except_niters.
284         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
285
286 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
287
288         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
289         __WORKAROUND_RETS when appropriate.
290
291 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
292
293         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
294         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
295         mode iterator.
296         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
297         *fop_df_comm_sse insn patterns using MODEF mode iterator.
298         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
299         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
300         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
301         *fop_df_1_mixed insn patterns using MODEF mode iterator.
302         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
303         *fop_df_1_sse insn patterns using MODEF mode iterator.
304         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
305         *fop_df_1_i387 insn patterns using MODEF mode iterator.
306         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
307         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
308         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
309         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
310         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
311         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
312         (*fop_xf_4_i387): Use <MODE> for mode attribute.
313         (*fop_xf_5_i387): Ditto.
314         (*fop_xf_6_i387): Ditto.
315
316 2008-05-30  Richard Guenther  <rguenther@suse.de>
317
318         * builtins.c (build_string_literal): Avoid generating
319         a non-gimple_val result.
320
321 2008-05-30  DJ Delorie  <dj@redhat.com>
322
323         * exec-tool.in: Use an environment variable (private) instead of a
324         file (shared) as a semaphore, so as to not break parallel builds.
325
326 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
327
328         * optabs.c (maybe_encapsulate_block): Remove.
329         (emit_libcall_block): Adjust accordingly.
330         * optabs.h (maybe_encapsulate_block): Remove prototype.
331
332         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
333         Don't use maybe_encapsulate_block.
334
335 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
336
337         * config/rs6000/rs6000.c (rs6000_legitimize_address,
338         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
339         rtx is a SYMBOL_REF before calling get_pool_constant.
340
341 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
342
343         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
344
345 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
346
347         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
348         rather than OS names to choose INO_T_EQ definition.
349         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
350         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
351
352 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
353
354         PR target/36348
355         * config/darwin-f.c: New.
356         * config/t-darwin: Added rule to build darwin-f.o.
357         * config.gcc: Defined new variable, fortran_target_objs.
358         (*-*-darwin*): Set fortran_target_objs.
359         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
360         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
361         * configure: Regenerated.
362
363 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
364
365         PR target/35771
366         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
367         canonical type if needed.
368
369 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
370
371         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
372
373 2008-05-29  Richard Guenther  <rguenther@suse.de>
374
375         PR tree-optimization/36343
376         PR tree-optimization/36346
377         PR tree-optimization/36347
378         * tree-flow.h (clobber_what_p_points_to): Declare.
379         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
380         pointed-to variable is dereferenced is irrelevant to whether
381         the pointer can access the pointed-to variable.
382         (clobber_what_p_points_to): New function.
383         * tree-ssa-alias.c (set_initial_properties): Use it.
384         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
385         call clobber check for NMTs.
386
387 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
388         
389         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
390         for printing gcov_type.
391
392 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
393
394         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
395         and the eh region information.
396         * value-prof.c (gimple_move_stmt_histograms): New function.
397         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
398
399 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
400
401         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
402
403 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
404
405         * value-prof.c (tree_ic_transform): Print counts.
406         * tree-profile.c (tree_gen_ic_func_profiler):
407         Clear __gcov_indreict_call_callee variable to avoid misattribution
408         of the profile.
409
410 2008-05-28  Rafael Espindola  <espindola@google.com>
411
412         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
413         invalid sharing.
414
415 2008-05-28  Richard Guenther  <rguenther@suse.de>
416
417         PR tree-optimization/36339
418         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
419         and clobbering code out of the loop.
420
421 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
422
423         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
424         letters defined.
425
426         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
427         s390_contiguous_bitmask_p, s390_symref_operand_p,
428         s390_check_symref_alignment, s390_reload_larl_operand,
429         s390_reload_symref_address): New functions.
430         (s390_branch_condition_mnemonic): Support compare and branch
431         instructions.
432         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
433         and 'W' constraints.
434         (s390_secondary_reload): Add secondary reloads for unaligned
435         symbol refs or symbol refs to floating point or QI/TI mode
436         integer values.
437         (legitimate_address_p): Accept symbol references as addresses.
438         (s390_expand_insv): Use rotate and insert selected bits
439         instruction for insv when building for z10.
440         (print_operand_address): Handle symbol ref addresses.
441         (print_operand): Output modifier 'c' added for signed byte values.
442         (s390_encode_section_info): Mark symbol refs with
443         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
444
445         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
446         (length attribute): RRF, RRR have 4 byte length.
447         (FPALL, INTALL): New mode iterators added.
448         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
449         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
450         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
451         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
452         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
453         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
454         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
455         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
456         instructions.
457         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
458         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
459         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
460         reload<INTALL:mode><P:mode>_toreg_z10,
461         reload<FPALL:mode><P:mode>_tomem_z10,
462         reload<FPALL:mode><P:mode>_toreg_z10,
463         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
464         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
465         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
466         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
467         definition.
468         (movmem, clrmem, cmpmem): New splitters added.
469
470         * config/s390/predicates.md (larl_operand): Use
471         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
472         SYMBOL_REF_ALIGN1_P.
473         (s390_signed_integer_comparison,
474         s390_unsigned_integer_comparison): New predicates.
475
476         * config/s390/s390-protos.h (s390_check_symref_alignment,
477         s390_contiguous_bitmask_p, s390_reload_larl_operand,
478         s390_reload_symref_address,
479         s390_compare_and_branch_condition_mask): Prototypes added.
480
481         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
482         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
483         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
484
485 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
486
487         * config/s390/s390.c (z10_cost): New cost function for z10.
488         (s390_handle_arch_option, override_options): Support -march=z10 switch.
489         (s390_issue_rate): Adjust issue rate for z10.
490         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
491         (processor_flags): Add PF_Z10.
492         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
493         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
494         * gcc/config.gcc: Add z10.
495
496 2008-05-28  Richard Guenther  <rguenther@suse.de>
497
498         PR tree-optimization/36291
499         * tree-flow. h (struct gimple_df): Remove var_anns member.
500         * tree-flow-inline.h (gimple_var_anns): Remove.
501         (var_ann): Simplify.
502         * tree-dfa.c (create_var_ann): Simplify.
503         (remove_referenced_var): Clear alias info from var_anns of globals.
504         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
505         (delete_tree_ssa): Clear alias info from var_anns of globals.
506         Do not free var_anns.
507         (var_ann_eq): Remove.
508         (var_ann_hash): Likewise.
509
510 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
511
512         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
513         and loongson2f entries.
514         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
515         * config/mips/mips.h (processor_type): Add Loongson-2E
516         and Loongson-2F entries.
517         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
518         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
519         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
520         * doc/invoke.texi (MIPS Options): Document loongson2e
521         and loongson2f processor names.
522
523 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
524
525         PR target/35767
526         PR target/35771
527         * config/i386/i386.c (ix86_function_arg_boundary): Use
528         alignment of canonical type.
529         (ix86_expand_vector_move): Check unaligned memory access for
530         all SSE modes.
531
532 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
533
534         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
535         Moved to the front of file.
536
537 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
538             H.J. Lu  <hongjiu.lu@intel.com>
539
540         * dwarf2out.c (current_fde): New.
541         (add_cfi): Use it.
542         (lookup_cfa:): Likewise.
543         (dwarf2out_end_epilogue): Likewise.
544         (dwarf2out_note_section_used): Likewise.
545
546 2008-05-27  Michael Matz  <matz@suse.de>
547
548         PR c++/27975
549         * c.opt (Wenum-compare): New warning option.
550         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
551
552 2008-05-27  Michael Matz  <matz@suse.de>
553
554         PR middle-end/36326
555         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
556         non-BLKmode types.
557         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
558         into memory as tail calls.
559
560 2008-05-27  Richard Guenther  <rguenther@suse.de>
561
562         PR tree-optimization/36339
563         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
564         pointers cause all addressable variables to be call clobbered.
565
566 2008-05-27  Richard Guenther  <rguenther@suse.de>
567
568         PR tree-optimization/36245
569         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
570
571 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
572
573         * config/s390/s390.md: Replace all occurences of the 'm'
574         constraint with 'RT'.
575
576 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
577
578         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
579         definitions added.
580         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
581         "*movdi_64".
582         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
583         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
584         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
585
586 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
587
588         * reload.c: (find_reloads): Skip alternatives according to the
589         "enabled" attribute. Constify the constraint variable.
590         * recog.c (get_attr_enabled): Add default implementation.
591         (extract_insn): Set the alternative_enabled_p array
592         in the recog_data struct.
593         (preprocess_constraints, constrain_operands): Skip
594         alternatives according to the "enabled" attribute
595         * recog.h (struct recog_data): New field alternative_enabled_p.
596         (skip_alternative): New inline function.
597         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
598         (record_reg_classes): Skip alternative according to the
599         "enabled" attribute.
600
601         * doc/md.texi: Add documention for the "enabled" attribute.
602
603 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
604
605         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
606         * postreload.c (reload_cse_simplify_operands): Replace 'm'
607         constraint with TARGET_MEM_CONSTRAINT.
608         * recog.c (asm_operand_ok, preprocess_constraints,
609         constrain_operands): Likewise.
610         * regclass.c (record_reg_classes): Likewise.
611         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
612         * reload1.c (maybe_fix_stack_asms): Likewise.
613         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
614         * recog.h: Adjust comment.
615         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
616         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
617         * doc/md.texi: Add a note to description of 'm' constraint.
618         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
619
620 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
621
622         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
623         that the bitfield is of integral type before testing its precision.
624
625 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
626             Sa Liu  <saliu@de.ibm.com> 
627
628         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, 
629         __modti3, __udivti3, __umodti3 and __udivmodti4.
630         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
631         that implement TImode mul and div functions.
632         * config/spu/multi3.c: New. Implement __multi3.
633         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
634         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
635         functions on SPU.
636
637 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
638
639         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
640         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
641         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
642         tls_sysv_suffix): New mode and mode attribute iterators.
643         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
644         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
645         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
646         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
647         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
648         iterators.
649
650 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
651
652         PR tree-optimization/36329
653         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
654         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
655         * cgraphbuild.c (initialize_inline_failed): Use the latter
656         macro in lieu of the former.
657         * ipa-inline.c (cgraph_mark_inline): Likewise.
658         (cgraph_decide_inlining_of_small_function): Likewise.
659         (cgraph_decide_inlining): Likewise.
660         (cgraph_decide_inlining_incrementally): Likewise.
661
662 2008-05-26  Tristan Gingold  <gingold@adacore.com>
663             Anatoly Sokolov  <aesok@post.ru>
664
665         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
666         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
667         * config/avr/avr.c (expand_prologue): Tune "call_prologue" 
668         optimization for 'avr6' architecture.
669
670 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
671
672         PR target/34932
673         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
674
675 2008-05-26  Richard Guenther  <rguenther@suse.de>
676
677         * tree-ssa-sccvn.c (expr_has_constants): Declare.
678         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
679
680 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
681
682         PR middle-end/36253
683         * caller-save.c (insert_restore): Verify alignment of spill space.
684         (insert_save): Likewise.
685         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
686         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
687         (STACK_SLOT_ALIGNMENT): Likewise.
688         * function.c (LOCAL_ALIGNMENT): Removed.
689         (get_stack_local_alignment): New.
690         (assign_stack_local): Use it.  Set alignment on stack slot.
691         (assign_stack_temp_for_type): Use get_stack_local_alignment.
692         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
693         (STACK_SLOT_ALIGNMENT): New.
694         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
695         stack slot in XFmode.
696
697         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
698
699 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
700
701         PR/36321
702         * config/i386/i386.md (allocate_stack_worker_64): Make sure
703         argument operand in rax isn't removed.
704
705 2008-05-26  Richard Guenther  <rguenther@suse.de>
706
707         PR middle-end/36300
708         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
709         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
710
711 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
712
713         PR bootstrap/36331
714         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
715
716 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
717
718         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
719         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
720
721 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
722
723         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
724         build a trampoline if we don't want one.
725         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
726         return zero for nested functions if we don't want a trampoline.
727
728 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
729
730         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
731
732 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
733
734         PR fortran/18428
735         * c.opt: Removed undocumented option '-lang-fortran'.
736         * c-common.h: Removed global variable 'lang_fortran'.
737         * c-opts.c (c_common_handle_option): Removed code to handle
738         option '-lang-fortran'. Updated includes.
739         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
740         definition of '__GFORTRAN__'.
741         (define__GNUC__): Reimplemented to use BASEVER and
742         cpp_define_formatted.
743         (builtin_define_with_value_n): Removed.
744         * c-incpath.h: Renamed to ...
745         * incpath.h: ... this.
746         * c-incpath.c: Renamed to ...
747         * incpath.c: ... this. Updated includes.
748         * fix-header.c: Updated includes.
749         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
750         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
751         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
752
753 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
754
755         * tree.h: Update the table of flags used on tree nodes.
756         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
757         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
758         (FORCED_LABEL): Add access check.
759         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
760         (ASM_INPUT_P): Likewise.
761         (ASM_VOLATILE_P): Likewise.
762         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
763         (OMP_SECTION_LAST): Access private_flag directly.
764         (OMP_RETURN_NOWAIT): Likewise.
765         (OMP_PARALLEL_COMBINED): Likewise.
766         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
767         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
768         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
769         deprecated_flag directly.
770
771 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
772
773         * final.c (frame_pointer_needed): Removed.
774         * flags.h (frame_pointer_needed): Likewise.
775
776         * function.h (rtl_data): Add frame_pointer_needed.
777         (frame_pointer_needed): New.
778
779 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
780
781         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
782
783 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
784
785         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
786         SRC is a REG.
787
788 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
789
790         * c-common.c (strip_array_types): Move function to..
791         * tree.c: ..here.
792         (get_inner_array_type): Delete.
793         * c-common.h (strip_array_types): Move declaration to..
794         * tree.h: ..here.
795         (get_inner_array_type): Delete.
796         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
797         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
798         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
799         * config/pa/pa.c (emit_move_sequence): Likewise.
800
801 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
802
803         * config/i386/i386.md (*sse_prologue_save_insn): Set length
804         attribute to 34.
805
806 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
807
808         * function.c: Include target hook for nonlocal_goto frame value.
809
810 2008-05-24  Richard Guenther  <rguenther@suse.de>
811
812         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
813         variable can be only accessed through a pointer or a union.
814
815 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
816
817         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
818         * doc/extend.texi: Likewise.
819
820 2008-05-23  DJ Delorie  <dj@redhat.com>
821
822         * config/m32c/jump.md (untyped_call): Add.
823
824         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
825         for A24 to PSImode.
826         (m32c_address_cost): Detail costs for indirect offsets.
827
828 2008-05-23  Rafael Espindola  <espindola@google.com>
829
830         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
831         if a node is a SUBREG.
832         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
833         is a SUBREG.
834
835 2008-05-23  Paul Brook  <paul@codesourcery.com>
836             Carlos O'Donell  <carlos@codesourcery.com>
837
838         * doc/extend.texi: Clarify use of __attribute__((naked)).
839         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
840         * target.h (gcc_target): Add allocate_stack_slots_for_args.
841         * function.c (use_register_for_decl): Use
842         targetm.calls.allocate_stack_slots_for_args.
843         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
844         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
845         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
846
847 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
848
849         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
850
851 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
852
853         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
854         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
855         is only rounded once.
856
857 2008-05-23  Richard Guenther  <rguenther@suse.de>
858
859         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
860
861 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
862             Jakub Jelinek  <jakub@redhat.com>
863
864         PR target/36079
865         * configure.ac: Handle --enable-cld.
866         * configure: Regenerated.
867         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
868         * config/i386/i386.h (struct machine_function): Add needs_cld field.
869         (ix86_current_function_needs_cld): New define.
870         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
871         (cld): New isns pattern.
872         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
873         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
874         * config/i386/i386.opt (mcld): New option.
875         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
876         TARGET_CLD and ix86_current_function_needs_cld.
877         (override_options): Use -mcld by default for 32-bit code if
878         USE_IX86_CLD.
879
880         * doc/install.texi (Options specification): Document --enable-cld.
881         * doc/invoke.texi (Machine Dependent Options)
882         [i386 and x86-64 Options]: Add -mcld option.
883         (Intel 386 and AMD x86-64 Options): Document -mcld option.
884
885 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
886         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
887         (return_in_memory_64): Likewise.
888         (return_in_memory_ms_64): Likewise.
889
890 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
891
892         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
893         * builtins.c (fold_builtin_fpclassify): New.
894         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
895         * builtins.def (BUILT_IN_FPCLASSIFY): New.
896         * c-common.c (handle_type_generic_attribute): Adjust to accept
897         fixed arguments before an elipsis.
898         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
899         * doc/extend.texi: Document __builtin_fpclassify.
900
901 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
902
903         * omp-low.c (gate_expand_omp_ssa): Remove.
904         (pass_expand_omp_ssa): Remove.
905         (gate_expand_omp): Do not check for flag_openmp_ssa.
906         * common.opt (-fopenmp-ssa): Remove.
907         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
908
909 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
910
911         * config/sh/sh.opt (mfixed-range): New option.
912         * config/sh/sh-protos.h (sh_fix_range): Declare.
913         * config/sh/sh.c (sh_fix_range): New function.
914         * config/sh/sh.h (sh_fixed_range_str): Declare.
915         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
916         is not empty.
917         * doc/invoke.texi (SH Options): Document -mfixed-range.
918
919 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
920
921         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
922         it before the redeclaration.
923
924 2008-05-22  Anatoly Sokolov <aesok@post.ru>
925
926         * config/avr/avr.c (get_sequence_length): Add new function.
927         (expand_prologue, expand_epilogue): Remove duplicate code.
928
929 2008-05-22  Rafael Espindola  <espindola@google.com>
930
931         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
932         sharing.
933
934 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
935
936         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
937         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
938
939         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
940         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
941         (vect_update_misalignment_for_peel): Likewise.
942         (vector_alignment_reachable_p): Likewise.
943         * tree-vect-transform.c (vectorizable_load): Likewise.
944         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
945         (get_vectype_for_scalar_type): Pass mode of scalar_type
946         to UNITS_PER_SIMD_WORD.
947
948         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
949         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
950         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
951         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
952         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
953
954 2008-05-22  Ira Rosen  <irar@il.ibm.com>
955
956         PR tree-optimization/36293
957         * tree-vect-transform.c (vect_transform_strided_load): Don't check
958         if the first load must be skipped because of a gap.
959
960 2008-05-22  Richard Guenther  <rguenther@suse.de>
961
962         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
963         more cases of offset disambiguation that is possible if
964         strict-aliasing rules apply.
965         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
966         for basic offset and type-based disambiguation.
967
968 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
969
970         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
971         ix86_expand_vector_set on V16QImode for SSE4.1.
972
973 2008-05-21  Tom Tromey  <tromey@redhat.com>
974
975         * c.opt (Wimport): Mark as undocumented.
976         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
977         -Wno-import.
978         (Warning Options): Likewise.
979         * doc/cppopts.texi: Don't mention -Wimport.
980
981 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
982
983         PR tree-optimization/36287
984         PR tree-optimization/36286
985         * lambda-code.c (build_access_matrix): Do not use the loop->num
986         for computing the number of induction variables: use the loop depth
987         instead.
988
989 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
990
991         PR/36280
992         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
993         option -f(no-)leading-underscore.
994
995 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
996
997         * config/i386/i386.c (ix86_expand_vector_init_general): Use
998         GET_MODE_NUNITS (mode).
999
1000 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
1001
1002         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
1003         (-mmulhw): Add 464 to description.
1004         (-mdlmzb): Likewise.
1005         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
1006         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
1007         464fp entries.
1008         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
1009         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
1010         * config/rs6000/rs6000.md: Update comments for 464.
1011
1012 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
1013
1014         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
1015
1016 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1017
1018         * config/i386/sse.md (vec_extractv4sf): Removed.
1019         (vec_extractv2df): Likewise.
1020         (vec_extractv2di): Likewise.
1021         (vec_extractv4si): Likewise.
1022         (vec_extractv8hi): Likewise.
1023         (vec_extractv16qi): Likewise.
1024         (vec_extract<mode>): New.
1025
1026 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1027
1028         * config/i386/sse.md (vec_setv4sf): Removed.
1029         (vec_setv2df): Likewise.
1030         (vec_setv2di): Likewise.
1031         (vec_setv4si): Likewise.
1032         (vec_setv8hi): Likewise.
1033         (vec_setv16qi): Likewise.
1034         (vec_set<mode>): New.
1035
1036 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1037
1038         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
1039         goto for vec_concat and vec_interleave.
1040
1041 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1042
1043         * config/i386/sse.md (vec_initv4sf): Removed.
1044         (vec_initv2df): Likewise.
1045         (vec_initv2di): Likewise.
1046         (vec_initv4si): Likewise.
1047         (vec_initv8hi): Likewise.
1048         (vec_initv16qi): Likewise.
1049         (vec_init<mode>): New.
1050
1051 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
1052
1053         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
1054
1055 2008-05-21  Tom Tromey  <tromey@redhat.com>
1056
1057         * ggc-zone.c (lookup_page_table_if_allocated): New function.
1058         (zone_find_object_offset): Likewise.
1059         (gt_ggc_m_S): Likewise.
1060         (highest_bit): Likewise.
1061         * ggc-page.c (gt_ggc_m_S): New function.
1062         * stringpool.c (string_stack): Remove.
1063         (init_stringpool): Update.
1064         (ggc_alloc_string): Use ggc_alloc.
1065         (maybe_delete_ident): New function.
1066         (ggc_purge_stringpool): Likewise.
1067         (gt_ggc_m_S): Remove.
1068         * ggc-common.c (ggc_protect_identifiers): New global.
1069         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
1070         ggc_protect_identifiers.
1071         * ggc.h (ggc_protect_identifiers): Declare.
1072         (gt_ggc_m_S): Update.
1073         (ggc_purge_stringpool): Declare.
1074         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
1075         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
1076         special case.
1077         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
1078
1079 2008-05-21  David S. Miller  <davem@davemloft.net>
1080
1081         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
1082         tmake_file.
1083
1084 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
1085
1086         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
1087         once finished.
1088
1089 2008-05-20  David Daney  <ddaney@avtrex.com>
1090
1091         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
1092         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
1093         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
1094         UNSPEC_UPDATE_GOT_VERSION): Renumber.
1095         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
1096         (atomic_hiqi_op): New define_code_iterator.
1097         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
1098         mips_expand_compare_and_swap_12.
1099         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
1100         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
1101         (sync_<optab><mode>, sync_old_<optab><mode>,
1102         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
1103         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
1104         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
1105         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
1106         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
1107         (test_and_set_12): New insn.
1108         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
1109         sync_new_<optab><mode>, sync_old_nand<mode>,
1110         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
1111         clobber to operand 0 for SI and DI mode insns.
1112         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
1113         mips_gen_fn_4): New typedefs.
1114         (mips_gen_fn_ptrs): Define new union type.
1115         (mips_expand_compare_and_swap_12): Remove declaration.
1116         (mips_expand_atomic_qihi): Declare function.
1117         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
1118         (mips_expand_atomic_qihi): ... this.  Use new generator function
1119         parameter.
1120         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
1121         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
1122         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
1123         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
1124         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
1125         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
1126         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
1127         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
1128         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
1129         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
1130         New macros.
1131
1132 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
1133
1134         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
1135         the missing break.
1136
1137 2008-05-20  Anatoly Sokolov <aesok@post.ru>
1138
1139         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
1140         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
1141         (avr_attribute_table): Add 'OS_main' function attribute.
1142         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
1143         functions with 'OS_main' attribute.
1144
1145 2008-05-20  Richard Guenther  <rguenther@suse.de>
1146
1147         PR tree-optimization/35204
1148         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
1149         helper, split out from ...
1150         (DFS): ... here.  Make the DFS walk non-recursive.
1151
1152 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
1153             Jan Sjodin  <jan.sjodin@amd.com>
1154
1155         PR tree-optimization/36181
1156         * tree-parloops.c (loop_has_vector_phi_nodes): New.
1157         (parallelize_loops): Don't parallelize when the loop has vector
1158         phi nodes.
1159
1160 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
1161             Sebastian Pop  <sebastian.pop@amd.com>
1162
1163         * tree-loop-linear.c (gather_interchange_stats): Look in the access
1164         matrix, and never look at the tree representation of the memory
1165         accesses.
1166         (linear_transform_loops): Computes parameters and access matrices.
1167         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
1168         when fails.
1169         (access_matrix_get_index_for_parameter): New.
1170         * tree-data-ref.h (struct access_matrix): New.
1171         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
1172         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
1173         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
1174         am_vector_index_for_loop): New.
1175         (struct data_reference): Add field access_matrix.
1176         (DR_ACCESS_MATRIX): New.
1177         (compute_data_dependences_for_loop): Update declaration.
1178         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
1179         * lambda.h (lambda_vector_vec_p): Declared.
1180         * lambda-code.c: Depend on pointer-set.h.
1181         (lambda_collect_parameters_from_af, lambda_collect_parameters,
1182         av_for_af_base, av_for_af, build_access_matrix,
1183         lambda_compute_access_matrices): New.
1184         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
1185
1186 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
1187
1188         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
1189         $SOURCEDIR/include.
1190
1191 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
1192             Sebastian Pop  <sebastian.pop@amd.com>
1193
1194         PR tree-optimization/36206
1195         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
1196         FOLD_CONVERSIONS.
1197         (instantiate_scev_1): Rename flags to fold_conversions.
1198         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
1199         outeside instantiation_loop.
1200         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
1201         (evolution_function_is_affine_or_constant_p): Removed.
1202         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
1203         instantiate_scev.
1204         (analyze_siv_subscript): Pass in the loop nest number.
1205         Call evolution_function_is_affine_in_loop instead of 
1206         evolution_function_is_affine_p.
1207         (analyze_overlapping_iterations): Pass in the loop nest number.
1208
1209 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
1210             Sebastian Pop  <sebastian.pop@amd.com>
1211
1212         PR tree-optimization/36206
1213         * tree-chrec.h (chrec_fold_op): New.
1214         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
1215         and other trees.
1216
1217 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
1218
1219         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
1220         (DIRS_EQ): New.
1221         (remove_duplicates): Do not set inode on non-inode systems.
1222         Use DIRS_EQ.
1223
1224 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
1225
1226         * config.gcc (tm_file): Update comments about relative pathnames.
1227
1228 2008-05-20  Richard Guenther  <rguenther@suse.de>
1229
1230         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
1231         * tree-ssa-sccvn.c (process_scc): Likewise.
1232         * tree-ssa-sink.c (execute_sink_code): Likewise.
1233         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
1234         * tree-vrp.c (process_assert_insertions): Likewise.
1235         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
1236         (perform_tree_ssa_dce): Likewise.
1237         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
1238         (dump_dominator_optimization_stats): Likewise.
1239         * tree-vectorizer.c (vectorize_loops): Likewise.
1240
1241 2008-05-20  Richard Guenther  <rguenther@suse.de>
1242
1243         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
1244
1245 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
1246
1247         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
1248         (ix86_i386elf_return_in_memory): Likewise.
1249         (ix86_i386interix_return_in_memory): Likewise.
1250         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
1251         (SUBTARGET_RETURN_IN_MEMORY): New.
1252         * config/i386/i386elf.h: Likewise.
1253         * config/i386/ptx4-i.h: Likewise.
1254         * config/i386/sol2-10.h: Likewise.
1255         * config/i386/sysv4.h: Likewise.
1256         * config/i386/vx-common.h: Likewise.
1257         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
1258         * config/i386/i386.c (ix86_return_in_memory): Made static and
1259         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
1260         (ix86_i386elf_return_in_memory): Removed.
1261         (ix86_i386interix_return_in_memory): Removed.
1262         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
1263         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
1264
1265 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
1266
1267         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
1268
1269 2008-05-19  Xinliang David Li  <davidxl@google.com>
1270
1271         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
1272         * opts.c: Ditto.
1273         * common.opt: Ditto.
1274         * doc/invoke.texi: Ditto.
1275
1276 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
1277
1278         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
1279         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
1280
1281 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
1282
1283         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
1284         sizes of operand array from 8/4 to 4/2.
1285         (ix86_expand_vector_init_general): Change size of operand array
1286         from 32 to 16.  Remove op0, op1 and half_mode.
1287
1288 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
1289
1290         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
1291         (ix86_expand_vector_init_interleave): Likewise.
1292         (ix86_expand_vector_init_general): Use them.  Assert
1293         word_mode == SImode when n_words == 4.
1294
1295 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
1296
1297         * config/i386/i386.c (ix86_secondary_reload): New static function.
1298         (TARGET_SECONDARY_RELOAD): New define.
1299         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
1300         * config/i386/i386.md (reload_outqi): Remove.
1301
1302 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1303
1304         PR middle-end/35509
1305         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
1306         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
1307         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
1308         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
1309         (fold_builtin_1): Likewise.
1310         * builtins.def (BUILT_IN_ISINF_SIGN): New.
1311         c-common.c (check_builtin_function_arguments): Handle
1312         BUILT_IN_ISINF_SIGN.
1313         * doc/extend.texi: Document __builtin_isinf_sign.
1314         * fold-const.c (operand_equal_p): Handle COND_EXPR.
1315
1316 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
1317
1318         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
1319         EH cleanup at the end of the pass, search for those that have been
1320         turned into forwarder blocks and do the cleanup on their successor.
1321
1322 2008-05-18  Richard Guenther  <rguenther@suse.de>
1323
1324         * tree-cfg.c (verify_gimple_expr): Allow conversions from
1325         pointers to sizetype and vice versa.
1326
1327 2008-05-18 Xinliang David Li   <davidxl@google.com>
1328
1329         * gcc/tree-ssa-dce.c: Coding style fix.
1330         (check_pow): Documentation comment. 
1331         (check_log): Documenation comment. Coding style fix.
1332         (is_unnecessary_except_errno_call): Ditto.
1333         (gen_conditions_for_pow): Ditto.
1334         (gen_conditions_for_log): Ditto.
1335         (gen_shrink_wrap_conditions): Ditto.
1336         (shrink_wrap_one_built_in_calls): Ditto.
1337         * gcc/doc/invoke.texi: Better documentation string.
1338         * ChangeLog: Fix wrong change log entries from 
1339         May 17 checkin on function call DCE.
1340
1341 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
1342
1343         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
1344
1345 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
1346
1347         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
1348         * df-problems.c (simulation routines): Fixed block comment to
1349         properly say how to add forwards scanning functions.
1350         
1351 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
1352
1353         * tree-inline.c (setup_one_parameter): Remove dead code.
1354
1355 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
1356
1357         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
1358         a BIT_AND_EXPR only for an INTEGER_TYPE.
1359
1360 2008-05-17 Xinliang David Li   <davidxl@google.com>
1361
1362         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
1363         (check_pow, check_log, is_unnecessary_except_errno_call): New 
1364         functions to check for eliminating math functions that are pure 
1365         except for setting errno.
1366         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
1367         general condition expressions for shrink-wrapping pow/log calls.
1368         (gen_shrink_wrap_conditions): Ditto.
1369         (shrink_wrap_one_built_in_call): Ditto.
1370         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
1371         (mark_operand_necessary): If debugging, output if OP is necessary.
1372         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
1373         unnecessary.
1374         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
1375         opt level >= 2.
1376         * gcc/common.opt: New user flag -ftree-builtin-dce.
1377         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
1378
1379 2008-05-16  David S. Miller  <davem@davemloft.net>
1380
1381         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
1382         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
1383
1384 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
1385
1386         PR target/36246
1387         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
1388
1389 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1390
1391         * ifcvt.c (dead_or_predicable): Rename
1392         df_simulate_one_insn_backwards to df_simulate_one_insn.
1393         * recog.c (peephole2_optimize): Ditto.
1394         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
1395         Ditto.
1396         * df.h: Rename df_simulate_one_insn_backwards to
1397         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
1398         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
1399         scanning of defs and uses.
1400         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
1401         (df_simulate_one_insn_forwards): Removed.
1402
1403 2008-05-16  Doug Kwan  <dougkwan@google.com>
1404
1405         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
1406         QNaN & SNaN.
1407         (real_from_string): Handle NaNs and Inf as approriate.
1408
1409 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
1410
1411         * doc/gty.texi (Source Files Containing Type Information): Note
1412         that headers should appear first in the gtfiles list.
1413
1414 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1415
1416         * tree.def (COND_EXEC): Properly documented this code.
1417
1418 2008-05-16  Diego Novillo  <dnovillo@google.com>
1419
1420         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
1421         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
1422         the new field.
1423
1424 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1425
1426         * tree-ssa-dse (max_stmt_uid): Removed.
1427         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
1428         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
1429         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
1430         * function.h (cfun.last_stmt_uid): New field.
1431         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
1432         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
1433         New functions.
1434         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
1435         (create_stmt_ann): Initialize the ann->uid field.
1436         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
1437         with new calls.
1438         * tree-flow.h (renumber_gimple_stmt_uids): New function.
1439
1440 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
1441
1442         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
1443         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
1444         (init_empty_tree_cfg): Call it.
1445
1446 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1447
1448         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
1449         Update all users.
1450
1451 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1452
1453         * doc/invoke.text (-fdump-tree-*-verbose): New option.
1454         * tree-dump.c (dump_options): New verbose option.
1455         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
1456         Add verbose dump.
1457         * tree-pass.h (TDF_VERBOSE): New dump flag.
1458         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
1459         (tree-flow.h): Added include.
1460         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
1461
1462 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
1463
1464         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
1465
1466         From Jie Zhang  <jie.zhang@analog.com>
1467         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
1468         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
1469         mcpu=bf561-none and mcpu=bf561-0.2.
1470         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
1471         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
1472         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
1473         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
1474         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
1475         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
1476         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
1477         option.
1478         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
1479         (cputype_selected): Remove.
1480         (bfin_handle_option): Don't use cputype_selected.
1481         (override_options): When no mcpu option, enable all workarounds.
1482         Don't use bfin_workarounds.
1483         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
1484         processor type.
1485         (DEFAULT_CPU_TYPE): Don't define.
1486
1487 2008-05-16  Richard Guenther  <rguenther@suse.de>
1488
1489         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
1490         on deletion of the last stmt.
1491
1492 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
1493
1494         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
1495         V8HImode for SSE2 and V16QImode for SSE4.1.
1496
1497 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
1498
1499         * cgraph.h (compute_inline_parameters): Made public.
1500         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
1501         variable_generate_summary, function_write_summary,
1502         variable_write_summary, variable_read_summary.  Added generate_summary,
1503         write_summary, read_summary.
1504         * cgraphunit.c (cgraph_process_new_functions): Changed call from
1505         pass_ipa_inline.function_generate_summary, to
1506         compute_inline_parameters. 
1507         * ipa-inline.c (compute_inline_parameters): Made public and added
1508         node parameter.
1509         (compute_inline_parameters_for_current): New function.
1510         (pass_inline_param): Now calls compute_inline_parameters_for_current.
1511         (inline_generate_summary): Removed parameter and made to loop over
1512         all cgraph nodes.
1513         (pass_ipa_inline): Updated for new IPA_PASS structure.
1514         * passes.c (execute_ipa_summary_passes): Now is called once per
1515         pass rather than once per node*pass.
1516         
1517 2008-05-15  Anatoly Sokolov <aesok@post.ru>
1518
1519         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
1520         avr_have_mul_p, avr_asm_only_p): Remove variables.
1521         (avr_override_options): Remove initialization of removed variables.
1522         (avr_file_start):  Convert removed variables to fields of 
1523         'struct base_arch_s *avr_current_arch'. 
1524         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
1525         (AVR_HAVE_MUL): (Ditto.).
1526         (AVR_HAVE_MOVW): (Ditto.).
1527         (AVR_HAVE_LPMX): (Ditto.). 
1528         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
1529         avr_asm_only_p): Remove declaration.
1530
1531 2008-05-15  Diego Novillo  <dnovillo@google.com>
1532
1533         * config/arm/arm.c (arm_return_in_memory): Fix return type.
1534         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
1535
1536 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
1537
1538         PR middle-end/36194
1539         * combine.c (check_conversion): Rename back to check_promoted_subreg.
1540         Don't call record_truncated_value from here.
1541         (record_truncated_value): Turn it into a for_each_rtx callback.
1542         (record_truncated_values): New function.
1543         (combine_instructions): Call note_uses with record_truncated_values.
1544         Change name of check_conversion to check_promoted_subreg. 
1545
1546 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
1547
1548         * doc/sourcebuild.texi: Document support for torture tests.
1549
1550 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
1551
1552         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
1553         to alternative 4 of operand 2.
1554
1555 2008-05-15  Richard Guenther  <rguenther@suse.de>
1556
1557         * tree-pass.h (current_pass): Declare.
1558         (get_pass_for_id): Likewise.
1559         * passes.c (passes_by_id, passes_by_id_size): New globals.
1560         (set_pass_for_id): New function.
1561         (get_pass_for_id): Likewise.
1562         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
1563         (execute_function_todo): Flush per function statistics.
1564         * toplev.c (compile_file): Init statistics.
1565         (general_init): Do early statistics initialization.
1566         (finalize): Finish statistics.
1567         * statistics.h (statistics_early_init): Declare.
1568         (statistics_init): Likewise.
1569         (statistics_fini): Likewise.
1570         (statistics_fini_pass): Likewise.
1571         (statistics_counter_event): Likewise.
1572         (statistics_histogram_event): Likewise.
1573         * statistics.c: New file.
1574         * Makefile.in (OBJS-common): Add statistics.o.
1575         (statistics.o): Add dependencies.
1576         * doc/invoke.texi (-fdump-statistics): Document.
1577
1578         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
1579         (insert): Likewise.
1580         (execute_pre): Use statistics_counter_event.
1581         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
1582         (substitute_and_fold): Increment it.  Use statistics_counter_event.
1583
1584 2008-05-15  Diego Novillo  <dnovillo@google.com>
1585
1586         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
1587
1588         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
1589         * tree-ssa-alias.c (new_type_alias): Remove references to
1590         sub-variables from comment.
1591         * tree-ssa-operands.c (swap_tree_operands): Likewise.
1592
1593 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
1594
1595         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
1596         attribute to 1 only for insertps alternative.
1597
1598 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1599
1600         * config/bfin/bfin.md (loadbytes): New pattern.
1601         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
1602         (bfin_init_builtins): Initialize it.
1603         (bdesc_1arg): Add it.
1604
1605 2008-05-15  Sa Liu  <saliu@de.ibm.com>
1606
1607         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
1608         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
1609         * testsuite/lib/target-supports.exp: Add
1610         check_effective_target_fortran_integer_16.
1611
1612 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1613
1614         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
1615         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
1616         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
1617         (TARGET_RETURN_IN_MEMORY): Define.
1618
1619 2008-05-15  Richard Guenther  <rguenther@suse.de>
1620
1621         PR middle-end/36244
1622         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
1623         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
1624         represent unmodifiable vars.
1625
1626 2008-05-15  Richard Guenther  <rguenther@suse.de>
1627
1628         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
1629         INDIRECT_REF and TARGET_MEM_REF.
1630         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
1631         TARGET_MEM_REF.
1632
1633 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
1634             H.J. Lu  <hongjiu.lu@intel.com>
1635
1636         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
1637         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
1638         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
1639         insn alternatives.  Add missing alternatives.
1640         (*vec_concatv2di_rex64_sse4_1): Likewise.
1641         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
1642         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
1643         Require TARGET_SSE.
1644
1645 2008-05-15  Richard Guenther  <rguenther@suse.de>
1646
1647         PR tree-optimization/36009
1648         PR tree-optimization/36204
1649         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
1650         (determine_invariantness_stmt): Record the loop a store is
1651         always executed in.
1652         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
1653         dependency.
1654
1655 2008-05-15  Richard Guenther  <rguenther@suse.de>
1656
1657         PR tree-optimization/34330
1658         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
1659         through the pointer will alias the SMT.
1660
1661 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
1662
1663         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
1664
1665 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
1666
1667         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
1668
1669 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
1670             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
1671
1672         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
1673         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
1674         (vashl_optab): New optab for vector/vector shifts.
1675         (vashr_optab): Ditto.
1676         (vlshr_optab): Ditto.
1677         (vrotl_optab): Ditto.
1678         (vrotr_optab): Ditto.
1679         (optab_subtype): New enum for optab_for_tree_code call.
1680         (optab_for_tree_code): Add enum optab_subtype argument.
1681
1682         * optabs.c (optab_for_tree_code): Take an additional argument to
1683         distinguish between a vector shift by a scalar and vector shift by
1684         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
1685         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
1686         vector shift by a vector.
1687         (expand_widen_pattern_expr): Pass additional argument to
1688         optab_for_tree_code.
1689
1690         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
1691         vrotl_optab, vrotr_optab.
1692
1693         * expr.c (expand_expr_real_1): Update calls to
1694         optab_for_tree_code to distinguish between vector shifted by a
1695         scalar and vector shifted by a vector.
1696         * tree-vectorizer.c (supportable_widening_operation): Ditto.
1697         (supportable_narrowing_operation): Ditto.
1698         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
1699         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
1700         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
1701         (vect_create_epilog_for_reduction): Ditto.
1702         (vectorizable_reduction): Ditto.
1703         (vectorizable_operation): Ditto.
1704         (vect_strided_store_supported): Ditto.
1705         (vect_strided_load_supported): Ditto.
1706         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
1707         * expmed.c (expand_shift): Ditto.
1708
1709         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
1710         scalar type.
1711         (ashr@var{m}3): Ditto.
1712         (vashl@var{m}3): Document new vector/vector shift standard name.
1713         (vashr@var{m}3): Ditto.
1714         (vlshr@var{m}3): Ditto.
1715         (vrotl@var{m}3): Ditto.
1716         (vrotr@var{m}3): Ditto.
1717
1718         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
1719         (PPERM_INVERT): Ditto.
1720         (PPERM_REVERSE): Ditto.
1721         (PPERM_REV_INV): Ditto.
1722         (PPERM_ZERO): Ditto.
1723         (PPERM_ONES): Ditto.
1724         (PPERM_SIGN): Ditto.
1725         (PPERM_INV_SIGN): Ditto.
1726         (PPERM_SRC1): Ditto.
1727         (PPERM_SRC2): Ditto.
1728
1729         * config/i386/sse.md (mulv2di3): Add SSE5 support.
1730         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
1731         allows a memory operand to be the value being added, and split it
1732         to improve vectorization.
1733         (sse5_pmacsdqh_mem): Ditto.
1734         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
1735         (sse5_mulv2div2di3_high): Ditto.
1736         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
1737         (vec_pack_trunc_v4si): Ditto.
1738         (vec_pack_trunc_v2di): Ditto.
1739         (sse5_pcmov_<mode>): Remove code that tried to use use
1740         andps/andnps instead of pcmov.
1741         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
1742         pmacsdqh instructions.
1743         (vec_widen_smult_lo_v4si): Ditto.
1744
1745         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
1746         (PPERM_INVERT): Ditto.
1747         (PPERM_REVERSE): Ditto.
1748         (PPERM_REV_INV): Ditto.
1749         (PPERM_ZERO): Ditto.
1750         (PPERM_ONES): Ditto.
1751         (PPERM_SIGN): Ditto.
1752         (PPERM_INV_SIGN): Ditto.
1753         (PPERM_SRC1): Ditto.
1754         (PPERM_SRC2): Ditto.
1755         (ix86_expand_sse_movcc): Move the SSE5 test after the if
1756         true/false tests.
1757         (ix86_expand_int_vcond): If SSE5 generate all possible integer
1758         comparisons.
1759         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
1760         says ignore whether the last reference is a memory operand.
1761
1762 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
1763             Paolo Bonzini <bonzini at gnu dot org>
1764
1765         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
1766         shift patterns.
1767
1768         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
1769         (vlshr<mode>3): Rename from vlshr<mode>3.
1770         (vashr<mode>3): Rename from vashr<mode>3.
1771         (mulv4sf3): Change the names of vector shift patterns.
1772         (mulv4si3): Ditto.
1773         (negv4sf2): Ditt.
1774
1775         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
1776         shift insns.
1777
1778         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
1779         (SI_SHLHI): Ditto.
1780         (SI_SHL): Ditto.
1781         (SI_SHLI): Ditto.
1782         (SI_ROTH): Ditto.
1783         (SI_ROTHI): Ditto.
1784         (SI_ROT): Ditto.
1785         (SI_ROTI): Ditto.
1786         (SPU_RL_0): Ditto.
1787         (SPU_RL_1): Ditto.
1788         (SPU_RL_2): Ditto.
1789         (SPU_RL_3): Ditto.
1790         (SPU_RL_4): Ditto.
1791         (SPU_RL_5): Ditto.
1792         (SPU_RL_6): Ditto.
1793         (SPU_RL_7): Ditto.
1794         (SPU_SL_0): Ditto.
1795         (SPU_SL_1): Ditto.
1796         (SPU_SL_2): Ditto.
1797         (SPU_SL_3): Ditto.
1798         (SPU_SL_4): Ditto.
1799         (SPU_SL_5): Ditto.
1800         (SPU_SL_6): Ditto.
1801         (SPU_SL_7): Ditto.
1802
1803         * config/spu/spu.md (v): New iterator macro to add v for vector types.
1804         (floatunssidf2_internal): Change vector/vector shift names.
1805         (floatunsdidf2_internal): Ditto.
1806         (mulv8hi3): Ditto.
1807         (ashrdi3): Ditto.
1808         (ashrti3): Ditto.
1809         (cgt_df): Ditto.
1810         (cgt_v2df): Ditto.
1811         (dftsv): Ditto.
1812         (vashl<mode>3): Rename from ashl<mode>3.
1813         (vashr<mode>3): Rename from ashr<mode>3.
1814         (vlshr<mode>3): Rename from lshr<mode>3.
1815         (vrotl<mode>3): Rename from rotl<mode>3.
1816
1817 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
1818
1819         PR target/36224
1820         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
1821         multiply gives the wrong value when doing widening multiplies.
1822         (vec_widen_smult_lo_v4si): Ditto.
1823
1824 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
1825
1826         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
1827         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
1828         emit_library_call_value. 
1829         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
1830         * tree.h (ECF_LIBCALL_BLOCK): Removed.
1831         * calls.c (initialize_argument_information, precompute_arguments, 
1832         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
1833         (precompute_arguments): Removed flags parameter.
1834         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
1835         
1836 2008-05-14  Richard Guenther  <rguenther@suse.de>
1837
1838         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
1839         Make sure to register the store if the use is a PHI_NODE.
1840
1841 2008-05-14  Olivier Hainque  <hainque@adacore.com>
1842
1843         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
1844         memory if the component is to be referenced in BLKmode according
1845         to get_inner_reference.
1846
1847 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
1848
1849         * calls.c (emit_library_call_value_1): Restore code clearing
1850         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
1851
1852 2008-05-14  Olivier Hainque  <hainque@adacore.com>
1853             Nicolas Roche  <roche@adacore.com>
1854
1855         * configure.ac: Add support for a "gcc_subdir" variable in
1856         config-lang.in, to denote a subdirectory where the language/GCC
1857         integration files are to be found.
1858         * configure: Regenerate.
1859
1860 2008-05-14  Ira Rosen  <irar@il.ibm.com>
1861
1862         PR tree-optimization/36098
1863         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
1864         value for the first load in the group in case of a gap.
1865         (vect_build_slp_tree): Check that there are no gaps in loads.
1866
1867 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
1868
1869         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
1870         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
1871         expand_copysign_bit, ): Change call to emit_no_conflict_block to
1872         emit_insn and remove unneeded code to construct extra args.
1873         (emit_no_conflict_block): Removed.
1874         * optabls.h: (emit_no_conflict_block): Removed.
1875         * cse.c (cse_extended_basic_block): Remove search for
1876         REG_NO_CONFLICT note.
1877         * global.c: Removed incorrect comment added in revision 117.
1878         * expr.c (convert_move): Change call to emit_no_conflict_block to
1879         emit_insn.
1880         * recog.c: Change comments so that they do not mention
1881         REG_NO_CONFLICT.
1882         * local_alloc.c (combine_regs): Removed last parameter.
1883         (no_conflict_p): Removed.
1884         (block_alloc): Removed note, no_conflict_combined_regno and set
1885         local vars. Removed all code to process REG_NO_CONFLICT blocks.
1886         (combine_regs): Removed already_dead and code to look for
1887         REG_NO_CONFLICT notes.
1888         * lower_subreg (remove_retval_note): Removed code to look for
1889         REG_NO_CONFLICT block.
1890         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
1891         (resolve_clobber): Remove code to process libcalls that have
1892         REG_NO_CONFLICT notes.
1893         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
1894         case.
1895         * combine.c (can_combine_p, distribute_notes):  Removed
1896         REG_NO_CONFLICT case.
1897         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
1898         to emit_insns.
1899         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
1900         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
1901         Ditto.
1902         * reg-notes.def (NO_CONFLICT): Removed.
1903
1904 2008-05-14  David S. Miller  <davem@davemloft.net>
1905
1906         * config/sparc/sparc.c (sparc_profile_hook): If
1907         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
1908         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
1909         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
1910
1911 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
1912
1913         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
1914
1915 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
1916
1917         PR target/36222
1918         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
1919         and op1 expansion before vector concat to have less live pseudos.
1920
1921 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
1922
1923         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
1924         ix86_expand_vector_set if supported.
1925
1926 2008-05-13  Diego Novillo  <dnovillo@google.com>
1927             Kenneth Zadeck  <zadeck@naturalbridge.com>
1928
1929         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
1930
1931         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
1932         phinodes_print_statistics, init_ssanames, fini_ssanames,
1933         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
1934         release_ssa_name, release_defs, replace_ssa_name_symbol,
1935         ssanames_print_statistics): Move ...
1936         * tree-flow.h: ... here.
1937         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
1938         Use FN instead of cfun.
1939         (make_ssa_name_fn): Rename from make_ssa_name.
1940         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
1941         * tree-flow-inline.h (make_ssa_name): Move from
1942         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
1943         * omp-low.c (expand_omp_parallel):
1944         * tree-flow-inline.h (redirect_edge_var_map_result):
1945         * tree-ssa.c (init_tree_ssa): Add argument FN.
1946         Use it instead of cfun.  Update all users.
1947
1948 2008-05-13  Tom Tromey  <tromey@redhat.com>
1949
1950         PR preprocessor/22168:
1951         * doc/cpp.texi (Top): Update menu.
1952         (Alternatives to Wrapper #ifndef): New node.
1953         (Other Directives): Document deprecation.
1954         (Obsolete Features): Remove menu.
1955         (Assertions): Merge node into Obsolete Features.
1956         (Obsolete once-only headers): Move earlier; rename to Alternatives
1957         to Wrapper #ifndef.
1958         * doc/cppopts.texi: Update.
1959         * c.opt (Wdeprecated): Enable for C and ObjC.
1960         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
1961         (C++ Dialect Options): Move -Wno-deprecated from here to...
1962         (Warning Options): ... here.
1963
1964 2008-05-13  Richard Guenther  <rguenther@suse.de>
1965
1966         PR middle-end/36227
1967         * fold-const.c (fold_sign_changed_comparison): Do not allow
1968         changes in pointer-ness.
1969
1970 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
1971
1972         PR target/24713
1973         * config/sh/sh.c (sh_expand_prologue): Don't clear
1974         RTX_FRAME_RELATED_P for push insns.
1975
1976 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
1977
1978         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
1979
1980 2008-05-12  Anatoly Sokolov <aesok@post.ru>
1981
1982         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
1983         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
1984         Use 'machine->is_leaf' instead of 'leaf_func_p'.
1985
1986 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
1987
1988         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
1989         (*vec_concatv4sf_sse): This.
1990         (*sse2_concatv2si): Renamed to ...
1991         (*vec_concatv2si_sse2): This.
1992         (*sse1_concatv2si): Renamed to ...
1993         (*vec_concatv2si_sse): This.
1994         (*vec_concatv2di_rex): Renamed to ...
1995         (*vec_concatv2di_rex64): This.
1996         (*vec_concatv2si_sse4_1): New.
1997         (*vec_concatv2di_rex64_sse4_1): Likewise.
1998
1999 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
2000
2001         PR rtl-optimization/36111
2002         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
2003         that was created for swappable operands.
2004
2005 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
2006
2007         PR ada/36001
2008         * Makefile.in: Substitute GNATMAKE and GNATBIND.
2009         * configure.ac: Add call to ACX_PROG_GNAT.
2010
2011 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
2012
2013         * optc-gen.awk: Fix comment typo.
2014
2015 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
2016
2017         * pretty-print.c (pp_integer_with_precision): Use
2018         HOST_LONG_LONG_FORMAT.
2019
2020 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
2021
2022         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
2023                 
2024 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
2025
2026         * config/i386/i386.c (bdesc_ptest): Removed.
2027         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
2028         (bdesc_args): Add __builtin_ia32_ptestz128,
2029         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
2030         (ix86_init_mmx_sse_builtins): Updated.
2031         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
2032         (ix86_expand_builtin): Updated.
2033
2034 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
2035
2036         * tree-cfg.c (valid_fixed_convert_types_p): New function.
2037         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
2038
2039 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
2040
2041         * value-prof.c (interesting_stringop_to_profile): Do not
2042         return early for BUILT_IN_MEMPCPY.
2043
2044 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
2045
2046         * calls.c (expand_call): Don't use callgraph to increase
2047         preferred_stack_boundary.
2048
2049         * cgraph.h (cgraph_rtl_info): Use unsigned on
2050         preferred_incoming_stack_boundary.
2051
2052         * final.c (rest_of_clean_state): Use unsigned on
2053         preferred_stack_boundary.
2054
2055 2008-05-09  Tom Tromey  <tromey@redhat.com>
2056
2057         PR preprocessor/22231:
2058         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
2059         proceeding.
2060
2061 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
2062
2063         PR tree-optimization/36129
2064         * tree-ssa-ccp.c: Include value-prof.h.
2065         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
2066         built-in function was folded to a constant.
2067         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
2068
2069 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
2070             Sebastian Pop  <sebastian.pop@amd.com>
2071
2072         * tree-scalar-evolution.c: Document instantiate_scev.
2073         (instantiate_parameters_1): Renamed instantiate_scev_1.
2074         Don't use the same loop for instantiation_loop and evolution_loop.
2075         (instantiate_scev): New.
2076         (instantiate_parameters): Moved...
2077         (resolve_mixers): Update call to instantiate_scev_1 to pass the
2078         same loop twice.  Maintains the semantics for this function.
2079         * tree-scalar-evolution.h (instantiate_scev): Declare.
2080         (instantiate_parameters): ...here.  Now static inline.
2081         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
2082         instead of resolve_mixers.
2083
2084 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
2085
2086         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
2087
2088 2008-05-09  Tomas Bily  <tbily@suse.cz>
2089
2090         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
2091         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
2092         * tree-ssa-structalias.c (get_constraint_for): Likewise.
2093         * c-common.c (c_common_truthvalue_conversion): Likewise.
2094         * tree-object-size.c (compute_object_offset): Likewise.
2095         * tree-inline.c (estimate_num_insns_1): Likewise.
2096         * varasm.c (const_hash_1, compare_constant, copy_constant)
2097         (compute_reloc_for_constant, output_addressed_constants)
2098         (initializer_constant_valid_p): Likewise.
2099         * c-omp.c (check_omp_for_incr_expr): Likewise.
2100         * gimplify.c (gimplify_expr): Likewise.
2101         * c-typeck.c (c_finish_return): Likewise.
2102         * tree-vectorizer.c (supportable_widening_operation)
2103         (supportable_narrowing_operation): Likewise.
2104         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
2105         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
2106         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
2107         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
2108         (descr_info_loc): Likewise.
2109         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
2110         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
2111         (fold_unary): Likewise.
2112         * builtins.c (get_pointer_alignment): Likewise.
2113         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
2114         (instantiate_parameters_1): Likewise.
2115         * tree.c (expr_align, stabilize_reference): Likewise.
2116         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
2117         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
2118         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
2119         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
2120         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
2121         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
2122         Likewise.
2123         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
2124         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
2125         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
2126         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
2127         (forward_propagate_comparison)
2128         (tree_ssa_forward_propagate_single_use_vars): Likewise.
2129         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
2130         * emit-rtl.c (component_ref_for_mem_expr)
2131         (set_mem_attributes_minus_bitpos): Likewise.
2132         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
2133         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
2134         Likewise.
2135         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
2136         (build_function_call, pointer_diff, build_compound_expr)
2137         (c_finish_return): Likewise.
2138         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
2139         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
2140         Likewise.
2141         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
2142         * expr.c (is_aligning_offset): Likewise.
2143         * tree-ssa-alias.c (is_escape_site): Likewise.
2144         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
2145         (check_all_va_list_escapes): Likewise.
2146         * tree-ssa-loop-ivopts.c (determine_base_object)
2147         (determine_common_wider_type): Likewise.
2148         * dojump.c (do_jump): Likewise.
2149         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
2150         * tree-gimple.c (is_gimple_cast): Likewise.
2151         * fold-const.c (decode_field_reference, )
2152         (fold_sign_changed_comparison, fold_unary, fold_comparison)
2153         (fold_binary): Likewise.
2154         * tree-ssa-alias-warnings.c (find_alias_site_helper)
2155         (already_warned_in_frontend_p): Likewise.
2156         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
2157         * tree.c (really_constant_p, get_unwidened): Likewise.
2158         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
2159         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
2160         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
2161         Likewise.
2162         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
2163         CONVERT_EXPR_P.
2164         (CONVERT_EXPR_P): Define.
2165         (CASE_CONVERT): Define.
2166         
2167 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
2168
2169         PR middle-end/36117
2170         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
2171         (delete_unmarked_insns): When deleting a call, call
2172         delete_unreachable_blocks.
2173         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
2174         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
2175
2176 2008-05-08  Richard Guenther  <rguenther@suse.de>
2177
2178         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
2179         (-ftree-salias): Likewise.
2180         (salias-max-implicit-fields): Remove param documentation.
2181         (salias-max-array-elements): Likewise.
2182         * tree-pass.h (pass_create_structure_vars): Remove.
2183         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
2184         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
2185         * tree-ssa-alias.c (create_structure_vars): Remove.
2186         (gate_structure_vars): Likewise.
2187         (pass_create_structure_vars): Likewise.
2188         (gate_build_alias): Likewise.
2189         (pass_build_alias): Adjust to run always and dump the function.
2190         * common.opt (ftree-salias): Hide.
2191         * passes.c (init_optimization_passes): Remove
2192         pass_create_structure_vars, adjust comment.
2193         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
2194         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
2195         * opts.c (decode_options): Do not set flag_tree_salias.
2196         (common_handle_option): Add OPT_ftree_salias to the backward
2197         compatibility section.
2198
2199 2008-05-08  Richard Guenther  <rguenther@suse.de>
2200
2201         * tree-flow-inline.h (var_can_have_subvars): Move ...
2202         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
2203         * tree-flow.h (var_can_have_subvars): Remove.
2204         (push_fields_onto_fieldstack): Remove.
2205         (sort_fieldstack): Likewise.
2206         (struct fieldoff): Move ...
2207         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
2208         alias_set and base_for_components fields.
2209         (sort_fieldstack): Make static.
2210         (push_fields_onto_fieldstack): Likewise.  Remove code that
2211         handles anything but RECORD_TYPEs.  Remove alias_set and
2212         base_for_components handling.
2213         (create_variable_info_for): Adjust.
2214
2215 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
2216
2217         * common.opt (Wframe-larger-than=): Shorten the help message
2218         to one line.
2219         * doc/invoke.texi (Wframe-larger-than=): Add more description.
2220
2221 2008-05-08  Rafael Espindola  <espindola@google.com>
2222
2223         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
2224         trap.
2225         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
2226         trap and that both operands are gimple values.
2227         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
2228         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
2229         is a fp operation.
2230
2231 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
2232
2233         * read-rtl.c (join_c_conditions): Return the first string if the
2234         two strings are equal.
2235
2236 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
2237
2238         * gensupport.h (pred_data): Add a "num_codes" field.
2239         (add_predicate_code): Declare.
2240         * gensupport.c (add_predicate_code): New function.
2241         (std_pred_table): Add an "allows_const_p" field.
2242         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
2243         Remove the (incomplete) list of such codes from the codes field.
2244         (init_predicate_table): Use add_predicate_code.  Add all
2245         RTX_CONST_OBJs if allows_const_p is true.
2246         * genrecog.c (process_define_predicate): Use add_predicate_code.
2247
2248 2008-05-08  David Daney  <ddaney@avtrex.com>
2249             Richard Sandiford  <rsandifo@nildram.co.uk>
2250         
2251         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
2252         special case of constant zero operands.
2253         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
2254         old and new values.  Special case constant zero values.
2255         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
2256         fails.
2257         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
2258         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
2259
2260 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
2261
2262         PR target/36090
2263         * simplify-rtx.c (simplify_plus_minus): Create CONST of
2264         similar RTX_CONST_OBJ before CONST_INT.
2265
2266 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
2267
2268         * stmt.c (expand_stack_restore): Change sa mode if needed.
2269
2270 2008-05-08  Richard Guenther  <rguenther@suse.de>
2271
2272         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
2273         return type to bool.
2274         (ix86_sol10_return_in_memory): Likewise.
2275         (ix86_i386elf_return_in_memory): Likewise.
2276         (ix86_i386interix_return_in_memory): Likewise.
2277         * config/i386/i386.c (ix86_return_in_memory): Likewise.
2278         (ix86_sol10_return_in_memory): Likewise.
2279         (ix86_i386elf_return_in_memory): Likewise.
2280         (ix86_i386interix_return_in_memory): Likewise.
2281
2282 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
2283
2284         PR bootstrap/36180
2285         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
2286         fndecl argument.
2287         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
2288         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
2289         declared in front.
2290
2291 2008-05-08  Richard Guenther  <rguenther@suse.de>
2292
2293         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
2294         * tree-data-ref.h (struct dr_alias): Remove subvars field.
2295         (DR_SUBVARS): Remove.
2296         * tree-dfa.c (dump_subvars_for): Remove.
2297         (debug_subvars_for): Likewise.
2298         (dump_variable): Do not dump subvars.
2299         (remove_referenced_var): Do not remove subvars.
2300         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
2301         (lookup_subvars_for_var): Remove.
2302         (get_subvars_for_var): Likewise.
2303         (get_subvars_at): Likewise.
2304         (get_first_overlapping_subvar): Likewise.
2305         (overlap_subvar): Likewise.
2306         * tree-flow.h (subvar_t): Remove.
2307         (struct var_ann_d): Remove subvars field.
2308         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
2309         argument.  Remove special handling of SFTs.
2310         (compute_tag_properties): Likewise.
2311         (set_initial_properties): Likewise.
2312         (compute_call_clobbered): Likewise.
2313         (count_mem_refs): Likewise.
2314         (compute_memory_partitions): Likewise.
2315         (compute_flow_insensitive_aliasing): Likewise.
2316         (setup_pointers_and_addressables): Likewise.
2317         (new_type_alias): Likewise.
2318         (struct used_part): Remove.
2319         (used_portions): Likewise.
2320         (struct used_part_map): Likewise.
2321         (used_part_map_eq): Likewise.
2322         (used_part_map_hash): Likewise.
2323         (free_used_part_map): Likewise.
2324         (up_lookup): Likewise.
2325         (up_insert): Likewise.
2326         (get_or_create_used_part_for): Likewise.
2327         (create_sft): Likewise.
2328         (create_overlap_variables_for): Likewise.
2329         (find_used_portions): Likewise.
2330         (create_structure_vars): Likewise.
2331         * tree.def (STRUCT_FIELD_TAG): Remove.
2332         * tree.h (MTAG_P): Adjust.
2333         (struct tree_memory_tag): Remove base_for_components and
2334         unpartitionable flags.
2335         (struct tree_struct_field_tag): Remove.
2336         (SFT_PARENT_VAR): Likewise.
2337         (SFT_OFFSET): Likewise.
2338         (SFT_SIZE): Likewise.
2339         (SFT_NONADDRESSABLE_P): Likewise.
2340         (SFT_ALIAS_SET): Likewise.
2341         (SFT_UNPARTITIONABLE_P): Likewise.
2342         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
2343         (union tree_node): Remove sft field.
2344         * alias.c (get_alias_set): Remove special handling of SFTs.
2345         * print-tree.c (print_node): Remove handling of SFTs.
2346         * tree-dump.c (dequeue_and_dump): Likewise.
2347         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
2348         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
2349         * tree-predcom.c (set_alias_info): Do not set subvars.
2350         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
2351         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
2352         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
2353         (add_vars_for_offset): Remove.
2354         (add_virtual_operand): Remove special handling of SFTs.
2355         (add_call_clobber_ops): Likewise.
2356         (add_call_read_ops): Likewise.
2357         (get_asm_expr_operands): Likewise.
2358         (get_modify_stmt_operands): Likewise.
2359         (get_expr_operands): Likewise.
2360         (add_to_addressable_set): Likewise.
2361         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
2362         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
2363         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
2364         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
2365         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
2366         (tree_node_structure): Likewise.
2367         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
2368         handling of SFTs.
2369         (find_what_p_points_to): Likewise.
2370
2371 2008-05-08  Sa Liu  <saliu@de.ibm.com>
2372
2373         * config/spu/spu.md: Fixed subti3 pattern.
2374
2375 2008-05-08  Richard Guenther  <rguenther@suse.de>
2376
2377         PR middle-end/36154
2378         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
2379         sure to create a representative for trailing arrays for PTA.
2380
2381 2008-05-08  Richard Guenther  <rguenther@suse.de>
2382
2383         PR middle-end/36172
2384         * fold-const.c (operand_equal_p): Two objects which types
2385         differ in pointerness are not equal.
2386
2387 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
2388
2389         * calls.c (compute_argument_block_size): Add argument tree fndecl.
2390         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
2391         (emit_library_call_value_1): Add new variable fndecl initialized by
2392         NULL_TREE. It should be the decl type of orgfun, but this information
2393         seems not to be available here, so it uses the default calling abi.
2394         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
2395         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
2396         by TARGET_RETURN_IN_MEMORY.
2397         * config/i386/i386-interix.h: Likewise.
2398         * config/i386/i386.h: Likewise.
2399         * config/i386/i386elf.h: Likewise.
2400         * config/i386/ptx4-i.h: Likewise.
2401         * config/i386/sol2-10.h: Likewise.
2402         * config/i386/sysv4.h: Likewise.
2403         * config/i386/vx-common.h: Likewise.
2404         * config/cris/cris.h: Removed #if 0 clause.
2405         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
2406         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
2407         argument.
2408         (ix86_sol10_return_in_memory): Likewise.
2409         (ix86_i386elf_return_in_memory): New.
2410         (ix86_i386interix_return_in_memory): New.
2411         * config/mt/mt-protos.h (mt_return_in_memory): New.
2412         * config/mt/mt.c: Likewise.
2413         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
2414         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
2415         * config/bfin/bfin.h: Likewise.
2416         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
2417         argument.
2418         * config/bfin/bfin.c: Likewise.
2419         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
2420         * config/alpha/unicosmk.h: Likewise.
2421         * config/i386/cygming.h: Likewise.
2422         * config/iq2000/iq2000.h: Likewise.
2423         * config/mips/mips.h: Likewise.
2424         * config/mn10300/mn10300.h: Likewise.
2425         * config/rs6000/rs6000.h: Likewise.
2426         * config/score/score.h: Likewise.
2427         * config/spu/spu.h: Likewise.
2428         * config/v850/v850.h: Likewise.
2429         * defaults.h: Likewise.
2430         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
2431         * expr.c (emit_block_move): Adjust use of
2432         OUTGOING_REG_PARM_STACK_SPACE.
2433         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
2434         OUTGOING_REG_PARM_STACK_SPACE.
2435         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
2436
2437 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
2438
2439         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
2440         on OMP_RETURN for OMP_FOR.
2441
2442         PR debug/35896
2443         * dwarf2out.c (dw_expand_expr, common_check): Removed.
2444         (fortran_common): New function.
2445         (gen_variable_die): Call fortran_common instead of common_check,
2446         adjust for it returning tree instead of rtx.  Formatting.
2447
2448 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
2449
2450         PR rtl/7335
2451         PR rtl/33826
2452         * see.c (see_copy_insn): Copy new pure const attributes for new call.
2453         * c-decl.c (merge_decls): Ditto.
2454         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
2455         to RTL_CONST_OR_PURE_CALL_P.
2456         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
2457         Initialized DECL_LOOPING_CONST_PURE.
2458         (process_call_operands): Set tree_side_effects properly.
2459         * tree.h (TREE_READONLY_DECL_P): Removed.
2460         (DECL_IS_PURE): Renamed to DECL_PURE_P.
2461         (DECL_LOOPING_OR_CONST_P): New macro.
2462         (struct tree_function_decl): Added looping_const_or_pure_p.
2463         (ECF_*) Renumbered.
2464         (ECF_LOOPING_OR_CONST_P): New macro.
2465         * rtlanal.c (pure_const_p): Removed.
2466         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
2467         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
2468         to RTL_CONST_CALL_P.
2469         * ipa-pure-const.c (pure_const_state_e): Added looping field.
2470         (check_decl, check_tree, check_call, scan_function): Initialize
2471         looping.
2472         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
2473         (static_execute): Set looping true for recursive functions.
2474         Undo setting state to IPA_NEITHER for recursive functions.
2475         * cse.c (cse_insn): 
2476         * ifcvt.c (noce_can_store_speculate_p): Changed
2477         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
2478         RTL_CONST_OR_PURE_CALL_P.
2479         * dse.c (scan_insn): Ditto.
2480         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
2481         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
2482         RTL_CONST_OR_PURE_CALL_P.
2483         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
2484         pure_call_p to RTL_CONST_CALL_P.
2485         * gimplify.c (gimplify_call_expr): Clear side effects for
2486         non-looping pure and constant calls.
2487         * calls.c (emit_call_1): Set rtl flags from ecf flags.
2488         (flags_from_decl_or_type): Set ecf flags from decl flags.
2489         (initialize_argument_information): Turn off
2490         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
2491         Change const to pure if callee_copies is true rather than just
2492         turning off const.
2493         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
2494         way of marking pure calls.
2495         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
2496         Remove hack that was supposed to fix pr7335 and remove old
2497         way of marking pure calls.
2498         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
2499         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
2500         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
2501         RTL_CONST_OR_PURE_CALL_P.
2502         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
2503         * loop-invariant.c (find_exits, find_invariant_bb): Changed
2504         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
2505         * sched-deps.c (schedule_analyze): Ditto.
2506         * rtl.h (struct rtx_def): Use call field, unchanging field, and
2507         return_val field of calls to represent pure and const function info.
2508         (CONST_OR_PURE_CALL_P): Deleted macro.
2509         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
2510         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
2511         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
2512         TREE_READONLY.
2513         * tree-optimize.c (execute_fixup_cfg): Added test for
2514         ECF_LOOPING_CONST_OR_PURE.
2515         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
2516         DECL_PURE_P.
2517         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
2518         effects for looping pure or const calls.
2519         (verify_gimple_expr): Added verification code. 
2520         * config/alpha/alpha.c (alpha_legitimize_address,
2521         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
2522         RTL_CONST_CALL_P.
2523         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
2524         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
2525         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
2526         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
2527         RTL_CONST_OR_PURE_CALL_P.
2528         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
2529         and const calls to be deleted.
2530
2531 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
2532
2533         PR target/35714
2534         * config/i386/mmx.md (mmx_subv2sf3): New expander.
2535         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
2536         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
2537         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
2538         to handle nonimmediate operands.
2539         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
2540         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
2541         to handle nonimmediate operands.
2542         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
2543         (mmx_pmulhrwv4hi3): New expander.  Use
2544         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2545         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
2546         (sse2_umulv1siv1di3): New expander.  Use
2547         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2548         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
2549         (mmx_eq<mode>3): New expander.  Use
2550         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2551         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
2552         (mmx_uavgv8qi3): New expander.  Use
2553         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2554         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
2555         (mmx_uavgv4hi3): New expander.  Use
2556         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2557
2558         * config/i386/sse.md
2559         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
2560         to handle nonimmediate operands.
2561         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
2562         to handle nonimmediate operands.
2563         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
2564         to handle nonimmediate operands.
2565         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
2566         to handle nonimmediate operands.
2567         (sse2_unpckhpd_exp): New expander.  Use
2568         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2569         (sse2_unpcklpd_exp): New expander.  Use
2570         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2571         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
2572         to handle nonimmediate operands.
2573         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
2574         to handle nonimmediate operands.
2575         (*sse2_<plusminus_insn><mode>3): Rename from
2576         sse2_<plusminus_insn><mode>3 insn pattern.
2577         (sse2_<plusminus_insn><mode>3): New expander.  Use
2578         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2579         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
2580         (sse2_umulv2siv2di3): New expander.  Use
2581         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2582         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
2583         (sse4_1_mulv2siv2di3): New expander.  Use
2584         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2585         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
2586         (sse2_pmaddwd): New expander.  Use
2587         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2588         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
2589         (sse2_eq<mode>3): New expander.  Use
2590         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2591         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
2592         (sse4_1_eqv2di3): New expander.  Use
2593         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2594         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
2595         (sse2_uavgv16qi3): New expander.  Use
2596         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2597         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
2598         (sse2_uavgv16qi3): New expander.  Use
2599         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2600         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
2601         (sse2_uavgv8hi3): New expander.  Use
2602         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2603         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
2604         (ssse3_pmulhrswv8hi3): New expander.  Use
2605         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2606         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
2607         (ssse3_pmulhrswv4hi3): New expander.  Use
2608         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2609
2610         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
2611         (<sse>_vmmul<mode>3): Ditto.
2612         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
2613         (divv2df3): Ditto.
2614         (ssse3_pmaddubsw128): Use register_operand for operand 1.
2615         (ssse3_pmaddubsw): Ditto.
2616
2617         * config/i386/i386.c (struct_builtin_description)
2618         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
2619         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
2620         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
2621         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
2622         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
2623         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
2624         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
2625         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
2626         (ix86_fixup_binary_operands): Assert that src1
2627         and src2 must have the same mode when swapped.
2628         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
2629         and ix86_binary_operator_ok.  Do not force operands in registers
2630         when optimizing.
2631
2632 2008-05-07  Jan Hubicka  <jh@suse.cz>
2633
2634         * cgraph.c (dump_cgraph_node): Update.
2635         * cgraph.h (cgraph_local_info): Break out inline summary.
2636         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
2637         hook.
2638         * ipa-inline (inline_summary): New accestor function.
2639         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
2640         cgraph_decide_inlining, compute_inline_parameters): Update.
2641         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
2642
2643 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
2644
2645         Cleanup ColdFire scheduling support and add V4 pipeline model.
2646
2647         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
2648         (define_attr cpu): Add cfv4 value.
2649         (define_attr type, define_attr type1): Merge into a single 'type'
2650         attribute.  Update all uses.
2651         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
2652         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
2653         Update all uses.
2654         (define_attr opx_mem, define_attr opy_mem): Remove.
2655         (define_attr op_mem): Clean up, update comment.
2656         (define_attr size): Use specific values instead of general int.
2657         (define_attr guess, define_attr split): Remove.  Update all uses.
2658         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
2659         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
2660         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
2661         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
2662         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
2663         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
2664         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
2665         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
2666         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
2667         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
2668         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
2669         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
2670         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
2671         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
2672         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
2673         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
2674         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
2675         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
2676         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
2677         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
2678         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
2679         Update or set attributes.
2680         (stack_tie): New fake instruction.
2681
2682         * config/m68k/m68k.h (TUNE_CFV4): New macro.
2683         (m68k_sched_attr_size): Update declaration.
2684         (m68k_sched_attr_type2): Remove.
2685         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
2686         Declare new bypass predicates.
2687
2688         * config/m68k/m68k.c (m68k_sched_issue_rate,
2689         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
2690         implementations.
2691         (TARGET_SCHED_ISSUE_RATE,
2692         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
2693         (override_options): Handle scheduling for ColdFire V4 core.
2694         (m68k_expand_prologue): Emit stack_tie.
2695         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
2696         'OP_TYPE_FPN'.  Update all uses.
2697         (sched_guess_p): Remove.
2698         (sched_address_type): Handle symbolic addresses.
2699         (sched_get_operand): New static function.
2700         (sched_operand_type): Merge into sched_attr_op_type.
2701         (sched_attr_op_type): Handle FP registers, handle quick constants,
2702         update.
2703         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
2704         (m68k_sched_attr_size): Update.  Move logic to ...
2705         (sched_get_attr_size_int): New static function.
2706         (sched_get_opxy_mem_type): New static function.
2707         (m68k_sched_attr_op_mem): Update.
2708         (m68k_sched_attr_type2): Remove.
2709         (sched_cfv4_bypass_data): New static variable.
2710         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
2711         (m68k_sched_issue_rate): Implement scheduler hook.
2712         (struct _sched_ib: enabled_p): New field.
2713         (m68k_sched_variable_issue): Update.  Handle V4.
2714         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
2715         sched_dump_class_func_t, sched_dump_split_class,
2716         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
2717         sched_dump_dfa_class, m68k_sched_dump): Remove.
2718         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
2719         hook.
2720         (m68k_sched_init_global): Remove statisctics dumping, introduce
2721         sanity check that all instructions have pipeline reservations.  Handle
2722         ColdFire V4 core.
2723         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
2724         Handle ColdFire V4 core.
2725         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
2726         New static functions.
2727         (m68k_sched_address_bypass_p): New bypass predicate.
2728         (sched_get_indexed_address_scale): New static function.
2729         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
2730
2731         * cf.md: Update comments.
2732         (define_attr type2): Remove.  Use 'type' attribute instead.
2733         Update all uses.
2734         (cf_ib): Rename to cfv123_ib.  Update all uses.
2735         (cf_oep): Rename to cfv123_oep.  Update all uses.
2736         (cf_chr): Rename to cfv123_chr.  Update all uses.
2737         (cf_mem): Rename to cfv123_mem.  Update all uses.
2738         (cf_mac): Move to more appropriate place.
2739         (cfv123_guess): New automaton and cpu_unit.
2740         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
2741         Update uses of 'size' attribute.  Handle before reload scheduling.
2742         (cfv123_guess): New dummy reservation for unhandled instructions.
2743         (cfv4_*): Pipeline description of ColdFire V4 core.
2744         (ignore): New reservation to handle 'ignore' type.
2745
2746 2008-05-07  Ian Lance Taylor  <iant@google.com>
2747
2748         PR middle-end/36013
2749         * gimplify.c (find_single_pointer_decl_1): Don't look through
2750         indirections.
2751         (find_single_pointer_decl): Adjust comments.
2752
2753 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
2754
2755         PR middle-end/36137
2756         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
2757         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
2758
2759         PR middle-end/36106
2760         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
2761         integral type rather than floating point, then VIEW_CONVERT_EXPR
2762         to the floating point type.
2763
2764 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
2765
2766         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
2767         TFmode op0 to register.
2768
2769 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
2770
2771         * c-decl.c (grokdeclarator): Comment typo.
2772
2773 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
2774
2775         * tree-flow.h: Remove prototype for computed_goto_p.
2776         * tree-cfg.c (computed_goto_p): Make static.
2777
2778 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
2779
2780         PR target/35657
2781         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
2782         (contains_aligned_value_p): This.  Handle _Decimal128.
2783         (ix86_function_arg_boundary): Only align _Decimal128 to its
2784         natural boundary and handle it properly.
2785
2786 2008-05-06  Martin Jambor  <mjambor@suse.cz>
2787
2788         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
2789         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
2790         (ipcp_method_set_orig_node): Removed.
2791         (ipcp_cval_get_cvalue_type): Removed.
2792         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
2793         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
2794         (ipcp_cval_set_cvalue_type): Removed.
2795         (ipcp_cval_get_cvalue): Removed.
2796         (ipcp_cval_set_cvalue): Removed.
2797         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
2798         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
2799         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
2800         (ipcp_cval_meet): Renamed to ipa_lattice_meet
2801         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
2802         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
2803         (ipcp_get_ith_lattice): Changed parameters.
2804         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
2805         (ipcp_lattice_from_jfunc): Changed parameters.
2806         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
2807         (ipcp_method_cval_print): Added temporary variable info.
2808         (ipcp_redirect): Removed already unused local variable caller.
2809         (ipcp_redirect): New temporary variable orig_callee_info
2810         (ipcp_redirect): Removed newly unused local variable callee.
2811         (ipcp_redirect): Removed (a bit confusing) local variable type.
2812         (ipcp_insert_stage): Added local variable info.
2813         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
2814         renamed too
2815         (ipcp_formal_create): Removed.
2816         (ipcp_method_cval_set): Removed.
2817         (ipcp_propagate_stage): Renamed lattice variables.
2818         (ipcp_method_cval_set_cvalue_type): Removed.
2819         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
2820         (ipcp_print_all_lattices): Changed printed strings to refer to 
2821         lattices rather than cvals.
2822         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
2823         (ipcp_propagate_const): Changed formal parameters.
2824         (build_const_val): Changed formal parameters.
2825         (ipcp_insert_stage): Removed useless variable cvalue
2826         (build_const_val): Changed formal parameters.
2827         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
2828         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
2829         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
2830         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
2831         (ipcp_print_func_profile_counts): Changed string from "method" to 
2832         "function"
2833         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
2834         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
2835         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
2836         (ipcp_structures_print): Renamed to ipcp_print_all_structures
2837         (ipcp_profile_print): Renamed to ipcp_print_profile_data
2838         (ipcp_lat_is_const): Changed parameters and made inline.
2839         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
2840         (ipcp_redirect): Renamed to ipcp_need_redirect_p
2841         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
2842         the predicate condition directly
2843         (ipcp_propagate_stage): Added local variable args. Removed local
2844         variable callee.  (Both are mere code simplifications.)
2845         (ipcp_method_dont_insert_const): Renamed to
2846         ipcp_node_not_modifiable_p.
2847         (ipcp_node_not_modifiable_p): Made inline.
2848         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
2849         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
2850         (ipcp_print_all_lattices): Removed variable cvalue
2851         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
2852         Updated comments.
2853
2854 2008-05-06  Olivier Hainque  <hainque@adacore.com>
2855
2856         * tree-sra.c (try_instantiate_multiple_fields): Early return
2857         if field has POINTER_TYPE.
2858
2859 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
2860
2861         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
2862         by using 'q' specifier for instruction.
2863         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
2864
2865 2008-05-06  Anatoly Sokolov <aesok@post.ru>
2866
2867         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
2868         Change mode of zero_extract from QImode to HImode.
2869         (sign bit tests peepholes): (Ditto.).
2870
2871 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
2872
2873         * config/i386/mmx.md: Remove double backslashes from asm templates.
2874         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
2875         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
2876         to handle nonimmediate operands.
2877         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
2878         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
2879         to handle nonimmediate operands.
2880         (*mmx_<code>v2sf3_finite): New insn pattern.
2881         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
2882         (mmx_<code>v2sf3): New expander.  Use
2883         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2884         (mmx_<plusminus_insn><mode>3): New expander.  Use
2885         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2886         (*mmx_<plusminus_insn><mode>3): New insn pattern.
2887         (mmx_add<mode>3): Removed.
2888         (mmx_ssadd<mode>3): Ditto.
2889         (mmx_usadd<mode>3): Ditto.
2890         (mmx_sub<mode>3): Ditto.
2891         (mmx_sssub<mode>3): Ditto.
2892         (mmx_ussub<mode>3): Ditto.
2893         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
2894         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
2895         to handle nonimmediate operands.
2896         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
2897         insn pattern.
2898         (mmx_smulv4hi3_highpart): New expander.  Use
2899         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2900         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
2901         insn pattern.
2902         (mmx_umulv4hi3_highpart): New expander.  Use
2903         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2904         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
2905         (mmx_<code>v4hi3): New expander.  Use
2906         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2907         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
2908         (mmx_<code>v8qi3): New expander.  Use
2909         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2910         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
2911         (mmx_<code><mode>3): New expander.  Use
2912         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2913
2914 2008-05-05  Jan Hubicka  <jh@suse.cz>
2915
2916         PR tree-optimization/36118
2917         * passes.c (pass_init_dump_file): Fix dump header.
2918
2919 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2920
2921         PR middle-end/36141
2922         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
2923         VCE for function decls.
2924
2925 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
2926
2927         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
2928
2929 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
2930
2931         * config/i386/i386.md (sat_plusminus): New.
2932         (plusminus_insn): Likewise.
2933         (plusminus_mnemonic): Likewise.
2934         (addsub): Removed.
2935         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
2936         (*<addsub><mode>3_cc_overflow): Renamed to ...
2937         (*<plusminus_insn><mode>3_cc_overflow): This.
2938         (*<addsub>si3_zext_cc_overflow): Renamed to ...
2939         (*<plusminus_insn>si3_zext_cc_overflow): This.
2940
2941         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
2942         (<plusminus_insn><mode>3): This.
2943         (*<addsub><mode>3): Renamed to ...
2944         (*<plusminus_insn><mode>3): This.
2945         (<sse>_vm<addsub><mode>3): Renamed to ...
2946         (<sse>_vm<plusminus_insn><mode>3): This.
2947         (sse3_h<addsub>v4sf3): Renamed to ...
2948         (sse3_h<plusminus_insn>v4sf3): This.
2949         (sse3_h<addsub>v2df3): Renamed to ...
2950         (sse3_h<plusminus_insn>v2df3): This.
2951         (<plusminus_insn><mode>3): New.
2952         (*<plusminus_insn><mode>3): Likewise.
2953         (sse2_<plusminus_insn><mode>3): Likewise.
2954         (add<mode>): Removed.
2955         (*add<mode>3): Likewise.
2956         (sse2_ssadd<mode>3): Likewise.
2957         (sse2_usadd<mode>3): Likewise.
2958         (sub<mode>3): Likewise.
2959         (*sub<mode>3): Likewise.
2960         (sse2_sssub<mode>3): Likewise.
2961         (sse2_ussub<mode>3): Likewise.
2962
2963 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
2964
2965         * gthr-single.h: Add in required interface elements as per gthr.h.
2966         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
2967         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
2968         Generalize UNUSED macro. 
2969         (__gthread_once): Add.
2970         (__gthread_key_create): Add.
2971         (__gthread_key_delete): Add.
2972         (__gthread_getspecific): Add.
2973         (__gthread_setspecific): Add.
2974         
2975 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
2976
2977         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
2978         the same size types for the indirect reference on the rhs, then
2979         create a VCE.
2980
2981 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
2982
2983         * config/i386/i386.md
2984         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
2985         one insn template instead of template series.
2986         (*xordi_1_rex64): Ditto.
2987         (*xordi_2_rex64): Ditto.
2988
2989 2008-05-05  Ira Rosen  <irar@il.ibm.com>
2990
2991         PR tree-optimization/36119
2992         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
2993         in case of SLP.
2994
2995 2008-06-04  Jan Hubicka  <jh@suse.cz>
2996
2997         tree-optimization/36100
2998         * tree-pass.h (pass_O0_always_inline): Declare.
2999         * ipa-inline.c (inline_transform): Remove dead code.
3000         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
3001         pass_O0_always_inline): New.
3002         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
3003
3004 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
3005
3006         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
3007         mnemonic in this_param move for TARGET_64BIT.
3008
3009 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
3010
3011         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
3012         (*strmovsi_rex_1): Ditto.
3013         (*strsetsi_1): Ditto.
3014         (*strsetsi_rex_1): Ditto.
3015
3016         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
3017         adddicc expanders using SWI mode iterator.
3018
3019 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
3020
3021         PR target/36121
3022         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
3023         argument handling.
3024
3025 2008-05-04  David S. Miller  <davem@davemloft.net>
3026
3027         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
3028         (sparc*-*-linux*): Use linux.h in tm_file.
3029         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
3030         compiler defaulting to 32-bit.
3031         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
3032         no longer needed.
3033         * config/sparc/linux.h: Remove definitions now obtained
3034         properly from linux.h
3035         * config/sparc/linux64.h: Likewise.
3036         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
3037         don't want this setting for 32-bit builds in a biarch compiler.
3038         * doc/install.texi: Add sparc-linux to list of targets
3039         supporting --enable-targets=all.
3040
3041 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
3042
3043         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
3044
3045 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
3046
3047         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
3048         after V4SI_FTYPE_V8HI.
3049         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
3050         case V4SI_FTYPE_V2DF.
3051
3052 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
3053
3054         * doc/invoke.texi (max-flow-memory-locations): Removed.
3055         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
3056         
3057 2008-05-03  Richard Guenther  <rguenther@suse.de>
3058
3059         PR middle-end/34973
3060         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
3061
3062 2008-05-02  David S. Miller  <davem@davemloft.net>
3063
3064         * config.gcc (need_64bit_hwint): Document libcpp dependency.
3065
3066 2008-05-02  Simon Baldwin <simonb@google.com>
3067
3068         PR bootstrap/36108
3069         * c-common.h (warn_array_subscript_range): Removed.
3070         * c-common.c (warn_array_subscript_range): Ditto.
3071         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
3072         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
3073
3074 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
3075
3076         * config/i386/i386.c (ix86_special_builtin_type): New.
3077         (bdesc_special_args): Likewise.
3078         (ix86_expand_special_args_builtin): Likewise.
3079         (ix86_init_mmx_sse_builtins): Updated.
3080         (ix86_expand_builtin): Updated.
3081         (ix86_expand_store_builtin): Removed.
3082         (ix86_expand_unop_builtin): Likewise.
3083
3084         * config/i386/mm3dnow.h (__v2sf): Moved to ...
3085         * config/i386/mmintrin.h (__v2sf): Here.
3086
3087         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
3088         const __v2sf.
3089         (_mm_loadl_pi): Likewise.
3090         (_mm_storeh_pi): Replace __v2si with __v2sf.
3091         (_mm_storel_pi): Likewise.
3092
3093         * doc/extend.texi: Correct __builtin_ia32_loadhps,
3094         __builtin_ia32_loadlps, __builtin_ia32_storehps,
3095         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
3096         __builtin_ia32_loadlpd.
3097
3098 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
3099
3100         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
3101         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
3102         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
3103         (ix86_init_mmx_sse_builtins): Updated.
3104         (ix86_expand_args_builtin): Likewise.
3105         (ix86_expand_builtin): Likewise.
3106         (ix86_expand_unop1_builtin): Renamed to ...
3107         (ix86_expand_unop_vec_merge_builtin): This.
3108
3109 2008-05-01  Jan Hubicka  <jh@suse.cz>
3110
3111         PR bootstrap/36100
3112         * ipa-inline.c (inline_generate_summary): Make static.
3113         (inline_transform): Do not call inlining at -O0; make static.
3114         * passes.c (execute_todo): Add sanity check.
3115         (execute_one_ipa_transform_pass): Execute proper flags.
3116
3117 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
3118
3119         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
3120         (DECL_NONADDRESSABLE_P): Likewise.
3121         * alias.c (record_component_aliases): Fix comment.
3122
3123 2008-05-01  Simon Baldwin <simonb@google.com>
3124
3125         * c-common.h (warn_array_subscript_range): New function.
3126         * c-common.c (warn_array_subscript_range): Ditto.
3127         * tree-vrp.c (check_array_ref): Corrected code to agree with
3128         comment, ignoring only arrays of size 0 or size 1.
3129         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
3130
3131 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
3132
3133         * config/i386/i386.c (ix86_builtin_type): Replace
3134         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
3135         (bdesc_args): Updated.
3136         (ix86_init_mmx_sse_builtins): Likewise.
3137         (ix86_expand_args_builtin): Likewise.
3138
3139         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
3140         with __v1di.
3141
3142         * doc/extend.texi: Correct __builtin_ia32_palignr.
3143
3144 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
3145
3146         PR target/36095
3147         * config/i386/i386.c (bdesc_crc32): Removed.
3148         (ix86_expand_crc32): Likewise.
3149         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
3150         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
3151         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
3152         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
3153         UINT_FTYPE_UINT_UCHAR.
3154         (bdesc_args): Updated. Add crc32 builtins.
3155         (ix86_init_mmx_sse_builtins): Updated.
3156         (ix86_expand_args_builtin): Updated to support subreg.
3157
3158         * doc/extend.texi: Correct __builtin_ia32_crc32di.
3159
3160 2008-05-01  Jan Hubicka  <jh@suse.cz>
3161
3162         * tree-pass.h (opt_pass): Add IPA_PASS.
3163         (varpool_node, cgraph_node): Forward declare.
3164         (ipa_opt_pass): Define.
3165         (pass_ipa_inline): Turn into ipa_opt_pass.
3166         (pass_apply_inline): Remove.
3167         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
3168         (apply_inline): Turn into ....
3169         (inline_transform): ... this one.
3170         (inline_generate_summary): New function.
3171         (pass_apply_inline): Remove.
3172         * function.h (ipa_opt_pass): Forward declare structure; typedef;
3173         vector.
3174         (struct function): Add ipa_transforms_to_apply.
3175         * passes.c (register_one_dump_file): Work on IPA_PASS.
3176         (init_optimization_passes): Remove pass_inline_parameters and
3177         pass_apply_inline.
3178         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
3179         (execute_one_pass) ... here; apply transforms when possible.
3180         (add_ipa_transform_pass, execute_ipa_summary_asses,
3181         execute_one_ipa_transform_pass): New.
3182         (execute_ipa_pass_list): Update for IPA_PASS type.
3183
3184 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
3185
3186         * config/i386/i386.c (ix86_builtin_type): Add
3187         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
3188         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
3189         (bdesc_args): Add SSE4a builtins.
3190         (ix86_init_mmx_sse_builtins): Updated.
3191         (ix86_expand_args_builtin): Likewise.
3192         (ix86_expand_builtin): Likewise.
3193
3194 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
3195
3196         * config/i386/i386.c (ix86_builtin_type): Add
3197         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
3198         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
3199         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
3200         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
3201         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
3202         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
3203         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
3204         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
3205         and DI_FTYPE_DI_DI_INT.
3206         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
3207         (ix86_init_mmx_sse_builtins): Updated.
3208         (ix86_expand_args_builtin): Likewise.
3209         (ix86_expand_builtin): Likewise.
3210         (ix86_expand_binop_imm_builtin): Removed.
3211
3212         * doc/extend.texi: Correct __builtin_ia32_palignr128.
3213
3214 2008-04-30  Richard Guenther  <rguenther@suse.de>
3215
3216         PR tree-optimization/32921
3217         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
3218
3219 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
3220
3221         * config/arm/arm.c (arm_unwind_emit): Use
3222         crtl->all_throwers_are_sibcalls instead of
3223         cfun->all_throwers_are_sibcalls.
3224         (arm_output_fn_unwind): Likewise.
3225         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
3226         instead of cfun->uses_pic_offset_table.
3227         (frv_expand_prologue): Likewise.
3228         (frv_frame_pointer_required): Likewise.
3229         (frv_expand_fdpic_call): Likewise.
3230         (frv_emit_movsi): Likewise.
3231         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
3232         cfun->returns_pcc_struct instead of
3233         current_function_returns_pcc_struct.
3234         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
3235         instead of cfun->calls_eh_return.
3236         (m32c_pushm_popm): Likewise.
3237         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
3238         "extern" declaration.
3239
3240 2008-04-30  Richard Guenther  <rguenther@suse.de>
3241
3242         PR tree-optimization/21636
3243         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
3244         constant address.
3245         (evaluate_stmt): Print the likely value.
3246         (ccp_visit_stmt): Avoid excessive vertical spacing.
3247
3248 2008-04-30  Rafael Espindola  <espindola@google.com>
3249
3250         * builtins.c (fold_call_expr): Return realret.
3251         * tree-ssa-threadedge.c
3252         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
3253         __builtin_object_size.
3254
3255 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
3256
3257         * gcc.c (wrapper_string): New variable.
3258         (insert_wrapper): New function.
3259         (execute): New option -wrapper.
3260         * doc/invoke.texi (Overall Options): New driver option -wrapper.
3261
3262 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
3263
3264         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
3265         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
3266         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
3267         from...
3268         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
3269         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
3270         config/rs6000/e500crtres64gprctr.asm,
3271         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
3272         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
3273         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
3274         config/rs6000/e500crtsav64gprctr.asm,
3275         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
3276         config/rs6000/e500crtsavg64gprctr.asm: New files.
3277         * config/rs6000/t-ppccomm: Add build rules for new files.
3278         (LIB2FUNCS_STATIC_EXTRA): Add new files.
3279         * config/rs6000/t-netbsd: Add build rules for new files.
3280         (LIB2FUNCS_STATIC_EXTRA): New variable.
3281         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
3282         (CRTSAVRES_DEFAULT_SPEC): Likewise.
3283         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
3284
3285 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
3286
3287         * config/i386/i386.c (ix86_builtin_type): Add
3288         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
3289         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
3290         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
3291         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
3292         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
3293         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
3294         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
3295         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
3296         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
3297         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
3298         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
3299         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
3300         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
3301         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
3302         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
3303         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
3304         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
3305         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
3306         V1DI_FTYPE_V2SI_V2SI.
3307         (bdesc_2arg): Moved to ...
3308         (bdesc_args): Here.
3309         (ix86_init_mmx_sse_builtins): Updated.
3310         (ix86_expand_args_builtin): Updated.  Take a pointer
3311         to const struct builtin_description.  Handle comparison
3312         builtin functions.
3313         (ix86_expand_sse_compare): Take a new argument for swapping operands.
3314         (ix86_expand_builtin): Updated.
3315
3316         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
3317         (ssse3_pmaddubsw128): This.
3318         (ssse3_pmaddubswv4hi3): Renamed to ...
3319         (ssse3_pmaddubsw): This.
3320
3321         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
3322         (__builtin_ia32_packssdw128): Likewise.
3323         (__builtin_ia32_packuswb128): Likewise.
3324         (__builtin_ia32_pmaddubsw): Likewise.
3325         (__builtin_ia32_pmaddubsw128): Likewise.
3326
3327 2008-04-30  Richard Guenther  <rguenther@suse.de>
3328
3329         PR tree-optimization/14847
3330         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
3331         (recognize_bits_test): Use it.
3332         (recognize_single_bit_test): Likewise.
3333
3334 2008-04-30  Martin Jambor  <mjambor@suse.cz>
3335
3336         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
3337         instead of setting number of formal parameters to zero.
3338         (ipcp_init_stage): Do not set the number of actual parameters to zero 
3339         either.
3340         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
3341         which are called with variable number of arguments.
3342         (ipcp_insert_stage): Explicitely skipping all nodes which are
3343         called with variable number of arguments.
3344         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
3345         number of parameters.
3346
3347         * ipa-prop.h (struct ipa_node_params): Added flag
3348         called_with_var_arguments
3349         (ipa_set_param_count): Added.  Changed sole setter to use it.
3350         (ipa_get_param_count): Added.  All readers of param_count
3351         converted to use it instead.
3352         (ipa_set_called_with_variable_arg): Added.
3353         (ipa_is_called_with_var_arguments): Added.
3354         (ipa_get_ith_param): Added.  All readers of param_decls converted
3355         to use it instead.
3356         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
3357         changed to use it. 
3358         (ipa_get_cs_argument_count): Added, all readers of argument_count
3359         changed to cal it.
3360         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
3361         to use it.
3362         
3363         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
3364         (struct ipcp_lattice): Renamed cval_type to type
3365         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
3366
3367         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
3368         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
3369         (ipcp_insert_stage): Changed the type of variable cvalue to tree
3370         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
3371         (build_const_val): Changed the type of parameter cvalue to tree
3372         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
3373         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
3374         
3375         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
3376         constant 
3377
3378         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
3379         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
3380         (ipa_add_method): Renamed to ipa_push_func_to_list
3381         (ipa_remove_method): Renamed to ipa_pop_func_from_list
3382         (ipa_callsite_param_count): Removed.
3383         (ipa_callsite_param_count_set): Removed.
3384         (ipa_callsite_param): Removed.
3385         (ipa_callsite_callee): Removed.
3386         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
3387         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
3388         (ipa_method_formal_count): Removed.
3389         (ipa_method_formal_count_set): Removed.
3390         (ipa_method_get_tree): Removed.
3391         (ipa_method_tree_map_create): Removed.
3392         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
3393         (ipa_create_param_decls_array): Creates the array itself
3394         (ipa_create_param_decls_array): Temporary variable info instead of 
3395         a few dereferences.
3396         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
3397         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
3398         (get_type): Removed.
3399         (ipa_jf_get_info_type): Removed.
3400         (ipa_node_create): Renamed to ipa_create_node_params
3401         (ipa_free): Renamed to ipa_free_all_node_params
3402         (ipa_nodes_create): Renamed to ipa_create_all_node_params
3403         (ipa_edges_create): Renamed to ipa_create_all_edge_args
3404         (ipa_edges_free): Renamed to ipa_free_all_edge_args
3405         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
3406         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
3407         ipa_free_all_edge_args
3408         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
3409         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
3410         (ipa_create_methodlist_node): Removed.
3411         (ipa_methodlist_method): Removed.
3412         (ipa_methodlist_method_set): Removed.
3413         (ipa_methodlist_next_method): Removed.
3414         (ipa_methodlist_next_method_set): Removed.
3415         (ipa_method_is_modified): Removed.
3416         (ipa_method_modify_create): Removed.
3417         (ipa_method_modify_init): Temporary variable info instead of a few 
3418         dereferences.
3419         (ipa_detect_param_modifications): Temporary variable info instead of 
3420         a few dereferences.
3421         (ipa_compute_jump_functions): Temporary variable info instead of 
3422         a few dereferences.
3423         (ipa_method_modify_set): Removed.
3424         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
3425         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
3426         than craph_node as the first parameter.
3427         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
3428         (ipa_method_modify_init): Removed.
3429         (ipa_compute_jump_functions): Added a temp variable instead of 
3430         repeatadly dereferencing the cgraph_edge.aux pointer
3431         (ipa_callsite_param_set_type): Removed.
3432         (ipa_compute_jump_functions): i renamed to index and moved to 
3433         an inner block
3434         (ipa_callsite_param_set_info_type_formal): Removed.
3435         (ipa_callsite_param_set_info_type): Removed.
3436         (ipa_callsite_param_map_create): Removed.
3437         (ipa_callsite_tree): Removed.
3438         (ipa_callsite_caller): Removed.
3439         (ipa_pop_func_from_list): return_method removed to return_func
3440
3441         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
3442         prefixed all values with IPA_. Changed all users.
3443         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
3444         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
3445         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
3446         (union parameter_info): Renamed to jump_func_value.
3447         (union jump_func_value): Renamed value to constant
3448         (struct ipa_jump_func): Renamed info_type to value
3449         (struct ipa_node): Renamed to ipa_node_params
3450         (struct ipa_node_params): Renamed ipa_arg_num to param_count
3451         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
3452         (struct ipa_node_params): Renamed ipa_mod to modified_flags
3453         (struct ipa_edge): Renamed to ipa_edge_args
3454         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
3455         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
3456         (struct ipa_methodlist): Renamed to ipa_func_list
3457         (struct ipa_func_list): method_p renamed to node, next_method
3458         renamed to next
3459         (ipa_methodlist_p): Removed, switched all users to struct pointer
3460         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
3461
3462 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
3463
3464         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
3465         (rs6000_emit_epilogue): Use backchain to restore only when we
3466         have a large frame.  Make use of frame pointer to restore if we
3467         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
3468
3469 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
3470
3471         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
3472         Add mode to zero_extract.
3473         (sign bit tests peepholes): (Ditto.).
3474
3475 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
3476
3477         * config/i386/i386.c (ix86_builtins): Replace Prescott New
3478         Instructions in comments with SSE3.
3479         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
3480         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
3481         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
3482         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
3483         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
3484         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
3485         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
3486         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
3487         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
3488         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
3489         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
3490         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
3491         (bdesc_sse_args): Renamed to ...
3492         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
3493         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
3494         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
3495         IX86_BUILTIN_FABSQ.
3496         (bdesc_1arg): Moved to ...
3497         (bdesc_args): Here.
3498         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
3499         Instructions in comments with SSE3.
3500         (ix86_expand_sse_operands_builtin): Renamed to ...
3501         (ix86_expand_args_builtin): This.  Updated.
3502         (ix86_expand_unop1_builtin): Update comments.
3503         (ix86_expand_builtin): Updated.
3504
3505 2008-04-29  Richard Guenther  <rguenther@suse.de>
3506
3507         PR tree-optimization/36078
3508         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
3509         Update virtual SSA form after cleaning up the CFG.
3510
3511 2008-04-29  Richard Guenther  <rguenther@suse.de>
3512
3513         PR middle-end/15255
3514         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
3515
3516 2008-04-29  Richard Guenther  <rguenther@suse.de>
3517
3518         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
3519         (compute_may_aliases): Do not call finalize_ref_all_pointers.
3520         (compute_flow_insensitive_aliasing): Do not treat
3521         PTR_IS_REF_ALL pointers special.
3522         (get_smt_for): Likewise.
3523         (may_alias_p): Re-structure.
3524         (is_escape_site): A ref-all pointer conversion is not an escape site.
3525         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
3526         PTR_IS_REF_ALL pointers special.
3527         * tree-ssa-structalias.h (struct alias_info): Remove
3528         ref_all_symbol_mem_tag field.
3529         (PTR_IS_REF_ALL): Remove.
3530
3531 2008-04-29  Richard Guenther  <rguenther@suse.de>
3532
3533         PR middle-end/36077
3534         * fold-const.c (extract_muldiv_1): In combining division constants
3535         make sure to never overflow.
3536
3537 2008-04-29  Nick Clifton  <nickc@redhat.com>
3538
3539         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
3540
3541 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3542
3543         PR bootstrap/35169
3544         * optc-gen.awk: Work around HP-UX/IA awk bug.
3545
3546 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
3547
3548         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
3549         2008-04-25 commit.
3550
3551 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
3552
3553         PR target/36073
3554         * config/i386/i386.md
3555         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
3556         Change operand 1 predicate to nonimmediate_operand.
3557
3558 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
3559
3560         PR debug/36060
3561         * dwarf2out.c (struct die_struct): Mark as chain_circular through
3562         die_sub field.
3563         * gengtype.c (walk_type, write_func_for_structure): Handle
3564         chain_circular.
3565         * doc/gty.texi: Document chain_circular.
3566
3567 2008-04-28  Richard Guenther  <rguenther@suse.de>
3568
3569         PR tree-optimization/36066
3570         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
3571         SCEV and loop.
3572
3573 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
3574
3575         PR target/36064
3576         * config/i386/i386.md
3577         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
3578         Use match_scratch instead of match_operand for operands 3 and 4.
3579
3580 2008-04-27  Richard Guenther  <rguenther@suse.de>
3581
3582         PR tree-optimization/18754
3583         PR tree-optimization/34223
3584         * tree-pass.h (pass_complete_unrolli): Declare.
3585         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
3586         loop size before and after unconditionally of UL_NO_GROWTH in effect.
3587         Rewrite loop into loop closed SSA form if it is not already.
3588         (tree_unroll_loops_completely): Re-structure to iterate over
3589         innermost loops with intermediate CFG cleanups.
3590         Unroll outermost loops only if requested or the code does not grow
3591         doing so.
3592         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
3593         loops are available.
3594         (tree_vectorize): Instead do so here.
3595         (tree_complete_unroll): Also unroll outermost loops.
3596         (tree_complete_unroll_inner): New function.
3597         (gate_tree_complete_unroll_inner): Likewise.
3598         (pass_complete_unrolli): New pass.
3599         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
3600         uses outside of the loop.
3601         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
3602         form if it is available.  
3603         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
3604         * passes.c (init_optimization_passes): Schedule complete inner
3605         loop unrolling pass before the first CCP pass after final inlining.
3606
3607 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
3608
3609         * targhooks.h (default_emutls_var_fields,
3610         default_emutls_var_init): Declare.
3611         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
3612         * target.h (struct gcc_target): Add struct emutls member.
3613         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
3614         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
3615         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
3616         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
3617         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
3618         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
3619         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
3620         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
3621         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
3622         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
3623         emit debug information.
3624         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
3625         * varasm.c: Include targhooks.h.
3626         (emutls_object_section, emutls_tmpl_section): New.
3627         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
3628         (EMUTLS_SEPARATOR): New.
3629         (prefix_name): New.
3630         (get_emutls_object_name): New.
3631         (default_emutls_var_fields): New, broken out of ...
3632         (get_emutls_object_type): ... here.  Adjust to use target hooks.
3633         (get_emutls_init_templ_addr): Adjust to use target hooks.
3634         (emutls_decl): Adjust to use target hooks.
3635         (emutls_finish): Likewise.
3636         (default_emutls_var_init): New, broken out of ...
3637         (assemble_variable): ... here.  Adjust to use target hooks.
3638         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
3639         SECCAT_EMUTLS_TMPL.
3640         * c-common.c (handle_section_attribute): Prevent overriding
3641         sections for emulated tls with special sections.
3642         * config/i386/i386.c (x86_64_elf_select_section): Add
3643         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
3644         (x86_64_elf_unique_section): Likewise.
3645         * config/vxworks.c: Include tree.h.
3646         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
3647         (vxworks_override_options): Set TLS scheme.
3648         * doc/tm.texi (Emulated TLS): New node.
3649
3650 2008-04-26  Simon Baldwin <simonb@google.com>
3651
3652         PR c/35652
3653         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
3654         with propagated string constants.
3655
3656 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
3657
3658         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
3659         constraint for operand 2 when operand 0 is memory operand.
3660         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
3661         operand 0 is memory operand.
3662         (fix_trunc<mode>_i387_with_temp): Ditto.
3663         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
3664         operand 2 when operand 1 is memory operand.
3665         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
3666         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
3667         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
3668         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
3669         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
3670         operands 2,3 and 4 when operand 1 is memory operand.
3671         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
3672         is memory operand.
3673         (fistdi2_floor_with_temp): Ditto.
3674         (fist<mode>2_floor_with_temp): Ditto.
3675         (fistdi2_ceil_with_temp): Ditto.
3676         (fist<mode>2_ceil_with_temp): Ditto.
3677         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
3678
3679 2008-04-26  David Daney  <ddaney@avtrex.com>
3680
3681         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
3682         unspec_volitile.
3683         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
3684         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
3685         UNSPEC_UPDATE_GOT_VERSION): Renumber.
3686         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
3687         (compare_and_swap_12): New insn.
3688         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
3689         * config/mips/mips.c (mips_force_binary): New function.
3690         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
3691         (mips_expand_compare_and_swap_12): New function.
3692         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
3693
3694 2008-04-25  Jan Hubicka  <jh@suse.cz>
3695
3696         PR testsuite/35843
3697         * cfgexpand.c (pass_expand): Turn into RTL pass.
3698         * passes.c (execute_one_pass): Do pass typechecking after execution.
3699         * tree-pass.h (pass_expand): Turn into RTL pass.
3700
3701         * function.h (struct rtl_data): Move here fields
3702         accesses_prior_frames, calls_eh_return, saves_all_registers,
3703         has_nonlocal_goto, has_asm_statement, is_thunk,
3704         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
3705         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
3706         arg_pointer_save_area_init from struct function; turn into bool.
3707         (struct function): Move
3708         calls_eh_return, saves_all_registers, has_nonlocal_goto,
3709         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
3710         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
3711         tail_call_emit, arg_pointer_save_area_init
3712         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
3713         (current_function_returns_struct, current_function_returns_pcc_struct,
3714         current_function_calls_setjmp, current_function_calls_alloca,
3715         current_function_accesses_prior_frames,
3716         current_function_calls_eh_return, current_function_is_thunk,
3717         current_function_stdarg, current_function_profile,
3718         current_function_limit_stack, current_function_uses_pic_offset_table,
3719         current_function_uses_const_pool, current_function_has_nonlocal_label,
3720         current_function_saves_all_registers,
3721         current_function_has_nonlocal_goto,
3722         current_function_has_asm_statement): Remove accesor macros.
3723         * ra-conflict.c (global_conflicts): Update.
3724         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
3725         (suitable_for_tail_call_opt_p): Update.
3726         * builtins.c (expand_builtin_return_addr): Update.
3727         (expand_builtin_setjmp_setup): Update.
3728         (expand_builtin_nonlocal_goto): Update.
3729         * final.c (final_start_function): Update.
3730         (profile_function): Update.
3731         (leaf_function_p): Update.
3732         (only_leaf_regs_used): Update.
3733         * df-scan.c (df_get_exit_block_use_set): Update.
3734         * dojump.c (clear_pending_stack_adjust): Update.
3735         * tree-stdarg.c (gate_optimize_stdarg): Update.
3736         * gimple-low.c (lower_function_body): Update.
3737         * global.c (compute_regsets): Update.
3738         (global_alloc): Update.
3739         * dwarf2out.c (dwarf2out_begin_prologue): Update.
3740         * expr.c (expand_assignment): Update.
3741         * dse.c (dse_step0): Update.
3742         (dse_step1): Update.
3743         * c-decl.c (store_parm_decls): Update.
3744         * local-alloc.c (combine_regs): Update.
3745         (find_free_reg): Update.
3746         * function.c (assign_parms_augmented_arg_list): Update.
3747         (assign_parm_find_data_types): Update.
3748         (assign_parms): Update.
3749         (allocate_struct_function): Update.
3750         (expand_function_start): Update.
3751         (expand_function_end): Update.
3752         (get_arg_pointer_save_area): Update.
3753         (thread_prologue_and_epilogue_insns): Update.
3754         (rest_of_match_asm_constraints): Update.
3755         * stor-layout.c (variable_size): Update.
3756         * gcse.c (gcse_main): Update.
3757         (bypass_jumps): Update.
3758         * gimplify.c (gimplify_function_tree): Update.
3759         * calls.c (emit_call_1): Update.
3760         (expand_call): Update.
3761         * bt-load.c (compute_defs_uses_and_gen): Update.
3762         * except.c (sjlj_assign_call_site_values): Update.
3763         (sjlj_emit_function_enter): Update.
3764         (can_throw_external): Update.
3765         (set_nothrow_function_flags): Update.
3766         (expand_builtin_unwind_init): Update.
3767         (expand_eh_return): Update.
3768         (convert_to_eh_region_ranges): Update.
3769         (output_function_exception_table): Update.
3770         * emit-rtl.c (gen_tmp_stack_mem): Update.
3771         * cfgexpand.c (expand_used_vars): Update.
3772         (tree_expand_cfg): Update.
3773         * cfgcleanup.c (rest_of_handle_jump): Update.
3774         * explow.c (allocate_dynamic_stack_space): Update.
3775         * varasm.c (assemble_start_function): Update.
3776         (force_const_mem): Update.
3777         (mark_constant_pool): Update.
3778         * tree-optimize.c (tree_rest_of_compilation): Update.
3779         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
3780         * tree-cfg.c (notice_special_calls): Update.
3781         (is_ctrl_altering_stmt): Update.
3782         (tree_can_make_abnormal_goto): Update.
3783         (tree_purge_dead_abnormal_call_edges): Update.
3784         * config/alpha/predicates.md: Update.
3785         * config/alpha/alpha.c (alpha_sa_mask): Update.
3786         (alpha_sa_size): Update.
3787         (alpha_does_function_need_gp): Update.
3788         (alpha_expand_prologue): Update.
3789         (alpha_start_function): Update.
3790         (alpha_output_function_end_prologue): Update.
3791         (alpha_expand_epilogue): Update.
3792         * config/frv/frv.c (frv_stack_info): Update.
3793         (frv_expand_epilogue): Update.
3794         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
3795         (s390_register_info): Update.
3796         (s390_frame_info): Update.
3797         (s390_init_frame_layout): Update.
3798         (s390_can_eliminate): Update.
3799         (save_gprs): Update.
3800         * config/spu/spu.c (spu_split_immediate): Update.
3801         (need_to_save_reg): Update.
3802         (spu_expand_prologue): Update.
3803         (spu_expand_epilogue): Update.
3804         * config/sparc/sparc.md: Update.
3805         * config/sparc/sparc.c (eligible_for_return_delay): Update.
3806         (sparc_tls_got): Update.
3807         (legitimize_pic_address): Update.
3808         (sparc_emit_call_insn): Update.
3809         (sparc_expand_prologue): Update.
3810         (output_return): Update.
3811         (print_operand): Update.
3812         (sparc_function_ok_for_sibcall): Update.
3813         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
3814         * config/m32r/m32r.md: Update.
3815         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
3816         (m32r_compute_frame_size): Update.
3817         (m32r_expand_prologue): Update.
3818         (m32r_expand_epilogue): Update.
3819         (m32r_legitimize_pic_address): Update.
3820         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
3821         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
3822         * config/i386/i386.c (ix86_frame_pointer_required): Update.
3823         (gen_push): Update.
3824         (ix86_save_reg): Update.
3825         (ix86_compute_frame_layout): Update.
3826         (ix86_expand_prologue): Update.
3827         (ix86_expand_epilogue): Update.
3828         * config/sh/sh.c (output_stack_adjust): Update.
3829         (calc_live_regs): Update.
3830         (sh5_schedule_saves): Update.
3831         (sh_expand_prologue): Update.
3832         (sh_expand_epilogue): Update.
3833         (sh_setup_incoming_varargs): Update.
3834         (sh_allocate_initial_value): Update.
3835         (sh_get_pr_initial_val): Update.
3836         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
3837         * config/sh/sh.md (label:): Update.
3838         * config/avr/avr.c (out_movhi_mr_r): Update.
3839         * config/crx/crx.h (enum): Update.
3840         * config/xtensa/xtensa.h (along): Update.
3841         * config/stormy16/stormy16.c Update.
3842         (xstormy16_compute_stack_layout): Update.
3843         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
3844         (fr30_expand_prologue): Update.
3845         * config/cris/cris.c (cris_conditional_register_usage): Update.
3846         (cris_reg_saved_in_regsave_area): Update.
3847         (cris_initial_frame_pointer_offset): Update.
3848         (cris_simple_epilogue): Update.
3849         (cris_expand_prologue): Update.
3850         (cris_expand_epilogue): Update.
3851         (cris_expand_pic_call_address): Update.
3852         (cris_asm_output_symbol_ref): Update.
3853         (cris_asm_output_label_ref): Update.
3854         * config/cris/cris.md Update.
3855         * config/iq2000/iq2000.c (compute_frame_size): Update.
3856         (iq2000_expand_epilogue): Update.
3857         * config/mt/mt.h (save_direction): Update.
3858         * config/mn10300/mn10300.c (mn10300_function_value): Update.
3859         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
3860         (ia64_secondary_reload_class): Update.
3861         * config/m68k/m68k.c (m68k_save_reg): Update.
3862         (m68k_expand_prologue): Update.
3863         (m68k_expand_epilogue): Update.
3864         (legitimize_pic_address): Update.
3865         * config/rs6000/rs6000.c (rs6000_got_register): Update.
3866         (first_reg_to_save): Update.
3867         (first_altivec_reg_to_save): Update.
3868         (compute_vrsave_mask): Update.
3869         (compute_save_world_info): Update.
3870         (rs6000_stack_info): Update.
3871         (spe_func_has_64bit_regs_p): Update.
3872         (rs6000_ra_ever_killed): Update.
3873         (rs6000_emit_eh_reg_restore): Update.
3874         (rs6000_emit_allocate_stack): Update.
3875         (rs6000_emit_prologue): Update.
3876         (rs6000_emit_epilogue): Update.
3877         (rs6000_output_function_epilogue): Update.
3878         (output_profile_hook): Update.
3879         (rs6000_elf_declare_function_name): Update.
3880         * config/rs6000/rs6000.h (rs6000_args): Update.
3881         * config/rs6000/rs6000.md: Update.
3882         * config/mcore/mcore.c (mcore_expand_prolog): Update.
3883         * config/arc/arc.c (arc_output_function_epilogue): Update.
3884         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
3885         * config/darwin.c (machopic_function_base_name): Update.
3886         * config/score/score3.c (score3_compute_frame_size): Update.
3887         (rpush): Update.
3888         (rpop): Update.
3889         (score3_epilogue): Update.
3890         * config/score/score7.c (score7_compute_frame_size): Update.
3891         (score7_prologue): Update.
3892         (score7_epilogue): Update.
3893         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
3894         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
3895         * config/arm/arm.c (use_return_insn): Update.
3896         (require_pic_register): Update.
3897         (arm_load_pic_register): Update.
3898         (arm_compute_save_reg0_reg12_mask): Update.
3899         (arm_compute_save_reg_mask): Update.
3900         (thumb1_compute_save_reg_mask): Update.
3901         (output_return_instruction): Update.
3902         (arm_output_function_prologue): Update.
3903         (arm_output_epilogue): Update.
3904         (arm_get_frame_offsets): Update.
3905         (arm_expand_prologue): Update.
3906         (thumb_pushpop): Update.
3907         (thumb_exit): Update.
3908         (thumb1_expand_prologue): Update.
3909         (thumb1_expand_epilogue): Update.
3910         (arm_unwind_emit): Update.
3911         (arm_output_fn_unwind): Update.
3912         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
3913         * config/arm/arm.md: Update.
3914         * config/pa/pa.md: Update.
3915         * config/pa/pa.c (legitimize_pic_address): Update.
3916         (compute_frame_size): Update.
3917         (hppa_expand_prologue): Update.
3918         (hppa_expand_epilogue): Update.
3919         (borx_reg_operand): Update.
3920         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
3921         (HARD_REGNO_RENAME_OK): Update.
3922         * config/mips/mips.c (mips_global_pointer): Update.
3923         (mips_save_reg_p): Update.
3924         (mips_compute_frame_info): Update.
3925         (mips_frame_pointer_required): Update.
3926         (mips_expand_prologue): Update.
3927         (mips_expand_epilogue): Update.
3928         (mips_can_use_return_insn): Update.
3929         (mips_reorg_process_insns): Update.
3930         * config/v850/v850.c (compute_register_save_size): Update.
3931         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
3932         * config/mmix/mmix.c (along): Update.
3933         (mmix_expand_epilogue): Update.
3934         * config/bfin/bfin.c (legitimize_pic_address): Update.
3935         (must_save_p): Update.
3936         (stack_frame_needed_p): Update.
3937         (add_to_reg): Update.
3938         (bfin_expand_prologue): Update.
3939         * stmt.c (expand_asm_operands): Update.
3940         * reload1.c (reload): Update.
3941         (init_elim_table): Update.
3942
3943 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
3944         
3945         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
3946         
3947 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
3948
3949         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
3950         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
3951         (mov<mode>): Removed.
3952         (*movv4sf_internal): Likewise.
3953         (*movv2df_internal): Likewise.
3954
3955 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
3956
3957         * config.gcc (crx-*-elf): Remove deprecation.
3958
3959 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
3960
3961         * config/i386/cygming-crtend.c (register_frame_ctor): Register
3962         __gcc_deregister_frame with atexit.
3963         (deregister_frame_dtor): Remove.
3964
3965 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
3966             Nathan Sidwell  <nathan@codesourcery.com>
3967
3968         * config/rs6000/rs6000.opt (mspe): Remove Var property.
3969         (misel): Likewise.
3970         * config/rs6000/rs6000.h (rs6000_spe): Declare.
3971         (rs6000_isel): Likewise.
3972         * config/rs6000/rs6000.c (rs6000_spe): New variable.
3973         (rs6000_isel): New variable.
3974         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
3975
3976 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
3977
3978         PR c++/35758
3979         * c-common.c (handle_vector_size_attribute): Call
3980         lang_hooks.types.reconstruct_complex_type instead of
3981         reconstruct_complex_type.
3982         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
3983         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
3984         * langhooks.h (struct lang_hooks_for_types): Add
3985         reconstruct_complex_type hook.
3986         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
3987         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
3988
3989 2008-04-24  Richard Guenther  <rguenther@suse.de>
3990
3991         * c-common.h (check_builtin_function_arguments): Declare.
3992         * c-common.c (validate_nargs): New function.
3993         (check_builtin_function_arguments): Likewise.
3994         * c-typeck.c (build_function_call): Call
3995         check_builtin_function_arguments.
3996         * builtins.c (fold_builtin_classify): Remove error reporting code.
3997         (fold_builtin_unordered_cmp): Likewise.
3998         (fold_builtin_1): Likewise.
3999         (fold_builtin_n): Likewise.
4000
4001 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
4002
4003         PR tree-optimization/36008
4004         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
4005         the original op1, rather than delta by step.
4006
4007 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
4008             Sebastian Pop  <sebastian.pop@amd.com>
4009
4010         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
4011         eliminate_local_variables_stmt, eliminate_local_variables,
4012         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
4013         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
4014         of code delimited by two edges in the CFG.
4015         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
4016         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
4017         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
4018         the case of parallelisation of reductions.
4019         (expr_invariant_in_region_p): New.
4020
4021         * tree-flow.h (gather_blocks_in_sese_region): Declared.
4022         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
4023
4024 2008-04-24  Ira Rosen  <irar@il.ibm.com>
4025             Richard Guenther  <rguenther@suse.de>
4026
4027         PR tree-optimization/36034
4028         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
4029         incapable of dealing with loads with gaps.
4030
4031 2008-04-24  Rafael Espindola  <espindola@google.com>
4032
4033         * tree-flow.h (vrp_evaluate_conditional): Change signature.
4034         * tree-ssa-propagate.c (fold_predicate_in): Update call to
4035         vrp_evaluate_conditional.
4036         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
4037         (vrp_evaluate_conditional): Split the cond argument.
4038         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
4039         (simplify_stmt_for_jump_threading): Update call to
4040         vrp_evaluate_conditional.
4041
4042 2008-04-24  Ira Rosen  <irar@il.ibm.com>
4043
4044         PR tree-optimization/35982
4045         * tree-vect-analyze.c (vect_check_interleaving): Check that the
4046         interleaved data-refs are of the same type.
4047
4048 2008-04-24  Danny Smith  <dannysmith@users.net>
4049
4050         * c-format.c (check_format_info_main): Use strncmp rather than a
4051         magic prefix to handle multichar length specs.
4052         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
4053         Don't prefix "I64" and "I32" with '\0'.
4054
4055 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
4056
4057         PR target/36015
4058         * config/i386/i386.c (init_cumulative_args): Don't pass anything
4059         in registers for -m32 only if stdarg_p (fntype).
4060
4061 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
4062
4063         PR rtl-optimization/36006
4064         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
4065         temp to op0 in order to avoid invalid rtx sharing.
4066
4067 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
4068
4069         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
4070         check TREE_INVARIANT.
4071         * tree-gimple.c (is_gimple_address): New.
4072         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
4073         * tree-gimple.h (is_gimple_address): New.
4074         * tree.h (decl_address_invariant_p): New.
4075         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
4076         (build_string): Likewise.
4077         (decl_address_invariant_p): New, from is_gimple_invariant_address.
4078         (tree_invariant_p_1): Likewise.
4079         (save_expr): Use it.
4080         (tree_invariant_p): New.
4081         (skip_simple_arithmetic): Use it.
4082         (stabilize_reference_1): Use it.
4083         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
4084         simplify.
4085         (build1_stat): Drop code to compute TREE_INVARIANT.
4086         (build2_stat): Drop code to compute TREE_INVARIANT.
4087         (build3_stat): Drop code to compute TREE_INVARIANT.
4088         (build4_stat): Drop code to compute TREE_INVARIANT.
4089         (build5_stat): Drop code to compute TREE_INVARIANT.
4090         (build7_stat): Drop code to compute TREE_INVARIANT.
4091         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
4092         * tree.h (struct tree_base): Remove invariant_flag.
4093         (TREE_INVARIANT): Remove.
4094         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
4095         (fold_builtin_expect): Check TREE_CONSTANT.
4096         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
4097         * c-tree.h (c_expr_to_decl): Drop third parameter.
4098         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
4099         (build_c_cast): Don't set TREE_INVARIANT.
4100         (pop_init_level): Don't set TREE_INVARIANT.
4101         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
4102         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
4103         TREE_CONSTANT.
4104         (gimplify_init_constructor): Don't set TREE_INVARIANT.
4105         (gimplify_addr_expr): Adjust comment.
4106         * tree-mudflap.c (mf_build_string):
4107         * print-tree.c (print_node): Don't print TREE_INVARIANT.
4108         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
4109         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
4110         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
4111         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
4112         * langhooks.h (struct lang_hooks): Drop third parameter from
4113         expr_to_decl.
4114
4115 2008-04-23  Richard Guenther  <rguenther@suse.de>
4116
4117         PR tree-optimization/27799
4118         PR tree-optimization/32921
4119         PR tree-optimization/32624
4120         * tree-ssa-structalias.c (merge_smts_into): Only merge the
4121         SMTs aliases and the tag itself into the solution.
4122         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
4123         merge the points-to solution back into the SMT aliases.
4124         (may_alias_p): Use alias_set_subset_of instead of
4125         aliases_conflict_p.  A pointer which points to
4126         memory with alias set zero may access any variable.
4127
4128 2008-04-23  Richard Guenther  <rguenther@suse.de>
4129
4130         * alias.c (alias_set_subset_of): Correctly handle asking
4131         if zero is a subset of an alias set with zero child.
4132         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
4133         (compute_flow_insensitive_aliasing): Correctly walk all
4134         pointers.  Do not unnecessarily union sets.
4135
4136 2008-04-23  Richard Guenther  <rguenther@suse.de>
4137
4138         PR middle-end/36021
4139         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
4140
4141 2008-04-22  Tomas Bily  <tbily@suse.cz>
4142
4143         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
4144         unreachable case.
4145         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
4146         NON_LVALUE_EXPR.
4147         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
4148         * tree-ssa-structalias.c (get_constraint_for): Likewise.
4149         * tree-inline.c (estimate_num_insns_1): Likewise.
4150         * varasm.c (const_hash_1, compare_constant, copy_constant)
4151         (compute_reloc_for_constant, output_addressed_constants): Likewise.
4152         * emit-rtl.c (component_ref_for_mem_expr)
4153         (set_mem_attributes_minus_bitpos): Likewise.
4154         * expr.c (highest_pow2_factor, expand_expr_real_1, )
4155         (is_aligning_offset): Likewise.
4156         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
4157         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
4158         * dojump.c (do_jump): Likewise.
4159         * builtins.c (get_pointer_alignment, get_memory_rtx)
4160         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
4161         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
4162
4163 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
4164
4165         PR rtl-optimization/36017
4166         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
4167         expanding the library call.
4168
4169 2008-04-22  Ian Lance Taylor  <iant@google.com>
4170
4171         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
4172         than size_in_bytes.
4173
4174 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
4175
4176         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
4177         of LR/CTR moves for Power6.
4178
4179 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
4180
4181         PR middle-end/36003
4182         * passes.c (init_optimization_passes): Remove
4183         pass_fast_rtl_byte_dce.
4184         
4185 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
4186
4187         PR target/29096
4188         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
4189         builtin functions to generate faster code.
4190         (_mm_cvtpu16_ps): Ditto.
4191         (_mm_cvtpi32x2_ps): Ditto.
4192
4193 2008-04-22  Nick Clifton  <nickc@redhat.com>
4194
4195         * common.opt (ftree-loop-distribution): Add Optimization
4196         attribute.
4197
4198         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
4199         (frv_expand_builtin_va_start): Likewise.
4200
4201         * config/arm/arm.c (thumb_find_work_register): Fix location of
4202         argument register count.
4203
4204 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
4205
4206         Support scheduling for ColdFire V1 and V3 microarchitecture.
4207         Improve scheduling of multiplication instructions.
4208
4209         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
4210         (mac): New instruction attribute.
4211         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
4212         (m68k_sched_mac): New variable.
4213         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
4214         Handle cfv1 and cfv3.
4215         (max_insn_size): New static variable.
4216         (struct _sched_ib): New type.
4217         (sched_ib): New static variable.
4218         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
4219         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
4220         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
4221         Update.
4222         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
4223         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
4224         new variables.  Update.
4225         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
4226         Add modeling of cfv3 instruction buffer.  Update.
4227         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
4228         * config/m68k/m68k.h (TUNE_CFV3): New macro.
4229         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
4230         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
4231         a particular reservation applies to.
4232         (type2): Reorganize attribute values.  Rename alu to alu_reg,
4233         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
4234         to mul_l and mul_w.
4235         (cf_ib_*): Simplify description of instruction buffer.
4236         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
4237         (cf_mem): Split into cf_mem1 and cf_mem2.
4238         (cf_v2_move_??): Rename to cfv12_alu_??.
4239         (cf_v2_move_l_??): Rename to cfv12_omove_??.
4240         (cf_v2_mul_??): Remove reservations.
4241         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
4242         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
4243         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
4244         appropriate place.
4245         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
4246         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
4247         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
4248         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
4249         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
4250         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
4251         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
4252         expansions of the above reservations for instructions of sizes
4253         1, 2 and 3 words.
4254
4255 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
4256
4257         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
4258
4259 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
4260
4261         * coverage.c: Include tree-pass.h.
4262         (coverage_counter_alloc): Print da_file_name to the dump file.
4263
4264 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
4265
4266         * sbitmap.c (sbitmap_range_empty_p): New function.
4267         * sbitmap.h (sbitmap_range_empty_p): New function.
4268         * bitmap.h: Now includes obstack.h.
4269
4270 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
4271             Kenneth Zadeck  <zadeck@naturalbridge.com>
4272
4273         * dbgcnt.def (ra_byte_scan): Added.
4274         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
4275         when the last hit happens for a counter.  
4276         * timevar.def (TV_DF_BYTE_LR): New variable.
4277         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
4278         * passes.c (pass_fast_rtl_byte_dce): New pass.
4279         * fwprop.c (update_df): Added mode to call df_ref_create.
4280         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
4281         DF_REF_EXTRACT_OFFSET.
4282         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
4283         DF_BYTE_LR_OUT, df_byte_lr): New macro.
4284         (df_mm): New enum.
4285         (df_ref_extract): Added mode field.
4286         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
4287         DF_REF_EXTRACT_OFFSET.
4288         (DF_REF_EXTRACT_MODE): New macro.
4289         (df_byte_lr_bb_info): New structure.
4290         (df_print_byte_regset, df_compute_accessed_bytes, 
4291         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
4292         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
4293         df_byte_lr_simulate_uses,
4294         df_byte_lr_simulate_artificial_refs_at_top,
4295         df_byte_lr_simulate_artificial_refs_at_end,
4296         df_compute_accessed_bytes): New function.
4297         (df_ref_create): Add parameter.
4298         (df_byte_lr_get_bb_info): New inline function.
4299         * df-scan.c (df_ref_record, df_uses_record,
4300         df_ref_create_structure): Added mode parameter.
4301         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
4302         df_defs_record, df_uses_record, df_get_conditional_uses,
4303         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
4304         df_entry_block_defs_collect, df_exit_block_uses_collect):
4305         Added mode parameter to calls to df_ref_record, df_uses_record,
4306         df_ref_create_structure.
4307         (df_ref_equal_p, df_ref_compare): Added test for modes.
4308         (df_ref_create_structure): Added code to set mode.  Renamed
4309         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
4310         DF_REF_EXTRACT_OFFSET.
4311         * df-core.c (df_print_byte_regset): New function.
4312         * df-byte-scan.c: New file.
4313         * df-problems.c (df_rd_transfer_function): Removed unnecessary
4314         calls to BITMAP_FREE.  
4315         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
4316         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
4317         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
4318         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
4319         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
4320         df_byte_lr_local_compute, df_byte_lr_init,
4321         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
4322         df_byte_lr_transfer_function, df_byte_lr_free, 
4323         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
4324         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
4325         df_byte_lr_simulate_uses,
4326         df_byte_lr_simulate_artificial_refs_at_top,
4327         df_byte_lr_simulate_artificial_refs_at_end): New function.
4328         * dce.c (byte_dce_process_block): New function.
4329         (dce_process_block): au is now passed in rather than computed
4330         locally.  Changed loops that look at artificial defs to not look
4331         for conditional or partial ones, because there never are any.  
4332         (fast_dce): Now is able to drive byte_dce_process_block or 
4333         dce_process_block depending on the kind of dce being done.
4334         (rest_of_handle_fast_dce): Add parameter to fast_dce.
4335         (rest_of_handle_fast_byte_dce): New function.
4336         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
4337         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
4338
4339 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
4340
4341         PR fortran/35019
4342         * gcc.h: Added fortran options that take arguments to
4343         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
4344         macros.
4345
4346 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
4347
4348         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
4349         scalarization if on the LHS and not a full access.
4350
4351 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4352
4353         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
4354
4355 2008-04-18  Rafael Espindola  <espindola@google.com>
4356
4357         * tree-vrp.c (find_case_label_index): Fix the binary search.
4358         (find_case_label_range): New.
4359         (vrp_visit_switch_stmt): Use find_case_label_range.
4360         (simplify_switch_using_ranges): Use find_case_label_range.
4361
4362 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
4363
4364         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
4365         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
4366
4367 2008-04-18  Tom Tromey  <tromey@redhat.com>
4368
4369         PR libcpp/15500:
4370         * doc/cpp.texi (Implementation-defined behavior): Mention
4371         -finput-charset.
4372
4373 2008-04-18  Ian Lance Taylor  <iant@google.com>
4374
4375         * fold-const.c (pointer_may_wrap_p): New static function.
4376         (fold_comparison): Add another test for pointer overflow.  Use
4377         pointer_may_wrap_p to disable some false positives.
4378
4379 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
4380           
4381         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
4382         (fname_as_string): Match updated cpp_interpret_string prototype.
4383         (fix_string_type): Support char16_t* and char32_t*.
4384         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
4385         derivative) nodes.  Register as builtin if C++0x.
4386         (c_parse_error): Support CPP_CHAR{16,32}.
4387         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
4388         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
4389         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
4390         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
4391         CTI_CHAR32_ARRAY_TYPE>: New elements.
4392         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
4393         char32_type_node, signed_char32_type_node, char16_array_type_node,
4394         char32_array_type_node): New defines.
4395         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
4396         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
4397         (lex_string): Support CPP_STRING{16,32}, match updated
4398         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
4399         (lex_charconst): Support CPP_CHAR{16,32}.
4400         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
4401         and CPP_STRING{16,32}.
4402
4403 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
4404
4405         PR bootstrap/35457
4406         * aclocal.m4: Regenerate.
4407         * configure: Regenerate.
4408
4409 2008-04-18  Jan Hubicka  <jh@suse.cz>
4410
4411         * except.c (dw2_size_of_call_site_table,
4412         sjlj_size_of_call_site_table): Use vector API for call_site_record.
4413
4414         * cgraphbuild.c (build_cgraph_edges): Update.
4415         * tree-pass.h: Update comment.
4416         * final.c (leaf_function_p): Update.
4417         (leaf_renumber_regs): Update.
4418         (rest_of_clean_state): Update.
4419         * omp-low.c (expand_omp_parallel): Update.
4420         * ipa-reference.c (analyze_function): Update.
4421         * reorg.c (find_end_label): Update.
4422         (optimize_skip): Update.
4423         (fill_simple_delay_slots): Update.
4424         (fill_simple_delay_slots): Update.
4425         (make_return_insns): Update.
4426         (dbr_schedule): Update.
4427         * gimple-low.c (record_vars_into): Update.
4428         * cfgbuild.c (make_edges): Update.
4429         * function.c (assign_stack_local): Update.
4430         (assign_parm_adjust_stack_rtl): Update.
4431         (locate_and_pad_parm): Update.
4432         (allocate_struct_function): Do not initialize stack_alignment_needed
4433         and preferred_stack_boundary here.
4434         (stack_protect_prologue): Update.
4435         (stack_protect_epilogue): Update.
4436         (expand_function_start): Initialize stack_alignment_needed,
4437         preferred_stack_boundary and max_jumptable_ents.
4438         (expand_function_end): Update.
4439         (free_after_compilation): Do not NULLify epilogue_delay_list.
4440         * function.h (struct rtl_data): Add stack_protect_guard,
4441         stack_alignment_needed,
4442         preferred_stack_boundary, epilogue_delay_list.
4443         (struct function): Remove value_histograms, stack_alignment_needed,
4444         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
4445         last_label_uid,
4446         unexpanded_var_list, stack_protect_guard.
4447         (current_function_epilogue_delay_list): Remove.
4448         * ipa-type-escape.c (analyze_function): Update.
4449         * gimplify.c (pop_gimplify_context): Update comment.
4450         * calls.c (expand_call): Update.
4451         (emit_library_call_value_1): Update.
4452         * except.c (set_nothrow_function_flags): Update.
4453         * cfgexpand.c (get_decl_align_unit): Update.
4454         (create_stack_guard): Update.
4455         (estimated_stack_frame_size): Update.
4456         (expand_used_vars): Update.
4457         (tree_expand_cfg): Free histogram earliers, init expansion variables.
4458         * explow.c (allocate_dynamic_stack_space): Update.
4459         * tree-ssa-live.c (remove_unused_locals): Update.
4460         * varasm.c (mark_constant_pool): Update.
4461         * tree-inline.c (remap_decls): Update.
4462         (initialize_cfun): Update.
4463         (declare_return_variable): Update.
4464         (inline_forbidden_p): Update.
4465         (expand_call_inline): Update.
4466         (declare_inline_vars): Update.
4467         (tree_function_versioning): Update.
4468         * tree-flow.h (value_histograms): New.
4469         (VALUE_HISTOGRAMS): New macro.
4470         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
4471         last_label_uid.
4472         * tree-cfg.c (set_bb_for_stmt): Update.
4473         (replace_by_duplicate_decl): Update.
4474         (move_block_to_fn): Update.
4475         (new_label_mapper): Update.
4476         (dump_function_to_file): Update.
4477         * ipa-struct-reorg.c (build_data_structure): Update.
4478         * cfgrtl.c (print_rtl_with_bb): Update.
4479         * reload1.c (reload): Update.
4480         (reload): Update.
4481         * config/i386/i386.c (setup_incoming_varargs_64,
4482         ix86_compute_frame_layout): Update.
4483         * config/arc/arc.c (arc_output_function_epilogue): Update.
4484
4485 2008-04-18  Marius Strobl <marius@FreeBSD.org>
4486
4487         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
4488         for FreeBSD as well.
4489         * gthr-posix95.h: Likewise.
4490
4491 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
4492
4493         PR rtl-optimization/35838
4494         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
4495         out the byte offset of the first subreg.
4496
4497 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
4498
4499         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
4500         to split_ti instead of three separate calls with single member arrays.
4501         (subti3 splitter): Ditto.
4502         (adddi3 splitter): Ditto with split_di.
4503         (subdi3 splitter): Ditto.
4504         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
4505         two separate calls with single member arrays.  Swap match_dup
4506         operands 1 and 2 to better fit into the array.
4507         (negdi2 splitter): Ditto with split_di.
4508         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
4509         two separate calls with single member arrays.  Swap match_dup operands
4510         6 and 7 to better fit into the array.
4511
4512 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
4513
4514         * config/i386/i386.c (sse_builtin_type): New.
4515         (bdesc_sse_args): Likewise.
4516         (bdesc_sse_3arg): Removed.
4517         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
4518         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
4519         IX86_BUILTIN_ROUNDPS.
4520         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
4521         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
4522         IX86_BUILTIN_ROUNDPS.
4523         (ix86_expand_sse_4_operands_builtin): Removed.
4524         (ix86_expand_sse_operands_builtin): New.
4525         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
4526         and CODE_FOR_sse4_1_roundps.
4527         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
4528         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
4529
4530 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
4531
4532         PR target/35907
4533         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
4534         regs before frame pop when needed.  If use_backchain_to_restore_sp
4535         then load backchain into a temp reg to restore vr and vrsave.  Add
4536         code to restore vr after frame pop if possible.
4537
4538 2008-04-17  Richard Guenther  <rguenther@suse.de>
4539
4540         * tree-vn.c (expressions_equal_p): Do not check type
4541         equality or compatibility before calling operand_equal_p.
4542         * fold-const.c (operand_equal_p): Check equivalence of
4543         integer constants before bailing out due to signedness or
4544         precision differences.
4545         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
4546         spurious differences in type qualification.  Ignore types
4547         for COMPONENT_REFs at all.
4548
4549 2008-04-17  Christian Bruel  <christian.bruel@st.com>
4550
4551         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
4552         msw_skip comparison.
4553         
4554 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
4555
4556         PR c/35739
4557         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
4558         reg type.
4559
4560         PR tree-optimization/35899
4561         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
4562         rather than TREE_OPERAND.
4563
4564 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
4565
4566         PR target/35944
4567         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
4568         temporary registers.  Change operand predicate to general_operand.
4569         (remainderxf3): Ditto.
4570
4571 2008-04-16  Richard Guenther  <rguenther@suse.de>
4572
4573         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
4574         * tree-affine.c (aff_combination_expand): Look through some
4575         conversions.
4576
4577 2008-04-15  Doug Kwan  <dougkwan@google.com>
4578
4579         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
4580         for hex printing.
4581         * tree-pretty-print.c (dump_generic_node): Ditto.
4582         * final.c (output_addr_const): Ditto.
4583         * dwarf2out.c (output_cfi): Ditto.
4584         * c-pretty-print.c (pp_c_integer_constant): Ditto.
4585         * print-rtl.c (print_rtx): Ditto.
4586         * print-tree.c (print_node_brief, print_node): Ditto.
4587         * c-common.c (match_case_to_enum_1): Ditto.
4588         * sched-vis.c (print_value): Ditto.
4589         * config/i386/i386.c (print_operand): Cast to long unsigned int
4590         for hex printing.
4591
4592 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
4593         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
4594         MS Windows VirtualProtect function.
4595
4596 2008-04-15  Jan Hubicka  <jh@suse.cz>
4597
4598         * gengtype.c (write_root): Param_is argument is OK.
4599         * expr.c (expand_expr_real_1): Update call of get_exception_*.
4600         * function.h: Include varray.h
4601         (rtl_eh): New stucture based on except.c one.
4602         (call_site_record): New forward declaration and vector type.
4603         * calls.c (emit_call_1): Do not call
4604         note_current_region_may_contain_throw.
4605         * except.c (eh_status): Remove cur_region, try_region since they are
4606         unused.
4607         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
4608         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
4609         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
4610         Remove call_site_data_used, call_site_data_size.
4611         Turn call_site_record into vector in function.h.
4612         (note_current_region_may_contain_throw): Remove.
4613         (get_exception_pointer, get_exception_filter): Do not take struct
4614         function argument; update.
4615         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
4616         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
4617         build_post_landing_pads, dw2_build_landing_pads,
4618         sjlj_assign_call_site_values, sjlj_mark_call_sites,
4619         sjlj_emit_function_enter, sjlj_emit_function_enter, 
4620         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
4621         sjlj_build_landing_pads, finish_eh_generation,
4622         remove_exception_handler_label, remove_eh_handler,
4623         maybe_remove_eh_handler, add_reachable_handler,
4624         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
4625         add_action_record, collect_one_action_chain, add_call_site,
4626         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
4627         sjlj_output_call_site_table, output_function_exception_table,
4628         * except.h (note_current_region_may_contain_throw): Remove
4629         (get_exception_pointer, get_exception_filter): Do not take struct
4630         function argument.
4631         * Makefile.in (GTFILES): Put varargs before struct function.
4632
4633 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
4634
4635         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
4636         punt for STRING_CST.
4637         (get_constraint_for): Deal with STRING_CST here instead.
4638
4639 2008-04-15  Richard Guenther  <rguenther@suse.de>
4640
4641         * tree-ssa-propagate.c (substitute_and_fold): Substitute
4642         statements in a basic-block with a backward walk.  Do not
4643         substitute into dead statements but instead remove those.
4644
4645 2008-04-15  Richard Guenther  <rguenther@suse.de>
4646
4647         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
4648         to zero, thus disable creation of SFTs.
4649
4650 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
4651
4652         * tree-predcom.c (suitable_reference_p): Return false if the
4653         reference can throw.
4654
4655 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
4656
4657         PR c/35751
4658         * c-decl.c (finish_decl): If extern or static var has variable
4659         size, set TREE_TYPE (decl) to error_mark_node.
4660
4661 2008-04-15  Rafael Espindola  <espindola@google.com>
4662
4663         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
4664         variable arg1.
4665
4666 2008-04-15  Richard Guenther  <rguenther@suse.de>
4667
4668         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
4669         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
4670         (visit_reference_op_load): Do walk vuse-vdef chains on
4671         vn_reference_lookup.
4672         (visit_reference_op_store): But do not here.
4673         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
4674         vn_reference_lookup.
4675         (vn_lookup_with_vuses): But do so here.
4676
4677 2008-04-14  Ian Lance Taylor  <iant@google.com>
4678
4679         * fold-const.c (fold_overflow_warning): Remove assertion.
4680
4681 2008-04-15  Ben Elliston  <bje@au.ibm.com>
4682
4683         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
4684         temp1 local variables.
4685
4686 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
4687
4688         PR target/35661
4689         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
4690         ".text.unlikely" section as executable.
4691
4692 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
4693
4694         * config/ia64/ia64.c (rtx_needs_barrier): Handle
4695         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
4696         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
4697         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
4698         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
4699         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
4700         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
4701
4702 2008-04-14  Ian Lance Taylor  <iant@google.com>
4703
4704         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
4705         * fold-const.c (fold_comparison): If appropriate, test
4706         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
4707         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
4708         reassociating a pointer type.
4709         * doc/invoke.texi (Optimize Options): Document that
4710         -fstrict-overflow applies to pointer wraparound.
4711
4712 2008-04-13  Jan Hubicka  <jh@suse.cz>
4713
4714         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
4715
4716 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
4717
4718         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
4719         we are going to "save the world".
4720
4721 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
4722
4723         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
4724         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
4725         operand 0 constraint, not "=".
4726
4727 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
4728
4729         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
4730
4731 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
4732
4733         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
4734         of size of positions_needed * CHAR_BIT.
4735
4736 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
4737
4738         PR middle-end/35897
4739         * dse.c (store_info): Change positions_needed to unsigned
4740         HOST_WIDE_INT.
4741         (lowpart_bitmask): New.
4742         (record_store): Cast to unsigned HOST_WIDE_INT for
4743         positions_needed.  Assert width <= size of positions_needed *
4744         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
4745         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
4746         lowpart_bitmask to set mask.
4747
4748 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
4749
4750         * config/bfin/constraints.md: New file.
4751         * config/bfin/bfin.md: Include it.
4752         (adddi3): Use satisfies_constraint functions instead of the old macros.
4753         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
4754         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
4755         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
4756         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
4757         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
4758         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
4759         EXTRA_CONSTRAINT): Delete.
4760         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
4761         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
4762         of the old macros.
4763         * config/bfin/bfin.c: Include "tm-constrs.h".
4764         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
4765         Use satisfies_constraint functions instead of the old macros.
4766         * doc/md.texi (Blackfin Constraints): Update file name reference.
4767
4768 2008-04-11  Richard Guenther  <rguenther@suse.de>
4769
4770         PR tree-optimization/35869
4771         * tree-vrp.c (execute_vrp): Move switch statement update after
4772         jump threading.  Schedule another cfg cleanup run.
4773
4774 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
4775
4776         PR c/35744
4777         * attribs.c (decl_attributes): Return early on errorneous node.
4778
4779 2008-04-10  Oleg Ryjkov  <olegr@google.com>
4780
4781         * tree.h (struct tree_base): Added a new flag default_def_flag.
4782         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
4783
4784 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
4785
4786         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
4787
4788 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4789
4790         PR target/35768
4791         * pa.md: Define mode iterator P.  Define mode attribute dwc.
4792         (dcacheflush): Update pattern to use iterator P and attribute dwc.
4793         (icacheflush): Likewise.
4794         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
4795         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
4796
4797 2008-04-11  Ben Elliston  <bje@au.ibm.com>
4798
4799         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
4800
4801 2008-04-10  Rafael Espindola  <espindola@google.com>
4802
4803         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
4804         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
4805         (extract_range_from_expr): The same.
4806
4807 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
4808
4809         * config/mips/mips.md (GPR2): New mode iterator.
4810         (seq): Add comment.
4811         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
4812         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
4813         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
4814         Rewrite these to take two modes, the mode of comparison and the
4815         mode of the destination.
4816         * config/mips/mips.c (mips_expand_scc): Instead of having
4817         paradoxical subreg as destination, expand "narrowing" scc if mode
4818         of comparison is SI and target is requested in DI mode.
4819         (mips_emit_int_order_test): Update comment.  Make mode of
4820         comparison match CMP0 rather than TARGET.  When creating inverse
4821         target use mode of TARGET.
4822
4823 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
4824
4825         * gcov-dump.c (tag_summary): Only print summaries for the first
4826         GCOV_COUNTERS_SUMMABLE counters.
4827
4828 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
4829
4830         * config/i386/i386.md (absneg): New code iterator.
4831         (absnegprefix): New code attribute.
4832         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
4833         patterns using absneg code iterator.
4834         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
4835         using absneg code iterator.
4836         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
4837         *neg<mode>2 patterns using absneg code iterator.
4838         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
4839         *negextendsfdf2 patterns using absneg code iterator.
4840         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
4841         *negextendsfxf2 patterns using absneg code iterator.
4842         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
4843         *negextendsfdf2 patterns using absneg code iterator.
4844         * config/i386/sse.md (<code><mode>2): Macroize expander from
4845         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
4846
4847 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
4848
4849         * config/s390/s390.h: Remove the remains of the recent search
4850         & replace action of current_function_outgoing_args_size.
4851
4852 2008-04-10  Ira Rosen  <irar@il.ibm.com>
4853
4854         PR tree-optimization/35821
4855         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
4856         NEW_STMT_LIST is not NULL.
4857
4858 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
4859
4860         PR libstdc++/35597
4861         * toplev.c (process_options): Remove -ffunction-sections debugging
4862         warning.
4863
4864 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
4865
4866         PR middle-end/PR28690
4867         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
4868         than gen_rtx_fmt_ee to perform more canonicalizations.
4869
4870 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4871
4872         PR driver/35665
4873         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
4874
4875 2008-04-09  Richard Guenther  <rguenther@suse.de>
4876
4877         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
4878         (dump_function_to_file): Dump function arguments with types.
4879
4880 2008-04-08  Richard Guenther  <rguenther@suse.de>
4881
4882         * fold-const.c (fold_widened_comparison): Do not allow
4883         sign-changes that change the result.
4884
4885 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
4886
4887         PR target/35839
4888         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
4889         kinds of indirect references.
4890
4891 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
4892
4893         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
4894         GNU Fortran language string.
4895
4896 2008-04-08  Rafael Espindola  <espindola@google.com>
4897
4898         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
4899         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
4900         * tree.h (tree_call_nonnegative_warnv_p): New.
4901
4902 2008-04-08  Jan Hubicka  <jh@suse.cz>
4903
4904         * function.c (free_after_compilation): Clear out regno_reg_rtx
4905         pointer.
4906
4907 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
4908
4909         Revert
4910         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
4911
4912         PR middle-end/PR28690
4913         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
4914         same precedence as REG_POINTER and MEM_POINTER operands.
4915
4916 2008-04-08  Richard Guenther  <rguenther@suse.de>
4917
4918         PR middle-end/35834
4919         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
4920         for adding index to base.
4921
4922 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
4923
4924         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
4925         (MINGW_ENABLE_EXECUTE_STACK): New.
4926         (IN_LIBGCC2): For libgcc include windows.h file for
4927         function declarations.
4928
4929 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
4930
4931         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
4932         and tem2 if tem1 is not a REG or MULT.
4933
4934 2008-04-08  Jan Hubicka  <jh@suse.cz>
4935
4936         * function.h (incomming_args): Break out of struct function.
4937         (function_subsections): Break out of struct function.
4938         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
4939         return_rtx and hard_reg_initial_vals from struct function.
4940         Kill inl_max_label_num.
4941         (current_function_pops_args, current_function_args_info,
4942         current_function_args_size, current_function_args_size,
4943         current_function_pretend_args_size,
4944         current_function_outgoing_args_size,
4945         current_function_internal_arg_pointer, current_function_return_rtx):
4946         Kill compatibility accestor macros.
4947         * builtins.c (expand_builtin_apply_args_1): Update.
4948         (expand_builtin_next_arg): Update.
4949         * df-scan.c (df_get_call_refs): Update.
4950         * dbxout.c (dbxout_function_end): Update.
4951         * dwarf2out.c (dwarf2out_switch_text_section): Update.
4952         (output_line_info): Update.
4953         (secname_for_decl): Update.
4954         (dwarf2out_var_location): Update.
4955         * function.c (free_after_compilation): Update.
4956         (assign_parm_find_stack_rtl): Update.
4957         (assign_parms): Update.
4958         (expand_dummy_function_end): Update.
4959         (expand_function_end): Update.
4960         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
4961         (expand_call): Update.
4962         (emit_library_call_value_1): Update.
4963         (store_one_arg): Update.
4964         * varasm.c (initialize_cold_section_name): Update.
4965         (unlikely_text_section): Update.
4966         (unlikely_text_section_p): Update.
4967         (assemble_start_function): Update.
4968         (assemble_end_function): Update.
4969         (default_section_type_flags): Update.
4970         (switch_to_section): Update.
4971         * integrate.c (set_decl_abstract_flags): Update.
4972         (get_hard_reg_initial_val): Update.
4973         (has_hard_reg_initial_val): Update.
4974         (allocate_initial_values): Update.
4975         * resource.c (init_resource_info): Update.
4976         * config/alpha/alpha.c (NUM_ARGS): Update.
4977         (direct_return): Update.
4978         (alpha_va_start): Update.
4979         (alpha_sa_size): Update.
4980         (alpha_initial_elimination_offset): Update.
4981         (alpha_expand_prologue): Update.
4982         (alpha_start_function): Update.
4983         (alpha_expand_epilogue): Update.
4984         (unicosmk_initial_elimination_offset):
4985         * config/alpha/alpha.md (call expander): Update.
4986         * config/s390/s390.c (s390_register_info): Update.
4987         (s390_register_info): Update.
4988         (s390_frame_info): Update.
4989         (s390_initial_elimination_offset): Update.
4990         (s390_build_builtin_va_list): Update.
4991         (s390_va_start): Update.
4992         * config/spu/spu.c (direct_return): Update.
4993         (spu_expand_prologue): Update.
4994         (spu_initial_elimination_offset): Update.
4995         (spu_build_builtin_va_list): Update.
4996         (spu_va_start): Update.
4997         * config/sparc/sparc.c (sparc_init_modes): Update.
4998         (sparc_compute_frame_size): Update.
4999         (function_value): Update.
5000         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
5001         * config/i386/i386.md (return expander): Update.
5002         * config/i386/i386.c (ix86_va_start): Update.
5003         (ix86_can_use_return_insn_p): Update.
5004         (ix86_compute_frame_layout): Update.
5005         (ix86_expand_epilogue): Update.
5006         * config/sh/sh.c (output_stack_adjust): Update.
5007         (calc_live_regs): Update.
5008         (sh_expand_prologue): Update.
5009         (sh_builtin_saveregs): Update.
5010         (sh_va_start): Update.
5011         (initial_elimination_offset): Update.
5012         (sh_allocate_initial_value): Update.
5013         (sh_function_ok_for_sibcall): Update.
5014         (sh_get_pr_initial_val): Update.
5015         * config/sh/sh.md (return expander): Update.
5016         * config/avr/avr.c (frame_pointer_required_p): UPdate.
5017         * config/crx/crx.c (crx_compute_frame): UPdate.
5018         (crx_initial_elimination_offset): UPdate.
5019         * config/xtensa/xtensa.c (compute_frame_size): Update
5020         (xtensa_builtin_saveregs): Update.
5021         (xtensa_va_start): Update.
5022         (order_regs_for_local_alloc): Update.
5023         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
5024         (xstormy16_expand_builtin_va_start): Update.
5025         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
5026         * config/m68hc11/m68hc11.md (return expanders): Update.
5027         * config/m68hc11/m68hc11.c (expand_prologue): Update.
5028         (expand_epilogue): Update.
5029         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
5030         (cris_simple_epilogue): Update.
5031         (cris_expand_prologue): Update.
5032         (cris_expand_epilogue): Update.
5033         * config/iq2000/iq2000.c (iq2000_va_start): Update.
5034         (compute_frame_size): Update.
5035         * config/mt/mt.c (mt_compute_frame_size): Update.
5036         * config/mn10300/mn10300.c (expand_prologue): Update.
5037         (expand_epilogue): Update.
5038         (initial_offset): Update.
5039         (mn10300_builtin_saveregs):
5040         * config/mn10300/mn10300.md (return expander): Update.
5041         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
5042         (ia64_initial_elimination_offset): Update.
5043         (ia64_initial_elimination_offset): Update.
5044         (ia64_expand_prologue): Update.
5045         * config/m68k/m68k.md (return expander): Update.
5046         * config/rs6000/rs6000.c (rs6000_va_start): Update.
5047         (rs6000_stack_info): Update.
5048         * config/mcore/mcore.c (layout_mcore_frame): Update.
5049         (mcore_expand_prolog): Update.
5050         * config/arc/arc.c (arc_compute_frame_size): Update.
5051         * config/score/score3.c (score3_compute_frame_size): Update.
5052         * config/score/score7.c (score7_compute_frame_size): Update.
5053         * config/arm/arm.c (use_return_insn): Update.
5054         (thumb_find_work_register): Update.
5055         (arm_compute_save_reg_mask): Update.
5056         (arm_output_function_prologue): Update.
5057         (arm_output_epilogue): Update.
5058         (arm_size_return_regs): Update.
5059         (arm_get_frame_offsets): Update.
5060         (arm_expand_prologue): Update.
5061         (thumb_exit): Update.
5062         (thumb_unexpanded_epilogue): Update.
5063         (thumb1_output_function_prologue): Update.
5064         * config/pa/pa.md (return expander): Update.
5065         * config/pa/pa.c (compute_frame_size): Update.
5066         (hppa_builtin_saveregs): Update.
5067         * config/mips/mips.c (mips_va_start): Update.
5068         (mips16_build_function_stub): Update.
5069         (mips_compute_frame_info): Update.
5070         (mips_restore_gp): Update.
5071         (mips_output_function_prologue): Update.
5072         (mips_expand_prologue): Update.
5073         * config/v850/v850.c (compute_frame_size): Update.
5074         (expand_prologue): * config/mmix/mmix.c (along): update.
5075         (mmix_initial_elimination_offset): update.
5076         (mmix_reorg): update.
5077         (mmix_use_simple_return): update.
5078         (mmix_expand_prologue): update.
5079         (mmix_expand_epilogue): Update.
5080         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
5081         (emit_link_insn): Update.
5082
5083 2008-04-08  Anatoly Sokolov <aesok@post.ru>
5084
5085         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
5086         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
5087         instructions.
5088         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
5089         atmega103 device.
5090
5091 2008-04-07  Jan Hubicka  <jh@suse.cz>
5092
5093         * function.h (rtl): Rename to x_rtl.
5094         (crtl): New define.
5095         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
5096         frame_offset, stack_check_probe_note, arg_pointer_save_area,
5097         used_temp_slots avail_temp_slots, temp_slot_level,
5098         nonlocal_goto_handler_labels): Update accesstors.
5099         (rtl): New global variable.
5100         (struct function): Move some fileds to rtl_data.
5101         (get_arg_pointer_save_area): Update prototype.
5102         * builtins.c (expand_builtin_setjmp_receiver): Update call of
5103         get_arg_pointer_save_area.
5104         * expr.c (init_expr): Update
5105         * function.c (get_frame_size): Update
5106         (assign_stack_local): Update
5107         (expand_function_end): Update.
5108         (get_art_pointer_save_area): Update
5109         * function.h 
5110         * emit-rtl.c (rtl): Declare.
5111         (regno_reg_rtx): Declare.
5112         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
5113         Update.
5114         (gen_reg_rtx): Update.
5115         * varasm.c (n_deferred_constatns): Update accestor.
5116         (init_varasm_status): Do not allocate varasm_status.
5117         (force_const_mem, get_pool_size, output_constant_pool): Update.
5118         * stmt.c (force_label_rtx): Do not use x_ prefixes.
5119         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
5120         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
5121         * sparc/sparc.h (INIT_EXPANDERS): Update.
5122         * ia64/ia64.h (INIT_EXPANDERS): Update.
5123
5124 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
5125
5126         * reload.c (push_secondary_reload): Add missing break to for loop.
5127
5128 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
5129
5130         PR middle-end/PR28690
5131         * rtlanal.c: Update copyright years.
5132         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
5133         as REG_POINTER and MEM_POINTER operands.
5134         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
5135         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
5136         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
5137         * gcse.c: Update copyright years.
5138         (pre_delete): Call gen_reg_rtx_and_attrs.
5139         (hoist_code): Likewise.
5140         (build_store_vectors): Likewise.
5141         (delete_store): Likewise.
5142         * loop-invariant.c (move_invariant_reg): Likewise.
5143         Update copyright years.
5144
5145 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
5146
5147         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
5148         control string instead of quoted.
5149
5150 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
5151
5152         * doc/rtl.texi: Rewrite of subreg section.
5153
5154 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
5155
5156         PR/35842
5157         * config/i386/i386.c (legitimize_pic_address): Add treating
5158         of dllimport SYM_REF's.
5159         (legitimize_dllimport_symbol): Add prototype.
5160
5161 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
5162
5163         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
5164         reference in constructor with non self-referential type.
5165
5166 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
5167
5168         Removal of Return with Depressed Stack Pointer support
5169         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
5170         (ECF_SP_DEPRESSED): Likewise.
5171         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
5172         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
5173         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
5174         (expand_call): Do not test ECF_SP_DEPRESSED.
5175         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
5176         * function.c (keep_stack_depressed): Delete.
5177         (handle_epilogue_set): Likewise.
5178         (update_epilogue_consts): Likewise.
5179         (emit_equiv_load): Likewise.
5180         (thread_prologue_and_epilogue_insns): Remove support for Return with
5181         Depressed Stack Pointer.
5182         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
5183
5184 2008-04-06  Richard Guenther  <rguenther@suse.de>
5185
5186         PR tree-optimization/35400
5187         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
5188         information from SSA_NAMEs.
5189
5190 2008-04-06  Anatoly Sokolov <aesok@post.ru>
5191
5192         * config/avr/avr.h (avr_mega_p): Remove declaration.
5193         (AVR_MEGA): Remove macro.
5194         * config/avr/avr.c (avr_mega_p): Remove variable.
5195         (avr_override_options): Remove inicializion of avr_mega_p.
5196         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
5197         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
5198         (avr_jump_mode): (Ditto.).
5199         (avr_output_progmem_section_asm_op): (Ditto.).
5200         (avr_asm_init_sections): (Ditto.).
5201         (avr_asm_init_sections): (Ditto.).
5202         (avr_rtx_costs): (Ditto.).
5203         * config/avr/avr.md: (Ditto.).
5204         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
5205         '__AVR_MEGA__'.
5206
5207 2008-04-06  Richard Guenther  <rguenther@suse.de>
5208
5209         PR tree-optimization/35842
5210         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
5211         is_gimple_invariant_address.
5212
5213 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
5214
5215         * gcc.c (default_compilers): Sync Fortran extensions list with
5216         that in fortran/lang-specs.h.
5217         * doc/invoke.texi: Likewise.
5218         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
5219         * dwarf2out.c (gen_compile_unit_die): Likewise.
5220
5221 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
5222
5223         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
5224
5225 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
5226
5227         PR target/12329
5228         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
5229         attribute is used for nested functions.
5230
5231 2008-04-05  Jan Hubicka  <jh@suse.cz>
5232
5233         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
5234
5235         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
5236         letter argument.
5237         (dump_files): Update.
5238         (enable_rtl_dump_file): Do not accept letter argument.
5239         * tree-pass.h (dump_file_info): Remove letter argument.
5240         * toplev.c (decode_d_option): Update -da handling.
5241         * toplev.h (enable_rtl_dump_file): Update prototype.
5242         * passes.c (register_one_dump_file): Do not accept IPA argument; work
5243         it out based on pass type.
5244         (register_dump_files_1): Likewise.
5245         (init_optimization_passes): Update register_one_dump_file calls.
5246         (execute_one_pass): Sanity check that IPA passes are called at IPA
5247         level and RTL passes at RTL level.
5248         (execute_pass_list): IPA pass can not be after or subpass of
5249         GIMPLE/RTL pass.
5250         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
5251         disallov RTL subpasses of IPA subpasses.
5252
5253 2008-04-05  Ben Elliston  <bje@au.ibm.com>
5254
5255         * tree-cfg.c (need_fake_edge_p): Return false for calls to
5256         builtins that return exactly once and do not throw. Cache call to
5257         call_expr_flags.
5258
5259 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
5260
5261         PR rtl-optimization/34916
5262         PR middle-end/35519
5263         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
5264         between instruction pairs.
5265
5266 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
5267
5268         * doc/invoke.texi: Document -mbitops for SH.
5269         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
5270         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
5271         * config/sh/sh.c (print_operand): Add %t operand code.
5272         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
5273         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
5274         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
5275         (extendqihi2): Likewise.
5276         (movqi_i): Likewise.
5277         (insv): Use bset, bclr and bst instructions for SH2A if possible.
5278         (extv): Use bld instruction for SH2A if possible.
5279         (extzv): Likewise.
5280         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
5281         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
5282         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
5283         (bset.b, bclr.b): Define peepholes.
5284         * config/sh/sh.opt (mbitops): New option.
5285
5286 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
5287
5288         PR target/35620
5289         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
5290         and view convert expression.
5291
5292 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
5293
5294         PR target/35364
5295         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
5296
5297 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
5298
5299         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
5300
5301         * config/i386/cpuid.h (bit_AES): New.
5302         (bit_PCLMUL): Likewise.
5303
5304         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
5305         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
5306         SSE2 if AES or PCLMUL is enabled.
5307         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
5308         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
5309         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
5310         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
5311         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
5312         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
5313         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
5314         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
5315         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
5316         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
5317         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
5318         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
5319         __builtin_ia32_aeskeygenassist128 and
5320         __builtin_ia32_pclmulqdq128.
5321         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
5322         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
5323         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
5324
5325         * config/i386/i386.h (TARGET_AES): New.
5326         (TARGET_PCLMUL): Likewise.
5327         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
5328
5329         * config/i386/i386.md (UNSPEC_AESENC): New.
5330         (UNSPEC_AESENCLAST): Likewise.
5331         (UNSPEC_AESDEC): Likewise.
5332         (UNSPEC_AESDECLAST): Likewise.
5333         (UNSPEC_AESIMC): Likewise.
5334         (UNSPEC_AESKEYGENASSIST): Likewise.
5335         (UNSPEC_PCLMUL): Likewise.
5336
5337         * config/i386/i386.opt (maes): New.
5338         (mpclmul): Likewise.
5339
5340         * config/i386/sse.md (aesenc): New pattern.
5341         (aesenclast): Likewise.
5342         (aesdec): Likewise.
5343         (aesdeclast): Likewise.
5344         (aesimc): Likewise.
5345         (aeskeygenassist): Likewise.
5346         (pclmulqdq): Likewise.
5347
5348         * config/i386/wmmintrin.h: New.
5349
5350         * doc/extend.texi: Document AES and PCLMUL built-in function.
5351
5352         * doc/invoke.texi: Document -maes and -mpclmul.
5353
5354 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
5355
5356         * function.c (free_after_parsing): Replace with
5357         cxx_push_function_context from C++ front-end.
5358         (allocate_struct_function): Don't call langhook.
5359         * langhooks.h (struct lang_hooks_for_functions): Delete.
5360         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
5361         member "function".
5362         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
5363         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
5364         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
5365         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
5366         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
5367         remove LANG_HOOKS_FUNCTION_INITIALIZER.
5368         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
5369
5370         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
5371         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
5372         
5373 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
5374
5375         PR c/35440
5376         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
5377         for all types.
5378
5379 2008-04-04  Richard Guenther  <rguenther@suse.de>
5380
5381         PR middle-end/35823
5382         * fold-const.c (optimize_minmax_comparison): Use the correct
5383         type for the constant in the simplified comparison.
5384
5385 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
5386
5387         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
5388         Pass L2 size as "--param l2-cache-size" to the compiler.
5389         (decode_l2_cache): New function to decode L2 cache parameters using
5390         0x8000006 extended cpuid function.
5391         (detect_caches_amd): Determine parameters of L2 cache using
5392         decode_l2_caches function.
5393         (decode_caches_intel): Decode L2 cache parameters.
5394         (detect_caches_intel): Determine L2 cache parameters using
5395         decode_caches_intel and decode_l2_caches functions.
5396
5397 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
5398
5399         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
5400         secondary input reload for subword loads from the constant pool.
5401
5402 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
5403
5404         PR target/35713
5405         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
5406           constants of the appropriate size for runtime calculations.
5407
5408         PR c/35712
5409         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
5410           decimal-float literal constant zero.
5411
5412 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
5413
5414         PR c/35738
5415         * c-parser.c (c_parser_omp_atomic): Call
5416         default_function_array_conversion on the RHS.
5417
5418         PR middle-end/35818
5419         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
5420         call is_variable_sized if decl has incomplete type.
5421
5422 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
5423
5424         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
5425
5426 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
5427
5428         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
5429         iterators.
5430         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
5431         (sgt<u>): Merge sgt and sgtu into new expander.
5432         (sgt, sgtu): Remove expanders.
5433         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
5434         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
5435         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
5436         *sgtu_<mode>_mips16 into new pattern.
5437         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
5438         (sge<u>): Merge sge and sgeu into new expander.
5439         (sge, sgeu): Remove expanders.
5440         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
5441         new pattern.
5442         (*sge_<mode>, second *sge_<mode>): Remove patterns.
5443         (slt<u>): Merge slt and sltu into new expander.
5444         (slt, sltu): Remove expanders.
5445         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
5446         (*slt_<mode>, *sltu_<mode>): Remove patterns.
5447         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
5448         *sltu_<mode>_mips16 into new pattern.
5449         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
5450         (sle<u>): Merge sle and sleu into new expander.
5451         (sle, sleu): Remove expanders.
5452         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
5453         (*sle_<mode>, *sleu_<mode>): Remove patterns.
5454         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
5455         *sleu_<mode>_mips16 into new pattern.
5456         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
5457
5458 2008-04-03  Jan Hubicka  <jh@suse.cz>
5459
5460         PR tree-optimization/35795
5461         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
5462         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
5463         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
5464         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
5465         * score/score3.c (score3_output_mi_thunk): Likewise.
5466         * score/score7.c (score7_output_mi_thunk): Likewise.
5467         * mips/mips.c (mips_output_mi_thunk): Likewise.
5468
5469 2008-04-03  Richard Guenther  <rguenther@suse.de>
5470
5471         * tree-vrp.c (extract_range_from_unary_expr): Handle all
5472         conversions.  Simplify code.
5473
5474 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
5475
5476         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
5477
5478 2008-04-03  Tom Tromey  <tromey@redhat.com>
5479             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5480
5481         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
5482         * config/bfin/t-bfin-linux (generated_files): Add
5483         linux-sysroot-suffix.h.
5484         * doc/install.texi (Prerequisites): Require make 3.80.
5485         * doc/sourcebuild.texi (Front End Directory): Document new
5486         variable.
5487         * Makefile.in (generated_files): New variable.
5488         (ALL_HOST_OBJS): New variable.
5489         ($(ALL_HOST_OBJS)): New target.
5490
5491 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
5492
5493         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
5494         (remap_block): Call id->transform_lang_insert_block instead
5495         of langhook.
5496         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
5497         Set id.transform_lang_insert_block to NULL.
5498         (clone_body): Move to cp/optimize.c
5499         * tree-inline.h (struct copy_body_data): Change
5500         transform_lang_insert_block to function pointer.
5501         (copy_generic_body, copy_decl_no_change): Export.
5502         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
5503         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
5504         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
5505
5506         * c-tree.h (insert_block): Kill.
5507         * c-decl.c (insert_block): Kill.
5508
5509 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
5510
5511         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
5512         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
5513         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
5514         argument.
5515         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
5516         argument, call {push,pop}_function_context from here.
5517         * c-parser.c: Use c_{push,pop}_function_context.
5518
5519         * function.c (push_function_context_to): Move meat ...
5520         (push_function_context): ... here.  Simplify.
5521         * function.c (pop_function_context_from): Move meat ...
5522         (pop_function_context): ... here.  Simplify.
5523         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
5524         leave_nested).
5525         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
5526         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
5527         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
5528         * tree.h (push_function_context_to, pop_function_context_from): Remove.
5529
5530 2008-04-03  Ben Elliston  <bje@au.ibm.com>
5531
5532         * expmed.c (extract_force_align_mem_bit_field): Remove.
5533
5534 2008-04-03  Richard Guenther  <rguenther@suse.de>
5535
5536         PR middle-end/35800
5537         * expr.h (try_casesi): Adjust prototype.
5538         * expr.c (try_casesi): Take fallback label as extra parameter.
5539         Use that for gen_casesi if default_label is NULL.
5540         * stmt.c (expand_case): Pass fallback label to try_casesi,
5541         make sure to fill gaps with a fallback label if default_label
5542         is not present.
5543
5544 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
5545
5546         PR target/35801
5547         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
5548
5549 2008-04-03  Ben Elliston  <bje@au.ibm.com>
5550
5551         * expmed.c (extract_split_bit_field): Remove if (0) code.
5552         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
5553         (do_ds_constraint): Likewise.
5554
5555 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
5556
5557         * doc/cppopts.texi (-dU): Document.
5558         * c-common.h (flag_dump_macros): Update comment.
5559         * c-opts.c (handle_OPT_d): Handle -dU.
5560         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
5561         dump_queued_macros, cb_used_define, cb_used_undef): New.
5562         (init_pp_output): Handle -dU.
5563         (cb_line_change): Call dump_queued_macros.
5564         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
5565
5566 2008-04-02  Anatoly Sokolov <aesok@post.ru>
5567
5568         * config/avr/predicates.md (io_address_operand): New predicate. 
5569         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
5570         * config/avr/avr.c (avr_io_address_p): Remove function.
5571         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
5572         'avr_io_address_p' function.
5573         (out_movhi_r_mr): (Ditto.).
5574         (out_movqi_mr_r): (Ditto.).
5575         (out_movhi_mr_r): (Ditto.).
5576         (avr_address_cost): (Ditto.).
5577
5578 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
5579
5580         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
5581         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
5582         in 32bit mode when XMM registers are available to avoid store
5583         forwarding stalls.
5584         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
5585         corresponding post-reload splitters.
5586
5587 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
5588
5589         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
5590         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
5591         __builtin_ia32_roundss.
5592         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
5593         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
5594         __builtin_ia32_roundss.
5595         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
5596         IX86_BUILTIN_SHUFPD here.
5597
5598 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
5599
5600         * config/i386/i386.md (plogic): New.
5601         (plogicprefix): Likewise.
5602
5603         * config/i386/mmx.md (mmx_<code><mode>3): New.
5604         (mmx_and<mode>3): Removed.
5605         (mmx_ior<mode>3): Likewise.
5606         (mmx_xor<mode>3): Likewise.
5607
5608         * config/i386/sse.md (<code><mode>3): New.
5609         (*<code><mode>3): Likewise.
5610         (*<code><mode>3): Likewise.
5611         (<code><mode>3): Likewise.
5612         (*sse_<code><mode>3): Likewise.
5613         (*sse2_<code><mode>3): Likewise.
5614         (<code>tf3): Likewise.
5615         (*<code>tf3): Likewise.
5616         (and<mode>3): Likewise.
5617         (*and<mode>3): Likewise.
5618         (ior<mode>3): Removed.
5619         (*ior<mode>3): Likewise.
5620         (xor<mode>3): Likewise.
5621         (*xor<mode>3): Likewise.
5622         (*and<mode>3): Likewise.
5623         (*ior<mode>3): Likewise.
5624         (*xor<mode>3): Likewise.
5625         (and<mode>3): Likewise.
5626         (*sse_and<mode>3): Likewise.
5627         (*sse2_and<mode>3): Likewise.
5628         (andtf3): Likewise.
5629         (*andtf3): Likewise.
5630         (ior<mode>3): Likewise.
5631         (*sse_ior<mode>3): Likewise.
5632         (*sse2_ior<mode>3): Likewise.
5633         (iortf3): Likewise.
5634         (*iortf3): Likewise.
5635         (xor<mode>3): Likewise.
5636         (*sse_xor<mode>3): Likewise.
5637         (*sse2_xor<mode>3): Likewise.
5638         (xortf3): Likewise.
5639         (*xortf3): Likewise.
5640
5641 2008-04-02  Richard Guenther  <rguenther@suse.de>
5642
5643         PR tree-optimization/14495
5644         PR tree-optimization/34793
5645         * tree-vrp.c (struct switch_update): New structure.
5646         (to_remove_edges, to_update_switch_stmts): New VECs.
5647         (simplify_switch_using_ranges): New function.  Remove not taken
5648         case labels and edges.
5649         (simplify_stmt_using_ranges): Call it.
5650         (identify_jump_threads): Mark edges we have queued for removal
5651         so we don't thread them.
5652         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
5653         case label vector.
5654         * tree-cfg.c (group_case_labels): Deal with missing default label.
5655         (tree_verify_flow_info): Allow missing default label.
5656         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
5657         (emit_case_nodes): Likewise.
5658         (expand_case): Do not rely on the default label to be present.
5659         * expr.c (try_casesi): Deal with NULL default_label.
5660         (do_tablejump): Likewise.
5661
5662 2008-04-02  Richard Guenther  <rguenther@suse.de>
5663
5664         PR tree-optimization/14495
5665         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
5666         SWITCH_EXPR here ...
5667         (vrp_visit_switch_stmt): ... but here (new function).
5668         (find_case_label_index): New helper function.
5669         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
5670
5671 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5672
5673         * fwprop.c: Fix ISO-C99ism.
5674
5675 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5676
5677         PR bootstrap/35752
5678         * Makefile.in (objdir): Set it here.
5679         * configure.ac: Not here.  Find dynamic linker characteristics.
5680         * exec-tool.in: Use them.
5681         * aclocal.m4: Regenerate.
5682         * configure: Regenerate.
5683
5684 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5685
5686         * expr.c (expand_var): Delete it.
5687         * expr.h (expand_var): Delete prototype.
5688         * function.c (expand_function_start): Use expand_decl instead.
5689         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
5690         langhook.
5691
5692 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
5693
5694         PR rtl-optimization/35542
5695         * fwprop.c (forward_propagate_and_simplify): Replace
5696         loc_reg_mentioned_in_p with reg_mentioned_p.
5697
5698 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5699
5700         PR rtl-optimization/35281
5701         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
5702         (propagate_rtx_1): Handle PR_HANDLE_MEM.
5703         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
5704         (varying_mem_p): Move above propagate_rtx.
5705         (all_uses_available_at): Do not check MEMs.
5706
5707 2008-04-02  Rafael Espindola  <espindola@google.com>
5708
5709         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
5710         (register_edge_assert_for_2): Split the cond argument.
5711         (register_edge_assert_for_1): Adjust for the change in
5712         register_edge_assert_for_2.
5713         (register_edge_assert_for): Split the cond argument.
5714         (find_switch_asserts): Adjust for the change in
5715         register_edge_assert_for.
5716
5717 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
5718
5719         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
5720         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
5721         offsets for 64-bit mingw.
5722         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
5723         abi for x86_64-pc-mingw.
5724
5725 2008-04-02  Richard Guenther  <rguenther@suse.de>
5726
5727         * tree-vrp.c (extract_range_from_assert): Make sure to not
5728         produce range min/max with TREE_OVERFOW set.
5729         If merging a anti-range and a range keep the anti-range if
5730         the range covers all values of the type.
5731         (register_edge_assert_for_2): Only allow sign-changing
5732         conversions in detecting canonical range checks.  Also
5733         register an assert for the unsigned name if useful.
5734
5735         PR tree-optimization/35787
5736         * tree-vrp.c (vrp_val_max): New function.
5737         (vrp_val_min): Likewise.
5738         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
5739         (vrp_val_is_min): Likewise.
5740         (supports_overflow_infinity): Use vrp_val_{min,max}.
5741         (negative_overflow_infinity): Likewise.
5742         (positive_overflow_infinity): Likewise.
5743         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
5744         (is_positive_overflow_infinity): Likewise.
5745         (is_overflow_infinity): Likewise.
5746         (avoid_overflow_infinity): Use vrp_val_{min,max} and
5747         vrp_val_is_{min,max}.
5748         (set_and_canonicalize_value_range): Canonicalize anti-ranges
5749         to ranges if possible.  Avoid empty ranges.
5750
5751 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5752
5753         PR middle-end/35705
5754         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
5755         the expression is a function address.
5756
5757 2008-04-01  George Helffrich  <george@gcc.gnu.org>
5758
5759         PR fortran/35154, fortran/23057
5760         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
5761         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
5762         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
5763         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
5764         in common.
5765         (dbxout_syms): Check for COMMON-based symbol and wrap in
5766         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
5767         in bracket for efficiency.
5768
5769         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
5770         using DW_TAG_common_block + member offset.
5771         (add_pubname_string): New function.
5772         (dw_expand_expr): New function to find block name and offset for
5773         COMMON var.
5774         (common_check): New function to check whether symbol in Fortran COMMON.
5775         (gen_variable_die): If COMMON, use DW_TAG_common_block.
5776
5777 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
5778
5779         PR c/35436
5780         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
5781
5782 2008-04-02  Ben Elliston  <bje@au.ibm.com>
5783
5784         * config/v850/v850.md (casesi): Remove if (0) code.
5785         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
5786         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
5787
5788 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
5789
5790         * config/i386/i386.md (rex64suffix): New mode attribute.
5791         (floathi<mode>2): Disable expander for SSE math.
5792         (*floathi<mode>2_1): New insn insn_and_split pattern.
5793         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
5794         corresponding post-reload splitters.
5795         (*floathi<mode>2_i387): New macroized insn pattern.
5796         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
5797         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
5798         insn_and_split pattern.
5799         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
5800         New macroized instruction patterns and corresponding post-reload
5801         splitters.
5802         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
5803         and corresponding post-reload splitters.
5804         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
5805         New macroized instruction patterns.
5806         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
5807         macroized instruction patterns and corresponding post-reload splitters.
5808         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
5809         corresponding post-reload splitters.
5810         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
5811         New macroized instruction patterns.
5812         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
5813         corresponding post-reload splitters.
5814         (*floatsi<mode>2_i387): New macroized instruction patterns.
5815
5816 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
5817
5818         * config/i386/i386.md (smaxmin): New.
5819         (umaxmin): Likewise.
5820         (maxminiprefix): Likewise.
5821         (maxminfprefix): Likewise.
5822         (<code><mode>3): Likewise.
5823         (smin<mode>3): Removed.
5824         (smax<mode>3): Likewise.
5825
5826         * config/i386/mmx.md (mmx_<code>v2sf3): New.
5827         (mmx_<code>v4hi3): Likewise.
5828         (mmx_<code>v8qi3): Likewise.
5829         (mmx_smaxv2sf3): Removed.
5830         (mmx_sminv2sf3): Likewise.
5831         (mmx_umaxv8qi3): Likewise.
5832         (mmx_smaxv4hi3): Likewise.
5833         (mmx_uminv8qi3): Likewise.
5834         (mmx_sminv4hi3): Likewise.
5835
5836         * config/i386/sse.md (<addsub><mode>3): New.
5837         (*<addsub><mode>3): Likewise.
5838         (<sse>_vm<addsub><mode>3): Likewise.
5839         (<maxmin><mode>3): Likewise.
5840         (*<maxmin><mode>3_finite): Likewise.
5841         (*<maxmin><mode>3): Likewise.
5842         (<sse>_vm<maxmin><mode>3): Likewise.
5843         (sse3_h<addsub>v4sf3): Likewise.
5844         (sse3_h<addsub>v2df3): Likewise.
5845         (<maxmin>v16qi3): Likewise.
5846         (*<maxmin>v16qi3): Likewise.
5847         (<maxmin>v8hi3): Likewise.
5848         (*<maxmin>v8hi3): Likewise.
5849         (*sse4_1_<maxmin><mode>3): Likewise.
5850         (*sse4_1_<maxmin><mode>3): Likewise.
5851         (add<mode>3): Removed.
5852         (*add<mode>3): Likewise.
5853         (<sse>_vmadd<mode>3): Likewise.
5854         (sub<mode>3): Likewise.
5855         (*sub<mode>3): Likewise.
5856         (<sse>_vmsub<mode>3): Likewise.
5857         (smin<mode>3): Likewise.
5858         (*smin<mode>3_finite): Likewise.
5859         (*smin<mode>3): Likewise.
5860         (<sse>_vmsmin<mode>3): Likewise.
5861         (smax<mode>3): Likewise.
5862         (*smax<mode>3_finite): Likewise.
5863         (*smax<mode>3): Likewise.
5864         (<sse>_vmsmax<mode>3): Likewise.
5865         (sse3_haddv4sf3): Likewise.
5866         (sse3_haddv2df3): Likewise.
5867         (sse3_hsubv4sf3): Likewise.
5868         (sse3_hsubv2df3): Likewise.
5869         (umaxv16qi3): Likewise.
5870         (*umaxv16qi3): Likewise.
5871         (smaxv8hi3): Likewise.
5872         (*smaxv8hi3): Likewise.
5873         (*sse4_1_smax<mode>3): Likewise.
5874         (*sse4_1_umax<mode>3): Likewise.
5875         (uminv16qi3): Likewise.
5876         (*uminv16qi3): Likewise.
5877         (sminv8hi3): Likewise.
5878         (*sminv8hi3): Likewise.
5879         (*sse4_1_smin<mode>3): Likewise.
5880         (*sse4_1_umin<mode>3): Likewise.
5881
5882 2008-04-01  Rafael Espindola  <espindola@google.com>
5883
5884         * tree-cfg.c (verify_expr): remove in_phi.
5885         (verify_stmt): Don't call walk_tree with verify_expr. Use
5886         is_gimple_min_invariant instead of is_gimple_val.
5887
5888 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
5889
5890         * doc/include/gpl_v3.texi: Update for manpage generation.
5891         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
5892         gpl.texi.
5893         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
5894         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
5895         gpl_v3.texi instead of gpl.texi.
5896         (gpl.pod): New.
5897
5898 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
5899
5900         PR pch/13675
5901         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
5902
5903 2008-04-01  Rafael Espindola  <espindola@google.com>
5904
5905         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
5906         (extract_code_and_val_from_cond): Use
5907         extract_code_and_val_from_cond_with_ops.
5908
5909 2008-04-01  Jan Hubicka  <jh@suse.cz>
5910
5911         * function.c (free_after_compilation): Free epilogue_delay_list.
5912         (prepare_function_start): Assert that previous compilation was freed.
5913
5914 2008-04-01  Jan Hubicka  <jh@suse.cz>
5915             Jim Wilson  <wilson@tuliptree.org>
5916             Andreas Tobler <andreast@gcc.gnu.org>
5917
5918         PR middle-end/35781
5919         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
5920         rtl.emit instead cfun->emit.
5921         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
5922         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
5923
5924 2008-04-01  Ben Elliston  <bje@au.ibm.com>
5925
5926         * doc/c-tree.texi (Function Basics): Fix grammatical error.
5927
5928 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
5929
5930         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
5931         New options
5932         (fprofile-use): Add var flag_profile_use
5933         * coverage.c (coverage_begin_output): Do not open a gcno file for
5934         output only if -ftest-coverage is set.
5935         Do not add getpwd() to gcda file path.
5936         (build_gcov_info): Check the new flag
5937         flag_profile_datafile_relative_path.
5938         (coverage_init): Use profile_data_prefix.
5939         Read profile counter only if flag_profile_use is set.
5940         * opts.c (common_handle_option): New option fprofile-use=,
5941         fprofile-dir=, fprofile-generate=.
5942         * toplev.c (profile_data_prefix): New variable definition.
5943         * toplev.h (profile_data_prefix): New declaration.
5944         * doc/invoke.tex (Option Summary, Optimization Options):
5945         Add new options.
5946
5947 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
5948
5949         * varasm.c (output_constant_pool_1): In LABEL_REF check,
5950         use tmp consistently.
5951
5952         PR target/35695
5953         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
5954         * config/ia64/ia64.c (rtx_needs_barrier): Handle
5955         UNSPEC_FR_RECIP_APPROX_RES.
5956         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
5957
5958 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
5959
5960         PR c/35750
5961         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
5962
5963 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5964
5965         PR middle-end/30186
5966         * fold-const.c (fold_indirect_ref_1): Support accessing non first
5967         element of the vector via a pointer.
5968
5969 2008-03-31  Ian Lance Taylor  <iant@google.com>
5970
5971         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
5972
5973 2008-03-31  Jan Hubicka  <jh@suse.cz>
5974
5975         * builtins.c (expand_builtin_setjmp_receiver): Update call of
5976         get_arg_pointer_save_area.
5977         * expr.c (init_expr): Just clear out rtl.expr.
5978         * function.c (free_after_compilation): Clear out whole RTL structure.
5979         (get_func_frame_size): Merge into ...
5980         (get_frame_size): ... this one.
5981         (assign_stack_local_1): Merge into ...
5982         (assign_stack_local): ... this one.
5983         (expand_function_end): Update call of get_arg_pointer_save_area.
5984         (get_art_pointer_save_area): Remove cfun argument.
5985         * function.h (emit_status): regno_pointer_align does not need length
5986         attribute. Move x_regno_reg_rtx to ...
5987         (regno_reg_rtx): ... new global array.
5988         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
5989         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
5990         apply_args_value, forced_labels, stack_pointer_delta):
5991         Update accestors.
5992         (struct varasm_status): Move here from varasm.c
5993         (struct rtl_data): New. Move here some fields from struct function.
5994         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
5995         frame_offset, stack_check_probe_note, arg_pointer_save_area,
5996         used_temp_slots avail_temp_slots, temp_slot_level,
5997         nonlocal_goto_handler_labels): Update accesstors.
5998         (rtl): New global variable.
5999         (struct function): Move some fileds to rtl_data.
6000         (get_arg_pointer_save_area): Update prototype.
6001         * emit-rtl.c (rtl): Declare.
6002         (regno_reg_rtx): Declare.
6003         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
6004         Update.
6005         (gen_reg_rtx): Update.
6006         (init_virtual_regs): Do not tate emit_status argument.
6007         (init_emit): Do not allocate emit.
6008         * varasm.c (varasm_statuc): Move to function.h.
6009         (n_deferred_constatns): Update accestor.
6010         (init_varasm_status): Do not allocate varasm_status.
6011         (force_const_mem, get_pool_size, output_constant_pool): Update.
6012         * stmt.c (force_label_rtx): Do not use x_ prefixes.
6013         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
6014
6015 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
6016
6017         PR rtl-optimization/35729
6018         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
6019         references.
6020
6021 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
6022
6023         PR target/32000
6024         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
6025         load/store if memory is unaligned.
6026         (*movti_rex64): Likewise.
6027
6028         * config/i386/predicates.md (misaligned_operand): New.
6029
6030 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
6031
6032         PR tree-opt/35431
6033         * tree-ssa-phiopt.c (conditional_replacement): Return early for
6034         complex types.
6035
6036 2008-03-31  Jan Beulich  <jbeulich@novell.com>
6037
6038         * config/ia64/constraints.md: Add 'j' constraint.
6039         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
6040         (movdi_internal): Likewise.
6041
6042 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
6043
6044         PR c/35748
6045         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
6046
6047 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
6048
6049         PR target/35757
6050         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
6051         proper error message for the third argument on blendpd and
6052         blendps.
6053
6054         * config/i386/sse.md (blendbits): New.
6055         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
6056
6057 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
6058
6059         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
6060
6061 2008-03-30  Richard Guenther  <rguenther@suse.de>
6062
6063         PR middle-end/31023
6064         * fold-const.c (fold_sign_changed_comparison): Do leave
6065         conversions to base-types alone.
6066
6067 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6068
6069         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
6070         the link register if one altivec register is be saved.
6071
6072 2008-03-30  Ben Elliston  <bje@au.ibm.com>
6073
6074         * final.c (final_scan_insn): Remove if (0) code.
6075
6076 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
6077
6078         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
6079
6080 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
6081
6082         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
6083         of V4SFmode to ix86_binary_operator_ok.
6084
6085 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
6086
6087         * config/i386/i386.c (override_options): Initialize
6088         ix86_veclib_handler to ix86_veclibabi_svml when
6089         -mveclibabi=svml is used.
6090         (ix86_veclibabi_svml): New function for SVML ABI style
6091         vectorization support.
6092         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
6093
6094 2008-03-28  Rafael Espindola  <espindola@google.com>
6095
6096         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
6097         (tree_binary_nonnegative_warnv_p): Make it public.
6098         (tree_single_nonnegative_warnv_p): Make it public.
6099         (tree_invalid_nonnegative_warnv_p): Make it public.
6100         (tree_unary_nonzero_warnv_p): Make it public.
6101         (tree_binary_nonzero_warnv_p): Make it public
6102         (tree_single_nonzero_warnv_p): Make it public.
6103         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
6104         (extract_range_from_binary_expr): Split the expr argument.
6105         (extract_range_from_unary_expr): Split the expr argument.
6106         (extract_range_from_comparison): Split the expr argument.
6107         (extract_range_from_expr): Use the new aux functions.
6108         (vrp_evaluate_conditional_warnv): Use
6109         vrp_evaluate_conditional_warnv_with_ops.
6110         * tree.h (tree_unary_nonzero_warnv_p): Declare.
6111         (tree_binary_nonzero_warnv_p): Declare.
6112         (tree_single_nonzero_warnv_p): Declare.
6113         (tree_expr_nonzero_warnv_p): Declare.
6114         (tree_unary_nonnegative_warnv_p): Declare.
6115         (tree_binary_nonnegative_warnv_p): Declare.
6116         (tree_single_nonnegative_warnv_p): Declare.
6117         (tree_invalid_nonnegative_warnv_p): Declare.
6118
6119 2008-03-28  Richard Guenther  <rguenther@suse.de>
6120
6121         PR tree-optimization/30317
6122         PR tree-optimization/30911
6123         PR tree-optimization/34793
6124         * tree-vrp.c (set_and_canonicalize_value_range): New function.
6125         (struct assert_locus_d): New member EXPR.
6126         (register_new_assert_for): Add EXPR parameter to support
6127         ASSERT_EXPR <name, expr OP limit>.
6128         (register_edge_assert_for_1): Adjust callers.
6129         (find_assert_locations): Likewise.
6130         (process_assert_insertions_for): Build condition from expression.
6131         (extract_range_from_assert): Handle ASSERT_EXPRs
6132         of the form ASSERT_EXPR <name, expr OP limit>.
6133         (register_edge_assert_for_2): New helper registering
6134         asserts for comparisons.  Recognize range tests of the form
6135         (unsigned)i - CST1 OP CST2.
6136         (register_edge_assert_for_1): Use it.
6137         (register_edge_assert_for): Likewise.
6138         (needs_overflow_infinity): Integer sub-types
6139         do not need overflow infinities.
6140         (vrp_val_is_max): The extreme values of integer sub-types
6141         are those of the base type.
6142         (vrp_val_is_min): Likewise.
6143         * tree.def (ASSERT_EXPR): Document extra allowed conditional
6144         expressions.
6145
6146 2008-03-28  Nick Clifton  <nickc@redhat.com>
6147
6148         PR target/31110
6149         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
6150         Return GENERAL_REGS for stack adjustment reloads.
6151
6152 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6153
6154         PR target/31334
6155         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
6156         const_vector when all the vectors are constant.
6157
6158 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
6159
6160         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
6161         comparisons.
6162         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
6163         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
6164         (scc_sf): New.
6165         (s<code>_sf): Use new scc_sf attribute for opcode names.
6166
6167 2008-03-27  Tom Tromey  <tromey@redhat.com>
6168
6169         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
6170         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
6171         config/spu/t-spu-elf, config/i386/t-interix,
6172         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
6173         config/i386/x-darwin, config/i386/x-mingw32,
6174         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
6175         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
6176         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
6177         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
6178         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
6179         config/rs6000/x-darwin, config/rs6000/t-rs6000,
6180         config/score/t-score-elf, config/arm/t-strongarm-pe,
6181         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
6182         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
6183         Revert automatic dependency patch.
6184
6185 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
6186
6187         PR target/35657
6188         * config/i386/i386.c (ix86_function_arg_boundary): Align
6189         decimal floating point to its natural boundary.
6190
6191 2008-03-27  Richard Guenther  <rguenther@suse.de>
6192
6193         PR middle-end/35716
6194         * fold-const.c (fold_comparison): Restrict distinct decl
6195         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
6196         solely rely on operand_equal_p.
6197
6198 2008-03-27  Richard Guenther  <rguenther@suse.de>
6199
6200         PR c/32511
6201         * c-common.c (handle_weak_attribute): Reject combination of
6202         weak and inline.
6203
6204 2008-03-27  Richard Guenther  <rguenther@suse.de>
6205
6206         PR tree-optimization/32810
6207         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
6208         conversions from DECL_INITIAL.
6209         (fold_const_aggregate_ref): Likewise from constructor elements.
6210
6211 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
6212
6213         * tree-affine.h (aff_combination_expand): Declare.
6214         (get_inner_reference_aff): Likewise.
6215         * tree-affine.c (aff_combination_expand): Split out from
6216         tree_to_aff_combination_expand.
6217         (get_inner_reference_aff): New function.
6218         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
6219         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
6220         (struct lim_aux_data): sm_done field removed.
6221         (mem_ref_loc_p, mem_ref_locs_p): New types.
6222         (struct mem_ref): Added id, stored, accesses_in_loop,
6223         indep_loop, dep_loop, indep_ref, dep_ref fields.
6224         Removed is_stored, locs and next fields.
6225         (memory_accesses): New variable.
6226         (movement_possibility): Do not allow moving statements
6227         that store to memory.
6228         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
6229         New functions.
6230         (determine_max_movement): For statements with memory references,
6231         find the outermost loop in that the reference is independent.
6232         (move_computations_stmt): Mark the virtual operands for renaming.
6233         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
6234         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
6235         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
6236         add_vop_ref_mapping, create_vop_ref_mapping_loop,
6237         create_vop_ref_mapping, analyze_memory_references,
6238         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
6239         get_all_locs_in_loop, ref_always_accessed_p,
6240         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
6241         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
6242         store_motion_loop, store_motion): New functions.
6243         (struct vop_to_refs_elt): New type.
6244         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
6245         memref_hash, memref_eq, hoist_memory_references): Rewritten.
6246         (schedule_sm): Replaced by...
6247         (execute_sm): ... this.
6248         (determine_lsm_ref, hoist_memory_references,
6249         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
6250         find_more_ref_vops, free_mem_ref, free_mem_refs,
6251         determine_lsm_loop, determine_lsm): Removed.
6252         (tree_ssa_lim_finalize): Free data structures used by store motion.
6253         (tree_ssa_lim): Call analyze_memory_references.  Use
6254         store_motion instead of determine_lsm.
6255
6256 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
6257
6258         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
6259         rename tmake_file to m68hc11/t-m68hc11.
6260         (mcore): Set inhibit_libc to true.
6261         * config.host (alpha*-dec-*vms*): Set extra_programs.
6262         (interix3*): Don't use host_xmake_file.
6263         * configure.ac: Let config.gcc override inhibit_libc.
6264         * configure: Regenerate.
6265
6266         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
6267         * config/t-openbsd-thread: Remove commented out lines.
6268         
6269         * config/x-interix: Remove.
6270
6271         * config/m68hc11/t-m68hc11-gas: Rename to...
6272         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
6273
6274         * config/mcore/t-mcore: Remove T_CFLAGS.
6275         * config/mcore/t-mcore-pe: Likewise.
6276
6277 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
6278
6279         * configure.ac: Replace custom __GNU_SOURCE test with
6280         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
6281         * aclocal.m4: Regenerate.
6282         * configure: Regenerate.
6283         * config.in: Regenerate.
6284
6285 2008-03-27  Richard Guenther  <rguenther@suse.de>
6286
6287         * fold-const.c (target.h): Include.
6288         (fold_comparison): Fold comparison of addresses of decls
6289         that bind locally or of constants.  Consolidate address folding code.
6290         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
6291         results from fold_binary_to_constant.
6292         (compare_values_warnv): Likewise.
6293
6294 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
6295
6296         PR middle-end/35429
6297         * fold-const.c (fold_truthop): Check for integeral types when folding
6298         a == 0 && b == 0 and a != 0 || b != 0 .
6299
6300 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
6301
6302         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
6303
6304 2008-03-26  Andreas Schwab  <schwab@suse.de>
6305
6306         * doc/invoke.texi: Fix use of @item vs. @itemx.
6307
6308 2008-03-26  Tom Tromey  <tromey@redhat.com>
6309
6310         * Makefile.in (build/gensupport.o, build/print-rtl.o,
6311         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
6312         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
6313         build/gencodes.o, build/genconditions.o, build/genconfig.o,
6314         build/genconstants.o, build/genemit.o, build/genextract.o,
6315         build/genflags.o, build/genmddeps.o, build/genopinit.o,
6316         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
6317         options.h.
6318
6319 2008-03-26  Richard Guenther  <rguenther@suse.de>
6320
6321         Revert
6322         2008-03-26  Richard Guenther  <rguenther@suse.de>
6323
6324         * fold-const.c (target.h): Include.
6325         (fold_comparison): Fold comparison of addresses of two decls
6326         that bind locally.  Consolidate address folding code.
6327
6328 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6329
6330         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
6331         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
6332         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
6333         dconstsqrt2, dconstthird, dconste and/or dconst10.
6334         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
6335         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
6336         dconstsqrt2, dconste): Delete.
6337         (init_emit_once): Likewise.  Simplify initializing dconstm1.
6338         Constify variable.
6339         * real.c (get_real_const): New.
6340         * real.h (dconst3, dconst10, dconstm2, dconstthird,
6341         dconstsqrt2, dconste): Delete.
6342         (real_value_const, get_real_const): New.
6343
6344 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
6345
6346         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
6347
6348         * config/i386/i386.c (ix86_function_arg_boundary): Check
6349         BIGGEST_ALIGNMENT instead of 128.
6350         (setup_incoming_varargs_64): Likewise.
6351
6352 2008-03-26  Tom Tromey  <tromey@redhat.com>
6353
6354         * Makefile.in (DEPFILES): Add missing '/'.
6355
6356 2008-03-26  Richard Guenther  <rguenther@suse.de>
6357
6358         * fold-const.c (target.h): Include.
6359         (fold_comparison): Fold comparison of addresses of two decls
6360         that bind locally.  Consolidate address folding code.
6361
6362 2008-03-26  Nick Clifton  <nickc@redhat.com>
6363
6364         PR target/31232
6365         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
6366         not allow INT+INT as a legitimate addressing mode.
6367
6368 2008-03-26  Richard Guenther  <rguenther@suse.de>
6369
6370         * tree-flow.h (widen_bitfield): Remove declaration.
6371         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
6372         (widen_bitfield): Remove function.
6373         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
6374         code.
6375
6376 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6377
6378         PR target/31558
6379         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
6380         error_mark_node's.
6381
6382 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
6383
6384         PR rtl-optimization/35232
6385         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
6386         (forget_old_reloads_1, forget_marked_reloads): Don't clear
6387         reg_reloaded_call_part_clobbered here.
6388         (reload_regs_reach_end_p): New function.
6389         (reload_reg_rtx_for_input): New variable.
6390         (reload_reg_rtx_for_output): Likewise.
6391         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
6392         when reassigning a pseudo register.  Load reloadreg from 
6393         reload_reg_rtx_for_input, moving the mode and register
6394         calculation to...
6395         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
6396         instead of the original when deciding whether an input reload
6397         would be a no-op or whether an output reload can be deleted.
6398         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
6399         when setting up new_spill_reg_store.  Load it from
6400         reload_reg_rtx_for_output, moving the mode and register
6401         calculation to...
6402         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
6403         instead of the original when deciding whether an output reload
6404         would be a no-op.  Do the same when modifying insn notes.
6405         Use rtx_equal_p instead of == to compare the registers.
6406         (inherit_piecemeal_p): Take a mode and two register numbers
6407         as argument.
6408         (emit_reload_insns): Clear new_spill_reg_store for every hard
6409         register in the reload register.  Remove spill registers
6410         from reg_reloaded_valid before considering whether to record
6411         inheritance information for them.  Use reload_reg_rtx_for_output
6412         instead of reg_rtx when recording output reloads.  Use
6413         reload_reg_rtx_for_input instead of reg_rtx when recording
6414         input reloads.  Set or clear reg_reloaded_call_part_clobbered
6415         at the same time as setting reg_reloaded_valid.
6416         (delete_output_reload): Add a new_reload_reg parameter and use it
6417         instead of rld[j].reg_rtx.
6418         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
6419         calls accordingly.
6420
6421 2008-03-25  Tom Tromey  <tromey@redhat.com>
6422
6423         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
6424         (build/genattr.o): Likewise.
6425         (build/genattrtab.o): Likewise.
6426         (build/gencodes.o): Likewise.
6427         (build/genconfig.o): Likewise.
6428         (build/genconstants.o): Likewise.
6429         (build/genemit.o): Likewise.
6430         (build/genextract.o): Likewise.
6431         (build/genflags.o): Likewise.
6432
6433 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
6434         
6435         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
6436         instead of size_int for integer types.
6437         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
6438         to match type of MINUS_EXPR.
6439         
6440 2008-03-25  Tom Tromey  <tromey@redhat.com>
6441
6442         * configure: Rebuilt.
6443         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
6444         Makefile.
6445
6446 2008-03-25  Tom Tromey  <tromey@redhat.com>
6447
6448         * config/x-solaris (host-solaris.o): Update.
6449         * config/x-linux (host-linux.o): Update.
6450         * config/x-hpux (host-hpux.o): Update.
6451         * config/x-darwin (host-darwin.o): Update.
6452         * config/v850/t-v850e (v850-c.o): Update.
6453         * config/v850/t-v850 (v850-c.o): Update.
6454         * config/t-vxworks (vxworks.o): Update.
6455         * config/t-sol2 (sol2-c.o, sol2.o): Update.
6456         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
6457         * config/spu/t-spu-elf (spu-c.o): Update.
6458         (spu.o): Remove.
6459         * config/sh/t-symbian (sh-c.o): Update.
6460         (symbian.o): Update.
6461         * config/sh/t-sh (sh-c.o): Update.
6462         * config/score/t-score-elf (score7.o, score3.o): Update.
6463         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
6464         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
6465         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
6466         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
6467         (rs6000.o): Remove.
6468         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
6469         * config/m32c/t-m32c (m32c-pragma.o): Update.
6470         * config/ia64/t-ia64 (ia64-c.o): Update.
6471         * config/i386/x-mingw32 (host-mingw32.o): Update.
6472         * config/i386/x-i386 (driver-i386.o): Update.
6473         * config/i386/x-darwin (host-i386-darwin.o): Update.
6474         * config/i386/x-cygwin (host-cygwin.o): Update.
6475         * config/i386/t-nwld (nwld.o): Update.
6476         * config/i386/t-netware (netware.o): Update.
6477         * config/i386/t-interix (winnt.o): Update.
6478         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
6479         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
6480         msformat-c.o): Update.
6481         * config/bfin/t-bfin-linux (generated_files): Add
6482         linux-sysroot-suffix.h.
6483         * config/arm/t-wince-pe (pe.o): Update.
6484         * config/arm/t-strongarm-pe (pe.o): Update.
6485         * config/arm/t-pe (pe.o): Update.
6486         * config/arm/t-arm (arm-c.o): Update.
6487         * doc/install.texi (Prerequisites): Require make 3.80.
6488         * Makefile.in: Remove .o targets.
6489         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
6490         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
6491         (simple_generated_h, simple_generated_c): Move earlier.
6492         (generated_files): New variable.
6493         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
6494         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
6495         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
6496         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
6497         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
6498         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
6499         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
6500         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
6501         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
6502         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
6503         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
6504         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
6505         (.c.o): Remove.
6506         (COMPILE.base, COMPILE): New variables.
6507         (%.o): New pattern rule.
6508         (ALL_HOST_OBJS): New variable.
6509         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
6510         (dummy-checksum.o, cc1-checksum.o): Remove.
6511         (DRIVER_SHLIB): New variable.
6512         (DRIVER_DEFINES): Use it.
6513         (gencondmd.c): Move out of build/.
6514         (s-conditions): Update.
6515         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
6516         (ALL_BUILD_OBJS): Likewise.
6517         (build/%.o): Use BUILDCOMPILE.
6518         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
6519         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
6520         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
6521         build/gencheck.o, build/gencodes.o, build/genconditions.o,
6522         build/genconfig.o, build/genconstants.o, build/genemit.o,
6523         build/genextract.o, build/genflags.o, build/genmddeps.o,
6524         build/genopinit.o, build/genoutput.o, build/genpeep.o,
6525         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
6526         build/gen-protos.o, build/scan.o, build/fix-header.o,
6527         build/scan-decls.o): Simplify.
6528         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
6529         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
6530         prefix.o, toplev.o): Reduce to variable setting.
6531         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
6532         ($(out_object_file), gcc-options.o): New targets.
6533         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
6534         * configure: Rebuilt.
6535         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
6536         * doc/sourcebuild.texi (Front End Directory): Document new variable.
6537
6538 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
6539
6540         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
6541         complain when we hit an error, return ERROR_MARK_NODE.
6542
6543 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
6544
6545         * config/sh/constraints.md (Pso, Psz): New constraints.
6546         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
6547         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
6548
6549 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
6550
6551         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
6552         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
6553
6554 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
6555
6556         * config/sh/sh.md (prefetch): Add condition for SH2A target.
6557         (prefetch_sh2a): New.   
6558
6559 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
6560             Naveen.H.S  <naveen.hs@kpitcummins.com>
6561
6562         * config/sh/constraints.md (I28): New constraint.
6563         * config/sh/sh.c (broken_move): Add support for movi20s.
6564         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
6565
6566 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
6567             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
6568             Naveen.H.S  <naveen.hs@kpitcummins.com>
6569
6570         * config/sh/sh.c (SH_ATTRIBUTES): Define.
6571         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
6572         (print_operand): Handle resbank in %@ operand code.
6573         (sh_encode_section_info): New.
6574         (push_regs): Add conditions for resbank.
6575         (sh_expand_epilogue): Likewise.
6576         (sh_insert_attributes): Likewise.
6577         (sh_attribute_table): Likewise.
6578         (sh_handle_resbank_handler_attribute): New.
6579         (sh2a_handle_function_vector_handler_attribute): New.
6580         (sh2a_is_function_vector_call): New.
6581         (sh2a_get_function_vector_number): New.
6582         (sh2a_function_vector_p): New.
6583         (sh_cfun_resbank_handler_p): New.
6584         * config/sh/sh.md (calli): Emit jsr/n if possible.
6585         (calli_tbr_rel): New.
6586         (calli_pcrel): Emit jsr/n if possible.
6587         (return_i): Emit rts/n if possible.
6588         (call_valuei_tbr_rel): New.
6589         (call_valuei_pcrel): Add condition for SH2A target.
6590         (call_value): Likewise.
6591         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
6592         (sh2a_get_function_vector_number): Likewise.
6593         (sh2a_is_function_vector_call): Likewise.
6594         * doc/extend.texi: Document TBR relative addressing of SH2A.
6595         (resbank): Add description for SH2A.
6596
6597 2008-03-24  Richard Guenther  <rguenther@suse.de>
6598
6599         PR c/22371
6600         * gimplify.c (gimplify_modify_expr): For frontend type-correct
6601         pointer assignments change conversions according to middle-end rules.
6602         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
6603         * configure.ac: Include type checking in yes.
6604         * configure: Regenerate.
6605
6606 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6607
6608         * diagnostic.c (diagnostic_count_diagnostic): Delete.
6609         (diagnostic_report_diagnostic): Update. Handle ICEs here.
6610         
6611 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
6612
6613         * gthr-vxworks.h (UNUSED): Define.
6614
6615 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
6616
6617         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
6618
6619 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
6620
6621         * doc/extend.texi (Function Attributes): Add missing comma in the
6622         example of the "alloc_size" attribute.
6623         
6624 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
6625
6626         Revert:
6627         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
6628
6629         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
6630         32bit host.
6631
6632         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
6633
6634         PR target/35496
6635         * stor-layout.c (update_alignment_for_field): Set minimum alignment
6636         of the underlying type of a MS bitfield layout to the natural
6637         alignment of the type.
6638
6639         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
6640
6641         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
6642         to their natural alignment to avoid store forwarding stalls.
6643
6644 2008-03-22  Richard Guenther  <rguenther@suse.de>
6645
6646         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
6647         For PHI nodes verify the address is invariant.
6648         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
6649         (get_symbol_constant_value): Use is_gimple_min_invariant.
6650         (maybe_fold_stmt_indirect): Likewise.
6651
6652 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
6653
6654         PR rtl-optimization/33927
6655         * Makefile.in (dse.o): Depend on $(TM_P_H).
6656         * expr.h (extract_low_bits): Declare.
6657         * expmed.c (extract_low_bits): New function.
6658         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
6659         * dse.c: Include tm_p.h.
6660         (find_shift_sequence): Remove the read_reg argument and return the
6661         read value.  Emit the instructions instead of returning them.
6662         Iterate on new_mode rather than calculating it each time.
6663         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
6664         source to NEW_MODE and extract_low_bits to convert the shifted
6665         value to READ_MODE.
6666         (replace_read): Allow the load and store to have different mode
6667         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
6668         or extraction instructions before trying the replacement.  Update
6669         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
6670
6671 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
6672
6673         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
6674         to their natural alignment to avoid store forwarding stalls.
6675
6676 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6677
6678         PR target/27946
6679         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
6680         encouraging but not allowing gprs for input;
6681         change the input constraint to !f#r.
6682         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
6683         gprs for output;
6684         change the output constraint to !f#r.
6685
6686 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
6687
6688         PR target/13958
6689         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
6690         corresponding post-reload splitters.
6691         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
6692         when x87 FP math is selected.
6693         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
6694         New function prototype.
6695         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
6696         unreachable function to ease macroization of insn patterns.
6697
6698 2008-03-21  Martin Jambor  <mjambor@suse.cz>
6699
6700         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
6701         reference dumps if ddr is NULL or dependence is unknown.
6702
6703 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
6704
6705         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
6706         unsigned extension into account.
6707         (ATOMIC_COMPARE_AND_SWAP): Likewise.
6708         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
6709         Do computations on a scratch register.
6710
6711 2008-03-21  Richard Guenther  <rguenther@suse.de>
6712
6713         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
6714         Use is_gimple_min_invariant instead of TREE_INVARIANT.
6715         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
6716         * tree-ssa-dom.c (record_equality): Likewise.
6717         * tree-inline.c (copy_body_r): Likewise.
6718         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
6719         TREE_INVARIANT.
6720
6721 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
6722
6723         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
6724         as 'delete_unused' argument.
6725
6726 2008-03-20  Richard Guenther  <rguenther@suse.de>
6727
6728         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
6729         special casing of constant qualifiers.
6730         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
6731         care about them in general.
6732         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
6733         regardless of their type.
6734         (fold_stmt_r): Forcefully fold *& if we end up with that.
6735
6736 2008-03-20  Paul Brook  <paul@codesourcery.com>
6737
6738         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
6739         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
6740         linker flags.
6741         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
6742         definition.
6743         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
6744         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
6745
6746 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
6747
6748         * common.opt (Wmudflap): New option.
6749         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
6750         (mx_register_decls): Likewise.
6751         (mudflap_finish_file): Likewise.
6752         * doc/invoke.texi: Document -Wno-mudflap.
6753
6754 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
6755
6756         * c-format.c (replace_format_name_to_system_name): New.
6757         (cmp_attribs): New.
6758         (convert_format_name_to_system_name): New.
6759         (decode_format_attr): Add use of convert_format_name_to_system_name.
6760         (format_types_orig): Add gnu_ prefix to names.
6761         (check_format_info_main): Special treating of \0 escaped names for
6762         supporting multi-character format specifiers as I32, I64.
6763         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
6764         (gnu_target_overrides_format_attributes): New.
6765         * c-format.h: Add structure target_ovr_attr to hold
6766         system specific formatter names.
6767         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
6768         msformat-c.o file to c_target_objs and cxx_target_objs.
6769         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
6770         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
6771         (TARGET_N_FORMAT_TYPES): New.
6772         * config/i386/msformat-c.c: New.
6773         * config/i386/t-cygming: Add build rule for msformat-c.o.
6774         * doc/extend.texi: Add new format names gnu_* and ms_* and
6775         further details.
6776         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
6777
6778 2008-03-20  Ira Rosen  <irar@il.ibm.com>
6779
6780         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
6781         optimizations turned on under -O3.
6782         (ftree-vectorize): Add that the flag is turned on with -O3.
6783
6784 2008-03-20  Ben Elliston  <bje@au.ibm.com>
6785
6786         * regmove.c (try_auto_increment): Fix spelling error in comment.
6787         * final.c (final_scan_insn): Likewise.
6788
6789 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
6790
6791         PR target/14552
6792         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
6793         allocator preferences for "y" and "r" class registers.
6794         ("*mov<mode>_internal"): Ditto.
6795         ("*movv2sf_internal_rex64"): Ditto.
6796         ("*movv2sf_internal"): Ditto.
6797
6798 2008-03-19  Michael Matz  <matz@suse.de>
6799
6800         PR middle-end/35616
6801         * calls.c (expand_call): Check overlap of arguments with call
6802         address for sibcalls.
6803
6804 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
6805
6806         PR target/35496
6807         * stor-layout.c (update_alignment_for_field): Set minimum alignment
6808         of the underlying type of a MS bitfield layout to the natural
6809         alignment of the type.
6810
6811 2008-03-19  Jan Hubicka  <jh@suse.cz>
6812
6813         PR other/35094
6814         * toplev.c (decode_d_option): Handle all CPP flags.
6815         * tree-vrp.c: Update tree_pass descriptors.
6816         * regrename.c: Update tree_pass descriptors.
6817         * fwprop.c: Update tree_pass descriptors.
6818         * doc/invoke.texi: Remove documentation of dropped -d? flags.
6819         * tree-into-ssa.c: Update tree_pass descriptors.
6820         * tree-dump.c: Update tree_pass descriptors.
6821         * tree-complex.c: Update tree_pass descriptors.
6822         * tree-dump.h: Update tree_pass descriptors.
6823         * see.c: Update tree_pass descriptors.
6824         * cgraphbuild.c: Update tree_pass descriptors.
6825         * tracer.c: Update tree_pass descriptors.
6826         * tree-loop-distribution.c: Update tree_pass descriptors.
6827         * cgraph.c: Update tree_pass descriptors.
6828         * postreload-gcse.c: Update tree_pass descriptors.
6829         * postreload.c: Update tree_pass descriptors.
6830         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
6831         * tree-tailcall.c: Update tree_pass descriptors.
6832         * tree-pass.h (tree_opt_pass): Rename to ...
6833         (opt_pass) ... this one; add "type" field and remove letter field.
6834         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
6835         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
6836         all_lowering_passes): Update declaration.
6837         * ipa-cp.c: Update tree_pass descriptors.
6838         * final.c: Update tree_pass descriptors.
6839         * omp-low.c: Update tree_pass descriptors.
6840         * tree-ssa-dse.c: Update tree_pass descriptors.
6841         * ipa-reference.c: Update tree_pass descriptors.
6842         * tree-ssa-uncprop.c: Update tree_pass descriptors.
6843         * auto-inc-dec.c: Update tree_pass descriptors.
6844         * reorg.c: Update tree_pass descriptors.
6845         * cgraphunit.c: Update tree_pass descriptors.
6846         * tree-ssa-copyrename.c: Update tree_pass descriptors.
6847         * tree-ssa-ccp.c: Update tree_pass descriptors.
6848         * df-core.c: Update tree_pass descriptors.
6849         * mode-switching.c: Update tree_pass descriptors.
6850         * tree-nomudflap.c: Update tree_pass descriptors.
6851         * modulo-sched.c: Update tree_pass descriptors.
6852         * ipa-pure-const.c: Update tree_pass descriptors.
6853         * cse.c: Update tree_pass descriptors.
6854         * web.c: Update tree_pass descriptors.
6855         * tree-stdarg.c: Update tree_pass descriptors.
6856         * tree-ssa-math-opts.c: Update tree_pass descriptors.
6857         * tree-ssa-dom.c: Update tree_pass descriptors.
6858         * tree-nrv.c: Update tree_pass descriptors.
6859         * tree-ssa-alias.c: Update tree_pass descriptors.
6860         * loop-init.c: Update tree_pass descriptors.
6861         * gimple-low.c: Update tree_pass descriptors.
6862         * ipa-inline.c: Update tree_pass descriptors.
6863         * tree-ssa-sink.c: Update tree_pass descriptors.
6864         * global.c: Update tree_pass descriptors.
6865         * ifcvt.c: Update tree_pass descriptors.
6866         * jump.c: Update tree_pass descriptors.
6867         * predict.c: Update tree_pass descriptors.
6868         * tree-ssa-loop.c: Update tree_pass descriptors.
6869         * recog.c: Update tree_pass descriptors.
6870         * dse.c: Update tree_pass descriptors.
6871         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
6872         * tree-eh.c: Update tree_pass descriptors.
6873         * regmove.c: Update tree_pass descriptors.
6874         * local-alloc.c
6875         * function.c: Update tree_pass descriptors.
6876         * tree-vectorizer.c: Update tree_pass descriptors.
6877         * gcse.c: Update tree_pass descriptors.
6878         * ipa-type-escape.c: Update tree_pass descriptors.
6879         * tree-if-conv.c: Update tree_pass descriptors.
6880         * init-regs.c: Update tree_pass descriptors.
6881         * ipa.c: Update tree_pass descriptors.
6882         * tree-ssa-phiopt.c: Update tree_pass descriptors.
6883         * rtl-factoring.c: Update tree_pass descriptors.
6884         * lower-subreg.c: Update tree_pass descriptors.
6885         * bt-load.c: Update tree_pass descriptors.
6886         * tree-dfa.c: Update tree_pass descriptors.
6887         * except.c: Update tree_pass descriptors.
6888         * emit-rtl.c: Update tree_pass descriptors.
6889         * cfgexpand.c: Update tree_pass descriptors.
6890         * tree-cfgcleanup.c: Update tree_pass descriptors.
6891         * cfgcleanup.c: Update tree_pass descriptors.
6892         * tree-ssa-pre.c: Update tree_pass descriptors.
6893         * tree-sra.c: Update tree_pass descriptors.
6894         * tree-mudflap.c: Update tree_pass descriptors.
6895         * tree-ssa-copy.c: Update tree_pass descriptors.
6896         * cfglayout.c: Update tree_pass descriptors.
6897         * tree-ssa-forwprop.c: Update tree_pass descriptors.
6898         * tree-ssa-dce.c: Update tree_pass descriptors.
6899         * tree-ssa.c: Update tree_pass descriptors.
6900         * regclass.c: Update tree_pass descriptors.
6901         * integrate.c: Update tree_pass descriptors.
6902         * tree-optimize.c: Update tree_pass descriptors.
6903         * tree-ssa-phiprop.c: Update tree_pass descriptors.
6904         * tree-object-size.c: Update tree_pass descriptors.
6905         * combine.c: Update tree_pass descriptors.
6906         * tree-outof-ssa.c: Update tree_pass descriptors.
6907         * bb-reorder.c: Update tree_pass descriptors.
6908         * stack-ptr-mod.c: Update tree_pass descriptors.
6909         * var-tracking.c: Update tree_pass descriptors.
6910         * tree-profile.c: Update tree_pass descriptors.
6911         * tree-vect-generic.c: Update tree_pass descriptors.
6912         * reg-stack.c: Update tree_pass descriptors.
6913         * sched-rgn.c: Update tree_pass descriptors.
6914         * tree-ssa-structalias.c: Update tree_pass descriptors.
6915         * tree-cfg.c: Update tree_pass descriptors.
6916         * passes.c (current_pass): Update declaration.
6917         (finish_optimization_passes): Update.
6918         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
6919         (register_one_dump_file, register_dump_files_1, next_pass_1):
6920         Update arguments.
6921         (init_optimization_passes): Update handling of new types.
6922         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
6923         * ipa-struct-reorg.c: Update tree_pass descriptors.
6924         * tree-ssa-reassoc.c: Update tree_pass descriptors.
6925         * combine-stack-adj.c: Update tree_pass descriptors.
6926         * cfgrtl.c: Update tree_pass descriptors.
6927         * dce.c: Update tree_pass descriptors.
6928         * tree-ssanames.c: Update tree_pass descriptors.
6929
6930 2008-03-19  Richard Guenther  <rguenther@suse.de>
6931
6932         PR middle-end/35609
6933         * tree-ssa.c (walk_data): New structure.
6934         (warn_uninitialized_var): If not always_executed warn with "maybe"
6935         instead of "is".
6936         (execute_early_warn_uninitialized): Compute post-dominators.
6937         Initialize always_executed before processing each basic block.
6938
6939 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
6940
6941         PR target/35504
6942         * config/i386/i386.c (x86_this_parameter): Calculate correct location
6943         of "this" pointer when "regparm = N" or "fastcall" is in effect.
6944
6945 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6946
6947         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
6948
6949 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
6950
6951         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
6952         is true.
6953         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
6954         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
6955         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
6956         target after ignore has been set, and move there also the commputation
6957         of subtarget and original_target.
6958         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
6959         (LANG_HOOKS_INITIALIZER): Remove it.
6960         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
6961
6962 2008-03-18  Richard Guenther  <rguenther@suse.de>
6963
6964         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
6965         found an expression with constants, note that in the VN for the lhs.
6966         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
6967         fold them to constants if possible.  Run cleanup_cfg if done so.
6968         (execute_pre): Return todo.
6969         (do_pre): Likewise.
6970         (execute_fre): Likewise.
6971         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
6972         of constants.
6973         (get_prop_source_stmt): Look through pointer conversions.
6974
6975 2008-03-18  Jan Hubicka  <jh@suse.cz>
6976
6977         * tree-pretty-print.c: Include predict.h.
6978         (dump_generic_node): Dump predictor.
6979         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
6980         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
6981         * gimple-low.c (lower_stmt): Likewise.
6982         * expr.c (expand_expr_real): Likewise.
6983         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
6984         them.
6985         (build_predict_expr, build_predict_expr): New.
6986         * predict.h (predictor_name, build_predict_expr): Update.
6987         * c-typeck.c (c_finish_bc_stmt): Add prediction.
6988         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
6989         * predict.def (PRED_CONTINUE): Update hitrate.
6990         * tree.def (PREDICT_EXPR): Define.
6991         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
6992         do not handle BIND_EXPR.
6993         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
6994         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
6995         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
6996         operands.
6997
6998 2008-03-18  Michael Matz  <matz@suse.de>
6999
7000         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
7001
7002 2008-03-18  Richard Guenther  <rguenther@suse.de>
7003
7004         * tree-gimple.h (is_gimple_invariant_address): Declare.
7005         (is_gimple_constant): Likewise.
7006         * tree-gimple.c (is_gimple_constant): New function.
7007         (is_gimple_invariant_address): Likewise.
7008         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
7009         and is_gimple_invariant_address.
7010         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
7011         previous change.
7012         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
7013         an addressable base.
7014
7015 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
7016
7017         PR middle-end/35611
7018         * gimplify.c (gimplify_expr): Gimplify second operand of
7019         OMP_ATOMIC_LOAD.
7020
7021 2008-03-17  Richard Guenther  <rguenther@suse.de>
7022
7023         PR tree-optimization/19637
7024         * fold-const.c (fold_unary): Remove restrictions of removing
7025         intermediate pointer-conversions (P2)(P1)P0.
7026         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
7027         conversion to void pointer.
7028         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
7029
7030 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
7031
7032         PR debug/31510
7033         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
7034         emulated thread local variables.
7035
7036 2008-03-16  Richard Guenther  <rguenther@suse.de>
7037
7038         PR middle-end/35607
7039         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
7040         expand TREE_INVARIANT operations that are not gimple invariant.
7041
7042 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
7043
7044         * doc/extend.texi (Alignment): Say that the ABI controls
7045         the __alignof__ for non-strict-alignment targets rather
7046         than being a recommendation.
7047
7048 2008-03-15  Paul Brook  <paul@codesourcery.com>
7049
7050         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
7051         annotations.
7052         (arm_output_fn_unwind): Mark functions that can not be unwound.
7053
7054 2008-03-15  Paul Brook  <paul@codesourcery.com>
7055
7056         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
7057         extension instructions.
7058
7059 2008-03-15  Richard Guenther  <rguenther@suse.de>
7060
7061         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
7062         and fold constant aggregate refs.
7063         (fold_const_aggregate_ref): Handle string constants
7064         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
7065         (evaluate_stmt): Simplify now that ccp_fold folds constant
7066         aggregate refs.
7067
7068 2008-03-15  Paul Brook  <paul@codesourcery.com>
7069
7070         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
7071         (extzv): Use gen_extzv_t2.
7072         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
7073
7074 2008-03-15  Richard Guenther  <rguenther@suse.de>
7075
7076         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
7077         (fold_const_aggregate_ref): Likewise.
7078         (get_value): Return NULL if we don't have any values.
7079         (ccp_finalize): Set const_val to NULL after freeing it.
7080         * tree-flow.h (get_symbol_constant_value): Declare.
7081         (fold_const_aggregate_ref): Likewise.
7082         * tree-ssa-sccvn.c (try_to_simplify): Use them.
7083
7084 2008-03-15  Richard Guenther  <rguenther@suse.de>
7085
7086         PR middle-end/35593
7087         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
7088         to not produce negative array indices if not allowed.  Add
7089         parameter to indicate that.
7090         (maybe_fold_offset_to_component_ref): Allow negative array
7091         indices only for the first member of a structure.
7092         (maybe_fold_offset_to_reference): Allow negative array indices.
7093         (maybe_fold_stmt_addition): Likewise.
7094
7095 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
7096             Anatoly Sokolov <aesok@post.ru>
7097
7098         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
7099         (avr_arch): Add ARCH_AVR6.
7100         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
7101         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
7102         instead of fixed value 2.
7103         (print_operand_address): Use gs() asm specifier instead of pm().
7104         (avr_assemble_integer): (Ditto.).
7105         (avr_output_addr_vec_elt): (Ditto.).
7106         (print_operand): Handle "!" code.
7107         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
7108         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
7109         (AVR_HAVE_EIJMP_EICALL): Define.
7110         (AVR_3_BYTE_PC): Redefine.
7111         (AVR_2_BYTE_PC): (Ditto.).
7112         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
7113         (LINK_SPEC): Add atmega2560 and atmega2561.
7114         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
7115         (crtm2561.o).
7116         * config/avr/avr.md (call_insn): Use eicall instead of icall 
7117         for 3 byte PC devices.
7118         (call_value_insn): (Ditto.).
7119         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
7120         (indirect_jump): Use only for for 2 byte PC devices.
7121         (*tablejump): (Ditto.).
7122         (*indirect_jump_avr6): Add insn.
7123         (*tablejump_rjmp): Don't use for 3 byte PC devices.
7124         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
7125         instead of ijmp for 3 byte PC devices.
7126         (__tablejump2__): (Ditto.).
7127         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
7128         (MULITLIB_DIRNAMES): (Ditto.). 
7129         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
7130
7131 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
7132
7133         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
7134         "sse2_umulsidi3".  Use V1DI mode for operand 0.
7135         ("mmx_psadbw"): Use V1DI mode for operand 0.
7136         * config/i386/i386-modes.def (V1SI): New vector mode.
7137         * config/i386/i386.c (struct builtin_description)
7138         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
7139         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
7140         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
7141         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
7142         v1di_ftype_v8qi_v8qi type.
7143         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
7144
7145         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
7146         __builtin_ia32_pmuludq]: Fix the mode of return value.
7147
7148 2008-03-15  Richard Guenther  <rguenther@suse.de>
7149
7150         PR middle-end/35595
7151         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
7152         being a PHI_NODE.
7153
7154 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
7155         
7156         * doc/invoke.texi (Option Summary, Xtensa Options): Document
7157         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
7158         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
7159         unless TARGET_SERIALIZE_VOLATILE is enabled.
7160         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
7161         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
7162         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
7163
7164 2008-03-14  Richard Guenther  <rguenther@suse.de>
7165
7166         PR tree-optimization/34172
7167         * tree-flow.h (refs_may_alias_p): Declare.
7168         (get_single_def_stmt): Likewise.
7169         (get_single_def_stmt_from_phi): Likewise.
7170         (get_single_def_stmt_with_phi): Likewise.
7171         * tree-dfa.c (refs_may_alias_p): New function.
7172         (get_single_def_stmt): Likewise.
7173         (get_single_def_stmt_from_phi): Likewise.
7174         (get_single_def_stmt_with_phi): Likewise.
7175         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
7176         (vn_reference_lookup_1): New helper function.
7177         (vn_reference_lookup): Walk the virtual use-def chain to
7178         continue searching for a match if the def does not alias the
7179         reference we are looking for.
7180
7181 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
7182
7183         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
7184         archive and Perzl.  Update The Written Word listing.
7185
7186 2008-03-14  Richard Guenther  <rguenther@suse.de>
7187
7188         PR tree-optimization/34043
7189         PR tree-optimization/33989
7190         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
7191         when doing FRE.
7192         (bitmap_find_leader): Use extra argument to verify dominance
7193         relationship inside a basic-block.
7194         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
7195         (find_leader_in_sets): Adjust.
7196         (create_component_ref_by_pieces): Take extra argument for
7197         dominance check, handle lookup failures.
7198         (find_or_generate_expression): Likewise.
7199         (create_expression_by_pieces): Likewise.
7200         (insert_into_preds_of_block): Adjust.
7201         (create_value_expr_from): If asked for, verify all operands
7202         are in the blocks AVAIL_OUT set.
7203         (make_values_for_stmt): Check for SSA_NAMEs that are life
7204         over an abnormal edge.
7205         (compute_avail): Remove such check.
7206         (do_SCCVN_insertion): New function.
7207         (eliminate): If we do not find a leader suitable for replacement
7208         insert a replacement expression from SCCVN if available.
7209         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
7210         (struct vn_ssa_aux): Add needs_insertion flag.
7211         * tree-ssa-sccvn.c (may_insert): New global flag.
7212         (copy_reference_ops_from_ref): Value-number union member access
7213         based on its size, not type and member if insertion is allowed.
7214         (visit_reference_op_load): For a weak match from union type
7215         punning lookup a view-converted value and insert a SSA_NAME
7216         for that value if that is not found.
7217         (visit_use): Make dumps shorter.  Do not disallow value numbering
7218         SSA_NAMEs that are life over an abnormal edge to constants.
7219         (free_scc_vn): Release inserted SSA_NAMEs.
7220         (run_scc_vn): New flag to specify whether insertion is allowed.
7221         Process SSA_NAMEs in forward order.
7222         * tree-ssa-loop-im.c (for_each_index): Handle invariant
7223         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
7224         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
7225         pointer type to/from integral types that do not change the
7226         precision to regular conversions.
7227
7228 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
7229
7230         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
7231         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
7232         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
7233         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
7234         input arguments and the mode of return value.  Built-in functions
7235         that operate on whole 64-bit MMX register now use V1DI mode.
7236
7237 2008-03-13  Alon Dayan  <alond@il.ibm.com>
7238             Olga Golovanevsky  <olga@il.ibm.com>
7239
7240         PR tree-optimization/35041
7241         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
7242         to locate the right position in a statement.
7243
7244 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
7245
7246         PR target/34000
7247         PR target/35553
7248         * config/i386/xmmintrin.h:  Change all static inline functions to
7249         extern inline and add __gnu_inline__ attribute.
7250         * config/i386/bmintrin.h: Ditto.
7251         * config/i386/smmintrin.h: Ditto.
7252         * config/i386/tmmintrin.h: Ditto.
7253         * config/i386/mmintrin-common.h: Ditto.
7254         * config/i386/ammintrin.h: Ditto.
7255         * config/i386/emmintrin.h: Ditto.
7256         * config/i386/pmmintrin.h: Ditto.
7257         * config/i386/mmintrin.h: Ditto.
7258         * config/i386/mm3dnow.h: Ditto.
7259
7260 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
7261
7262         PR middle-end/35185
7263         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
7264         (lower_omp_2): New function.
7265         (lower_omp_1, lower_omp): Rewritten.
7266
7267 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
7268
7269         PR 35054
7270         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
7271         with the phrase "Microsoft Windows compilers".
7272         (Push/Pop Macro Pragmas): New subsection. Document
7273         #pragma push_macro and pragma pop_macro.
7274
7275 2008-03-12  Paul Brook  <paul@codesourcery.com>
7276
7277         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
7278
7279 2008-03-12  Paul Brook  <paul@codesourcery.com>
7280
7281         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
7282         (thumb2_alusi3_short): Exclude PLUS and MINUS.
7283         (thumb2_addsi_shortim): Rename ...
7284         (thumb2_addsi_short): ... to this.  Allow register operands.
7285         (thumb2_subsi_short): New pattern.
7286         (thumb2_one_cmplsi2_short,
7287         thumb2_negsi2_short): New patterns and peepholes.
7288
7289 2008-03-12  Paul Brook  <paul@codesourcery.com>
7290
7291         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
7292
7293 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
7294
7295         * config/i386/i386.md (int_cond): New code iterator.
7296         (fp_cond): Ditto.
7297         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
7298         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
7299         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
7300         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
7301         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
7302         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
7303         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
7304         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
7305
7306 2008-03-12  Paul Brook  <paul@codesourcery.com>
7307
7308         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
7309         instead of {arm,thumb}_compute_save_reg_mask.
7310         (output_return_instruction): Ditto.
7311         (thumb_unexpanded_epilogue): Ditto.
7312         (thumb1_expand_prologue): Ditto.
7313         (thumb1_output_function_prologue): Ditto.
7314         (arm_set_return_address): Ditto.
7315         (thumb_set_return_address): Ditto.
7316         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
7317         regs to achieve stack alignment.
7318         (thumb1_compute_save_reg_mask): Fix compiler warning.
7319         (arm_output_epilogue): Use offsets->saved_regs_mask.
7320         Adjust stack pointer by poping call clobered registers.
7321         (arm_expand_prologue): Use offsets->saved_regs_mask.
7322         Adjust stack pointer by pushing extra registers.
7323         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
7324
7325 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
7326
7327         PR tree-opt/35422
7328         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
7329         conversion to the operands of a multiplication.
7330
7331 2008-03-12  Richard Guenther  <rguenther@suse.de>
7332
7333         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
7334         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
7335         * timevar.def (TV_TREE_PHIPROP): Add.
7336         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
7337         pass description.  Use TV_TREE_PHIPROP.
7338         * tree-ssa-forwprop.c: Remove phiprop code.
7339
7340 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
7341
7342         PR middle-end/35549
7343         * omp-low.c (maybe_lookup_decl): Constify first argument.
7344         (use_pointer_for_field): Change last argument from bool to
7345         omp_context *.  Disallow shared copy-in/out in nested
7346         parallel if decl is shared in outer parallel too.
7347         (build_outer_var_ref, scan_sharing_clauses,
7348         lower_rec_input_clauses, lower_copyprivate_clauses,
7349         lower_send_clauses, lower_send_shared_vars): Adjust callers.
7350
7351 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
7352             Ira Rosen  <irar@il.ibm.com>
7353
7354         * tree-vectorizer.c (free_stmt_vec_info): New function.
7355         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
7356         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
7357         * tree-vectorizer.h (free_stmt_vec_info): Declare.
7358         * tree-vect-transform.c (vectorizable_conversion): Free
7359         vec_oprnds0 if it was allocated.
7360         (vect_permute_store_chain): Remove unused VECs.
7361         (vectorizable_store): Free VECs that are allocated in the..
7362         function.
7363         (vect_transform_strided_load, vectorizable_load): Likewise.
7364         (vect_remove_stores): Simplify the code.
7365         (vect_transform_loop): Move code to vect_remove_stores().
7366         Call vect_remove_stores() and free_stmt_vec_info().
7367
7368 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7369
7370         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
7371         TARGET_HPUX.  Revise comment.
7372         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
7373         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
7374         Use sr4 variant of `be' instruction when not generating PIC code.
7375         (attr_length_call): Adjust for above change.
7376
7377 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7378
7379         * ipa-reference.c (static_execute): Remove module_statics_const and
7380         associated setting code.
7381
7382 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
7383
7384         PR target/35540
7385         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
7386         predicate for operand 1.
7387         (paritysi2_cmp): Use register_operand predicate for operand 2.
7388         Use earlyclobber modifier for operand 1.  Remove support for
7389         memory operands.
7390         (paritydi2_cmp): Use register_operand predicate for operand 3.
7391         Use earlyclobber modifier for operand 1.  Remove support for
7392         memory operands.
7393
7394 2008-03-11  Paul Brook  <paul@codesourcery.com>
7395             Vladimir Prus  <vladimir@codesourcery.com>
7396
7397         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
7398         (arm_compute_save_reg0_reg12_mask): Always
7399         check if register 11 must be saved.  Always safe hard frame pointer
7400         when frame_pointer_needeed.
7401         (arm_compute_save_reg_mask): Save IP and PC
7402         only with apcs frames.
7403         (arm_output_epilogue): Adjust Thumb2 codepath to
7404         be also invoked and work for ARM non-apcs frames.
7405         (arm_expand_prologue): Don't bother saving IP
7406         for non-apcs frame, since it's not clobbered by
7407         prologue code.  Implement non-apcs frame
7408         layout.
7409
7410 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
7411
7412         PR rtl-optimization/35281
7413         * expr.c (convert_move): Use a new pseudo for the intermediate
7414         from_mode->word_mode result.
7415
7416 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
7417
7418         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
7419         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
7420         * toplev.c (compile_file): Don't call it.
7421
7422 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
7423
7424         PR middle-end/35526
7425         * expr.c (store_expr): Call emit_block_move if the mode
7426         of "temp" RTX is BLKmode.
7427
7428 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7429             Richard Guenther  <rguenther@suse.de>
7430
7431         PR tree-optimization/31358
7432         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
7433         the step with a NULL_TREE.
7434         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
7435         to sizetype if type is a pointer type.
7436         (add_candidate_1): Don't convert the base and step to
7437         the generic type if the orginal type is a pointer type.
7438         (add_iv_value_candidates): Use sizetype for the step
7439         if type is a pointer type.
7440         (cand_value_at): Likewise.
7441         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
7442         for pointer types.
7443         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
7444         Don't convert the tem affine to the type.
7445         (add_elt_to_tree): Use sizetype for the step if a pointer.
7446         Use POINTER_PLUS_EXPR for pointers.
7447         (aff_combination_to_tree): Use sizetype for the step if a
7448         pointer.
7449
7450 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
7451
7452         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
7453         Remove commutativity hint.
7454
7455 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
7456
7457         PR c/35438
7458         PR c/35439
7459         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
7460         errorneous type.  Check that v is a VAR_DECL.
7461
7462         PR middle-end/35099
7463         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
7464
7465 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
7466
7467         PR tree-optimization/35494
7468         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
7469         may be overriden at link and run time.
7470
7471 2008-03-10  Richard Guenther  <rguenther@suse.de>
7472
7473         PR tree-optimization/34677
7474         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
7475         (poolify_tree): Likewise.
7476         (modify_expr_template): Likewise.
7477         (poolify_modify_stmt): Likewise.
7478         (insert_fake_stores): Handle all component-ref style stores
7479         in addition to INDIRECT_REF.  Also handle complex types.
7480         Do not poolify the inserted load.
7481         (realify_fake_stores): Do not rebuild the tree but only
7482         make it a SSA_NAME copy.
7483         (init_pre): Remove initialzation of modify_expr_template.
7484         Do not allocate modify_expr_node_pool.
7485         (fini_pre): Do not free modify_expr_node_pool.
7486
7487 2008-03-10  Paul Brook  <paul@codesourcery.com>
7488
7489         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
7490         to avoid conflicts.
7491
7492 2008-03-10  Paul Brook  <paul@codesourcery.com>
7493             Mark Shinwell  <shinwell@codesourcery.com>
7494
7495         * config/arm/cortex-r4.md: New.
7496         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
7497         insn attributes.
7498         * config/arm/arm.md: Include cortex-r4.md.
7499         (insn): Add smmls, sdiv and udiv values.
7500         (generic_sched): Don't use generic scheduling for Cortex-R4.
7501         (arm_issue_rate): New function.
7502         (TARGET_SCHED_ISSUE_RATE): Define.
7503
7504 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
7505
7506         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
7507
7508 2008-03-10  Richard Guenther  <rguenther@suse.de>
7509
7510         * tree-ssa-pre.c (get_sccvn_value): Simplify.
7511         (compute_avail): Do not add stmt uses to AVAIL_OUT.
7512
7513 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
7514
7515         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
7516         Set default to true.
7517
7518 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7519
7520         * c.opt (Wsynth): Deprecate.
7521         * doc/invoke.texi (Option Summary, Warning Options): Document
7522         -Wno-format-contains-nul.
7523
7524 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
7525
7526         PR target/35496
7527         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
7528         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
7529
7530 2008-03-09  Ira Rosen  <irar@il.ibm.com>
7531
7532         * config/rs6000/rs6000.c (builtin_description): Rename vector
7533         left shift operations.
7534         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
7535         (altivec_vsl<VI_char>): Rename to ...
7536         (ashl<mode>3): ... new name.
7537         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
7538         gen_ashlv4si3.
7539         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
7540
7541 2008-03-08  Richard Guenther  <rguenther@suse.de>
7542
7543         * coverage.h (tree_coverage_counter_addr): Declare.
7544         * coverage.c (tree_coverage_counter_addr): New function.
7545         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
7546         before using again.
7547         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
7548         (tree_gen_one_value_profiler): Likewise.
7549         (tree_gen_ic_profiler): Likewise.
7550         (tree_gen_average_profiler): Likewise.
7551         (tree_gen_ior_profiler): Likewise.
7552
7553 2008-03-08  Richard Guenther  <rguenther@suse.de>
7554
7555         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
7556         (vn_binary_op_insert): Likewise.
7557         (vn_unary_op_lookup): Likewise.
7558         (vn_unary_op_insert): Likewise.
7559         (vn_nary_op_lookup): Declare.
7560         (vn_nary_op_insert): Likewise.
7561         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
7562         and binary hashes, use a single obstack for unary_op_pool
7563         and binary_op_pool.
7564         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
7565         a single struct vn_nary_op_s.  Store tree code length and
7566         a variable number of operands.
7567         (struct vn_reference_op_struct): Remove unused op2.
7568         (vn_reference_op_eq): Do not compare op2.
7569         (vn_reference_op_compute_hash): Do not compute hash of op2.
7570         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
7571         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
7572         with vn_nary_op_compute_hash.
7573         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
7574         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
7575         vn_nary_op_lookup.
7576         (vn_unary_op_insert, vn_binary_op_insert): Replace with
7577         vn_nary_op_insert.
7578         (visit_unary_op): Call nary functions.
7579         (visit_binary_op): Likewise.
7580         (process_scc): Adjust for struct vn_tables_s changes.
7581         (allocate_vn_table): Likewise.
7582         (free_vn_table): Likewise.
7583         * tree-vn.c (vn_add): Call nary functions.
7584         (vn_lookup): Likewise.
7585
7586 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
7587
7588         PR target/35498
7589         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
7590         wdst back after sync_compare_and_swapqhi_internal.
7591
7592 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
7593
7594         PR target/22152
7595         * config/i386/i386-modes.def (V1DI): New vector mode.
7596         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
7597         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
7598         (MMXMODE248): Ditto.
7599         (MMXMODE): Add V1DI mode.
7600         (mmxvecsize): Change DI mode to V1DI mode.
7601         ("mov<mode>): Use MMXMODEI8 mode iterator.
7602         ("*mov<mode>_internal_rex64"): Ditto.
7603         ("*mov<mode>_internal"): Ditto.
7604         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
7605         ("mmx_sub<mode>3"): Ditto.
7606         ("mmx_adddi3"): Remove insn pattern.
7607         ("mmx_subdi3"): Ditto.
7608         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
7609         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
7610         ("mmx_ashl<mode>3"): Ditto.
7611         ("mmx_lshrdi3"): Remove insn pattern.
7612         ("mmx_ashldi3"): Ditto.
7613         * config/i386/i386.c (classify_argument): Handle V1DImode.
7614         (function_arg_advance_32): Ditto.
7615         (function_arg_32): Ditto.
7616         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
7617         mmx_addv1di3 insn pattern.
7618         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
7619         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
7620         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
7621         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
7622         Remove definitions of built-in functions.
7623         (V1DI_type_node): New node.
7624         (v1di_ftype_v1di_int): Ditto.
7625         (v1di_ftype_v1di_v1di): Ditto.
7626         (v2si_ftype_v2si_si): Ditto.
7627         (v4hi_ftype_v4hi_di): Remove node.
7628         (v2si_ftype_v2si_di): Ditto.
7629         (ix86_init_mmx_sse_builtins): Handle V1DImode.
7630         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
7631         Redefine builtins using def_builtin_const with *_ftype_*_int node.
7632         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
7633         Add new builtins using def_builtin_const.
7634         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
7635         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
7636         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
7637         * config/i386/mmintrin.h (__v1di): New typedef.
7638         (_mm_add_si64): Cast arguments to __v1di type.
7639         (_mm_sub_si64): Ditto.
7640         (_mm_sll_pi16): Cast __count to __v4hi type.
7641         (_mm_sll_pi32): Cast __count to __v2si type.
7642         (_mm_sll_si64): Cast arguments to __v1di type.
7643         (_mm_srl_pi16): Cast __count to __v4hi type.
7644         (_mm_srl_pi32): Cast __count to __v2si type.
7645         (_mm_srl_si64): Cast arguments to __v1di type.
7646         (_mm_sra_pi16): Cast __count to __v4hi type.
7647         (_mm_sra_pi32): Cast __count to __v2si type.
7648         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
7649         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
7650         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
7651         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
7652         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
7653         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
7654         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
7655         (_mm_srai_pi32): Use __builtin_ia32_psradi.
7656         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
7657         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
7658         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
7659         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
7660
7661 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
7662
7663         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
7664
7665 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
7666
7667         PR target/35373
7668         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
7669         reg+const addressing for Altivec modes.  Don't generate reg+reg
7670         addressing for TFmode or TDmode quantities.
7671
7672 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
7673
7674         * c-common.c (vector_types_convertible_p): Call langhook
7675         instead of comptypes.
7676
7677 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7678
7679         PR tree-opt/35402
7680         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
7681         integral and scalar float variables which have a
7682         NULL DECL_INITIAL.
7683
7684 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
7685
7686         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
7687         dwarf_register_span hook when emitting unwind information for
7688         register-to-memory saves.
7689         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
7690         (rs6000_frame_related): Remove call to spe_synthesize_frame.
7691
7692 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
7693
7694         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
7695         for the same VAR_DECL.
7696
7697 2008-03-06  Tom Tromey  <tromey@redhat.com>
7698
7699         * treelang: Delete.
7700         * doc/standards.texi (Standards): Don't mention treelang.
7701         * doc/invoke.texi (Overall Options): Don't mention treelang.
7702         * doc/install.texi (Prerequisites): Don't mention bison or
7703         treelang.
7704         (Configuration): Don't mention treelang.
7705         (Building): Likewise.
7706         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
7707
7708 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
7709
7710         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
7711         word-extractions out of a multi-word object.
7712
7713 2008-03-06  Richard Guenther  <rguenther@suse.de>
7714
7715         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
7716         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
7717         result type and precision.
7718         * expr.c (get_inner_reference): Set unsignedp based on the result
7719         type of BIT_FIELD_REF.
7720         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
7721         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
7722         (try_instantiate_multiple_fields): Likewise.  Use the correct type
7723         for BIT_FIELD_REF.
7724         (sra_build_assignment): Likewise.
7725         (sra_build_elt_assignment): Likewise.
7726         (sra_explode_bitfield_assignment): Likewise.
7727         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
7728         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
7729         set BIT_FIELD_REF_UNSIGNED.
7730         (vectorizable_load): Likewise.
7731
7732 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
7733
7734         * cse.c (cse_extended_basic_block): Invalidate artificial defs
7735         at bb start.
7736
7737 2008-03-06  Richard Guenther  <rguenther@suse.de>
7738
7739         * alias.c (struct alias_set_entry): Move has_zero_child field
7740         to pack with alias_set.
7741
7742 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
7743
7744         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
7745         32bit host.
7746
7747 2008-03-05  Ian Lance Taylor  <iant@google.com>
7748
7749         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
7750
7751 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
7752
7753         * fwprop.c (update_df): Support width and offset parameters of
7754         df_ref_create.
7755         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
7756         global_conflicts): Change DF_REF_EXTRACT to either
7757         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
7758         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
7759         * df-scan.c (df_ref_record, df_defs_record,
7760         df_ref_create_structure, df_def_record_1, df_uses_record,
7761         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
7762         df_bb_refs_collect, df_entry_block_defs_collect,
7763         df_exit_block_uses_collect): Support new width and offset fields.
7764         (ref_extract_pool): New storage pool.
7765         (df_free_ref): New function.
7766         (df_reg_chain_unlink, df_free_collection_rec,
7767         df_sort_and_compress_refs): Call df_free_ref.
7768         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
7769         of df_ref_extract.
7770         (df_ref_create_structure): Allocate df_ref_extract if offset and
7771         width fields are used.
7772         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
7773         (df_uses_record): Get offset and width from ZERO_EXTRACT 
7774         and SIGN_EXTRACT.
7775         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
7776         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
7777         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
7778         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
7779         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
7780         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
7781         (df_ref_extract): New structure.
7782         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
7783         (df_ref_create): Add width and offset parameters.
7784         
7785 2008-03-05  Richard Guenther  <rguenther@suse.de>
7786
7787         * tree-ssa-structalias.c (get_constraint_for_component_ref):
7788         Use ranges_overlap_p.
7789         (offset_overlaps_with_access): Rename
7790         to ranges_overlap_p and move ...
7791         * tree-flow-inline.h (ranges_overlap_p): ... here.
7792
7793         * tree.h (get_inner_reference, handled_component_p): Update
7794         comments.
7795
7796         * tree.h (record_component_aliases, get_alias_set,
7797         alias_sets_conflict_p, alias_sets_must_conflict_p,
7798         objects_must_conflict_p): Move declarations ...
7799         * alias.h (record_component_aliases, get_alias_set,
7800         alias_sets_conflict_p, alias_sets_must_conflict_p,
7801         objects_must_conflict_p): ... here.
7802         Include coretypes.h.
7803         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
7804
7805 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
7806
7807         * cfg.c: Include tree-flow.h.
7808         (remove_edge_raw): Call redirect_edge_var_map_clear.
7809         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
7810         * tree-flow-inline.h (redirect_edge_var_map_def): New.
7811         (redirect_edge_var_map_result): New.
7812         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
7813         PENDING_STMT use with redirect_edge_var_map_*.
7814         * tree-ssa.c (edge_var_maps): New definition.
7815         (redirect_edge_var_map_add): New.
7816         (redirect_edge_var_map_clear): New.
7817         (redirect_edge_var_map_dup): New.
7818         (redirect_edge_var_map_vector): New.
7819         (redirect_edge_var_map_destroy): New.
7820         (ssa_redirect_edge): Replace PENDING_STMT use with
7821         redirect_edge_var_map_*.
7822         (flush_pending_stmts): Same.
7823         (delete_tree_ssa): Destroy edge var map.
7824         * tree-flow.h (struct _edge_var_map): New.
7825         Define edge_var_map vector type.
7826         Declare redirect_edge_var_map_* prototypes.
7827         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
7828         * tree-cfg.c (reinstall_phi_args): Replace
7829         PENDING_STMT use with redirect_edge_var_map_*.
7830
7831 2008-03-05  Richard Guenther  <rguenther@suse.de>
7832
7833         PR tree-optimization/35472
7834         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
7835         whose single use_stmt has a overlapping set of loaded and
7836         stored symbols as that use_stmt might be a noop assignment then.
7837
7838 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
7839
7840         * gthr-rtems.h: Implement __gthread_mutex_destroy.
7841
7842 2008-03-05  Richard Guenther  <rguenther@suse.de>
7843
7844         PR c++/35336
7845         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
7846         should be constants.
7847         * tree-cfg.c (verify_expr): Verify it.
7848         * fold-const.c (fold_truthop): Remove code generating
7849         BIT_FIELD_REFs of structure bases.
7850         (fold_binary): Likewise.
7851         (fold_ternary): Position and size of BIT_FIELD_REFs are
7852         always host integers.
7853         (make_bit_field_ref): Remove.
7854         (optimize_bit_field_compare): Remove.
7855         (all_ones_mask_p): Remove.
7856
7857 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
7858
7859         PR gcc/33009
7860         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
7861         (split_block_and_df_analyze): New. Split basic block and rebuild
7862         dataflow.
7863         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
7864         SPLIT_BLOCK.
7865         (split_pattern_seq): Likewise.
7866         (erase_matching_seqs): Likewise.
7867         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
7868
7869 2008-03-04  Geoff Keating  <geoffk@apple.com>
7870
7871         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
7872         declaration and code.
7873         (tree_invalid_nonnegative_warnv_p): Likewise.
7874
7875 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
7876
7877         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
7878         examples.  Truncate option-names then causing overfull hbox.
7879
7880 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7881
7882         PR target/35222
7883         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
7884         on hpux10.
7885         * configure: Rebuilt.
7886
7887 2008-03-04  Rafael Espindola  <espindola@google.com>
7888
7889         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
7890         (tree_unary_nonnegative_warnv_p): New.
7891         (tree_binary_nonnegative_warnv_p): New.
7892         (tree_single_nonnegative_warnv_p): New.
7893         (tree_invalid_nonnegative_warnv_p): New.
7894         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
7895
7896 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7897
7898         PR 28322
7899         * opts.c (handle_option): Postpone 'unknown option' errors only for
7900         warning options.
7901
7902 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
7903
7904         PR target/35453
7905         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
7906         (_SIDD_XXX): This.
7907
7908 2008-03-04  Rafael Espindola  <espindola@google.com>
7909
7910         * fold-const.c (tree_unary_nonzero_warnv_p): New.
7911         (tree_binary_nonzero_warnv_p): New.
7912         (tree_single_nonzero_warnv_p): New.
7913         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
7914
7915 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
7916
7917         PR middle-end/35456
7918         * fold-const.c (fold_cond_expr_with_comparison): Prevent
7919         transformations for modes that have signed zeros.
7920         * ifcvt.c (noce_try_abs): Ditto.
7921
7922 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
7923
7924         * config/i386/i386.c (override_options): Force
7925         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
7926
7927 2008-03-04  Jan Hubicka  <jh@suse.cz>
7928
7929         PR c++/35262
7930         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
7931         in last commit.
7932
7933 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
7934
7935         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
7936         label to probe the stack.
7937
7938 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
7939
7940         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
7941         (__gthr_win32_mutex_destroy): Declare.
7942         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
7943         __gthr_win32_mutex_destroy.
7944         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
7945
7946 2008-03-03  Jan Hubicka  <jh@suse.cz>
7947
7948         PR c++/35262
7949         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
7950         aggressive on inlining cold calls.
7951
7952 2008-03-03  Richard Guenther  <rguenther@suse.de>
7953
7954         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
7955         struct copies into the expression table.
7956         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
7957         (try_to_simplify): Likewise.
7958         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
7959         integral and pointer arguments which do not change the
7960         precision to NOP_EXPRs.
7961         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
7962         VIEW_CONVERT_EXPR case.
7963
7964 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
7965
7966         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
7967         defined in a loop at depth 0 is invariant.
7968         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
7969         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
7970         be called at loop depth 0.
7971
7972 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
7973
7974         PR driver/35420
7975         * gcc.c (process_command): Update copyright notice dates.
7976         * gcov.c (print_version): Likewise.
7977         * gcov-dump.c (print_version): Likewise.
7978         * mips-tfile.c (main): Likewise.
7979         * mips-tdump.c (main): Likewise.
7980
7981 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7982
7983         PR 24924
7984         * c-common.c (flag_permissive): Delete.
7985         (constant_expression_warnings): Check flags first.
7986         (constant_expression_error): New.
7987         * c-common.h (flag_permissive): Delete.
7988         (constant_expression_error): Declare.
7989         * flags.h (flag_permissive): Declare. Update description.
7990         * diagnostic.c (pedwarn): Update.
7991         (permerror): New.
7992         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
7993         (permissive_error_kind): New.
7994         * toplev.c (flag_permissive): Define. Update description.
7995         * toplev.h (permissive_error_kind): Declare.
7996         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
7997         (pedwarn_c90): Use pedantic_warning_kind.
7998         * c-opts.c (c_common_post_options): flag_permissive does not affect
7999         flag_pedantic_errors.
8000
8001 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
8002
8003         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
8004         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
8005         __absvsi2, __absvDI2): Use unsigned arithmetic.
8006
8007 2008-03-02  Andi Kleen  <ak@suse.de>
8008             Richard Guenther  <rguenther@suse.de>
8009
8010         * struct-equiv.c: Remove file.
8011         * cfg_cleanup.c (condjump_equiv_p): Remove.
8012         * Makefile.in (OBJS-common): Remove struct-equiv.o.
8013         (struct-equiv.o): Remove rule.
8014         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
8015         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
8016         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
8017
8018 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
8019
8020         * ifcvt.c (noce_process_if_block): Try to handle only the then
8021         block if the else block exists but isn't suitable.
8022
8023 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
8024
8025         PR gcc/35063
8026         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
8027         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
8028         regression from previous patch.
8029
8030 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
8031
8032         PR gcc/35063
8033         * gthr.h: Add __gthread_mutex_destroy as a function that must be
8034         implemented.
8035         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
8036         * gthr-single.h (__gthread_mutex_destroy): Likewise.
8037         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
8038         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
8039         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
8040         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
8041         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
8042         (__gthread_mutex_destroy_function): Rename to
8043         __gthread_mutex_destroy.
8044         * gthr-dce.h (__gthread_mutex_destroy): Call
8045         pthread_mutex_destroy.
8046         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
8047         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
8048         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
8049
8050 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
8051
8052         * df-scan.c (df_ref_chain_change_bb): Simplify.
8053         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
8054         set_block_for_insn if there's any change.
8055         * df.h ((df_insn_change_bb): Fix prototype.
8056         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
8057         df_insn_change_bb, don't call set_block_for_insn.
8058         * emit-rtl.c (reorder_insns): Likewise.
8059         * haifa-sched.c (move_insn): Likewise.
8060
8061 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
8062
8063         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
8064
8065 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
8066
8067         * tree-flow-inline.h (next_readonly_imm_use): Return
8068         NULL_USE_OPERAND_P after the end.
8069
8070 2008-03-01  Richard Guenther  <rguenther@suse.de>
8071
8072         PR tree-optimization/35411
8073         * tree-sra.c (sra_build_assignment): Split conversion to
8074         final type to a separate statement if we are not assigning
8075         to a register.
8076
8077 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
8078
8079         * fold-const.c (fold_convertible_p): Correct the logic to follow
8080         that in fold_convert().
8081
8082 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
8083
8084         PR c++/35315
8085         * tree-inline.c (build_duplicate_type): When we make a
8086         duplicate type, make it unique in the canonical types system.
8087
8088 2008-02-29  Tom Tromey  <tromey@redhat.com>
8089
8090         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
8091         input_file_stack_history, input_file_stack_restored): Remove.
8092         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
8093         * input.h (struct file_stack): Remove.
8094         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
8095         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
8096         Likewise.
8097         * diagnostic.h (struct diagnostic_context) <last_module>: Change
8098         type.
8099         (diagnostic_last_module_changed): Add 'map' argument.
8100         (diagnostic_set_last_function): Likewise.
8101         * diagnostic.c (undiagnostic_report_current_module): Iterate using
8102         line map, not input_file_stack.
8103         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
8104
8105 2008-02-29  Paul Brook  <paul@codesourcery.com>
8106
8107         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
8108
8109 2008-02-29  Paul Brook  <paul@codesourcery.com>
8110
8111         * config/arm/ieee754-df.S (muldf3): Use RET macros.
8112
8113 2008-02-29  Richard Guenther  <rguenther@suse.de>
8114
8115         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
8116         vn_lookup_or_add.
8117         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
8118         value for comparing for a store match.
8119         (simplify_unary_expression): Do nothing for SSA_NAMEs.
8120         (try_to_simplify): Do not do a full-blown reference lookup.
8121
8122 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
8123
8124         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
8125         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
8126
8127         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
8128
8129 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
8130
8131         * tree-loop-linear.c (try_interchange_loops): Compare memory access
8132         strides against cache sizes.
8133
8134 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
8135
8136         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
8137         constant to fpul.
8138
8139 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
8140
8141         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
8142         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
8143         is smaller than the original promoted value.
8144         (simplify_subreg): If OP is a SUBREG, try to preserve its
8145         SUBREG_PROMOTED_VAR_P information.
8146
8147 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
8148
8149         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
8150         (VN_INFO_GET): Allocate new objects on the obstack.
8151         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
8152         for rpo_numbers_temp, for consistency.
8153         (free_scc_vn): Free the obstack.
8154
8155 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
8156
8157         * doc/invoke.texi: Document -ftree-loop-distribution.
8158         * tree-loop-distribution.c: New.
8159         * tree-pass.h (pass_loop_distribution): New.
8160         * graphds.h (struct graph): Add htab_t indices.
8161         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
8162         * tree-vectorizer.c (rename_variables_in_loop): Extern.
8163         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
8164         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
8165         * tree-data-ref.c (debug_data_dependence_relations): New.
8166         (dump_data_dependence_relation): Also print data references.
8167         (free_data_ref): Extern.
8168         (same_access_functions): Moved...
8169         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
8170         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
8171         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
8172         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
8173         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
8174         (stmts_from_loop): Skip LABEL_EXPR.
8175         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
8176         New.
8177         (build_rdg): Initialize rdg->indices htab.
8178         (free_rdg, stores_from_loop, ref_base_address,
8179         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
8180         have_similar_memory_accesses_1, ref_base_address_1,
8181         remove_similar_memory_refs): New.
8182         * tree-data-ref.h: Depend on tree-chrec.h.
8183         (debug_data_dependence_relations, free_data_ref): Declared.
8184         (same_access_functions): ... here.
8185         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
8186         New.
8187         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
8188         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
8189         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
8190         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
8191         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
8192         rdg_vertex_for_stmt): Declared.
8193         (struct rdg_edge): Add level.
8194         (RDGE_LEVEL): New.
8195         (free_rdg, stores_from_loop, remove_similar_memory_refs,
8196         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
8197         Declared.
8198         (rdg_has_similar_memory_accesses): New.
8199         * tree-vect-analyze.c: Remove unused static decls.
8200         * lambda.h (dependence_level): New.
8201         * common.opt (ftree-loop-distribution): New.
8202         * tree-flow.h (mark_virtual_ops_in_bb, 
8203         slpeel_tree_duplicate_loop_to_edge_cfg,
8204         rename_variables_in_loop): Declared.
8205         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
8206         (OBJS-common): Add tree-loop-distribution.o.
8207         (tree-loop-distribution.o): New rule.
8208         * tree-cfg.c (mark_virtual_ops_in_bb): New.
8209         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
8210         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
8211
8212 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
8213
8214         PR target/33963
8215         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
8216         other than structures and unions.
8217
8218 2008-02-28  Richard Guenther  <rguenther@suse.de>
8219
8220         Revert:
8221         2008-02-26  Richard Guenther  <rguenther@suse.de>
8222
8223         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8224         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8225         (lookup_decl_from_uid): Declare.
8226         (remove_decl_from_map): Likewise.
8227         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8228         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8229         (decl_for_uid_map): New global hashtable mapping DECL_UID
8230         to the decl tree.
8231         (init_ttree): Allocate it.
8232         (insert_decl_to_uid_decl_map): New helper function.
8233         (make_node_stat): Insert new decls into the map.
8234         (copy_node_stat): Likewise.
8235         (lookup_decl_from_uid): New function.
8236         (remove_decl_from_map): Likewise.
8237         (print_decl_for_uid_map_statistics): New helper.
8238         (dump_tree_statistics): Call it.
8239
8240         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8241         (referenced_var_iterator): Adjust.
8242         (FOR_EACH_REFERENCED_VAR): Adjust.
8243         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8244         (num_referenced_vars): Adjust.
8245         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8246         (first_referenced_var): Remove.
8247         (end_referenced_vars_p): Likewise.
8248         (next_referenced_var): Likewise.
8249         (referenced_var_iterator_set): New helper function.
8250         * tree-dfa.c (referenced_var_lookup): Adjust.
8251         (referenced_var_check_and_insert): Likewise.
8252         (remove_referenced_var): Likewise.
8253         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8254         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8255         (verify_call_clobbering): Likewise.
8256         (verify_memory_partitions): Likewise.
8257         (init_tree_ssa): Allocate bitmap instead of hashtable for
8258         referenced_vars.
8259         (delete_tree_ssa): Adjust.
8260         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8261         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8262         (compute_tag_properties): Likewise.
8263         (set_initial_properties): Likewise.
8264         (find_partition_for): Likewise.
8265         (update_reference_counts): Likewise.
8266         (dump_may_aliases_for): Likewise.
8267         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8268         (add_call_clobber_ops): Likewise.
8269         (add_call_read_ops): Likewise.
8270         (get_asm_expr_operands): Likewise.
8271         * tree-into-ssa.c (dump_decl_set): Likewise.
8272         (update_ssa): Likewise.
8273         * tree-sra.c (scan_function): Likewise.
8274         (decide_instantiations): Likewise.
8275         (scalarize_parms): Likewise.
8276         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8277         (dsa_named_for): Likewise.
8278         * tree-ssa-structalias.c (update_alias_info): Likewise.
8279         (merge_smts_into): Likewise.
8280
8281 2008-02-27  David Daney  <ddaney@avtrex.com>
8282
8283         PR target/34409
8284         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
8285         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
8286         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
8287         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
8288         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
8289
8290 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
8291
8292         PR target/25477
8293         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
8294         (BUILT_IN_NEXTTOWARD): Remove.
8295         (BUILT_IN_NEXTTOWARDF): Ditto.
8296         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
8297         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
8298
8299 2008-02-27  Tom Tromey  <tromey@redhat.com>
8300
8301         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
8302         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
8303
8304 2008-02-27  Jan Beulich  <jbeulich@novell.com>
8305
8306         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
8307         update the respective field on newdecl.
8308
8309 2008-02-27  Revital Eres  <eres@il.ibm.com>
8310
8311         PR rtl-optimization/34999
8312         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
8313         crossing edges that ends with a call insn.
8314         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
8315         call insn and clear the EDGE_CROSSING flag of the crossing edge
8316         when fixing fallthru edges.
8317
8318 2008-02-27  Richard Guenther  <rguenther@suse.de>
8319
8320         PR middle-end/35390
8321         * fold-const.c (fold_unary): Return the correct argument,
8322         converted to the result type.
8323
8324 2008-02-27  Richard Guenther  <rguenther@suse.de>
8325
8326         PR middle-end/34971
8327         * expr.c (expand_expr_real_1): Assert on rotates that operate
8328         on partial modes.
8329         * fold-const.c (fold_binary): Use the types precision, not the
8330         bitsize of the mode if folding rotate expressions.  Build rotates
8331         only for full modes.
8332
8333 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
8334
8335         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
8336         and CPP_PRAGMA_EOL.
8337         * c-pragma.c (pragma_ns_name): New typedef.
8338         (registered_pp_pragmas): New variable.
8339         (c_pp_lookup_pragma): New function.
8340         (c_register_pragma_1): If flag_preprocess_only, do nothing
8341         for non-expanded pragmas, for expanded ones push pragma's
8342         namespace and name into registered_pp_pragmas vector.
8343         (c_invoke_pragma_handler): Register OpenMP pragmas even when
8344         flag_preprocess_only, don't register GCC pch_preprocess
8345         pragma if flag_preprocess_only.
8346         * c-opts.c (c_common_init): Call init_pragma even if
8347         flag_preprocess_only.
8348         * c-pragma.c (c_pp_lookup_pragma): New prototype.
8349         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
8350         cpp_register_pragma if flag_preprocess_only.
8351
8352 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8353
8354         PR c/28800
8355         * c-parser.c (c_parser_translation_unit): Warn for empty
8356         translation unit, not empty source file.
8357
8358 2008-02-26  Paul Brook  <paul@codesourcery.com>
8359
8360         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
8361         operand for Thumb-2.
8362         * config/arm/arm.h (reg_class): Add CORE_REGS.
8363         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
8364         (BASE_REG_CLASS): Use CORE_REGS.
8365         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
8366         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
8367         (REGNO_OK_FOR_INDEX_P): Exclude SP.
8368         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
8369         ARM_REGNO_OK_FOR_INDEX_P.
8370         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
8371         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
8372         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
8373         (ldm/stm peepholes): Ditto.
8374         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
8375         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
8376         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
8377         * config/arm/constraints.md: Enable "k" constraint on ARM.
8378
8379 2008-02-27  Ben Elliston  <bje@au.ibm.com>
8380
8381         * config/rs6000/rs6000.c: Annotate cache line size field in all
8382         instances of struct processor_costs.
8383
8384 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
8385
8386         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
8387         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
8388         jump_bypass): New counters.
8389         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
8390         * dce.c (gate_ud_dce): Same.
8391         (gate_fast_dce): Same.
8392         * dse.c (gate_dse1): New function.
8393         (gate_dse2): New function.
8394         (gate_dse): Merge results of new gate functions.
8395         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
8396         (gate_handle_jump_bypass): Add dbg_cnt.
8397         (gate_handle_gcse): Add dbg_cnt.
8398         * ifcvt.c (gate_handle_if_conversion): Same.
8399         (gate_handle_if_after_combine): Same.
8400         (gate_handle_if_after_reload): Same.
8401         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
8402
8403 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
8404
8405         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
8406         line sizes.
8407         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
8408
8409 2008-02-26  Jason Merrill  <jason@redhat.com>
8410
8411         PR c++/35315
8412         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
8413         alone if it's the naming decl for the type's main variant.
8414
8415 2008-02-26  Tom Tromey  <tromey@redhat.com>
8416
8417         * system.h (USE_MAPPED_LOCATION): Poison.
8418         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
8419         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
8420         (make_goto_expr_edges): Likewise.
8421         (remove_bb): Likewise.
8422         (execute_warn_function_return): Likewise.
8423         * basic-block.h (struct edge_def) <goto_locus>: Change type to
8424         location_t.
8425         * c-common.c (fname_decl): Remove old location code.
8426         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
8427         location code.
8428         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
8429         variant.
8430         (ASM_INPUT_SOURCE_LOCATION): Likewise.
8431         (gen_rtx_ASM_INPUT): Likewise.
8432         (gen_rtx_ASM_INPUT_loc): Likewise.
8433         (get_rtx_asm_OPERANDS): Remove.
8434         * cfglayout.c (insn_locators_alloc): Remove old location code.
8435         (set_curr_insn_source_location): Likewise.
8436         (curr_insn_locator): Likewise.
8437         * print-tree.c (print_node): Remove old location code.
8438         * tree-mudflap.c (mf_varname_tree): Remove old location code.
8439         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
8440         * cfgexpand.c (expand_gimple_cond_expr): Don't use
8441         location_from_locus.
8442         (construct_exit_block): Remove old location code.
8443         * emit-rtl.c (force_next_line_note): Remove old location code.
8444         * profile.c (branch_prob): Remove old location code.
8445         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
8446         LOC_LINE): Remove old-location variants.
8447         * langhooks.c (lhd_print_error_function): Remove old location
8448         code.
8449         * configure, config.in: Rebuilt.
8450         * configure.ac (--enable-mapped-location): Remove.
8451         * c-decl.c (c_init_decl_processing): Remove old location code.
8452         (finish_function): Likewise.
8453         * recog.c (decode_asm_operands): Remove old location code.
8454         * c-pch.c (c_common_read_pch): Remove old location code.
8455         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
8456         variants.
8457         * gimple-low.c (lower_function_body): Remove old location code.
8458         * toplev.c (unknown_location): Remove.
8459         (push_srcloc): Remove old-location variant.
8460         (process_options): Remove old location code.
8461         (lang_dependent_init): Likewise.
8462         * input.h (UNKNOWN_LOCATION): Move definition.
8463         (location_t): Undeprecate.
8464         (source_locus): Remove.
8465         (location_from_locus): Remove.
8466         (struct location_s): Remove.
8467         Remove all old-location code.
8468         (input_line, input_filename): Remove.
8469         * final.c (final_scan_insn): Remove old location code.
8470         * diagnostic.c (diagnostic_build_prefix): Remove
8471         USE_MAPPED_LOCATION test.
8472         * tree.h (gimple_stmt) <locus>: Now a location_t.
8473         (tree_exp) <locus>: Likewise.
8474         (DECL_IS_BUILTIN): Remove old-location variant.
8475         (annotate_with_file_line, annotate_with_locus): Likewise.
8476         (expr_locus, set_expr_locus): Update.
8477         * tree.c (build1_stat): Remove old location code.
8478         (last_annotated_node): Remove.
8479         (annotate_with_file_line): Remove old-location variant.
8480         (annotate_with_locus): Likewise.
8481         (expr_location): Remove old location code.
8482         (set_expr_location): Likewise.
8483         (expr_has_location): Likewise.
8484         (expr_locus): Likewise.
8485         (set_expr_locus): Likewise.
8486         (expr_filename): Don't use location_from_locus.
8487         (expr_lineno): Likewise.
8488         * rtl-error.c (location_for_asm): Remove old location code.
8489         * c-lex.c (cb_line_change): Remove old location code.
8490         (fe_file_change): Likewise.
8491         (cb_def_pragma): Likewise.
8492         (c_lex_with_flags): Likewise.
8493         * gengtype.c (do_typedef): Don't special-case location types.
8494         (define_location_structures): Remove.
8495         (main): Don't call define_location_structures.
8496         * tree-pretty-print.c (dump_implicit_edges): Remove old location
8497         code.
8498
8499 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8500
8501         PR 26264
8502         * builtins.def (BUILT_IN_STDARG_START): Remove.
8503         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
8504         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
8505         * tree-inline.c (inline_forbidden_p_1): Likewise.
8506         
8507 2008-02-26  Richard Guenther  <rguenther@suse.de>
8508
8509         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8510         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8511         (lookup_decl_from_uid): Declare.
8512         (remove_decl_from_map): Likewise.
8513         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8514         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8515         (decl_for_uid_map): New global hashtable mapping DECL_UID
8516         to the decl tree.
8517         (init_ttree): Allocate it.
8518         (insert_decl_to_uid_decl_map): New helper function.
8519         (make_node_stat): Insert new decls into the map.
8520         (copy_node_stat): Likewise.
8521         (lookup_decl_from_uid): New function.
8522         (remove_decl_from_map): Likewise.
8523         (print_decl_for_uid_map_statistics): New helper.
8524         (dump_tree_statistics): Call it.
8525
8526         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8527         (referenced_var_iterator): Adjust.
8528         (FOR_EACH_REFERENCED_VAR): Adjust.
8529         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8530         (num_referenced_vars): Adjust.
8531         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8532         (first_referenced_var): Remove.
8533         (end_referenced_vars_p): Likewise.
8534         (next_referenced_var): Likewise.
8535         (referenced_var_iterator_set): New helper function.
8536         * tree-dfa.c (referenced_var_lookup): Adjust.
8537         (referenced_var_check_and_insert): Likewise.
8538         (remove_referenced_var): Likewise.
8539         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8540         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8541         (verify_call_clobbering): Likewise.
8542         (verify_memory_partitions): Likewise.
8543         (init_tree_ssa): Allocate bitmap instead of hashtable for
8544         referenced_vars.
8545         (delete_tree_ssa): Adjust.
8546         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8547         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8548         (compute_tag_properties): Likewise.
8549         (set_initial_properties): Likewise.
8550         (find_partition_for): Likewise.
8551         (update_reference_counts): Likewise.
8552         (dump_may_aliases_for): Likewise.
8553         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8554         (add_call_clobber_ops): Likewise.
8555         (add_call_read_ops): Likewise.
8556         (get_asm_expr_operands): Likewise.
8557         * tree-into-ssa.c (dump_decl_set): Likewise.
8558         (update_ssa): Likewise.
8559         * tree-sra.c (scan_function): Likewise.
8560         (decide_instantiations): Likewise.
8561         (scalarize_parms): Likewise.
8562         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8563         (dsa_named_for): Likewise.
8564         * tree-ssa-structalias.c (update_alias_info): Likewise.
8565         (merge_smts_into): Likewise.
8566
8567 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8568
8569         PR 34351
8570         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
8571         * c-opts.c (c_common_handle_option): Wall enables
8572         Wvolatile-register-var.
8573         * common.opt: Move Wvolatile-register-var to...
8574         * c.opt: ...here.
8575         
8576 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8577
8578         * common.opt (Wlarger-than=): New.
8579         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
8580         -Wlarger-than=.
8581         * opts.c (common_handle_option): Handle -Wlarger-than=.
8582         * optc-gen.awk: Likewise.
8583         * opth-gen.awk: Likewise.
8584         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
8585         * tree-optimize.c (tree_rest_of_compilation): Likewise.
8586         
8587 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8588
8589         * c-common.c (match_case_to_enum_1): Add appropriate
8590         OPT_W* parameter to warning.
8591         (c_do_switch_warnings): Likewise.
8592         * c-typeck.c (warning_init): Add one more parameter following
8593         'warning' function.
8594         (push_init_level): Update call to warning_init.
8595         (pop_init_level): Likewise.
8596         (add_pending_init): Likewise.
8597         (output_init_element: Likewise.
8598
8599 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8600
8601         PR 28322
8602         * toplev.c (toplev_main): If there are warnings or error, print
8603         errors for ignored options.
8604         * opts.c (ignored_options): New static variable.
8605         (postpone_unknown_option_error): New.
8606         (print_ignored_options): New.
8607         (handle_option): Postpone errors for unknown -Wno-* options.
8608         * opts.h (print_ignored_options): Declare.
8609         
8610 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
8611
8612         * config/mips/mips.md (loadgp_blockage, blockage): Change type
8613         to "ghost".
8614
8615 2008-02-25  Richard Guenther  <rguenther@suse.de>
8616
8617         Revert:
8618         2008-02-25  Richard Guenther  <rguenther@suse.de>
8619
8620         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8621         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8622         (lookup_decl_from_uid): Declare.
8623         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8624         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8625         (decl_for_uid_map): New global hashtable mapping DECL_UID
8626         to the decl tree.
8627         (init_ttree): Allocate it.
8628         (insert_decl_to_uid_decl_map): New helper function.
8629         (make_node_stat): Insert new decls into the map.
8630         (copy_node_stat): Likewise.
8631         (lookup_decl_from_uid): New function.
8632         (print_decl_for_uid_map_statistics): New helper.
8633         (dump_tree_statistics): Call it.
8634
8635         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8636         (referenced_var_iterator): Adjust.
8637         (FOR_EACH_REFERENCED_VAR): Adjust.
8638         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8639         (num_referenced_vars): Adjust.
8640         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8641         (first_referenced_var): Remove.
8642         (end_referenced_vars_p): Likewise.
8643         (next_referenced_var): Likewise.
8644         (referenced_var_iterator_set): New helper function.
8645         * tree-dfa.c (referenced_var_lookup): Adjust.
8646         (referenced_var_check_and_insert): Likewise.
8647         (remove_referenced_var): Likewise.
8648         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8649         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8650         (verify_call_clobbering): Likewise.
8651         (verify_memory_partitions): Likewise.
8652         (init_tree_ssa): Allocate bitmap instead of hashtable for
8653         referenced_vars.
8654         (delete_tree_ssa): Adjust.
8655         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8656         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8657         (compute_tag_properties): Likewise.
8658         (set_initial_properties): Likewise.
8659         (find_partition_for): Likewise.
8660         (update_reference_counts): Likewise.
8661         (dump_may_aliases_for): Likewise.
8662         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8663         (add_call_clobber_ops): Likewise.
8664         (add_call_read_ops): Likewise.
8665         (get_asm_expr_operands): Likewise.
8666         * tree-into-ssa.c (dump_decl_set): Likewise.
8667         (update_ssa): Likewise.
8668         * tree-sra.c (scan_function): Likewise.
8669         (decide_instantiations): Likewise.
8670         (scalarize_parms): Likewise.
8671         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8672         (dsa_named_for): Likewise.
8673         * tree-ssa-structalias.c (update_alias_info): Likewise.
8674         (merge_smts_into): Likewise.
8675
8676 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
8677
8678         PR fortran/29549
8679         * doc/invoke.texi (-fcx-limited-range): Document new option.
8680         * toplev.c (process_options): Handle -fcx-fortran-rules.
8681         * common.opt: Add documentation for -fcx-fortran-rules.
8682
8683 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
8684
8685         PR c/35162
8686         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
8687         actual behaviour and C99.
8688         
8689 2008-02-26  Ben Elliston  <bje@au.ibm.com>
8690
8691         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
8692         (ASM_CPU_POWER6_SPEC): Likewise.
8693         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
8694         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
8695         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
8696
8697 2008-02-25  Richard Guenther  <rguenther@suse.de>
8698
8699         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8700         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8701         (lookup_decl_from_uid): Declare.
8702         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8703         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8704         (decl_for_uid_map): New global hashtable mapping DECL_UID
8705         to the decl tree.
8706         (init_ttree): Allocate it.
8707         (insert_decl_to_uid_decl_map): New helper function.
8708         (make_node_stat): Insert new decls into the map.
8709         (copy_node_stat): Likewise.
8710         (lookup_decl_from_uid): New function.
8711         (print_decl_for_uid_map_statistics): New helper.
8712         (dump_tree_statistics): Call it.
8713
8714         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8715         (referenced_var_iterator): Adjust.
8716         (FOR_EACH_REFERENCED_VAR): Adjust.
8717         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8718         (num_referenced_vars): Adjust.
8719         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8720         (first_referenced_var): Remove.
8721         (end_referenced_vars_p): Likewise.
8722         (next_referenced_var): Likewise.
8723         (referenced_var_iterator_set): New helper function.
8724         * tree-dfa.c (referenced_var_lookup): Adjust.
8725         (referenced_var_check_and_insert): Likewise.
8726         (remove_referenced_var): Likewise.
8727         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8728         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8729         (verify_call_clobbering): Likewise.
8730         (verify_memory_partitions): Likewise.
8731         (init_tree_ssa): Allocate bitmap instead of hashtable for
8732         referenced_vars.
8733         (delete_tree_ssa): Adjust.
8734         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8735         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8736         (compute_tag_properties): Likewise.
8737         (set_initial_properties): Likewise.
8738         (find_partition_for): Likewise.
8739         (update_reference_counts): Likewise.
8740         (dump_may_aliases_for): Likewise.
8741         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8742         (add_call_clobber_ops): Likewise.
8743         (add_call_read_ops): Likewise.
8744         (get_asm_expr_operands): Likewise.
8745         * tree-into-ssa.c (dump_decl_set): Likewise.
8746         (update_ssa): Likewise.
8747         * tree-sra.c (scan_function): Likewise.
8748         (decide_instantiations): Likewise.
8749         (scalarize_parms): Likewise.
8750         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8751         (dsa_named_for): Likewise.
8752         * tree-ssa-structalias.c (update_alias_info): Likewise.
8753         (merge_smts_into): Likewise.
8754
8755 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
8756
8757         PR target/35258
8758         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
8759         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
8760         * alias.h (nonoverlapping_memrefs_p): Likewise.
8761
8762 2008-02-25  Jan Beulich  <jbeulich@novell.com>
8763
8764         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
8765         * config/i386/netware-libgcc.exp: Add __bswap?i2,
8766         __emultls_get_address, __emultls_register_common,
8767         __floatundi?f, and _Unwind_GetIPInfo.
8768         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
8769         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
8770         (gen_regparm_prefix): Likewise.
8771         (i386_nlm_encode_section_info): Sync with
8772         config/i386/winnt.c:i386_pe_encode_section_info().
8773         (i386_nlm_maybe_mangle_decl_assembler_name): New.
8774         i386_nlm_mangle_decl_assembler_name): New.
8775         (netware_override_options): New.
8776         * config/i386/netware.h (netware_override_options): Declare.
8777         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
8778         (i386_nlm_mangle_decl_assembler_name): Declare.
8779         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
8780
8781 2008-02-25  Ben Elliston  <bje@au.ibm.com>
8782
8783         PR other/32948
8784         * c-decl.c (grokdeclarator): Remove unused local variables
8785         `typedef_type' and `type_as_written'.
8786         * bb-reorder.c
8787         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
8788         unused local variable `has_hot_blocks'.
8789         (fix_crossing_conditional_branches): Remove unused local variable
8790         `prev_bb'.
8791         
8792 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
8793
8794         PR middle-end/19984
8795         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
8796         using DEF_C99_BUILTIN.
8797         (BUILT_IN_NANF): Ditto.
8798         (BUILT_IN_NANL): Ditto.
8799
8800 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
8801             Revital Eres  <eres@il.ibm.com>
8802
8803         * modulo-sched.c (calculate_must_precede_follow): Address TODO
8804         regarding the order of two dependent insns in the same row.
8805
8806 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
8807
8808         * stor-layout.c (layout_decl): Do not bump the alignment of a
8809         bit-field to more than byte alignment if it is packed.
8810
8811 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
8812
8813         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
8814         e300c2 and e300c3.
8815
8816 2008-02-24  Diego Novillo  <dnovillo@google.com>
8817
8818         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
8819
8820         PR 33738
8821         * tree-vrp.c (vrp_evaluate_conditional): With
8822         -Wtype-limits, emit a warning when comparing against a
8823         constant outside the natural range of OP0's type.
8824         * c.opt (Wtype-limits): Move ...
8825         * common.opt (Wtype-limits): ... here.
8826
8827 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
8828
8829         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
8830         * config/rs6000/e300c2c3.md: New file.
8831         * config/rs6000/rs6000.c (processor_costs): Add new costs for
8832         e300c2 and e300c3.
8833         (rs6000_override_options): Add e300c2 and e300c3 cases to
8834         processor_target_table. Do not allow usage of Altivec or Spe
8835         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
8836         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
8837         * config/rs6000/rs6000.h (processor_type): Add
8838         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
8839         (ASM_CPU_SPEC): Add e300c2 and e300c3.
8840         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
8841         and ppce300c3. Include e300c2c3.md.
8842
8843 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
8844
8845         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
8846         instead of TARGET_STRICT_ALIGN.
8847
8848 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
8849
8850         * explow.c (memory_address): Assert that the generated address is
8851         valid.
8852
8853 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
8854
8855         PR target/25477
8856         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
8857         * config/darwin-ppc-ldouble-patch.def: New file.
8858         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
8859         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
8860         SUBTARGET_INIT_BUILTINS if defined.
8861         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
8862         New functions.
8863
8864 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8865
8866         PR rtl-opt/33512
8867         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
8868         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
8869
8870 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8871
8872         PR pch/35027
8873         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
8874         file" warning condtional on -Winvalid-PCH.
8875
8876 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
8877
8878         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
8879
8880 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
8881
8882         PR target/22076
8883         PR target/34256 
8884         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
8885         prevent reload from using MMX registers.
8886         (*mov<mode>_internal): Ditto.
8887         (*movv2sf_internal_rex64): Ditto.
8888         (*movv2sf_internal): Ditto.
8889
8890 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8891
8892         PR documentation/31569
8893         * doc/install.texi2html: Use makeinfo --no-number-sections.
8894
8895 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
8896
8897         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
8898         ensure that we can address an entire entity > 8 bytes.  Don't
8899         generate reg+reg addressing for such data.
8900
8901 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
8902
8903         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
8904         strings when optimizing for size, unless the target cares about
8905         alignment.
8906
8907 2008-02-22  Tom Tromey  <tromey@redhat.com>
8908
8909         * regclass.c (current_pass): Remove declaration.
8910
8911 2008-02-22  Anatoly Sokolov <aesok@post.ru>
8912
8913         * config/avr/libgcc.S (__RAMPZ__): Define.
8914         (__do_copy_data): Add for devices with 128KB code memory.
8915
8916 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
8917
8918         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
8919         Use spe_abi.
8920         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
8921
8922 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
8923
8924         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
8925         GENNONACR_REGS.
8926
8927 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8928
8929         PR c/19999
8930         * c-typeck.c (build_binary_op): Warn about floating point
8931         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
8932
8933 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
8934
8935         PR target/34526
8936         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
8937         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
8938         add vrsave.
8939         (rs6000_override_options): Set altivec_abi as default, not override,
8940         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
8941         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
8942         is used; use new member spe_abi.
8943         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
8944         spe_abi and altivec_abi.
8945
8946 2008-02-22  Tomas Bily  <tbily@suse.cz>
8947
8948         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
8949
8950 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8951
8952         PR bootstrap/35273
8953         * config.build (build_file_translate): Set to `CMD //c' only if
8954         it works.
8955         * Makefile.in (build_file_translate): Improve comment.
8956
8957 2008-02-21  Jan Hubicka  <jh@suse.cz>
8958
8959         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
8960         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
8961         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
8962
8963 2008-02-21  Michael Matz  <matz@suse.de>
8964
8965         PR target/35264
8966         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
8967
8968 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
8969
8970         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
8971         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
8972         as insn constraint.
8973         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
8974         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
8975         SSE_VEC_FLOAT_MODE_P as insn constraint.
8976         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
8977         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
8978         sse4a_movntdf using MODEF mode iterator.
8979         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
8980         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
8981         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
8982         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
8983         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
8984         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
8985         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
8986
8987 2008-02-21  Richard Guenther  <rguenther@suse.de>
8988
8989         * tree.def (PAREN_EXPR): New tree code.
8990         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
8991         and PAREN_EXPR.
8992         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
8993         * expr.c (expand_expr_real_1): Likewise.
8994         * tree-inline.c (estimate_num_insns_1): Likewise.
8995         * tree-complex.c (expand_complex_move): Likewise.
8996         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
8997         as plain x.
8998
8999 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
9000
9001         PR target/35225
9002         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
9003
9004 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
9005
9006         PR target/35190
9007         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
9008
9009         * config/sh/sh.c (find_barrier): Don't go past
9010         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
9011
9012 2008-02-20  DJ Delorie  <dj@redhat.com>
9013
9014         * config/h8300/h8300.md (insv): Force source operand to be a register.
9015
9016         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
9017         as a jump, not as a plain insn.
9018         
9019 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
9020
9021         * doc/invoke.texi (Warning Options): Add new option
9022         -Wframe-larger-than=.
9023         (-Wframe-larger-than): Document.
9024
9025         * flags.h (warn_frame_larger_than, frame_larger_than_size):
9026         Add declarations for new option variables.
9027
9028         * final.c (final_start_function): Check the frame size
9029         before emission and issue a Wframe-larger-than warning.
9030
9031         * opts.c (warn_frame_larger_than, frame_larger_than_size):
9032         Add definitions for new option variables.
9033         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
9034
9035         * common.opt (Wframe-larger-than=): New option.
9036
9037 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
9038
9039         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
9040         (<sse>_div<mode>3): Ditto.
9041         (<sse>_vmdiv<mode>3): Ditto.
9042         (<sse>_vmsqrt<mode>2): Ditto.
9043         (*smax<mode>3): Ditto.
9044         (sse5_frcz<mode>2): Ditto.
9045         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
9046         as insn constraint.
9047
9048 2008-02-20  Richard Guenther  <rguenther@suse.de>
9049
9050         PR middle-end/35265
9051         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
9052         be happy with INTEGRAL_TYPE_P.
9053
9054 2008-02-20  Richard Guenther  <rguenther@suse.de>
9055
9056         * fold-const.c (split_tree): Associate floatig-point expressions
9057         if flag_associative_math is set.
9058
9059 2008-02-20  Richard Guenther  <rguenther@suse.de>
9060
9061         * tree.h (fold_real_zero_addition_p): Declare.
9062         * fold-const.c (fold_real_zero_addition_p): Export.
9063         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
9064         floating-point operations with zero and one.
9065
9066 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
9067
9068         * doc/install.texi: Correct references to CFLAGS, replacing them
9069         with BOOT_CFLAGS.  Document flags used during bootstrap for
9070         target libraries.
9071                                 
9072 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
9073
9074         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
9075         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
9076         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
9077         insn constraint.
9078         (smin<mode>3): Ditto from similar patterns.
9079         (smax<mode>3): Ditto.
9080         (*ieee_smin<mode>3): Ditto.
9081         (*ieee_smax<mode>3): Ditto.
9082         * config/i386/sse.md (sse): New mode attribute.
9083         (mov<mode>): Macroize expander from movv4sf and movv2df using
9084         SSEMODEF2P mode iterator.
9085         (<sse>_movnt<mode>): Ditto from similar patterns. Use
9086         SSE_VEC_FLOAT_MODE_P as insn constraint.
9087         (storent<mode>): Ditto.
9088         (storent<mode>): Macroize expander from storentsf and storentdf using
9089         MODEF mode iterator.
9090         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
9091         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
9092         (abs<mode>2): Ditto from similar patterns.
9093         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
9094         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
9095         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
9096         (<sse>_vmsqrt<mode>2): Ditto.
9097         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
9098         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
9099         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
9100         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
9101         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
9102         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
9103         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
9104         insn constraint.
9105         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
9106         iterator and SSE_FLOAT_MODE_P as insn constraint.
9107         (<sse>_ucomi): Ditto from similar patterns.
9108         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
9109         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
9110         SSE_VEC_FLOAT_MODE_P as insn constraint.
9111         (vcond<mode>): Ditto from similar patterns.
9112         (and<mode>3, *and<mode>3): Ditto.
9113         (<sse>_nand<mode>3): Ditto.
9114         (ior<mode>3, *ior<mode>3): Ditto.
9115         (xor<mode>3, *xor<mode>3): Ditto.
9116         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
9117         iterator and SSE_FLOAT_MODE_P as insn constraint.
9118         (*nand<mode>3): Ditto from similar patterns.
9119         (*ior<mode>3): Ditto.
9120         (*xor<mode>3): Ditto.
9121
9122 2008-02-20  Ira Rosen  <irar@il.ibm.com>
9123
9124         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
9125         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
9126         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
9127
9128 2008-02-19  Jan Hubicka  <jh@suse.cz>
9129
9130         * predict.c (tree_bb_level_predictions): Remove variable next
9131         mistakely introduced by previous commit.
9132
9133 2008-02-19  Jan Hubicka  <jh@suse.cz>
9134
9135         * predict.c (predict_paths_leading_to): Rewrite.
9136         (predict_paths_for_bb): New.
9137         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
9138
9139 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9140
9141         PR bootstrap/35218
9142         * Makefile.in (build_file_translate): New.
9143         (gcc-vers.texi): Use it for translating $(abs_srcdir).
9144         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
9145         * configure.ac (build_file_translate): Substitute it.
9146         * configure: Regenerate.
9147
9148 2008-02-19  Jan Hubicka  <jh@suse.cz>
9149
9150         PR rtl-optimization/34408
9151         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
9152         invalid sharing.
9153
9154 2008-02-19  Jan Hubicka  <jh@suse.cz>
9155
9156         PR middle-end/28779
9157         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
9158         call_expr.
9159
9160 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
9161
9162         PR Ada/35186
9163         * config/i386/i386-modes.def: Revert the last DI alignment
9164         change until Ada people can look into it.
9165
9166 2008-02-19  Nick Clifton  <nickc@redhat.com>
9167
9168         * opts.c (print_specific_help): Fix typo in --help text.
9169
9170 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
9171
9172         PR target/35239
9173         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
9174         32-bit inline asm without asm alternatives for host GCC < 3.0.
9175
9176 2008-02-19  Richard Guenther  <rguenther@suse.de>
9177
9178         PR tree-optimization/34989
9179         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
9180         Allow propagation to INDIRECT_REF if we can simplify only.
9181
9182 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9183
9184         * c-common.c (warn_for_collisions_1): Use appropriate option when
9185         warning.
9186
9187 2008-02-19  Nick Clifton  <nickc@redhat.com>
9188
9189         PR other/31349
9190         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
9191         (handle_options): Fix indentation.
9192         (print_filtered_help): If no language-specific options were
9193         displayed tell the user how to list all the options supported by
9194         the language's front-end.
9195         (print_specific_help): Fix indentation and remove duplicate line.
9196         (common_handle_option): Handle the -v option.
9197         For --help enable the display of undocumented options if the -v
9198         switch has been included on the command line.
9199         For --help= check for overlaps in the arguments between the option
9200         classes and the language names and issue a warning when they
9201         cannot be disambiguated.
9202         * c.opt (v): Pass on to the common option handler.
9203
9204 2008-02-19  Revital Eres  <eres@il.ibm.com> 
9205
9206         * modulo-sched.c (sms_schedule): Change dump message when
9207         create_ddg function fails.
9208         (try_scheduling_node_in_cycle): Rename row to cycle.
9209         (print_partial_schedule): Rename CYCLE to ROW.
9210
9211 2008-02-19  Christian Bruel  <christian.bruel@st.com>
9212             Zdenek Dvorak  <ook@ucw.cz>
9213
9214         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
9215
9216 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
9217
9218         PR target/33555
9219         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
9220         (*x86_movdicc_0_m1_se): Ditto.
9221
9222 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
9223
9224         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
9225         (CMPtype): Define as __gcc_CMPtype.
9226         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
9227         (CMPtype): Define as __gcc_CMPtype.
9228
9229 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
9230
9231         Support valgrind 3.3 for --enable-checking=valgrind.
9232         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
9233         here.
9234         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
9235         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
9236         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
9237         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
9238         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
9239         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
9240         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
9241         respectively.
9242         * ggc-zone.c: Similar.
9243         * ggc-page.c: Similar.
9244
9245 2008-02-19  Paul Brook  <paul@codesourcery.com>
9246
9247         PR target/35071
9248         * config/arm/ieee754-df.S: Fix do_it typo.
9249         * config/arm/ieee754-sf.S: Fix do_it typo.
9250
9251 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
9252
9253         PR target/35189
9254         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
9255         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
9256         (OPTION_MASK_ISA_SSE_SET): Likewise.
9257         (OPTION_MASK_ISA_SSE2_SET): Likewise.
9258         (OPTION_MASK_ISA_SSE3_SET): Likewise.
9259         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
9260         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
9261         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
9262         (OPTION_MASK_ISA_SSE4_SET): Likewise.
9263         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
9264         (OPTION_MASK_ISA_SSE5_SET): Likewise.
9265         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
9266         (OPTION_MASK_ISA_MMX_UNSET): Updated.
9267         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
9268         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
9269         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
9270         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
9271         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
9272         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
9273         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
9274         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
9275         (OPTION_MASK_ISA_SSE4): Removed.
9276         (ix86_handle_option): Turn on bits in ix86_isa_flags and
9277         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
9278         (override_options): Don't turn on implied SSE/MMX bits in
9279         ix86_isa_flags.
9280
9281 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
9282
9283         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
9284         32bit host.
9285
9286 2008-02-18  Joey Ye  <joey.ye@intel.com>
9287
9288         PR middle-end/34921
9289         * tree-nested.c (insert_field_into_struct): Set type alignment
9290         to field alignment if the former is less than the latter.
9291
9292 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
9293
9294         * BASE-VER: Set to 4.4.0.
9295
9296 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9297
9298         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
9299         * doc/cfg.texi: Likewise.
9300         * doc/extend.texi: Likewise.
9301         * doc/gty.texi: Likewise.
9302         * doc/invoke.texi: Likewise.
9303         * doc/loop.texi: Likewise.
9304         * doc/md.texi: Likewise.
9305         * doc/passes.texi: Likewise.
9306         * doc/rtl.texi: Likewise.
9307         * doc/sourcebuild.texi: Likewise.
9308         * doc/tm.texi: Likewise.
9309         * doc/tree-ssa.texi: Likewise.
9310
9311 2008-02-17  Richard Guenther  <rguenther@suse.de>
9312
9313         PR middle-end/35227
9314         * tree-complex.c (init_parameter_lattice_values): Handle parameters
9315         without default definition.
9316
9317 2008-02-17  Richard Guenther  <rguenther@suse.de>
9318
9319         PR tree-optimization/35231
9320         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
9321         if A | B != 1.
9322
9323 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
9324
9325         Revert:
9326         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
9327         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
9328         libgcc_cmp_return mode.
9329
9330 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9331
9332         PR c/28368
9333         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
9334
9335 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
9336
9337         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
9338         multilibs.
9339
9340 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9341
9342         * doc/c-tree.texi: Use `@.' where appropriate.
9343         * doc/extend.texi: Likewise.
9344         * doc/install.texi: Likewise.
9345         * doc/invoke.texi: Likewise.
9346         * doc/loop.texi: Likewise.
9347         * doc/makefile.texi: Likewise.
9348         * doc/md.texi: Likewise.
9349         * doc/passes.texi: Likewise.
9350         * doc/standards.texi: Likewise.
9351         * doc/tm.texi: Likewise.
9352
9353 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
9354
9355         PR middle-end/35196
9356         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
9357         in entry_bb.
9358         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
9359         rather than in entry_bb.
9360
9361 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
9362
9363         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
9364         libgcc_cmp_return mode.
9365
9366 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
9367
9368         PR middle-end/35130
9369         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
9370         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
9371
9372 2008-02-15  Richard Guenther  <rguenther@suse.de>
9373             Zdenek Dvorak  <ook@ucw.cz>
9374
9375         PR tree-optimization/35164
9376         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
9377         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
9378         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
9379         Only propagate addresses which do not have abnormal SSA_NAMEs
9380         in their operands.
9381
9382 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
9383
9384         PR target/35088
9385         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
9386
9387 2008-02-15  Jan Hubicka  <jh@suse.cz>
9388
9389         PR middle-end/35149
9390         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
9391
9392 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
9393
9394         PR middle-end/34621
9395         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
9396         when calculating alignment_pad.
9397
9398 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
9399
9400         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
9401         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
9402         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
9403         and STACK_BOUNDARY define.
9404
9405 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
9406
9407         PR preprocessor/35061
9408         * c-pragma.c (handle_pragma_pop_macro): Check that
9409         pushed_macro_table has been allocated.
9410
9411 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
9412
9413         PR middle-end/35136
9414         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
9415         (force_gimple_operand): Likewise.
9416         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
9417         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
9418         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
9419         (find_interesting_uses_address): Check addressability and alignment
9420         of the base expression only after substituting bases of IVs into it.
9421
9422 2008-02-14  Michael Matz  <matz@suse.de>
9423
9424         PR target/34930
9425         * function.c (instantiate_virtual_regs_in_insn): Reload address
9426         before falling back to reloading the whole operand.
9427
9428 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
9429
9430         * config/s390/s390.c (s390_mainpool_start): Emit the pool
9431         before the first section switch note.
9432
9433 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9434
9435         * doc/bugreport.texi: Update copyright years.
9436         * doc/c-tree.texi: Likewise.
9437         * doc/cfg.texi: Likewise.
9438         * doc/cpp.texi: Likewise.
9439         * doc/cppinternals.texi: Likewise.
9440         * doc/fragments.texi: Likewise.
9441         * doc/frontends.texi: Likewise.
9442         * doc/gcc.texi: Likewise.
9443         * doc/gty.texi: Likewise.
9444         * doc/hostconfig.texi: Likewise.
9445         * doc/implement-c.texi: Likewise.
9446         * doc/libgcc.texi: Likewise.
9447         * doc/loop.texi: Likewise.
9448         * doc/makefile.texi: Likewise.
9449         * doc/options.texi: Likewise.
9450         * doc/passes.texi: Likewise.
9451         * doc/rtl.texi: Likewise.
9452         * doc/sourcebuild.texi: Likewise.
9453         * doc/standards.texi: Likewise.
9454         * doc/tree-ssa.texi: Likewise.
9455         * doc/trouble.texi: Likewise.
9456
9457         * doc/extend.texi: Use @: or add comma where appropriate.
9458         * doc/invoke.texi: Likewise.
9459         * doc/tm.texi: Likewise.
9460
9461 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
9462
9463         PR target/34393
9464         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
9465         to a reg.
9466
9467 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
9468
9469         * doc/md.texi (clz, ctz): Add reference.
9470         * doc/rtl.texi (clz, ctz): Likewise.
9471
9472 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9473
9474         PR other/35148
9475         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
9476         srcdir.
9477
9478 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
9479
9480         * config/s390/s390.c (struct constant_pool): New field
9481         emit_pool_after added.
9482         (s390_mainpool_start): Set the emit_pool_after flag according
9483         to the section switch notes.
9484         (s390_mainpool_finish): Consider emit_pool_after when emitting
9485         the literal pool at the end of the function.
9486         (s390_chunkify_start): Force literal pool splits at section
9487         switch notes.
9488
9489 2008-02-13  Michael Matz  <matz@suse.de>
9490
9491         PR debug/35065
9492         * var-tracking.c (clobber_variable_part): Correctly traverse the
9493         list.
9494
9495 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9496
9497         PR 29673
9498         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
9499         Add -fdump-ipa-inline.
9500         * tree-dump.c (dump_files): Remove tree-inlined dump.
9501         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
9502         
9503 2008-02-12  Richard Guenther  <rguenther@suse.de>
9504
9505         PR tree-optimization/35171
9506         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
9507         default defs.
9508
9509 2008-02-12  Richard Guenther  <rguenther@suse.de>
9510
9511         PR middle-end/35163
9512         * fold-const.c (fold_widened_comparison): Use get_unwidened in
9513         value-preserving mode.  Disallow final truncation.
9514
9515 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
9516
9517         PR middle-end/35136
9518         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
9519         code from here to...
9520         (force_gimple_operand): ...here.
9521
9522 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
9523
9524         PR c++/35144
9525         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
9526         non-compatible pointers.
9527         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
9528         different FIELD_DECLs, try harder by comparing field offsets, sizes
9529         and types.
9530
9531         PR inline-asm/35160
9532         * function.c (match_asm_constraints_1): Don't replace the same input
9533         multiple times.
9534
9535 2008-02-12  Anatoly Sokolov <aesok@post.ru>
9536
9537         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
9538         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
9539         (expand_epilogue): Restore RAMPZ register.
9540         * config/avr/avr.md (RAMPZ_ADDR): New constant.
9541
9542 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
9543
9544         * config/i386/cygwin.asm: (__alloca): Correct calling
9545         convention and alignment.
9546         (__chkstk): Force 8 byte stack alignment.
9547
9548 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
9549             Richard Guenther  <rguenther@suse.de>
9550
9551         PR tree-optimization/33992
9552         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
9553         the zero we compare against.
9554
9555 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
9556
9557         PR libfortran/35063
9558         * gthr-win32.h (__gthread_mutex_destroy_function): New function
9559         to CloseHandle after unlocking to prevent accumulation of handle
9560         count.
9561
9562 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9563
9564         PR middle_end/34150
9565         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
9566         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
9567         and update LABEL_NUSES during and after reload.
9568
9569 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
9570
9571         PR middle-end/34627
9572         * combine.c (simplify_if_then_else): Make sure the comparison is
9573         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
9574
9575 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
9576
9577         PR bootstrap/35051
9578         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
9579         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
9580         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
9581         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
9582         * tree.h (get_type_static_bounds): Likewise.
9583
9584 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9585
9586         * doc/invoke.texi (Option Summary, C++ Dialect Options)
9587         (Objective-C and Objective-C++ Dialect Options, Warning Options):
9588         Make -Wfoo language annotations match what the compiler outputs.
9589
9590 2008-02-08  Sa Liu  <saliu@de.ibm.com>
9591
9592         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
9593         intrinsics spu_convts, spu_convtu, spu_convtf.
9594
9595 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
9596
9597         * doc/extend.texi (Function Attributes) <noinline>: Mention
9598         asm ("") as method to keep calls.
9599
9600 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9601
9602         PR other/32754
9603         * doc/options.texi (Options): Replace references to opts.sh with
9604         optc-gen.awk.
9605         * opts-common.c: Likewise.
9606         * optc-gen.awk: Likewise.
9607         
9608 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
9609
9610         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
9611
9612 2008-02-07  Richard Henderson  <rth@redhat.com>
9613
9614         PR rtl-opt/33410
9615         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
9616         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
9617         funny mode.
9618
9619 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
9620
9621         PR tree-optimization/35085
9622         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
9623         for operand entry oe2 in addition to operand entry oe3 in order to
9624         expose more opportunities for vectorizer sum reduction.
9625
9626 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9627
9628         PR other/35107
9629         * Makefile.in (LIBS): Remove $(GMPLIBS).
9630         (cc1-dummy, cc1): Add $(GMPLIBS).
9631
9632 2008-02-06  Jan Hubicka  <jh@suse.cz>
9633
9634         PR target/23322
9635         * i386.md (moddf_integer): Do not produce partial memory stalls for
9636         targets where it hurts.
9637
9638 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
9639
9640         PR target/35083
9641         * optabs.c (expand_float): Do not check for decimal modes when
9642         expanding unsigned integer through signed conversion.
9643
9644 2008-02-06  Nick Clifton  <nickc@redhat.com>
9645
9646         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
9647         inside the clobber with a match_operand and duplicated operand
9648         number in the constraint.
9649         (ineqbranchsi): Delete redundant comment.
9650
9651 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
9652
9653         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
9654         builtin_define ("__USE_INIT_FINI__").
9655         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
9656         -msx multilibs.
9657         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
9658
9659 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9660
9661         PR documentation/30330
9662         * doc/invoke.texi (C++ Dialect Options)
9663         (Objective-C and Objective-C++ Dialect Options, Warning Options):
9664         For each warning option -Wfoo that allows -Wno-foo, ensure both
9665         -Wfoo and -Wno-foo are listed in the option index.  Fix index
9666         entry of -Wswitch-default, index -Wnormalized= including the
9667         `=', and -Wlarger-than-@var{len} including @var{len}.
9668
9669 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
9670
9671         * config/i386/i386.md (floatunssisf2): Use
9672         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
9673         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
9674         Macroize expander using MODEF mode iterator.
9675
9676 2008-02-05  Diego Novillo  <dnovillo@google.com>
9677
9678         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
9679
9680         PR 33738
9681         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
9682
9683 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9684
9685         PR other/35070
9686         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
9687
9688 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
9689
9690         PR target/35084
9691         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
9692         to indicate if a message should be generated.
9693         (init_cumulative_args): Updated.
9694         (function_value_32): Likewise.
9695
9696 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
9697
9698         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
9699
9700 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
9701
9702         PR target/35083
9703         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
9704         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
9705
9706 2008-02-04  Diego Novillo  <dnovillo@google.com>
9707
9708         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
9709
9710         PR 33738
9711         * tree-vrp.c (vrp_evaluate_conditional): With
9712         -Wtype-limits, emit a warning when comparing against a
9713         constant outside the natural range of OP0's type.
9714
9715 2008-02-04  Richard Guenther  <rguenther@suse.de>
9716
9717         PR middle-end/33631
9718         * expr.c (count_type_elements): Give for unions instead of
9719         guessing.
9720
9721 2008-02-04  Richard Guenther  <rguenther@suse.de>
9722
9723         PR middle-end/35043
9724         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
9725         to TYPE_DOMAINs base type instead of using bitsizetype here.
9726
9727 2008-02-03  Jason Merrill  <jason@redhat.com>
9728
9729         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
9730
9731 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9732
9733         PR other/29972
9734         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
9735         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
9736         (RS/6000 and PowerPC Options): Fix typos and markup.
9737         * doc/passes.texi (Tree-SSA passes): Likewise.
9738
9739 2008-02-02  Michael Matz  <matz@suse.de>
9740
9741         PR target/35045
9742         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
9743         from record_last_reg_set_info.
9744         (record_last_reg_set_info): Take an RTX argument, iterate over all
9745         constituent hardregs.
9746         (record_last_set_info, record_opr_changes): Change calls to
9747         new signature or to record_last_reg_set_info_regno.
9748
9749 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
9750
9751         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
9752
9753 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
9754
9755         PR rtl-optimization/34773
9756         * reg-notes.def (EQUAL): Mention significance of combination of
9757         REG_EQUAL and REG_RETVAL.
9758         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
9759         insn that has a REG_RETVAL.
9760
9761 2008-02-01  Roger Sayle  <roger@eyesopen.com>
9762
9763         PR bootstrap/33781
9764         * configure.ac (--enable-fixed-point): Disable unless explicitly
9765         requested on IRIX.
9766         * configure: Regenerate.
9767
9768 2008-02-01  Richard Guenther  <rguenther@suse.de>
9769
9770         PR other/35042
9771         * invoke.texi (-finline-limit): Remove no longer true parts
9772         of the documentation.  Note that there is no default value.
9773
9774 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
9775             Mark Mitchell  <mark@codesourcery.com>
9776             Ben Elliston  <bje@au.ibm.com>
9777
9778         PR c/29326
9779         * doc/extend.texi (Other Builtins): Document.
9780
9781 2008-01-31  Tom Browder <tom.browder@gmail.com>
9782
9783         * doc/c-tree.texi (Types): Fix grammar.
9784         (Expression trees): Ditto.
9785         * doc/passes.texi (Tree-SSA passes): Ditto.
9786         
9787         * doc/configterms.texi (Configure Terms): Fix typo.
9788         * doc/cpp.texi (Common Predefined Macros): Ditto.
9789         * doc/md.texi (Machine Constraints): Ditto.
9790         
9791         * doc/makefile.texi (Makefile): Add comma.
9792
9793 2008-01-31  Tom Browder  <tom.browder@gmail.com>
9794             Gerald Pfeifer  <gerald@pfeifer.com>
9795         
9796         * doc/sourcebuild.texi (Front End): Remove references to CVS
9797         and CVSROOT/modules.
9798         (Texinfo Manuals): Replace reference to CVS by one to SVN.
9799         (Back End): Remove reference to CVS.
9800
9801 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
9802
9803         PR target/34900
9804         * config/mips/mips.c (gen_load_const_gp): New function, taking a
9805         comment from...
9806         (mips16_gp_pseudo_reg): ...here.
9807         * config/mips/mips.md (load_const_gp): Replace with...
9808         (load_const_gp_<mode>): ...this :P-based insn.
9809
9810 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9811
9812         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
9813         options. Minor fixes.
9814         (-std): Move reference to standards closer to where language
9815         standards are first mentioned.
9816         
9817 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
9818
9819         PR rtl-optimization/34995
9820         * reload.c (alternative_allows_const_pool_ref): Take an rtx
9821         parameter and return a bool.  If the rtx parameter is nonnull,
9822         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
9823         (find_reloads): Update call accordingly.  Pass the new operand
9824         if it needed no address reloads, otherwise pass null.
9825
9826 2008-01-30  Richard Henderson  <rth@redhat.com>
9827
9828         PR c/34993
9829         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
9830         for unbounded arrays.
9831
9832 2008-01-30  Silvius Rus  <rus@google.com>
9833
9834         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
9835
9836 2008-01-30  Jan Hubicka  <jh@suse.cz>
9837
9838         PR target/34982
9839         * i386.c (init_cumulative_args): Use real function declaration when
9840         calling locally.
9841
9842 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
9843
9844         PR rtl-optimization/34998
9845         * global.c (build_insn_chain): Treat non-subreg_lowpart
9846         SUBREGs of pseudos as clobbering all the words covered by the
9847         SUBREG, not just all the bytes.
9848         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
9849         original df_ref rather than an extract parameter.
9850         (global_conflicts): Update call accordingly.
9851
9852 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
9853
9854         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
9855         the overflow check to make it easier to read.
9856         (__fixtfdi): Change the type of the ll member in union
9857         long_double to UDItype_x.
9858
9859 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
9860
9861         PR middle-end/34969
9862         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
9863         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
9864         * tree-inline.c (fold_marked_statements): Call
9865         cgraph_update_edges_for_call_stmt if folding a call statement.
9866         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
9867         debug_generic_stmt calls, reset it back afterwards.
9868
9869         PR c/35017
9870         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
9871         static decls.
9872         * c-typeck.c (build_external_ref): Don't pedwarn about
9873         static vars in current function's scope.
9874
9875 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
9876
9877         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
9878
9879 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
9880
9881         PR c/35002
9882         * ipa-struct-reorg.c: Fix spelling.
9883         * params.def: Ditto.
9884
9885 2008-01-29  Richard Guenther  <rguenther@suse.de>
9886
9887         PR middle-end/35006
9888         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
9889         field.
9890         * tree-inline.c (remap_type): Increment remapping_type_depth
9891         around remapping types.
9892         (copy_body_r): Only add referenced variables if they are referenced
9893         from code, not types.
9894
9895 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
9896
9897         PR c++/34055
9898         PR c++/34103
9899         PR c++/34219
9900         PR c++/34606
9901         PR c++/34753
9902         PR c++/34754
9903         PR c++/34755
9904         PR c++/34919
9905         PR c++/34961
9906         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
9907         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
9908
9909 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
9910
9911         PR target/34412
9912         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
9913         pointer for tiny stack.
9914
9915 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
9916
9917         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
9918
9919 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
9920
9921         * config/vx-common.h: Fix typo in comment.
9922
9923 2008-01-28  Ian Lance Taylor  <iant@google.com>
9924
9925         PR c++/34862
9926         PR c++/33407
9927         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
9928         coalesce pointers if they have different DECL_NO_TBAA_P values.
9929         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
9930         between variables with different DECL_NO_TBAA_P values.
9931
9932 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
9933
9934         PR 31535
9935         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
9936         are not legitimate small data references on SPE targets.
9937
9938 2008-01-28  David Daney  <ddaney@avtrex.com>
9939
9940         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
9941
9942 2008-01-28  David Daney  <ddaney@avtrex.com>
9943
9944         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
9945
9946 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
9947
9948         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
9949         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
9950         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
9951         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
9952         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
9953         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
9954         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
9955         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
9956
9957 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
9958
9959         * basic-block.h (condjump_equiv_p): Fix comment.
9960
9961 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
9962
9963         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
9964         print_generic_stmt_indented): Fix comment.
9965
9966 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
9967
9968         * configure.ac (__stack_chk_fail): Add detecion for availability
9969         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
9970         * configure: Regenerate.
9971
9972 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
9973
9974         PR middle-end/34688
9975         * final.c (output_addr_const): Handle TRUNCATE.
9976
9977 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
9978
9979         PR target/34711
9980         * tree-ssa-loop-ivopts.c (comp_cost): New type.
9981         (zero_cost, infinite_cost): New constants.
9982         (struct cost_pair): Change type of cost to comp_cost.
9983         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
9984         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
9985         New functions.
9986         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
9987         split_address_cost, ptr_difference_cost, difference_cost,
9988         get_computation_cost_at, get_computation_cost,
9989         determine_use_iv_cost_generic, determine_use_iv_cost_address,
9990         determine_use_iv_cost_condition, determine_use_iv_costs,
9991         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
9992         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
9993         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
9994         Change type of cost to comp_cost.
9995         (determine_iv_cost): Increase cost of non-original ivs, instead
9996         of decreasing the cost of original ones.
9997         (get_address_cost): Indicate the complexity of the addressing mode 
9998         in comp_cost.
9999         (try_add_cand_for): Prefer using ivs not specific to some object.
10000         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
10001
10002 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
10003             Janis Johnson  <janis187@us.ibm.com>
10004
10005         PR target/34814
10006         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
10007         (TARGET_INSTANTIATE_DECLS): Likewise.
10008         * target.h (expand_to_rtl_hook): New target hook.
10009         (instantiate_decls): Likewise.
10010         * function.c (instantiate_decl): Make non-static.  Rename to...
10011         (instantiate_decl_rtl): ... this.
10012         (instantiate_expr): Use instantiate_decl_rtl.
10013         (instantiate_decls_1): Likewise.
10014         (instantiate_decls): Likewise.
10015         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
10016         * function.h (instantiate_decl_rtl): Add prototype.
10017         * cfgexpand.c (target.h): New include.
10018         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
10019         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
10020         (TARGET_INSTANTIATE_DECLS): Likewise.
10021         (TARGET_INITIALIZER): New target hooks added.
10022         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
10023         New prototype.
10024         * config/rs6000/rs6000.c (tree-flow.h): New include.
10025         (machine_function): Add sdmode_stack_slot field.
10026         (rs6000_alloc_sdmode_stack_slot): New function.
10027         (rs6000_instantiate_decls): Likewise.
10028         (rs6000_secondary_memory_needed_rtx): Likewise.
10029         (rs6000_check_sdmode): Likewise.
10030         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
10031         (TARGET_INSTANTIATE_DECLS): Likewise.
10032         (rs6000_hard_regno_mode_ok): Allow SDmode.
10033         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
10034         (rs6000_emit_move): Handle SDmode.
10035         (function_arg_advance): Likewise.
10036         (function_arg): Likewise.
10037         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
10038         SDmode var args for 32-bit compiles.
10039         (rs6000_secondary_reload_class): Handle SDmode.
10040         (rs6000_output_function_epilogue): Likewise.
10041         (rs6000_function_value): Simplify if statement.
10042         (rs6000_libcall_value): Likewise.
10043         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
10044         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
10045         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
10046         (movsd_hardfloat): New define_insn.
10047         (movsd_softfloat): Likewise.
10048         (movsd_store): Likewise.
10049         (movsd_load): Likewise.
10050         (extendsddd2): Likewise.
10051         (extendsdtd2): Likewise.
10052         (truncddsd2): Likewise.
10053         (movdd_hardfloat64): Fixup comment.
10054         (UNSPEC_MOVSD_LOAD): New constant.
10055         (UNSPEC_MOVSD_STORE): Likewise.
10056
10057 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
10058
10059         PR c++/34965
10060         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
10061         TRUTH_XOR_EXPR.
10062         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
10063         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
10064         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
10065         and TRUTH_XOR_EXPR.
10066
10067 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
10068
10069         PR target/34794
10070         * config.gcc: Separate AIX 5.3 from AIX 6.1.
10071         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
10072         __LONGDOUBLE128 too.
10073         * config/rs6000/aix61.h: New file.
10074
10075 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
10076
10077         PR rtl-optimization/34959
10078         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
10079         popcount and parity rtxes the same mode as their operand.
10080         Truncate or extend the result to the return value's mode
10081         if necessary.
10082
10083 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
10084
10085         PR target/34981
10086         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
10087         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
10088         to GOT_VERSION_REGNUM.
10089         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
10090         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
10091         * config/mips/mips.c (mips_emit_call_insn): New function.
10092         (mips_call_tls_get_addr): Call mips_expand_call directly.
10093         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
10094         emit_call_insn.
10095         (mips16_build_call_stub): Likewise.  Return the call insn or null.
10096         (mips_expand_call): Update the call to mips16_build_call_stub
10097         accordingly and a remove redundant condition.  Assert that MIPS16
10098         stubs do not use lazy binding.  Use mips_emit_call_insn and return
10099         the call insn.
10100         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
10101         TARGET_USE_GOT.
10102         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
10103         (mips_avoid_hazard): Remove hazard_set handling.
10104         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
10105         (UNSPEC_RESTORE_GP): ...this.
10106         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
10107         (FAKE_CALL_REGNO): Rename to...
10108         (GOT_VERSION_REGNUM): ...this.
10109         (type): Add "ghost" value.  Add an associated insn reservation.
10110         (hazard_set): Remove.
10111         (exception_receiver): Rename to...
10112         (restore_gp): ...this and update the unspec identifier accordingly.
10113         (exception_receiver, nonlocal_got_receiver): New expanders.
10114         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
10115         FAKE_CALL_REGNO.  Remove hazard_set attribute.
10116         (set_got_version, update_got_version): New patterns.
10117
10118 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
10119
10120         PR target/34970
10121         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
10122
10123 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
10124
10125         PR other/31955
10126         * doc/install.texi2html: Generate gcc-vers.texi.
10127
10128 2008-01-25  DJ Delorie  <dj@redhat.com>
10129
10130         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
10131
10132 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
10133
10134         * config/c4x: Remove directory.
10135         * config.gcc (crx-*, mt-*): Mark obsolete.
10136         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
10137         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
10138         sh-*-rtemscoff*): Remove cases.
10139         * defaults.h (C4X_FLOAT_FORMAT): Remove.
10140         * real.c (encode_c4x_single, decode_c4x_single,
10141         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
10142         c4x_extended_format): Remove.
10143         * real.h (c4x_single_format, c4x_extended_format): Remove.
10144         * doc/extend.texi (interrupt, naked): Remove mention of attributes
10145         on C4x.
10146         (Pragmas): Remove comment about c4x pragmas.
10147         * doc/install.texi (c4x): Remove target-specific instructions.
10148         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
10149         * doc/md.texi (Machine Constraints): Remove C4x documentation.
10150         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
10151         refer to C4x source files as examples.
10152         (C4X_FLOAT_FORMAT): Remove documentation.
10153
10154 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
10155
10156         * config/bfin/bfin.c (override_options): Reorder tests so that
10157         flag_pic gets enabled for -msep-data.
10158
10159 2008-01-25  Richard Guenther  <rguenther@suse.de>
10160
10161         PR middle-end/32244
10162         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
10163         to its bitfield precision if required.
10164
10165 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
10166
10167         PR middle-end/33880
10168         * tree-nested.c (walk_omp_for): New function.
10169         (convert_nonlocal_reference, convert_local_reference): Call
10170         walk_omp_for on OMP_FOR.
10171         (convert_call_expr): Call walk_body on OMP_FOR's
10172         OMP_FOR_PRE_INIT_BODY.
10173
10174 2008-01-25  Richard Guenther  <rguenther@suse.de>
10175
10176         PR tree-optimization/34966
10177         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
10178         default defs and PHI_NODEs we have to insert after the
10179         defining statement.
10180
10181 2008-01-24  Nick Clifton  <nickc@redhat.com>
10182
10183         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
10184         Provide a default definition.
10185         (LIBGCC2_UNITS_PER_WORD): Likewise.
10186
10187         * config/stormy16/stormy16.c: Include df.h for the prototype
10188         for df_regs_ever_live_p.
10189         (xstormy16_expand_builtin_va_start): Convert the stack offset
10190         into a component_ref and then use POINTER_PLUS_EXPR to add it
10191         to the incoming_virtual_args_rtx.
10192         (xstormy16_gimplify_va_arg_expr): Rename to
10193         xstormy16_gimplify_va_arg_expr.
10194         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
10195         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
10196         xstormy16_gimplify_va_arg_expr.
10197         Fix up some formatting issues.
10198
10199         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
10200         Move to predicates.md.
10201         (xs_hi_general_operand): Likewise.
10202         (xs_hi_nonmemory_operand): Likewise.
10203         * config/stormy16/predicates.md:
10204         (xstormy16_carry_plus_operand): New predicate.
10205         (xs_hi_general_operand): New predicate.
10206         (xs_hi_nonmemory_operand): New predicate.
10207         * config/stormy16/stormy16-protos.h:
10208         (xstormy16_carry_plus_operand): Delete prototype.
10209         (xs_hi_general_operand): Likewise.
10210         (xs_hi_nonmemory_operand): Likewise.
10211
10212         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
10213         modifiers as they are no longer needed and they can trigger
10214         reload spill failures.
10215
10216         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
10217         with a match_operand in order to help reload.
10218
10219         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
10220         constraint with 'e' for the 8th alternative as this version of
10221         the mov.w instruction only accepts the lower 8 registers.
10222
10223 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
10224
10225         PR target/34856
10226         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
10227         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
10228         vector elements.
10229
10230 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
10231
10232         PR middle-end/33333
10233         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
10234
10235 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
10236
10237         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
10238         New functions.
10239         (remove_structure): Update allocations list before removing structure.
10240         
10241 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
10242
10243         * ipa-struct-reorg.c (is_safe_cond_expr, 
10244         create_new_stmts_for_cond_expr): Use integer_zerop function,
10245         that recognize not only zero-pointer, but zero-integer too.
10246
10247 2008-01-25  Ben Elliston  <bje@au.ibm.com>
10248
10249         PR other/22232
10250         * fixproto: Escape "." in sed expression that strips leading "./".
10251
10252 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
10253
10254         PR driver/34904
10255         * gcc.c (SWITCH_OK): Removed.
10256         (SWITCH_LIVE): Changed to bit.
10257         (SWITCH_FALSE): Likewise.
10258         (SWITCH_IGNORE): Likewise.
10259         (switchstr): Change live_cond to unsigned int.
10260         (process_command): Replace SWITCH_OK with 0.
10261         (do_self_spec): Likewise.
10262         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
10263         (give_switch): Likewise.
10264         (used_arg): Likewise.
10265         (do_spec_1): Set the SWITCH_IGNORE bit.
10266         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
10267         bits.  Set the SWITCH_LIVE bit.
10268
10269 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
10270
10271         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
10272
10273 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
10274
10275         PR tree-optimization/34472
10276         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
10277         parameter to a "bool *" and set *DATA to false if there is
10278         an unsafe access.  Do not delete the structure here.
10279         (check_cond_exprs): Delete it here instead.
10280         (check_cond_exprs, exclude_cold_structs): Do not increase
10281         I when removing a structure.
10282
10283 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
10284
10285         PR target/34856
10286         * config/i386/i386.c (ix86_expand_vector_init): Consider only
10287         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
10288
10289 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
10290
10291         PR middle-end/34934
10292         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
10293         a fixed vector for stack.
10294
10295 2008-01-24  Ben Elliston  <bje@au.ibm.com>
10296
10297         PR c++/25701
10298         * doc/gcc.texi (Software development): Add a direntry for g++.
10299         
10300 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
10301
10302         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
10303         stale and straggling -fforce-addr comments above.
10304
10305         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
10306         define.
10307         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
10308         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
10309
10310 2008-01-23  Michael Matz  <matz@suse.de>
10311
10312         PR debug/34895
10313         * dwarf2out.c (force_type_die): Use modified_type_die instead of
10314         gen_type_die.
10315
10316 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
10317
10318         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
10319         malloc result type.
10320
10321 2008-01-23 Anatoly Sokolov <aesok@post.ru>
10322
10323         * config/avr/avr.c (avr_current_arch): New variable.
10324         (avr_arch_types): Add 'avr31' and 'avr51' entries.
10325         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
10326         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
10327         (avr_override_options): Init 'avr_current_arch'. 
10328         (base_arch_s): Move from here...
10329         * config/avr/avr.h (base_arch_s): ... here. Add new members 
10330         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
10331         'mega' to 'have_jmp_call'.
10332         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
10333         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
10334         macros.
10335         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
10336         architectures.
10337         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
10338         MULTILIB_MATCHES): (Ditto.).
10339
10340 2008-01-23  Richard Guenther  <rguenther@suse.de>
10341
10342         PR middle-end/31529
10343         * cgraphunit.c (cgraph_reset_node): Always mark the node
10344         not reachable if it is not queued already.
10345
10346 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
10347
10348         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
10349         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
10350         (cputype_selected): New static variable.
10351         (bfin_handle_option): Set it if -mcpu is used.
10352         (override_option): Select default set of workarounds if no cpu type
10353         selected on the command line.
10354         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
10355
10356         From  Michael Frysinger  <michael.frysinger@analog.com>
10357         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
10358         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
10359
10360         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
10361         for bf547, bf523, bf524, and bf526.
10362         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
10363         bf526.
10364         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
10365         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
10366         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
10367         __ADSPBF547__ and __ADSPBF54x__ for bf547.
10368         * doc/invoke.texi (Blackfin Options): Document that
10369         -mcpu now accept bf547, bf523, bf524, and bf526.
10370
10371 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
10372
10373         PR rtl-optimization/34628
10374         * combine.c (try_combine): Stop and undo after the first combination
10375         if an autoincrement side-effect on the first insn has effectively
10376         been lost.
10377
10378 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
10379
10380         PR target/34529
10381         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
10382         Offset addresses are not valid for Altivec or paired float modes.
10383
10384 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
10385
10386         PR c++/34607
10387         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
10388         if DECL_INITIAL (decl) is error_mark_node.
10389
10390         PR c++/34914
10391         * c-common.c (handle_vector_size_attribute): Only allow
10392         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
10393         the same way as pointer, array etc. types.
10394         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
10395
10396         PR c++/34917
10397         * tree.c (build_type_attribute_qual_variant): Call
10398         build_qualified_type if attributes are equal, but quals are not.
10399
10400 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10401
10402         PR 32102
10403         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
10404         * flags.h (warn_strict_aliasing): Remove.
10405         (warn_strict_overflow): Remove.
10406         * opts.c (warn_strict_aliasing): Remove.
10407         (warn_strict_overflow): Remove.
10408         * c-opts.c (c_common_handle_option): -Wall only sets
10409         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
10410         (c_common_post_options): Give default values to -Wstrict-aliasing
10411         and -Wstrict-overflow if they are uninitialized.
10412         * common.opt (Wstrict-aliasing): Specify Var and Init.
10413         (Wstrict-overflow): Likewise.
10414
10415 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
10416
10417         PR rtl-optimization/26854
10418         PR rtl-optimization/34400
10419         PR rtl-optimization/34884
10420         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
10421         DF_RD->gen.
10422         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
10423         (df_rd_bb_info.expanded_lr_out): Deleted
10424         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
10425         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
10426         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
10427         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
10428         Removed code to allocate, initialize or free expanded_lr_out.
10429         (df_rd_bb_local_compute_process_def): Restructured to make more
10430         understandable.
10431         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
10432         sets if the sets are being trimmed.
10433
10434 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
10435
10436         PR bootstrap/32287
10437         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
10438         (as_vers): Likewise.
10439         * configure: Regenerated.
10440
10441 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10442
10443         PR middle-end/33092
10444         * tree-pass.h (pass_build_alias): New pass.
10445         * tree-ssa-alias.c (gate_build_alias): New.
10446         (pass_build_alias): New.
10447         * passes.c (init_optimization_passes): Add pass_build_alias after
10448         pass_create_structure_vars.
10449
10450 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
10451
10452         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
10453         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
10454         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
10455         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
10456         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
10457         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
10458         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
10459         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
10460         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
10461         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
10462         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
10463         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
10464         * config/s390/s390.md (FP_ALL): New mode iterator.
10465         (_d): New mode attribute.
10466         ("*signbit<mode>2>"): Changed mode of first operand.
10467         ("isinf<mode>2"): Changed mode of first operand.
10468         ("*TDC_insn"): Adaptation for DFP modes.
10469
10470 2008-01-22  Ben Elliston  <bje@au.ibm.com>
10471
10472         * tree.c (check_qualified_type): Improve function description.
10473
10474 2008-01-21  Jason Merrill  <jason@redhat.com>
10475
10476         PR c++/34196
10477         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
10478         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
10479         if it is set.
10480
10481 2008-01-21  DJ Delorie  <dj@redhat.com>
10482
10483         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
10484         return zero.
10485
10486 2008-01-21  Richard Guenther  <rguenther@suse.de>
10487
10488         PR middle-end/34856
10489         * tree-cfg.c (verify_expr): Allow all invariant expressions
10490         instead of just constant class ones as reference argument.
10491         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
10492         like any other constant.
10493         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
10494
10495 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
10496
10497         * regmove.c (fixup_match_1): Update call crossed frequencies.
10498
10499 2008-01-21  Richard Guenther  <rguenther@suse.de>
10500
10501         PR c/34885
10502         * tree-inline.c (setup_one_parameter): Deal with mismatched
10503         types using a VIEW_CONVERT_EXPR.
10504
10505 2008-01-21  Alon Dayan  <alond@il.ibm.com>
10506             Olga Golovanevsky  <olga@il.ibm.com>
10507         
10508         PR tree-optimization/34701
10509         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
10510         when the structure size is not a power of 2.
10511
10512 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
10513
10514         * doc/install.texi: Add doc for --enable-checking=df.
10515         
10516 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
10517
10518         PR rtl-optimization/34808
10519         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
10520
10521 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
10522
10523         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
10524         input.
10525
10526 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
10527
10528         PR rtl-optimization/26854
10529         PR rtl-optimization/34400
10530         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
10531         DF_RD->gen.
10532         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
10533         (df_rd_bb_info.expanded_lr_out): New.
10534         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
10535         * loop_iv.c (iv_analysis_loop_init): Ditto.
10536         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
10537         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
10538         Added code to allocate, initialize or free expanded_lr_out.
10539         (df_rd_bb_local_compute_process_def): Restructured to make
10540         more understandable.
10541         (df_rd_confluence_n): Add code to do nothing with fake edges and
10542         code to no apply invalidate_by_call sets if the sets are being trimmed.
10543         (df_lr_local_finalize): Renamed to df_lr_finalize.
10544         (df_live_local_finalize): Renamed to df_live_finalize.
10545
10546 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
10547
10548         PR target/34831
10549         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
10550         deciding whether to use reciprocal instructions.
10551
10552 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
10553
10554         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
10555         dwarf2out_note_section_used if cold_text_section is NULL.
10556
10557 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
10558
10559         PR gcov-profile/34610
10560         * tree-cfg.c (make_edges): Mark both outgoing edges from
10561         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
10562         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
10563         from OMP_FOR and OMP_CONTINUE outgoing edges.
10564
10565         * tree-profile.c (tree_profiling): Return early if
10566         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
10567         at the end.
10568         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
10569         from cfun to child_cfun.
10570         * function.h (struct function): Add after_tree_profile bit.
10571
10572 2008-01-19 Anatoly Sokolov <aesok@post.ru>
10573
10574         * config/avr/avr.S (_exit): Disable interrupt.
10575
10576 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
10577             Steven Bosscher  <stevenb.gcc@gmail.com>
10578
10579         PR rtl-optimization/26854
10580         PR rtl-optimization/34400
10581         * df-problems.c (df_live_scratch): New scratch bitmap.
10582         (df_live_alloc): Allocate df_live_scratch when doing df_live.
10583         (df_live_reset): Clear the proper bitmaps.
10584         (df_live_bb_local_compute): Only process the artificial defs once
10585         since the order is not important.
10586         (df_live_init): Init the df_live sets only with the variables
10587         found live by df_lr.
10588         (df_live_transfer_function): Use the df_lr sets to prune the
10589         df_live sets as they are being computed.  
10590         (df_live_free): Free df_live_scratch.
10591
10592 2008-01-18  Ian Lance Taylor  <iant@google.com>
10593
10594         * common.opt: Add fmerge-debug-strings.
10595         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
10596         flag_merge_debug_strings rather than flag_merge_constants.
10597         * doc/invoke.texi (Option Summary): Mention
10598         -fmerge-debug-strings.
10599         (Debugging Options): Document -fmerge-debug-strings.
10600
10601 2008-01-18  Ian Lance Taylor  <iant@google.com>
10602
10603         PR c++/33407
10604         * tree.h (DECL_IS_OPERATOR_NEW): Define.
10605         (struct tree_function_decl): Add new field operator_new_flag.
10606         * tree-inline.c (expand_call_inline): When inlining a call to
10607         operator new, force the return value to go into a variable, and
10608         set DECL_NO_TBAA_P on that variable.
10609         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
10610
10611 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
10612
10613         PR debug/34484
10614         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
10615         DWARF2_DEBUGGING_INFO.
10616         (dwarf2out_note_section_used): Ditto.  Add prototype.
10617         (have_multiple_function_sections, text_section_used,
10618         cold_text_section_used, *cold_text_sections): Move declarations
10619         before their uses.
10620
10621 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
10622
10623         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
10624         field and add signal_ra.
10625         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
10626         assignments to frame state pc.  Move end of stack check after
10627         MD_FALLBACK_FRAME_STATE_FOR.
10628         (uw_update_context_1): Use frame state signal_regs if set, instead
10629         of checking signal_frame flag.
10630         (uw_update_context): Use frame state signal_ra if set.
10631         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
10632         * config/xtensa/linux-unwind.h: New file.
10633
10634 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
10635
10636         * modulo-sched.c (get_sched_window): Fix comment typo.
10637
10638 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
10639
10640         PR tree-optimization/34648
10641         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
10642
10643 2008-01-17  Anatoly Sokolov <aesok@post.ru>
10644
10645         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
10646         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
10647
10648 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
10649
10650         PR rtl-optimization/34400
10651         * df-core.c (df_worklist_dataflow_overeager,
10652         df_worklist_dataflow_doublequeue): New functions.
10653         (df_worklist_dataflow): Two different worklist solvers.
10654         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
10655         New param.
10656
10657 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10658
10659         PR testsuite/34821
10660         * doc/invoke.texi: Document the dependence on pthread for fopenmp
10661         and ftree-parallelize-loops.
10662
10663 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
10664
10665         PR rtl-optimization/34826
10666         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
10667
10668 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
10669
10670         * global.c (find_reg): Mark the eh regs as used if necessary.
10671         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
10672         * ra.h (struct allocno): no_eh_reg field added.  Changed
10673         no_stack_reg type to bitfield.
10674
10675 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
10676
10677         * tree.c (substitute_in_expr): Add missing 'break'.
10678
10679 2008-01-17  Richard Guenther  <rguenther@suse.de>
10680
10681         PR tree-optimization/34825
10682         * tree-ssa-math-opts.c (is_division_by): Do not recognize
10683         x / x as division to handle.
10684
10685 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10686
10687         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
10688         "-pthread" is specified.
10689         * pa-hpux11.h (LIB_SPEC): Likewise.
10690
10691 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
10692             Peter Bergner  <bergner@vnet.ibm.com>
10693
10694         PR rtl-optimization/33796
10695         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
10696
10697 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10698
10699         PR libgfortran/34699
10700         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
10701         static links.
10702         * pa-hpux10.h (LINK_SPEC): Likewise.
10703         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
10704
10705 2008-01-16  Richard Guenther  <rguenther@suse.de>
10706
10707         PR middle-end/32628
10708         * fold-const.c (fold_convert_const_int_from_int): Do not
10709         set overflow if that occured only because of a sign extension
10710         change when converting from/to a sizetype with the same
10711         precision and signedness.
10712
10713 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
10714
10715         PR debug/34249
10716         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
10717         location address to the correct place.  Update copyright year.
10718
10719 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10720
10721         * lambda-code.c (lambda_transform_legal_p): Handle the case of
10722         no dependences in the dependence_relations vector.
10723
10724 2008-01-16  Jan Hubicka  <jh@suse.cz>
10725
10726         PR rtl-optimization/31396
10727         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
10728         * cfg.c (dump_reg_info): Print it.
10729         * regs.h (struct reg_info_t): add freq_calls_crossed.
10730         (REG_FREQ_CALLS_CROSSED): New macro.
10731         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
10732         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
10733         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
10734         regmove_optimize): Update call crossed frequencies.
10735         * local-alloc.c (struct qty): Add freq_calls_crossed.
10736         (alloc_qty): Copute freq_calls_crossed.
10737         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
10738         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
10739         * ra.h (struct allocno): Add freq_calls_crossed.
10740
10741 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10742
10743         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
10744         libgomp when compiling with ftree-parallelize-loops.
10745         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
10746
10747 2008-01-16  Richard Guenther  <rguenther@suse.de>
10748
10749         PR tree-optimization/34769
10750         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
10751         * tree.c (int_cst_value): Instead make this function more
10752         permissive in what it accepts as valid input.  Document this
10753         function always sign-extends the value.
10754
10755 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
10756             Richard Guenther  <rguenther@suse.de>
10757
10758         PR c/34668
10759         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
10760         (gimple_fold_indirect_ref_rhs): ... this.
10761         (gimple_fold_indirect_ref): New function with foldings
10762         that preserve lvalueness.
10763         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
10764         * tree-flow.h (gimple_fold_indirect_ref): Declare.
10765         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
10766         to fold an INDIRECT_REF, fall back to the old use of
10767         fold_indirect_ref_1.
10768
10769 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10770
10771         * tree-data-ref.c (subscript_dependence_tester_1): Call 
10772         free_conflict_function.
10773         (compute_self_dependence): Same.
10774
10775 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
10776
10777         PR debug/34249
10778         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
10779         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
10780         function global.
10781         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
10782         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
10783         for DWARF2_UNWIND_INFO targets.
10784
10785 2008-01-16  Richard Guenther  <rguenther@suse.de>
10786
10787         PR c/34768
10788         * c-typeck.c (common_pointer_type): Do not merge inconsistent
10789         type qualifiers for function types.
10790
10791 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
10792
10793         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
10794         loop_iterator li from previous commit.
10795
10796 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
10797
10798         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
10799
10800 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
10801
10802         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
10803         (parallelize_loops): Don't parallelize irreducible components.
10804
10805 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10806
10807         PR c++/24924
10808         * c-opts (c_common_post_options): Do not enable CPP
10809         flag_pedantic_errors by default.
10810         
10811 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
10812
10813         PR rtl-optimization/31944
10814         * cse.c (remove_pseudo_from_table): New function.
10815         (merge_equiv_classes): Use above function to remove pseudo-registers.
10816         (invalidate): Likewise.
10817
10818 2008-01-13  Richard Guenther  <rguenther@suse.de>
10819
10820         PR middle-end/34601
10821         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
10822         instead of TYPE_MODE to deal with calls from expand_one_error_var.
10823
10824 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
10825
10826         * gcse.c (cprop_jump): Call validate_unshare_change instead of
10827         validate_change to unshare the source of the PC set.
10828
10829 2008-01-12  Jan Hubicka  <jh@suse.cz>
10830
10831         PR middle-end/32135
10832         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
10833         references above array bounds.  This might trigger bounds checks for
10834         pointers to arrays.
10835
10836 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
10837
10838         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
10839         new_replaceable_dependencies.
10840
10841 2008-01-12  Doug Kwan  <dougkwan@google.com>
10842
10843         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
10844         instead of OPT_Wreturn_type in warning due to ignored return type
10845         qualifiers.
10846         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
10847         options included in -Wextra.
10848         * c.opt: New option -Wignored_qualifiers.
10849         * doc/invoke.texi (Warning Options, -Wextra): Add new option
10850         -Wignore_qualifiers.
10851         (-Wignored-qualifiers): Document.
10852         (-Wreturn-type): Remove description of functionality now handled
10853         by -Wignored-qualifiers.
10854
10855 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
10856
10857         PR ada/33788
10858         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
10859         NOP_EXPR if it is between integral types with the same precision.
10860
10861 2008-01-12  Jan Hubicka  <jh@suse.cz>
10862
10863         PR other/28023
10864         * invoke.texi (max-inline-recursive-depth): Fix default value.
10865
10866 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
10867
10868         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
10869         correct type.
10870
10871 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
10872         
10873         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
10874         
10875 2008-01-11  James E. Wilson  <wilson@specifix.com>
10876
10877         PR target/26015
10878         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
10879
10880 2008-01-11  Anatoly Sokolov <aesok@post.ru>
10881
10882         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
10883         save/restore frame pointer register and don't use 'call-prologues' 
10884         optimization in function with "OS_task" attribute.
10885
10886 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
10887
10888         PR middle-end/31309
10889         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
10890         when copying to memory.
10891
10892 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
10893
10894         PR rtl-optimization/30905
10895         * cfgcleanup.c: Include dce.h
10896         (crossjumps_occured): New global variable.
10897         (try_crossjump_bb): Exit loop after finding a fallthru edge.
10898         If something changed, set crossjumps_occured to true.
10899         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
10900         Don't add/remove fake edges to exit here...
10901         (cleanup_cfg): ...but do it here, when crossjumping.
10902         Run a fast DCE when successful crossjumps occured in the latest
10903         iteration of try_optimize_cfg.
10904
10905 2008-01-11  Richard Guenther  <rguenther@suse.de>
10906
10907         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
10908         (struct vn_unary_op_s): Likewise.
10909         (vn_reference_insert): Free old reference on hash collision.
10910
10911 2008-01-10  Raksit Ashok  <raksit@google.com>
10912
10913         PR rtl-optimization/27971
10914         * combine.c (find_split_point): Split PLUS expressions which are
10915         inside a MEM rtx, and whose first operand is complex.
10916
10917 2008-01-10  DJ Delorie  <dj@redhat.com>
10918
10919         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
10920         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
10921         (m32c_hard_regno_ok): Call the underlying function.
10922
10923 2008-01-10  Richard Guenther  <rguenther@suse.de>
10924
10925         PR middle-end/34683
10926         * tree-cfg.c (tree_merge_blocks): Do not go through the
10927         full-blown folding and stmt updating path if we just deal
10928         with virtual operands.
10929         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
10930         test for abnormal SSA_NAMEs.
10931
10932 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
10933
10934         PR middle-end/34641
10935         * reload.c (push_reload): Add assertions.  All constants from
10936         reg_equiv_constant should have been used for replacing the respective
10937         pseudo earlier.
10938         (find_reloads_address): Invoke find_reloads_address_part for
10939         constant taken from the reg_equiv_constant array.
10940
10941 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
10942
10943         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
10944         field (valnum) the first in the struct.  Replace bools with
10945         unit bit fields.
10946
10947 2008-01-10  Richard Guenther  <rguenther@suse.de>
10948
10949         PR tree-optimization/34651
10950         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
10951         types and ordering for masking and converting.
10952
10953 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
10954
10955         PR tree-optimization/34017
10956         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
10957         also for PHI_NODE expressions.
10958
10959 2008-01-09  Jan Hubicka  <jh@suse.cz>
10960
10961         PR tree-optimization/34708
10962         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
10963         based on number of case labels.
10964         (init_inline_once): Remove switch_cost.
10965         * tree-inline.h (eni_weights_d): Remove switch_cost.
10966
10967 2008-01-09  Richard Guenther  <rguenther@suse.de>
10968         Andrew Pinski  <andrew_pinski@playstation.sony.com>
10969
10970         PR middle-end/30132
10971         * gimplify.c (gimplify_cond_expr): Do not create an addressable
10972         temporary if an rvalue is ok or an lvalue is not required.
10973
10974 2008-01-09  Richard Guenther  <rguenther@suse.de>
10975
10976         PR middle-end/34458
10977         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
10978         adjust return type.
10979
10980 2008-01-09  Richard Guenther  <rguenther@suse.de>
10981
10982         PR middle-end/34679
10983         * tree.c (host_integerp): Check for sizetype only if the
10984         type is an integer type.
10985
10986 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
10987
10988         PR debug/26364
10989         * opts.c (decode_options): Disable inlining of functions called
10990         once if not in unit-at-a-time mode.
10991
10992 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
10993
10994         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
10995
10996 2008-01-08  Richard Guenther  <rguenther@suse.de>
10997
10998         PR middle-end/31863
10999         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
11000         out early if the result will be unused.
11001
11002 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
11003
11004         PR target/34709
11005         Revert:
11006
11007         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
11008         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
11009         for TARGET_RECIP.       
11010         
11011 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
11012         
11013         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
11014         for vectorization tuned.
11015         
11016 2008-01-08  Richard Guenther  <rguenther@suse.de>
11017
11018         PR tree-optimization/34683
11019         * tree-ssa-operands.c (operand_build_cmp): Export.
11020         * tree-ssa-operands.h (operand_build_cmp): Declare.
11021         * tree-vn.c (vuses_compare): Remove.
11022         (sort_vuses): Use operand_build_cmp.
11023         (sort_vuses_heap): Likewise.
11024         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
11025         to re-use old VEC if available.  Do not sort already sorted VUSEs.
11026         (vdefs_to_vec): Do not sort already sorted VDEFs.
11027
11028 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
11029
11030         PR middle-end/34694
11031         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
11032
11033 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
11034
11035         PR target/34702
11036         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
11037         limitations of reciprocal sequences on x86 targets.
11038
11039 2008-01-08  Richard Guenther  <rguenther@suse.de>
11040
11041         PR tree-optimization/34683
11042         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
11043
11044 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
11045
11046         PR target/34622
11047         * config/darwin.c (darwin_mergeable_string_section): Don't use
11048         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
11049
11050 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
11051
11052         PR target/34682
11053         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
11054         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
11055         predicates of op0 and op1 to register_operand.
11056         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
11057         expander using X87MODEF mode iterator.  Change predicates of
11058         op0 and op1 to register_operand.
11059         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
11060         corresponding patterns and macroize using MODEF macro.  Change
11061         predicates of op0 and op1 to register_operand and remove
11062         "m" constraint. Disparage "r" alternative with "!".
11063         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
11064         macroize using X87MODEF macro.  Change predicates of op0 and op1
11065         to register_operand and remove "m" constraint.  Disparage "r"
11066         alternative with "!".
11067         (absneg splitter with memory operands): Remove.
11068         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
11069         patterns and macroize using X87MODEF mode iterator.
11070         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
11071         Change predicate of op1 to register_operand.
11072         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
11073         for memory operands.
11074
11075 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
11076
11077         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
11078
11079 2008-01-07  Richard Guenther  <rguenther@suse.de>
11080
11081         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
11082         fields.
11083
11084 2008-01-07  Richard Guenther  <rguenther@suse.de>
11085
11086         PR tree-optimization/34683
11087         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
11088         VOPs of the needed size to save memory.  Use VEC_quick_push
11089         to save compile-time.
11090         (vdefs_to_vec): Likewise.
11091
11092 2008-01-07  Sa Liu  <saliu@de.ibm.com>
11093
11094         * config/spu/spu.md (divdf3): Genetate inline code for double
11095         division.  The implementation doesn't handle INF or NAN, therefore it
11096         only applies when -ffinite-math-only is given.
11097
11098 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
11099
11100         PR libstdc++/34680
11101         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
11102         * doc/cpp.texi ([Common Predefined Macros]): Document.
11103
11104 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
11105
11106         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
11107         order to use commutative addition instead of subtraction.
11108
11109 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11110             Mircea Namolaru  <namolaru@il.ibm.com>
11111             Vladimir Yanovsky  <yanov@il.ibm.com>
11112             Revital Eres  <eres@il.ibm.com>
11113
11114         PR tree-optimization/34263
11115         * tree-outof-ssa.c (process_single_block_loop_latch,
11116         contains_tree_r): New functions.
11117         (analyze_edges_for_bb): Call process_single_block_loop_latch
11118         function to empty single-basic-block latch block if possible.
11119
11120 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
11121
11122         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
11123         for TARGET_RECIP.
11124         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
11125
11126 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
11127
11128         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
11129
11130 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
11131
11132         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
11133
11134 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
11135
11136         PR tree-optimization/34618
11137         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
11138         flag from T.
11139
11140 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
11141
11142         PR target/34673
11143         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
11144         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
11145         Update copyright year.
11146
11147         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
11148         Update copyright year.
11149         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
11150         using NR fixup.
11151
11152 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
11153
11154         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
11155         edge does not point to current bb before changing need_assert.
11156
11157 2008-01-04  Richard Guenther  <rguenther@suse.de>
11158
11159         PR middle-end/34029
11160         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
11161         for verifying purposes if they are is_gimple_min_invariant.
11162
11163 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
11164
11165         PR tree-optimization/34448
11166         PR tree-optimization/34465
11167         * gimplify.c (gimplify_init_constructor): Add new parameter
11168         notify_temp_creation.  Use it.
11169         (gimplify_modify_expr_rhs): Take volatiles into account when
11170         optimizing constructors.
11171         Do not optimize constructors if gimplify_init_constructor will dump to
11172         memory.
11173         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
11174         * gcc.c-torture/compile/pr34448.c: New.
11175
11176 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
11177
11178         PR gcov-profile/34609
11179         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
11180         return_slot if result is TREE_ADDRESSABLE.
11181
11182 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
11183
11184         * config/mips/mips.md (sqrt_condition): Tweak comment.
11185         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
11186
11187 2008-01-03  Tom Tromey  <tromey@redhat.com>
11188
11189         PR c/34457
11190         * c-common.c (c_type_hash): Handle VLAs.
11191
11192 2008-01-03  Jan Hubicka  <jh@suse.cz>
11193
11194         PR tree-optimization/31081
11195         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
11196         0 when inlining and not inlining to first basic block.
11197         (remap_decl): When var is initialized to 0, don't set default_def.
11198         (expand_call_inline): Set entry_bb.
11199         * tree-inline.h (copy_body_data): Add entry_bb.
11200
11201 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
11202
11203         PR c++/34619
11204         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
11205         before returning.
11206
11207         PR tree-optimization/29484
11208         * tree-inline.c (inline_forbidden_p_2): New function.
11209         (inline_forbidden_p): Disallow inlining if some static var
11210         has an address of a local LABEL_DECL in its initializer.
11211         * doc/extend.texi (Labels as Values): Document &&foo behaviour
11212         vs. inlining.
11213
11214 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
11215
11216         PR tree-optimization/34635
11217         * tree-data-ref.c (add_other_self_distances): Make sure that the
11218         evolution step is constant.
11219
11220 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
11221
11222         PR middle-end/34608
11223         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
11224
11225 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
11226
11227         * tree-sra.c (scalarize_init): Insert the generate_element_init
11228         statements after the generate_element_zero statements.
11229
11230 2008-01-02  Richard Guenther  <rguenther@suse.de>
11231
11232         PR middle-end/34093
11233         PR middle-end/31976
11234         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
11235         for very large number of operands instead of ICEing.
11236
11237 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
11238
11239         PR target/34013
11240         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
11241         while stack probing.
11242
11243 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
11244
11245         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
11246         in C++0x mode.
11247
11248 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
11249
11250         PR libmudflap/26442
11251         * tree-mudflap.c (mx_register_decls): Guard warning by
11252         !DECL_ARTIFICIAL check.
11253
11254 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
11255
11256         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
11257         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
11258         sse5_perm<mode>): Fix constraints.