OSDN Git Service

928e79e0d9510da3f680a54d504ec965bb4a3c2d
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
2
3         * config/i386/i386.md (define_mode_iterator P): New.
4         (split): Merged XF and DF rules using P.
5
6 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
7
8         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
9         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed
10         prototype.
11         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
12         return type to int.
13         (ix86_call_abi_override): Remove check for call_used_regs.
14
15 2008-06-03  Richard Guenther  <rguenther@suse.de>
16
17         * tree-ssa-structalias.c (find_func_aliases): Add constraints
18         for the lhs of calls if the return type contains pointers.
19
20 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
21
22         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
23         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
24         * function.c (allocate_struct_function): Use of
25         OVERRIDE_ABI_FORMAT.
26         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
27         of cfun and DEFAULT_ABI to deceide abi mode.
28         (DEFAULT_ABI): New.
29         (REG_PARM_STACK_SPACE): Removed.
30         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
31         (STACK_BOUNDARY): Use default target to deceide stack boundary.
32         * config/i386/i386-protos.h (ix86_cfun_abi): New.
33         (ix86_function_abi): Likewise.
34         (ix86_function_type_abi): Likewise.
35         (ix86_call_abi_override): Likewise.
36         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
37         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
38         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
39         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
40         specific defines.
41         (X86_64_REGPARM_MAX): New.
42         (X86_64_SSE_REGPARM_MAX): New.
43         (X64_REGPARM_MAX): New.
44         (X64_SSE_REGPARM_MAX): New.
45         (X86_32_REGPARM_MAX): New.
46         (X86_32_SSE_REGPARM_MAX): New.
47         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
48         (ix86_function_regparm): Handle user calling abi.
49         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
50         by DEFAULT_ABI versus SYSV_ABI check.
51         (ix86_reg_parm_stack_space): New.
52         (ix86_function_type_abi): New.
53         (ix86_call_abi_override): New.
54         (ix86_function_abi): New.
55         (ix86_cfun_abi): New.
56         (init_cumulative_args): Call abi specific initialization.
57         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
58         (function_arg_64): Extend SSE_REGPARM_MAX check.
59         (function_arg (): Remove TARGET_64BIT_MS_ABI.
60         (ix86_pass_by_reference): Likewise.
61         (ix86_function_value_regno_p): Likewise.
62         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
63         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
64         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
65         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
66         (setup_incoming_varargs_64): Adjust regparm for call abi.
67         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
68         (ix86_va_start): Likewise.
69         (ix86_gimplify_va_arg): Likewise.
70         (ix86_expand_prologue): Likewise.
71         (output_pic_addr_const): Likewise.
72         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
73         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
74         (x86_output_mi_thunk): Likewise.
75         (x86_function_profiler): Likewise.
76         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
77         (SYSV_ABI, MS_ABI): New constants.
78         (DEFAULT_ABI): New.
79         (init_regs): Add prototype of function in regclass.c file.
80         (OVERRIDE_ABI_FORMAT): New.
81         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
82         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
83         (OUTGOING_REG_PARM_STACK_SPACE): New.
84         (ix86_reg_parm_stack_space): New prototype.
85         (CUMULATIVE_ARGS): Add call_abi member.
86         (machine_function): Add call_abi member.
87         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace TARGET_64BIT_MS_ABI
88         by DEFAULT_ABI compare to MS_ABI.
89
90 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com> 
91
92         PR target/34879
93         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
94         (avr_builtin_setjmp_frame_value): New function.
95         * config/avr/avr.md (nonlocal_goto_receiver): Define.
96         (nonlocal_goto): Define.
97
98 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
99
100         * config/mips/mips.c (mips_emit_loadgp): Return early if
101         there is nothing do to, otherwise emit a blockage if
102         !TARGET_EXPLICIT_RELOCS || crtl->profile.
103         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
104
105 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
106
107         * configure.ac: Drop unneeded backslash ending up in config.in.
108         * acinclude.m4: Likewise.
109         * config.in: Regenerate.
110
111 2008-05-26  Jan Hubicka  <jh@suse.cz>
112
113         * predict.c (maybe_hot_frequency_p): Break out of...
114         (maybe_hot_bb_p): ... here.
115         (maybe_hot_edge_p): New.
116         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
117         * basic-block.h (maybe_hot_edge_p): Declare.
118
119 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
120
121         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
122         (*cmpfp_<mode>_cc): Ditto.
123         (*fp_jcc_8<mode>_387): Ditto.
124         (*fop_<MODEF:mode>_2_i387): Ditto.
125         (*fop_<MODEF:mode>_3_i387): Ditto.
126         (*fop_xf_2_i387): Ditto.
127         (*fop_xf_3_i387): Ditto.
128
129 2008-06-02  Tomas Bily  <tbily@suse.cz>
130
131         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
132
133 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
134
135         * config/mips/mips.c (mips_valid_offset_p): New function.
136         (mips_valid_lo_sum_p): Likewise.
137         (mips_classify_address): Use them.
138         (mips_force_address): New function.
139         (mips_legitimize_address): Use it.
140         * config/mips/mips.md (MOVE128): New mode iterator.
141         (movtf): Require TARGET_64BIT.  Remove empty strings.
142         (*movtf_internal): Rename to...
143         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
144         of "R" and use {,fp}{load,store} attributes instead of "multi".
145         Use a separate define_split.
146         (*movtf_mips16): New pattern.
147
148 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
149
150         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
151         * config/mips/mips.c (mips_expand_before_return): New function.
152         (mips_expand_epilogue): Call it.
153         * config/mips/mips.md (return): Turn into a define_expand.
154         (*return): New insn.
155
156 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
157
158         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
159         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
160         functions.  Do not emit uses and clobbers of CONCATs; individually
161         use and clobber their operands.
162         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
163         gen_clobber, emit_use and gen_use.
164         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
165         (expand_builtin_return): Likewise.
166         * cfgbuild.c (count_basic_blocks): Likewise.
167         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
168         * explow.c (emit_stack_restore): Likewise.
169         * expmed.c (extract_bit_field_1): Likewise.
170         * expr.c (convert_move, emit_move_complex_parts): Likewise.
171         (emit_move_multi_word, store_constructor): Likewise.
172         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
173         (thread_prologue_and_epilogue_insns): Likewise.
174         * lower-subreg.c (resolve_simple_move): Likewise.
175         * optabs.c (widen_operand, expand_binop): Likewise.
176         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
177         * reload.c (find_reloads): Likewise.
178         * reload1.c (eliminate_regs_in_insn): Likewise.
179         * stmt.c (expand_nl_goto_receiver): Likewise.
180         * config/alpha/alpha.md (builtin_longjmp): Likewise.
181         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
182         * config/arm/arm.c (arm_load_pic_register): Likewise.
183         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
184         * config/arm/arm.md (untyped_return): Likewise.
185         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
186         * config/avr/avr.c (expand_prologue): Likewise.
187         * config/bfin/bfin.c (do_unlink): Likewise.
188         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
189         * config/cris/cris.c (cris_expand_prologue): Likewise.
190         * config/darwin.c (machopic_indirect_data_reference): Likewise.
191         (machopic_legitimize_pic_address): Likewise.
192         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
193         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
194         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
195         (ix86_expand_convert_uns_didf_sse): Likewise.
196         (ix86_expand_vector_init_general): Likewise.
197         * config/ia64/ia64.md (eh_epilogue): Likewise.
198         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
199         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
200         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
201         (config/iq2000/iq2000.c): Likewise.
202         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
203         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
204         (builtin_longjmp): Likewise.
205         * config/mn10300/mn10300.md (call, call_value): Likewise.
206         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
207         * config/pdp11/pdp11.md (abshi2): Likewise.
208         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
209         * config/s390/s390.c (s390_emit_prologue): Likewise.
210         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
211         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
212         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
213         * config/sh/sh.c (prepare_move_operands): Likewise.
214         (output_stack_adjust, sh_expand_epilogue): Likewise.
215         (sh_set_return_address, sh_expand_t_scc): Likewise.
216         * config/sparc/sparc.c (load_pic_register): Likewise.
217         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
218         * config/spu/spu.c (spu_expand_epilogue): Likewise.
219         * config/v850/v850.c (expand_epilogue): Likewise.
220
221 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
222
223         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
224         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
225         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
226         * config/avr/avr.c (expand_prologue, expand_epilogue): Use 
227         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the 
228         stack pointer register.
229         (output_movhi): Remove code for interrupt specific writing to the 
230         stack pointer register.
231
232 2008-05-31  Richard Guenther  <rguenther@suse.de>
233
234         PR tree-optimization/34244
235         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
236         (tree_expr_nonzero_warnv_p): Likewise.
237         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
238         ssa_name_nonnegative_p.
239         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
240         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
241         not tree_expr_nonzero_warnv_p.
242
243         PR tree-optimization/36262
244         Revert
245         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
246
247         PR tree-optimization/34244
248         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
249         (record_numbers_of_iterations): New function.
250         (execute_vrp): Cache the numbers of iterations of loops.
251         * tree-scalar-evolution.c (scev_reset_except_niters):
252         New function.
253         (scev_reset): Use scev_reset_except_niters.
254         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
255
256 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
257
258         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
259         __WORKAROUND_RETS when appropriate.
260
261 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
262
263         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
264         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
265         mode iterator.
266         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
267         *fop_df_comm_sse insn patterns using MODEF mode iterator.
268         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
269         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
270         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
271         *fop_df_1_mixed insn patterns using MODEF mode iterator.
272         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
273         *fop_df_1_sse insn patterns using MODEF mode iterator.
274         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
275         *fop_df_1_i387 insn patterns using MODEF mode iterator.
276         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
277         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
278         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
279         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
280         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
281         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
282         (*fop_xf_4_i387): Use <MODE> for mode attribute.
283         (*fop_xf_5_i387): Ditto.
284         (*fop_xf_6_i387): Ditto.
285
286 2008-05-30  Richard Guenther  <rguenther@suse.de>
287
288         * builtins.c (build_string_literal): Avoid generating
289         a non-gimple_val result.
290
291 2008-05-30  DJ Delorie  <dj@redhat.com>
292
293         * exec-tool.in: Use an environment variable (private) instead of a
294         file (shared) as a semaphore, so as to not break parallel builds.
295
296 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
297
298         * optabs.c (maybe_encapsulate_block): Remove.
299         (emit_libcall_block): Adjust accordingly.
300         * optabs.h (maybe_encapsulate_block): Remove prototype.
301
302         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
303         Don't use maybe_encapsulate_block.
304
305 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
306
307         * config/rs6000/rs6000.c (rs6000_legitimize_address,
308         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
309         rtx is a SYMBOL_REF before calling get_pool_constant.
310
311 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
312
313         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
314
315 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
316
317         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
318         rather than OS names to choose INO_T_EQ definition.
319         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
320         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
321
322 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
323
324         PR target/36348
325         * config/darwin-f.c: New.
326         * config/t-darwin: Added rule to build darwin-f.o.
327         * config.gcc: Defined new variable, fortran_target_objs.
328         (*-*-darwin*): Set fortran_target_objs.
329         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
330         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
331         * configure: Regenerated.
332
333 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
334
335         PR target/35771
336         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
337         canonical type if needed.
338
339 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
340
341         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
342
343 2008-05-29  Richard Guenther  <rguenther@suse.de>
344
345         PR tree-optimization/36343
346         PR tree-optimization/36346
347         PR tree-optimization/36347
348         * tree-flow.h (clobber_what_p_points_to): Declare.
349         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
350         pointed-to variable is dereferenced is irrelevant to whether
351         the pointer can access the pointed-to variable.
352         (clobber_what_p_points_to): New function.
353         * tree-ssa-alias.c (set_initial_properties): Use it.
354         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
355         call clobber check for NMTs.
356
357 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
358         
359         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
360         for printing gcov_type.
361
362 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
363
364         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
365         and the eh region information.
366         * value-prof.c (gimple_move_stmt_histograms): New function.
367         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
368
369 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
370
371         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
372
373 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
374
375         * value-prof.c (tree_ic_transform): Print counts.
376         * tree-profile.c (tree_gen_ic_func_profiler):
377         Clear __gcov_indreict_call_callee variable to avoid misattribution
378         of the profile.
379
380 2008-05-28  Rafael Espindola  <espindola@google.com>
381
382         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
383         invalid sharing.
384
385 2008-05-28  Richard Guenther  <rguenther@suse.de>
386
387         PR tree-optimization/36339
388         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
389         and clobbering code out of the loop.
390
391 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
392
393         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
394         letters defined.
395
396         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
397         s390_contiguous_bitmask_p, s390_symref_operand_p,
398         s390_check_symref_alignment, s390_reload_larl_operand,
399         s390_reload_symref_address): New functions.
400         (s390_branch_condition_mnemonic): Support compare and branch
401         instructions.
402         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
403         and 'W' constraints.
404         (s390_secondary_reload): Add secondary reloads for unaligned
405         symbol refs or symbol refs to floating point or QI/TI mode
406         integer values.
407         (legitimate_address_p): Accept symbol references as addresses.
408         (s390_expand_insv): Use rotate and insert selected bits
409         instruction for insv when building for z10.
410         (print_operand_address): Handle symbol ref addresses.
411         (print_operand): Output modifier 'c' added for signed byte values.
412         (s390_encode_section_info): Mark symbol refs with
413         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
414
415         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
416         (length attribute): RRF, RRR have 4 byte length.
417         (FPALL, INTALL): New mode iterators added.
418         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
419         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
420         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
421         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
422         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
423         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
424         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
425         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
426         instructions.
427         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
428         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
429         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
430         reload<INTALL:mode><P:mode>_toreg_z10,
431         reload<FPALL:mode><P:mode>_tomem_z10,
432         reload<FPALL:mode><P:mode>_toreg_z10,
433         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
434         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
435         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
436         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
437         definition.
438         (movmem, clrmem, cmpmem): New splitters added.
439
440         * config/s390/predicates.md (larl_operand): Use
441         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
442         SYMBOL_REF_ALIGN1_P.
443         (s390_signed_integer_comparison,
444         s390_unsigned_integer_comparison): New predicates.
445
446         * config/s390/s390-protos.h (s390_check_symref_alignment,
447         s390_contiguous_bitmask_p, s390_reload_larl_operand,
448         s390_reload_symref_address,
449         s390_compare_and_branch_condition_mask): Prototypes added.
450
451         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
452         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
453         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
454
455 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
456
457         * config/s390/s390.c (z10_cost): New cost function for z10.
458         (s390_handle_arch_option, override_options): Support -march=z10 switch.
459         (s390_issue_rate): Adjust issue rate for z10.
460         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
461         (processor_flags): Add PF_Z10.
462         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
463         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
464         * gcc/config.gcc: Add z10.
465
466 2008-05-28  Richard Guenther  <rguenther@suse.de>
467
468         PR tree-optimization/36291
469         * tree-flow. h (struct gimple_df): Remove var_anns member.
470         * tree-flow-inline.h (gimple_var_anns): Remove.
471         (var_ann): Simplify.
472         * tree-dfa.c (create_var_ann): Simplify.
473         (remove_referenced_var): Clear alias info from var_anns of globals.
474         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
475         (delete_tree_ssa): Clear alias info from var_anns of globals.
476         Do not free var_anns.
477         (var_ann_eq): Remove.
478         (var_ann_hash): Likewise.
479
480 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
481
482         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
483         and loongson2f entries.
484         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
485         * config/mips/mips.h (processor_type): Add Loongson-2E
486         and Loongson-2F entries.
487         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
488         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
489         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
490         * doc/invoke.texi (MIPS Options): Document loongson2e
491         and loongson2f processor names.
492
493 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
494
495         PR target/35767
496         PR target/35771
497         * config/i386/i386.c (ix86_function_arg_boundary): Use
498         alignment of canonical type.
499         (ix86_expand_vector_move): Check unaligned memory access for
500         all SSE modes.
501
502 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
503
504         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
505         Moved to the front of file.
506
507 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
508             H.J. Lu  <hongjiu.lu@intel.com>
509
510         * dwarf2out.c (current_fde): New.
511         (add_cfi): Use it.
512         (lookup_cfa:): Likewise.
513         (dwarf2out_end_epilogue): Likewise.
514         (dwarf2out_note_section_used): Likewise.
515
516 2008-05-27  Michael Matz  <matz@suse.de>
517
518         PR c++/27975
519         * c.opt (Wenum-compare): New warning option.
520         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
521
522 2008-05-27  Michael Matz  <matz@suse.de>
523
524         PR middle-end/36326
525         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
526         non-BLKmode types.
527         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
528         into memory as tail calls.
529
530 2008-05-27  Richard Guenther  <rguenther@suse.de>
531
532         PR tree-optimization/36339
533         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
534         pointers cause all addressable variables to be call clobbered.
535
536 2008-05-27  Richard Guenther  <rguenther@suse.de>
537
538         PR tree-optimization/36245
539         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
540
541 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
542
543         * config/s390/s390.md: Replace all occurences of the 'm'
544         constraint with 'RT'.
545
546 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
547
548         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
549         definitions added.
550         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
551         "*movdi_64".
552         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
553         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
554         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
555
556 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
557
558         * reload.c: (find_reloads): Skip alternatives according to the
559         "enabled" attribute. Constify the constraint variable.
560         * recog.c (get_attr_enabled): Add default implementation.
561         (extract_insn): Set the alternative_enabled_p array
562         in the recog_data struct.
563         (preprocess_constraints, constrain_operands): Skip
564         alternatives according to the "enabled" attribute
565         * recog.h (struct recog_data): New field alternative_enabled_p.
566         (skip_alternative): New inline function.
567         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
568         (record_reg_classes): Skip alternative according to the
569         "enabled" attribute.
570
571         * doc/md.texi: Add documention for the "enabled" attribute.
572
573 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
574
575         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
576         * postreload.c (reload_cse_simplify_operands): Replace 'm'
577         constraint with TARGET_MEM_CONSTRAINT.
578         * recog.c (asm_operand_ok, preprocess_constraints,
579         constrain_operands): Likewise.
580         * regclass.c (record_reg_classes): Likewise.
581         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
582         * reload1.c (maybe_fix_stack_asms): Likewise.
583         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
584         * recog.h: Adjust comment.
585         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
586         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
587         * doc/md.texi: Add a note to description of 'm' constraint.
588         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
589
590 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
591
592         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
593         that the bitfield is of integral type before testing its precision.
594
595 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
596             Sa Liu  <saliu@de.ibm.com> 
597
598         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, 
599         __modti3, __udivti3, __umodti3 and __udivmodti4.
600         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
601         that implement TImode mul and div functions.
602         * config/spu/multi3.c: New. Implement __multi3.
603         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
604         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
605         functions on SPU.
606
607 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
608
609         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
610         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
611         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
612         tls_sysv_suffix): New mode and mode attribute iterators.
613         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
614         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
615         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
616         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
617         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
618         iterators.
619
620 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
621
622         PR tree-optimization/36329
623         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
624         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
625         * cgraphbuild.c (initialize_inline_failed): Use the latter
626         macro in lieu of the former.
627         * ipa-inline.c (cgraph_mark_inline): Likewise.
628         (cgraph_decide_inlining_of_small_function): Likewise.
629         (cgraph_decide_inlining): Likewise.
630         (cgraph_decide_inlining_incrementally): Likewise.
631
632 2008-05-26  Tristan Gingold  <gingold@adacore.com>
633             Anatoly Sokolov  <aesok@post.ru>
634
635         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
636         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
637         * config/avr/avr.c (expand_prologue): Tune "call_prologue" 
638         optimization for 'avr6' architecture.
639
640 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
641
642         PR target/34932
643         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
644
645 2008-05-26  Richard Guenther  <rguenther@suse.de>
646
647         * tree-ssa-sccvn.c (expr_has_constants): Declare.
648         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
649
650 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
651
652         PR middle-end/36253
653         * caller-save.c (insert_restore): Verify alignment of spill space.
654         (insert_save): Likewise.
655         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
656         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
657         (STACK_SLOT_ALIGNMENT): Likewise.
658         * function.c (LOCAL_ALIGNMENT): Removed.
659         (get_stack_local_alignment): New.
660         (assign_stack_local): Use it.  Set alignment on stack slot.
661         (assign_stack_temp_for_type): Use get_stack_local_alignment.
662         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
663         (STACK_SLOT_ALIGNMENT): New.
664         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
665         stack slot in XFmode.
666
667         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
668
669 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
670
671         PR/36321
672         * config/i386/i386.md (allocate_stack_worker_64): Make sure
673         argument operand in rax isn't removed.
674
675 2008-05-26  Richard Guenther  <rguenther@suse.de>
676
677         PR middle-end/36300
678         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
679         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
680
681 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
682
683         PR bootstrap/36331
684         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
685
686 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
687
688         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
689         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
690
691 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
692
693         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
694         build a trampoline if we don't want one.
695         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
696         return zero for nested functions if we don't want a trampoline.
697
698 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
699
700         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
701
702 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
703
704         PR fortran/18428
705         * c.opt: Removed undocumented option '-lang-fortran'.
706         * c-common.h: Removed global variable 'lang_fortran'.
707         * c-opts.c (c_common_handle_option): Removed code to handle
708         option '-lang-fortran'. Updated includes.
709         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
710         definition of '__GFORTRAN__'.
711         (define__GNUC__): Reimplemented to use BASEVER and
712         cpp_define_formatted.
713         (builtin_define_with_value_n): Removed.
714         * c-incpath.h: Renamed to ...
715         * incpath.h: ... this.
716         * c-incpath.c: Renamed to ...
717         * incpath.c: ... this. Updated includes.
718         * fix-header.c: Updated includes.
719         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
720         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
721         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
722
723 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
724
725         * tree.h: Update the table of flags used on tree nodes.
726         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
727         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
728         (FORCED_LABEL): Add access check.
729         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
730         (ASM_INPUT_P): Likewise.
731         (ASM_VOLATILE_P): Likewise.
732         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
733         (OMP_SECTION_LAST): Access private_flag directly.
734         (OMP_RETURN_NOWAIT): Likewise.
735         (OMP_PARALLEL_COMBINED): Likewise.
736         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
737         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
738         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
739         deprecated_flag directly.
740
741 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
742
743         * final.c (frame_pointer_needed): Removed.
744         * flags.h (frame_pointer_needed): Likewise.
745
746         * function.h (rtl_data): Add frame_pointer_needed.
747         (frame_pointer_needed): New.
748
749 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
750
751         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
752
753 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
754
755         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
756         SRC is a REG.
757
758 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
759
760         * c-common.c (strip_array_types): Move function to..
761         * tree.c: ..here.
762         (get_inner_array_type): Delete.
763         * c-common.h (strip_array_types): Move declaration to..
764         * tree.h: ..here.
765         (get_inner_array_type): Delete.
766         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
767         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
768         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
769         * config/pa/pa.c (emit_move_sequence): Likewise.
770
771 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
772
773         * config/i386/i386.md (*sse_prologue_save_insn): Set length
774         attribute to 34.
775
776 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
777
778         * function.c: Include target hook for nonlocal_goto frame value.
779
780 2008-05-24  Richard Guenther  <rguenther@suse.de>
781
782         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
783         variable can be only accessed through a pointer or a union.
784
785 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
786
787         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
788         * doc/extend.texi: Likewise.
789
790 2008-05-23  DJ Delorie  <dj@redhat.com>
791
792         * config/m32c/jump.md (untyped_call): Add.
793
794         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
795         for A24 to PSImode.
796         (m32c_address_cost): Detail costs for indirect offsets.
797
798 2008-05-23  Rafael Espindola  <espindola@google.com>
799
800         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
801         if a node is a SUBREG.
802         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
803         is a SUBREG.
804
805 2008-05-23  Paul Brook  <paul@codesourcery.com>
806             Carlos O'Donell  <carlos@codesourcery.com>
807
808         * doc/extend.texi: Clarify use of __attribute__((naked)).
809         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
810         * target.h (gcc_target): Add allocate_stack_slots_for_args.
811         * function.c (use_register_for_decl): Use
812         targetm.calls.allocate_stack_slots_for_args.
813         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
814         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
815         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
816
817 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
818
819         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
820
821 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
822
823         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
824         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
825         is only rounded once.
826
827 2008-05-23  Richard Guenther  <rguenther@suse.de>
828
829         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
830
831 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
832             Jakub Jelinek  <jakub@redhat.com>
833
834         PR target/36079
835         * configure.ac: Handle --enable-cld.
836         * configure: Regenerated.
837         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
838         * config/i386/i386.h (struct machine_function): Add needs_cld field.
839         (ix86_current_function_needs_cld): New define.
840         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
841         (cld): New isns pattern.
842         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
843         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
844         * config/i386/i386.opt (mcld): New option.
845         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
846         TARGET_CLD and ix86_current_function_needs_cld.
847         (override_options): Use -mcld by default for 32-bit code if
848         USE_IX86_CLD.
849
850         * doc/install.texi (Options specification): Document --enable-cld.
851         * doc/invoke.texi (Machine Dependent Options)
852         [i386 and x86-64 Options]: Add -mcld option.
853         (Intel 386 and AMD x86-64 Options): Document -mcld option.
854
855 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
856         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
857         (return_in_memory_64): Likewise.
858         (return_in_memory_ms_64): Likewise.
859
860 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
861
862         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
863         * builtins.c (fold_builtin_fpclassify): New.
864         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
865         * builtins.def (BUILT_IN_FPCLASSIFY): New.
866         * c-common.c (handle_type_generic_attribute): Adjust to accept
867         fixed arguments before an elipsis.
868         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
869         * doc/extend.texi: Document __builtin_fpclassify.
870
871 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
872
873         * omp-low.c (gate_expand_omp_ssa): Remove.
874         (pass_expand_omp_ssa): Remove.
875         (gate_expand_omp): Do not check for flag_openmp_ssa.
876         * common.opt (-fopenmp-ssa): Remove.
877         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
878
879 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
880
881         * config/sh/sh.opt (mfixed-range): New option.
882         * config/sh/sh-protos.h (sh_fix_range): Declare.
883         * config/sh/sh.c (sh_fix_range): New function.
884         * config/sh/sh.h (sh_fixed_range_str): Declare.
885         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
886         is not empty.
887         * doc/invoke.texi (SH Options): Document -mfixed-range.
888
889 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
890
891         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
892         it before the redeclaration.
893
894 2008-05-22  Anatoly Sokolov <aesok@post.ru>
895
896         * config/avr/avr.c (get_sequence_length): Add new function.
897         (expand_prologue, expand_epilogue): Remove duplicate code.
898
899 2008-05-22  Rafael Espindola  <espindola@google.com>
900
901         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
902         sharing.
903
904 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
905
906         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
907         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
908
909         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
910         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
911         (vect_update_misalignment_for_peel): Likewise.
912         (vector_alignment_reachable_p): Likewise.
913         * tree-vect-transform.c (vectorizable_load): Likewise.
914         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
915         (get_vectype_for_scalar_type): Pass mode of scalar_type
916         to UNITS_PER_SIMD_WORD.
917
918         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
919         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
920         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
921         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
922         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
923
924 2008-05-22  Ira Rosen  <irar@il.ibm.com>
925
926         PR tree-optimization/36293
927         * tree-vect-transform.c (vect_transform_strided_load): Don't check
928         if the first load must be skipped because of a gap.
929
930 2008-05-22  Richard Guenther  <rguenther@suse.de>
931
932         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
933         more cases of offset disambiguation that is possible if
934         strict-aliasing rules apply.
935         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
936         for basic offset and type-based disambiguation.
937
938 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
939
940         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
941         ix86_expand_vector_set on V16QImode for SSE4.1.
942
943 2008-05-21  Tom Tromey  <tromey@redhat.com>
944
945         * c.opt (Wimport): Mark as undocumented.
946         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
947         -Wno-import.
948         (Warning Options): Likewise.
949         * doc/cppopts.texi: Don't mention -Wimport.
950
951 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
952
953         PR tree-optimization/36287
954         PR tree-optimization/36286
955         * lambda-code.c (build_access_matrix): Do not use the loop->num
956         for computing the number of induction variables: use the loop depth
957         instead.
958
959 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
960
961         PR/36280
962         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
963         option -f(no-)leading-underscore.
964
965 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
966
967         * config/i386/i386.c (ix86_expand_vector_init_general): Use
968         GET_MODE_NUNITS (mode).
969
970 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
971
972         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
973         (-mmulhw): Add 464 to description.
974         (-mdlmzb): Likewise.
975         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
976         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
977         464fp entries.
978         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
979         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
980         * config/rs6000/rs6000.md: Update comments for 464.
981
982 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
983
984         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
985
986 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
987
988         * config/i386/sse.md (vec_extractv4sf): Removed.
989         (vec_extractv2df): Likewise.
990         (vec_extractv2di): Likewise.
991         (vec_extractv4si): Likewise.
992         (vec_extractv8hi): Likewise.
993         (vec_extractv16qi): Likewise.
994         (vec_extract<mode>): New.
995
996 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
997
998         * config/i386/sse.md (vec_setv4sf): Removed.
999         (vec_setv2df): Likewise.
1000         (vec_setv2di): Likewise.
1001         (vec_setv4si): Likewise.
1002         (vec_setv8hi): Likewise.
1003         (vec_setv16qi): Likewise.
1004         (vec_set<mode>): New.
1005
1006 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1007
1008         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
1009         goto for vec_concat and vec_interleave.
1010
1011 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1012
1013         * config/i386/sse.md (vec_initv4sf): Removed.
1014         (vec_initv2df): Likewise.
1015         (vec_initv2di): Likewise.
1016         (vec_initv4si): Likewise.
1017         (vec_initv8hi): Likewise.
1018         (vec_initv16qi): Likewise.
1019         (vec_init<mode>): New.
1020
1021 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
1022
1023         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
1024
1025 2008-05-21  Tom Tromey  <tromey@redhat.com>
1026
1027         * ggc-zone.c (lookup_page_table_if_allocated): New function.
1028         (zone_find_object_offset): Likewise.
1029         (gt_ggc_m_S): Likewise.
1030         (highest_bit): Likewise.
1031         * ggc-page.c (gt_ggc_m_S): New function.
1032         * stringpool.c (string_stack): Remove.
1033         (init_stringpool): Update.
1034         (ggc_alloc_string): Use ggc_alloc.
1035         (maybe_delete_ident): New function.
1036         (ggc_purge_stringpool): Likewise.
1037         (gt_ggc_m_S): Remove.
1038         * ggc-common.c (ggc_protect_identifiers): New global.
1039         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
1040         ggc_protect_identifiers.
1041         * ggc.h (ggc_protect_identifiers): Declare.
1042         (gt_ggc_m_S): Update.
1043         (ggc_purge_stringpool): Declare.
1044         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
1045         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
1046         special case.
1047         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
1048
1049 2008-05-21  David S. Miller  <davem@davemloft.net>
1050
1051         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
1052         tmake_file.
1053
1054 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
1055
1056         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
1057         once finished.
1058
1059 2008-05-20  David Daney  <ddaney@avtrex.com>
1060
1061         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
1062         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
1063         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
1064         UNSPEC_UPDATE_GOT_VERSION): Renumber.
1065         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
1066         (atomic_hiqi_op): New define_code_iterator.
1067         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
1068         mips_expand_compare_and_swap_12.
1069         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
1070         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
1071         (sync_<optab><mode>, sync_old_<optab><mode>,
1072         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
1073         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
1074         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
1075         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
1076         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
1077         (test_and_set_12): New insn.
1078         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
1079         sync_new_<optab><mode>, sync_old_nand<mode>,
1080         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
1081         clobber to operand 0 for SI and DI mode insns.
1082         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
1083         mips_gen_fn_4): New typedefs.
1084         (mips_gen_fn_ptrs): Define new union type.
1085         (mips_expand_compare_and_swap_12): Remove declaration.
1086         (mips_expand_atomic_qihi): Declare function.
1087         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
1088         (mips_expand_atomic_qihi): ... this.  Use new generator function
1089         parameter.
1090         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
1091         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
1092         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
1093         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
1094         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
1095         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
1096         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
1097         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
1098         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
1099         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
1100         New macros.
1101
1102 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
1103
1104         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
1105         the missing break.
1106
1107 2008-05-20  Anatoly Sokolov <aesok@post.ru>
1108
1109         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
1110         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
1111         (avr_attribute_table): Add 'OS_main' function attribute.
1112         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
1113         functions with 'OS_main' attribute.
1114
1115 2008-05-20  Richard Guenther  <rguenther@suse.de>
1116
1117         PR tree-optimization/35204
1118         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
1119         helper, split out from ...
1120         (DFS): ... here.  Make the DFS walk non-recursive.
1121
1122 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
1123             Jan Sjodin  <jan.sjodin@amd.com>
1124
1125         PR tree-optimization/36181
1126         * tree-parloops.c (loop_has_vector_phi_nodes): New.
1127         (parallelize_loops): Don't parallelize when the loop has vector
1128         phi nodes.
1129
1130 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
1131             Sebastian Pop  <sebastian.pop@amd.com>
1132
1133         * tree-loop-linear.c (gather_interchange_stats): Look in the access
1134         matrix, and never look at the tree representation of the memory
1135         accesses.
1136         (linear_transform_loops): Computes parameters and access matrices.
1137         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
1138         when fails.
1139         (access_matrix_get_index_for_parameter): New.
1140         * tree-data-ref.h (struct access_matrix): New.
1141         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
1142         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
1143         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
1144         am_vector_index_for_loop): New.
1145         (struct data_reference): Add field access_matrix.
1146         (DR_ACCESS_MATRIX): New.
1147         (compute_data_dependences_for_loop): Update declaration.
1148         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
1149         * lambda.h (lambda_vector_vec_p): Declared.
1150         * lambda-code.c: Depend on pointer-set.h.
1151         (lambda_collect_parameters_from_af, lambda_collect_parameters,
1152         av_for_af_base, av_for_af, build_access_matrix,
1153         lambda_compute_access_matrices): New.
1154         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
1155
1156 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
1157
1158         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
1159         $SOURCEDIR/include.
1160
1161 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
1162             Sebastian Pop  <sebastian.pop@amd.com>
1163
1164         PR tree-optimization/36206
1165         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
1166         FOLD_CONVERSIONS.
1167         (instantiate_scev_1): Rename flags to fold_conversions.
1168         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
1169         outeside instantiation_loop.
1170         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
1171         (evolution_function_is_affine_or_constant_p): Removed.
1172         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
1173         instantiate_scev.
1174         (analyze_siv_subscript): Pass in the loop nest number.
1175         Call evolution_function_is_affine_in_loop instead of 
1176         evolution_function_is_affine_p.
1177         (analyze_overlapping_iterations): Pass in the loop nest number.
1178
1179 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
1180             Sebastian Pop  <sebastian.pop@amd.com>
1181
1182         PR tree-optimization/36206
1183         * tree-chrec.h (chrec_fold_op): New.
1184         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
1185         and other trees.
1186
1187 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
1188
1189         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
1190         (DIRS_EQ): New.
1191         (remove_duplicates): Do not set inode on non-inode systems.
1192         Use DIRS_EQ.
1193
1194 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
1195
1196         * config.gcc (tm_file): Update comments about relative pathnames.
1197
1198 2008-05-20  Richard Guenther  <rguenther@suse.de>
1199
1200         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
1201         * tree-ssa-sccvn.c (process_scc): Likewise.
1202         * tree-ssa-sink.c (execute_sink_code): Likewise.
1203         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
1204         * tree-vrp.c (process_assert_insertions): Likewise.
1205         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
1206         (perform_tree_ssa_dce): Likewise.
1207         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
1208         (dump_dominator_optimization_stats): Likewise.
1209         * tree-vectorizer.c (vectorize_loops): Likewise.
1210
1211 2008-05-20  Richard Guenther  <rguenther@suse.de>
1212
1213         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
1214
1215 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
1216
1217         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
1218         (ix86_i386elf_return_in_memory): Likewise.
1219         (ix86_i386interix_return_in_memory): Likewise.
1220         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
1221         (SUBTARGET_RETURN_IN_MEMORY): New.
1222         * config/i386/i386elf.h: Likewise.
1223         * config/i386/ptx4-i.h: Likewise.
1224         * config/i386/sol2-10.h: Likewise.
1225         * config/i386/sysv4.h: Likewise.
1226         * config/i386/vx-common.h: Likewise.
1227         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
1228         * config/i386/i386.c (ix86_return_in_memory): Made static and
1229         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
1230         (ix86_i386elf_return_in_memory): Removed.
1231         (ix86_i386interix_return_in_memory): Removed.
1232         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
1233         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
1234
1235 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
1236
1237         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
1238
1239 2008-05-19  Xinliang David Li  <davidxl@google.com>
1240
1241         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
1242         * opts.c: Ditto.
1243         * common.opt: Ditto.
1244         * doc/invoke.texi: Ditto.
1245
1246 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
1247
1248         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
1249         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
1250
1251 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
1252
1253         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
1254         sizes of operand array from 8/4 to 4/2.
1255         (ix86_expand_vector_init_general): Change size of operand array
1256         from 32 to 16.  Remove op0, op1 and half_mode.
1257
1258 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
1259
1260         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
1261         (ix86_expand_vector_init_interleave): Likewise.
1262         (ix86_expand_vector_init_general): Use them.  Assert
1263         word_mode == SImode when n_words == 4.
1264
1265 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
1266
1267         * config/i386/i386.c (ix86_secondary_reload): New static function.
1268         (TARGET_SECONDARY_RELOAD): New define.
1269         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
1270         * config/i386/i386.md (reload_outqi): Remove.
1271
1272 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1273
1274         PR middle-end/35509
1275         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
1276         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
1277         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
1278         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
1279         (fold_builtin_1): Likewise.
1280         * builtins.def (BUILT_IN_ISINF_SIGN): New.
1281         c-common.c (check_builtin_function_arguments): Handle
1282         BUILT_IN_ISINF_SIGN.
1283         * doc/extend.texi: Document __builtin_isinf_sign.
1284         * fold-const.c (operand_equal_p): Handle COND_EXPR.
1285
1286 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
1287
1288         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
1289         EH cleanup at the end of the pass, search for those that have been
1290         turned into forwarder blocks and do the cleanup on their successor.
1291
1292 2008-05-18  Richard Guenther  <rguenther@suse.de>
1293
1294         * tree-cfg.c (verify_gimple_expr): Allow conversions from
1295         pointers to sizetype and vice versa.
1296
1297 2008-05-18 Xinliang David Li   <davidxl@google.com>
1298
1299         * gcc/tree-ssa-dce.c: Coding style fix.
1300         (check_pow): Documentation comment. 
1301         (check_log): Documenation comment. Coding style fix.
1302         (is_unnecessary_except_errno_call): Ditto.
1303         (gen_conditions_for_pow): Ditto.
1304         (gen_conditions_for_log): Ditto.
1305         (gen_shrink_wrap_conditions): Ditto.
1306         (shrink_wrap_one_built_in_calls): Ditto.
1307         * gcc/doc/invoke.texi: Better documentation string.
1308         * ChangeLog: Fix wrong change log entries from 
1309         May 17 checkin on function call DCE.
1310
1311 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
1312
1313         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
1314
1315 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
1316
1317         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
1318         * df-problems.c (simulation routines): Fixed block comment to
1319         properly say how to add forwards scanning functions.
1320         
1321 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
1322
1323         * tree-inline.c (setup_one_parameter): Remove dead code.
1324
1325 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
1326
1327         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
1328         a BIT_AND_EXPR only for an INTEGER_TYPE.
1329
1330 2008-05-17 Xinliang David Li   <davidxl@google.com>
1331
1332         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
1333         (check_pow, check_log, is_unnecessary_except_errno_call): New 
1334         functions to check for eliminating math functions that are pure 
1335         except for setting errno.
1336         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
1337         general condition expressions for shrink-wrapping pow/log calls.
1338         (gen_shrink_wrap_conditions): Ditto.
1339         (shrink_wrap_one_built_in_call): Ditto.
1340         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
1341         (mark_operand_necessary): If debugging, output if OP is necessary.
1342         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
1343         unnecessary.
1344         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
1345         opt level >= 2.
1346         * gcc/common.opt: New user flag -ftree-builtin-dce.
1347         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
1348
1349 2008-05-16  David S. Miller  <davem@davemloft.net>
1350
1351         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
1352         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
1353
1354 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
1355
1356         PR target/36246
1357         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
1358
1359 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1360
1361         * ifcvt.c (dead_or_predicable): Rename
1362         df_simulate_one_insn_backwards to df_simulate_one_insn.
1363         * recog.c (peephole2_optimize): Ditto.
1364         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
1365         Ditto.
1366         * df.h: Rename df_simulate_one_insn_backwards to
1367         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
1368         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
1369         scanning of defs and uses.
1370         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
1371         (df_simulate_one_insn_forwards): Removed.
1372
1373 2008-05-16  Doug Kwan  <dougkwan@google.com>
1374
1375         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
1376         QNaN & SNaN.
1377         (real_from_string): Handle NaNs and Inf as approriate.
1378
1379 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
1380
1381         * doc/gty.texi (Source Files Containing Type Information): Note
1382         that headers should appear first in the gtfiles list.
1383
1384 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1385
1386         * tree.def (COND_EXEC): Properly documented this code.
1387
1388 2008-05-16  Diego Novillo  <dnovillo@google.com>
1389
1390         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
1391         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
1392         the new field.
1393
1394 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1395
1396         * tree-ssa-dse (max_stmt_uid): Removed.
1397         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
1398         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
1399         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
1400         * function.h (cfun.last_stmt_uid): New field.
1401         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
1402         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
1403         New functions.
1404         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
1405         (create_stmt_ann): Initialize the ann->uid field.
1406         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
1407         with new calls.
1408         * tree-flow.h (renumber_gimple_stmt_uids): New function.
1409
1410 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
1411
1412         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
1413         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
1414         (init_empty_tree_cfg): Call it.
1415
1416 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1417
1418         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
1419         Update all users.
1420
1421 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1422
1423         * doc/invoke.text (-fdump-tree-*-verbose): New option.
1424         * tree-dump.c (dump_options): New verbose option.
1425         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
1426         Add verbose dump.
1427         * tree-pass.h (TDF_VERBOSE): New dump flag.
1428         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
1429         (tree-flow.h): Added include.
1430         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
1431
1432 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
1433
1434         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
1435
1436         From Jie Zhang  <jie.zhang@analog.com>
1437         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
1438         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
1439         mcpu=bf561-none and mcpu=bf561-0.2.
1440         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
1441         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
1442         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
1443         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
1444         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
1445         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
1446         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
1447         option.
1448         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
1449         (cputype_selected): Remove.
1450         (bfin_handle_option): Don't use cputype_selected.
1451         (override_options): When no mcpu option, enable all workarounds.
1452         Don't use bfin_workarounds.
1453         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
1454         processor type.
1455         (DEFAULT_CPU_TYPE): Don't define.
1456
1457 2008-05-16  Richard Guenther  <rguenther@suse.de>
1458
1459         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
1460         on deletion of the last stmt.
1461
1462 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
1463
1464         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
1465         V8HImode for SSE2 and V16QImode for SSE4.1.
1466
1467 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
1468
1469         * cgraph.h (compute_inline_parameters): Made public.
1470         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
1471         variable_generate_summary, function_write_summary,
1472         variable_write_summary, variable_read_summary.  Added generate_summary,
1473         write_summary, read_summary.
1474         * cgraphunit.c (cgraph_process_new_functions): Changed call from
1475         pass_ipa_inline.function_generate_summary, to
1476         compute_inline_parameters. 
1477         * ipa-inline.c (compute_inline_parameters): Made public and added
1478         node parameter.
1479         (compute_inline_parameters_for_current): New function.
1480         (pass_inline_param): Now calls compute_inline_parameters_for_current.
1481         (inline_generate_summary): Removed parameter and made to loop over
1482         all cgraph nodes.
1483         (pass_ipa_inline): Updated for new IPA_PASS structure.
1484         * passes.c (execute_ipa_summary_passes): Now is called once per
1485         pass rather than once per node*pass.
1486         
1487 2008-05-15  Anatoly Sokolov <aesok@post.ru>
1488
1489         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
1490         avr_have_mul_p, avr_asm_only_p): Remove variables.
1491         (avr_override_options): Remove initialization of removed variables.
1492         (avr_file_start):  Convert removed variables to fields of 
1493         'struct base_arch_s *avr_current_arch'. 
1494         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
1495         (AVR_HAVE_MUL): (Ditto.).
1496         (AVR_HAVE_MOVW): (Ditto.).
1497         (AVR_HAVE_LPMX): (Ditto.). 
1498         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
1499         avr_asm_only_p): Remove declaration.
1500
1501 2008-05-15  Diego Novillo  <dnovillo@google.com>
1502
1503         * config/arm/arm.c (arm_return_in_memory): Fix return type.
1504         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
1505
1506 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
1507
1508         PR middle-end/36194
1509         * combine.c (check_conversion): Rename back to check_promoted_subreg.
1510         Don't call record_truncated_value from here.
1511         (record_truncated_value): Turn it into a for_each_rtx callback.
1512         (record_truncated_values): New function.
1513         (combine_instructions): Call note_uses with record_truncated_values.
1514         Change name of check_conversion to check_promoted_subreg. 
1515
1516 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
1517
1518         * doc/sourcebuild.texi: Document support for torture tests.
1519
1520 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
1521
1522         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
1523         to alternative 4 of operand 2.
1524
1525 2008-05-15  Richard Guenther  <rguenther@suse.de>
1526
1527         * tree-pass.h (current_pass): Declare.
1528         (get_pass_for_id): Likewise.
1529         * passes.c (passes_by_id, passes_by_id_size): New globals.
1530         (set_pass_for_id): New function.
1531         (get_pass_for_id): Likewise.
1532         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
1533         (execute_function_todo): Flush per function statistics.
1534         * toplev.c (compile_file): Init statistics.
1535         (general_init): Do early statistics initialization.
1536         (finalize): Finish statistics.
1537         * statistics.h (statistics_early_init): Declare.
1538         (statistics_init): Likewise.
1539         (statistics_fini): Likewise.
1540         (statistics_fini_pass): Likewise.
1541         (statistics_counter_event): Likewise.
1542         (statistics_histogram_event): Likewise.
1543         * statistics.c: New file.
1544         * Makefile.in (OBJS-common): Add statistics.o.
1545         (statistics.o): Add dependencies.
1546         * doc/invoke.texi (-fdump-statistics): Document.
1547
1548         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
1549         (insert): Likewise.
1550         (execute_pre): Use statistics_counter_event.
1551         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
1552         (substitute_and_fold): Increment it.  Use statistics_counter_event.
1553
1554 2008-05-15  Diego Novillo  <dnovillo@google.com>
1555
1556         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
1557
1558         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
1559         * tree-ssa-alias.c (new_type_alias): Remove references to
1560         sub-variables from comment.
1561         * tree-ssa-operands.c (swap_tree_operands): Likewise.
1562
1563 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
1564
1565         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
1566         attribute to 1 only for insertps alternative.
1567
1568 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1569
1570         * config/bfin/bfin.md (loadbytes): New pattern.
1571         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
1572         (bfin_init_builtins): Initialize it.
1573         (bdesc_1arg): Add it.
1574
1575 2008-05-15  Sa Liu  <saliu@de.ibm.com>
1576
1577         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
1578         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
1579         * testsuite/lib/target-supports.exp: Add
1580         check_effective_target_fortran_integer_16.
1581
1582 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1583
1584         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
1585         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
1586         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
1587         (TARGET_RETURN_IN_MEMORY): Define.
1588
1589 2008-05-15  Richard Guenther  <rguenther@suse.de>
1590
1591         PR middle-end/36244
1592         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
1593         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
1594         represent unmodifiable vars.
1595
1596 2008-05-15  Richard Guenther  <rguenther@suse.de>
1597
1598         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
1599         INDIRECT_REF and TARGET_MEM_REF.
1600         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
1601         TARGET_MEM_REF.
1602
1603 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
1604             H.J. Lu  <hongjiu.lu@intel.com>
1605
1606         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
1607         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
1608         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
1609         insn alternatives.  Add missing alternatives.
1610         (*vec_concatv2di_rex64_sse4_1): Likewise.
1611         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
1612         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
1613         Require TARGET_SSE.
1614
1615 2008-05-15  Richard Guenther  <rguenther@suse.de>
1616
1617         PR tree-optimization/36009
1618         PR tree-optimization/36204
1619         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
1620         (determine_invariantness_stmt): Record the loop a store is
1621         always executed in.
1622         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
1623         dependency.
1624
1625 2008-05-15  Richard Guenther  <rguenther@suse.de>
1626
1627         PR tree-optimization/34330
1628         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
1629         through the pointer will alias the SMT.
1630
1631 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
1632
1633         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
1634
1635 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
1636
1637         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
1638
1639 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
1640             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
1641
1642         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
1643         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
1644         (vashl_optab): New optab for vector/vector shifts.
1645         (vashr_optab): Ditto.
1646         (vlshr_optab): Ditto.
1647         (vrotl_optab): Ditto.
1648         (vrotr_optab): Ditto.
1649         (optab_subtype): New enum for optab_for_tree_code call.
1650         (optab_for_tree_code): Add enum optab_subtype argument.
1651
1652         * optabs.c (optab_for_tree_code): Take an additional argument to
1653         distinguish between a vector shift by a scalar and vector shift by
1654         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
1655         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
1656         vector shift by a vector.
1657         (expand_widen_pattern_expr): Pass additional argument to
1658         optab_for_tree_code.
1659
1660         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
1661         vrotl_optab, vrotr_optab.
1662
1663         * expr.c (expand_expr_real_1): Update calls to
1664         optab_for_tree_code to distinguish between vector shifted by a
1665         scalar and vector shifted by a vector.
1666         * tree-vectorizer.c (supportable_widening_operation): Ditto.
1667         (supportable_narrowing_operation): Ditto.
1668         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
1669         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
1670         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
1671         (vect_create_epilog_for_reduction): Ditto.
1672         (vectorizable_reduction): Ditto.
1673         (vectorizable_operation): Ditto.
1674         (vect_strided_store_supported): Ditto.
1675         (vect_strided_load_supported): Ditto.
1676         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
1677         * expmed.c (expand_shift): Ditto.
1678
1679         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
1680         scalar type.
1681         (ashr@var{m}3): Ditto.
1682         (vashl@var{m}3): Document new vector/vector shift standard name.
1683         (vashr@var{m}3): Ditto.
1684         (vlshr@var{m}3): Ditto.
1685         (vrotl@var{m}3): Ditto.
1686         (vrotr@var{m}3): Ditto.
1687
1688         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
1689         (PPERM_INVERT): Ditto.
1690         (PPERM_REVERSE): Ditto.
1691         (PPERM_REV_INV): Ditto.
1692         (PPERM_ZERO): Ditto.
1693         (PPERM_ONES): Ditto.
1694         (PPERM_SIGN): Ditto.
1695         (PPERM_INV_SIGN): Ditto.
1696         (PPERM_SRC1): Ditto.
1697         (PPERM_SRC2): Ditto.
1698
1699         * config/i386/sse.md (mulv2di3): Add SSE5 support.
1700         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
1701         allows a memory operand to be the value being added, and split it
1702         to improve vectorization.
1703         (sse5_pmacsdqh_mem): Ditto.
1704         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
1705         (sse5_mulv2div2di3_high): Ditto.
1706         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
1707         (vec_pack_trunc_v4si): Ditto.
1708         (vec_pack_trunc_v2di): Ditto.
1709         (sse5_pcmov_<mode>): Remove code that tried to use use
1710         andps/andnps instead of pcmov.
1711         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
1712         pmacsdqh instructions.
1713         (vec_widen_smult_lo_v4si): Ditto.
1714
1715         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
1716         (PPERM_INVERT): Ditto.
1717         (PPERM_REVERSE): Ditto.
1718         (PPERM_REV_INV): Ditto.
1719         (PPERM_ZERO): Ditto.
1720         (PPERM_ONES): Ditto.
1721         (PPERM_SIGN): Ditto.
1722         (PPERM_INV_SIGN): Ditto.
1723         (PPERM_SRC1): Ditto.
1724         (PPERM_SRC2): Ditto.
1725         (ix86_expand_sse_movcc): Move the SSE5 test after the if
1726         true/false tests.
1727         (ix86_expand_int_vcond): If SSE5 generate all possible integer
1728         comparisons.
1729         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
1730         says ignore whether the last reference is a memory operand.
1731
1732 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
1733             Paolo Bonzini <bonzini at gnu dot org>
1734
1735         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
1736         shift patterns.
1737
1738         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
1739         (vlshr<mode>3): Rename from vlshr<mode>3.
1740         (vashr<mode>3): Rename from vashr<mode>3.
1741         (mulv4sf3): Change the names of vector shift patterns.
1742         (mulv4si3): Ditto.
1743         (negv4sf2): Ditt.
1744
1745         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
1746         shift insns.
1747
1748         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
1749         (SI_SHLHI): Ditto.
1750         (SI_SHL): Ditto.
1751         (SI_SHLI): Ditto.
1752         (SI_ROTH): Ditto.
1753         (SI_ROTHI): Ditto.
1754         (SI_ROT): Ditto.
1755         (SI_ROTI): Ditto.
1756         (SPU_RL_0): Ditto.
1757         (SPU_RL_1): Ditto.
1758         (SPU_RL_2): Ditto.
1759         (SPU_RL_3): Ditto.
1760         (SPU_RL_4): Ditto.
1761         (SPU_RL_5): Ditto.
1762         (SPU_RL_6): Ditto.
1763         (SPU_RL_7): Ditto.
1764         (SPU_SL_0): Ditto.
1765         (SPU_SL_1): Ditto.
1766         (SPU_SL_2): Ditto.
1767         (SPU_SL_3): Ditto.
1768         (SPU_SL_4): Ditto.
1769         (SPU_SL_5): Ditto.
1770         (SPU_SL_6): Ditto.
1771         (SPU_SL_7): Ditto.
1772
1773         * config/spu/spu.md (v): New iterator macro to add v for vector types.
1774         (floatunssidf2_internal): Change vector/vector shift names.
1775         (floatunsdidf2_internal): Ditto.
1776         (mulv8hi3): Ditto.
1777         (ashrdi3): Ditto.
1778         (ashrti3): Ditto.
1779         (cgt_df): Ditto.
1780         (cgt_v2df): Ditto.
1781         (dftsv): Ditto.
1782         (vashl<mode>3): Rename from ashl<mode>3.
1783         (vashr<mode>3): Rename from ashr<mode>3.
1784         (vlshr<mode>3): Rename from lshr<mode>3.
1785         (vrotl<mode>3): Rename from rotl<mode>3.
1786
1787 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
1788
1789         PR target/36224
1790         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
1791         multiply gives the wrong value when doing widening multiplies.
1792         (vec_widen_smult_lo_v4si): Ditto.
1793
1794 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
1795
1796         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
1797         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
1798         emit_library_call_value. 
1799         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
1800         * tree.h (ECF_LIBCALL_BLOCK): Removed.
1801         * calls.c (initialize_argument_information, precompute_arguments, 
1802         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
1803         (precompute_arguments): Removed flags parameter.
1804         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
1805         
1806 2008-05-14  Richard Guenther  <rguenther@suse.de>
1807
1808         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
1809         Make sure to register the store if the use is a PHI_NODE.
1810
1811 2008-05-14  Olivier Hainque  <hainque@adacore.com>
1812
1813         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
1814         memory if the component is to be referenced in BLKmode according
1815         to get_inner_reference.
1816
1817 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
1818
1819         * calls.c (emit_library_call_value_1): Restore code clearing
1820         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
1821
1822 2008-05-14  Olivier Hainque  <hainque@adacore.com>
1823             Nicolas Roche  <roche@adacore.com>
1824
1825         * configure.ac: Add support for a "gcc_subdir" variable in
1826         config-lang.in, to denote a subdirectory where the language/GCC
1827         integration files are to be found.
1828         * configure: Regenerate.
1829
1830 2008-05-14  Ira Rosen  <irar@il.ibm.com>
1831
1832         PR tree-optimization/36098
1833         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
1834         value for the first load in the group in case of a gap.
1835         (vect_build_slp_tree): Check that there are no gaps in loads.
1836
1837 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
1838
1839         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
1840         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
1841         expand_copysign_bit, ): Change call to emit_no_conflict_block to
1842         emit_insn and remove unneeded code to construct extra args.
1843         (emit_no_conflict_block): Removed.
1844         * optabls.h: (emit_no_conflict_block): Removed.
1845         * cse.c (cse_extended_basic_block): Remove search for
1846         REG_NO_CONFLICT note.
1847         * global.c: Removed incorrect comment added in revision 117.
1848         * expr.c (convert_move): Change call to emit_no_conflict_block to
1849         emit_insn.
1850         * recog.c: Change comments so that they do not mention
1851         REG_NO_CONFLICT.
1852         * local_alloc.c (combine_regs): Removed last parameter.
1853         (no_conflict_p): Removed.
1854         (block_alloc): Removed note, no_conflict_combined_regno and set
1855         local vars. Removed all code to process REG_NO_CONFLICT blocks.
1856         (combine_regs): Removed already_dead and code to look for
1857         REG_NO_CONFLICT notes.
1858         * lower_subreg (remove_retval_note): Removed code to look for
1859         REG_NO_CONFLICT block.
1860         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
1861         (resolve_clobber): Remove code to process libcalls that have
1862         REG_NO_CONFLICT notes.
1863         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
1864         case.
1865         * combine.c (can_combine_p, distribute_notes):  Removed
1866         REG_NO_CONFLICT case.
1867         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
1868         to emit_insns.
1869         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
1870         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
1871         Ditto.
1872         * reg-notes.def (NO_CONFLICT): Removed.
1873
1874 2008-05-14  David S. Miller  <davem@davemloft.net>
1875
1876         * config/sparc/sparc.c (sparc_profile_hook): If
1877         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
1878         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
1879         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
1880
1881 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
1882
1883         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
1884
1885 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
1886
1887         PR target/36222
1888         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
1889         and op1 expansion before vector concat to have less live pseudos.
1890
1891 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
1892
1893         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
1894         ix86_expand_vector_set if supported.
1895
1896 2008-05-13  Diego Novillo  <dnovillo@google.com>
1897             Kenneth Zadeck  <zadeck@naturalbridge.com>
1898
1899         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
1900
1901         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
1902         phinodes_print_statistics, init_ssanames, fini_ssanames,
1903         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
1904         release_ssa_name, release_defs, replace_ssa_name_symbol,
1905         ssanames_print_statistics): Move ...
1906         * tree-flow.h: ... here.
1907         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
1908         Use FN instead of cfun.
1909         (make_ssa_name_fn): Rename from make_ssa_name.
1910         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
1911         * tree-flow-inline.h (make_ssa_name): Move from
1912         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
1913         * omp-low.c (expand_omp_parallel):
1914         * tree-flow-inline.h (redirect_edge_var_map_result):
1915         * tree-ssa.c (init_tree_ssa): Add argument FN.
1916         Use it instead of cfun.  Update all users.
1917
1918 2008-05-13  Tom Tromey  <tromey@redhat.com>
1919
1920         PR preprocessor/22168:
1921         * doc/cpp.texi (Top): Update menu.
1922         (Alternatives to Wrapper #ifndef): New node.
1923         (Other Directives): Document deprecation.
1924         (Obsolete Features): Remove menu.
1925         (Assertions): Merge node into Obsolete Features.
1926         (Obsolete once-only headers): Move earlier; rename to Alternatives
1927         to Wrapper #ifndef.
1928         * doc/cppopts.texi: Update.
1929         * c.opt (Wdeprecated): Enable for C and ObjC.
1930         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
1931         (C++ Dialect Options): Move -Wno-deprecated from here to...
1932         (Warning Options): ... here.
1933
1934 2008-05-13  Richard Guenther  <rguenther@suse.de>
1935
1936         PR middle-end/36227
1937         * fold-const.c (fold_sign_changed_comparison): Do not allow
1938         changes in pointer-ness.
1939
1940 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
1941
1942         PR target/24713
1943         * config/sh/sh.c (sh_expand_prologue): Don't clear
1944         RTX_FRAME_RELATED_P for push insns.
1945
1946 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
1947
1948         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
1949
1950 2008-05-12  Anatoly Sokolov <aesok@post.ru>
1951
1952         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
1953         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
1954         Use 'machine->is_leaf' instead of 'leaf_func_p'.
1955
1956 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
1957
1958         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
1959         (*vec_concatv4sf_sse): This.
1960         (*sse2_concatv2si): Renamed to ...
1961         (*vec_concatv2si_sse2): This.
1962         (*sse1_concatv2si): Renamed to ...
1963         (*vec_concatv2si_sse): This.
1964         (*vec_concatv2di_rex): Renamed to ...
1965         (*vec_concatv2di_rex64): This.
1966         (*vec_concatv2si_sse4_1): New.
1967         (*vec_concatv2di_rex64_sse4_1): Likewise.
1968
1969 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
1970
1971         PR rtl-optimization/36111
1972         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
1973         that was created for swappable operands.
1974
1975 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
1976
1977         PR ada/36001
1978         * Makefile.in: Substitute GNATMAKE and GNATBIND.
1979         * configure.ac: Add call to ACX_PROG_GNAT.
1980
1981 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
1982
1983         * optc-gen.awk: Fix comment typo.
1984
1985 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
1986
1987         * pretty-print.c (pp_integer_with_precision): Use
1988         HOST_LONG_LONG_FORMAT.
1989
1990 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
1991
1992         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
1993                 
1994 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
1995
1996         * config/i386/i386.c (bdesc_ptest): Removed.
1997         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
1998         (bdesc_args): Add __builtin_ia32_ptestz128,
1999         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
2000         (ix86_init_mmx_sse_builtins): Updated.
2001         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
2002         (ix86_expand_builtin): Updated.
2003
2004 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
2005
2006         * tree-cfg.c (valid_fixed_convert_types_p): New function.
2007         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
2008
2009 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
2010
2011         * value-prof.c (interesting_stringop_to_profile): Do not
2012         return early for BUILT_IN_MEMPCPY.
2013
2014 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
2015
2016         * calls.c (expand_call): Don't use callgraph to increase
2017         preferred_stack_boundary.
2018
2019         * cgraph.h (cgraph_rtl_info): Use unsigned on
2020         preferred_incoming_stack_boundary.
2021
2022         * final.c (rest_of_clean_state): Use unsigned on
2023         preferred_stack_boundary.
2024
2025 2008-05-09  Tom Tromey  <tromey@redhat.com>
2026
2027         PR preprocessor/22231:
2028         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
2029         proceeding.
2030
2031 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
2032
2033         PR tree-optimization/36129
2034         * tree-ssa-ccp.c: Include value-prof.h.
2035         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
2036         built-in function was folded to a constant.
2037         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
2038
2039 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
2040             Sebastian Pop  <sebastian.pop@amd.com>
2041
2042         * tree-scalar-evolution.c: Document instantiate_scev.
2043         (instantiate_parameters_1): Renamed instantiate_scev_1.
2044         Don't use the same loop for instantiation_loop and evolution_loop.
2045         (instantiate_scev): New.
2046         (instantiate_parameters): Moved...
2047         (resolve_mixers): Update call to instantiate_scev_1 to pass the
2048         same loop twice.  Maintains the semantics for this function.
2049         * tree-scalar-evolution.h (instantiate_scev): Declare.
2050         (instantiate_parameters): ...here.  Now static inline.
2051         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
2052         instead of resolve_mixers.
2053
2054 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
2055
2056         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
2057
2058 2008-05-09  Tomas Bily  <tbily@suse.cz>
2059
2060         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
2061         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
2062         * tree-ssa-structalias.c (get_constraint_for): Likewise.
2063         * c-common.c (c_common_truthvalue_conversion): Likewise.
2064         * tree-object-size.c (compute_object_offset): Likewise.
2065         * tree-inline.c (estimate_num_insns_1): Likewise.
2066         * varasm.c (const_hash_1, compare_constant, copy_constant)
2067         (compute_reloc_for_constant, output_addressed_constants)
2068         (initializer_constant_valid_p): Likewise.
2069         * c-omp.c (check_omp_for_incr_expr): Likewise.
2070         * gimplify.c (gimplify_expr): Likewise.
2071         * c-typeck.c (c_finish_return): Likewise.
2072         * tree-vectorizer.c (supportable_widening_operation)
2073         (supportable_narrowing_operation): Likewise.
2074         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
2075         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
2076         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
2077         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
2078         (descr_info_loc): Likewise.
2079         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
2080         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
2081         (fold_unary): Likewise.
2082         * builtins.c (get_pointer_alignment): Likewise.
2083         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
2084         (instantiate_parameters_1): Likewise.
2085         * tree.c (expr_align, stabilize_reference): Likewise.
2086         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
2087         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
2088         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
2089         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
2090         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
2091         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
2092         Likewise.
2093         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
2094         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
2095         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
2096         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
2097         (forward_propagate_comparison)
2098         (tree_ssa_forward_propagate_single_use_vars): Likewise.
2099         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
2100         * emit-rtl.c (component_ref_for_mem_expr)
2101         (set_mem_attributes_minus_bitpos): Likewise.
2102         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
2103         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
2104         Likewise.
2105         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
2106         (build_function_call, pointer_diff, build_compound_expr)
2107         (c_finish_return): Likewise.
2108         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
2109         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
2110         Likewise.
2111         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
2112         * expr.c (is_aligning_offset): Likewise.
2113         * tree-ssa-alias.c (is_escape_site): Likewise.
2114         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
2115         (check_all_va_list_escapes): Likewise.
2116         * tree-ssa-loop-ivopts.c (determine_base_object)
2117         (determine_common_wider_type): Likewise.
2118         * dojump.c (do_jump): Likewise.
2119         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
2120         * tree-gimple.c (is_gimple_cast): Likewise.
2121         * fold-const.c (decode_field_reference, )
2122         (fold_sign_changed_comparison, fold_unary, fold_comparison)
2123         (fold_binary): Likewise.
2124         * tree-ssa-alias-warnings.c (find_alias_site_helper)
2125         (already_warned_in_frontend_p): Likewise.
2126         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
2127         * tree.c (really_constant_p, get_unwidened): Likewise.
2128         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
2129         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
2130         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
2131         Likewise.
2132         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
2133         CONVERT_EXPR_P.
2134         (CONVERT_EXPR_P): Define.
2135         (CASE_CONVERT): Define.
2136         
2137 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
2138
2139         PR middle-end/36117
2140         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
2141         (delete_unmarked_insns): When deleting a call, call
2142         delete_unreachable_blocks.
2143         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
2144         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
2145
2146 2008-05-08  Richard Guenther  <rguenther@suse.de>
2147
2148         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
2149         (-ftree-salias): Likewise.
2150         (salias-max-implicit-fields): Remove param documentation.
2151         (salias-max-array-elements): Likewise.
2152         * tree-pass.h (pass_create_structure_vars): Remove.
2153         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
2154         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
2155         * tree-ssa-alias.c (create_structure_vars): Remove.
2156         (gate_structure_vars): Likewise.
2157         (pass_create_structure_vars): Likewise.
2158         (gate_build_alias): Likewise.
2159         (pass_build_alias): Adjust to run always and dump the function.
2160         * common.opt (ftree-salias): Hide.
2161         * passes.c (init_optimization_passes): Remove
2162         pass_create_structure_vars, adjust comment.
2163         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
2164         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
2165         * opts.c (decode_options): Do not set flag_tree_salias.
2166         (common_handle_option): Add OPT_ftree_salias to the backward
2167         compatibility section.
2168
2169 2008-05-08  Richard Guenther  <rguenther@suse.de>
2170
2171         * tree-flow-inline.h (var_can_have_subvars): Move ...
2172         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
2173         * tree-flow.h (var_can_have_subvars): Remove.
2174         (push_fields_onto_fieldstack): Remove.
2175         (sort_fieldstack): Likewise.
2176         (struct fieldoff): Move ...
2177         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
2178         alias_set and base_for_components fields.
2179         (sort_fieldstack): Make static.
2180         (push_fields_onto_fieldstack): Likewise.  Remove code that
2181         handles anything but RECORD_TYPEs.  Remove alias_set and
2182         base_for_components handling.
2183         (create_variable_info_for): Adjust.
2184
2185 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
2186
2187         * common.opt (Wframe-larger-than=): Shorten the help message
2188         to one line.
2189         * doc/invoke.texi (Wframe-larger-than=): Add more description.
2190
2191 2008-05-08  Rafael Espindola  <espindola@google.com>
2192
2193         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
2194         trap.
2195         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
2196         trap and that both operands are gimple values.
2197         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
2198         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
2199         is a fp operation.
2200
2201 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
2202
2203         * read-rtl.c (join_c_conditions): Return the first string if the
2204         two strings are equal.
2205
2206 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
2207
2208         * gensupport.h (pred_data): Add a "num_codes" field.
2209         (add_predicate_code): Declare.
2210         * gensupport.c (add_predicate_code): New function.
2211         (std_pred_table): Add an "allows_const_p" field.
2212         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
2213         Remove the (incomplete) list of such codes from the codes field.
2214         (init_predicate_table): Use add_predicate_code.  Add all
2215         RTX_CONST_OBJs if allows_const_p is true.
2216         * genrecog.c (process_define_predicate): Use add_predicate_code.
2217
2218 2008-05-08  David Daney  <ddaney@avtrex.com>
2219             Richard Sandiford  <rsandifo@nildram.co.uk>
2220         
2221         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
2222         special case of constant zero operands.
2223         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
2224         old and new values.  Special case constant zero values.
2225         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
2226         fails.
2227         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
2228         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
2229
2230 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
2231
2232         PR target/36090
2233         * simplify-rtx.c (simplify_plus_minus): Create CONST of
2234         similar RTX_CONST_OBJ before CONST_INT.
2235
2236 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
2237
2238         * stmt.c (expand_stack_restore): Change sa mode if needed.
2239
2240 2008-05-08  Richard Guenther  <rguenther@suse.de>
2241
2242         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
2243         return type to bool.
2244         (ix86_sol10_return_in_memory): Likewise.
2245         (ix86_i386elf_return_in_memory): Likewise.
2246         (ix86_i386interix_return_in_memory): Likewise.
2247         * config/i386/i386.c (ix86_return_in_memory): Likewise.
2248         (ix86_sol10_return_in_memory): Likewise.
2249         (ix86_i386elf_return_in_memory): Likewise.
2250         (ix86_i386interix_return_in_memory): Likewise.
2251
2252 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
2253
2254         PR bootstrap/36180
2255         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
2256         fndecl argument.
2257         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
2258         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
2259         declared in front.
2260
2261 2008-05-08  Richard Guenther  <rguenther@suse.de>
2262
2263         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
2264         * tree-data-ref.h (struct dr_alias): Remove subvars field.
2265         (DR_SUBVARS): Remove.
2266         * tree-dfa.c (dump_subvars_for): Remove.
2267         (debug_subvars_for): Likewise.
2268         (dump_variable): Do not dump subvars.
2269         (remove_referenced_var): Do not remove subvars.
2270         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
2271         (lookup_subvars_for_var): Remove.
2272         (get_subvars_for_var): Likewise.
2273         (get_subvars_at): Likewise.
2274         (get_first_overlapping_subvar): Likewise.
2275         (overlap_subvar): Likewise.
2276         * tree-flow.h (subvar_t): Remove.
2277         (struct var_ann_d): Remove subvars field.
2278         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
2279         argument.  Remove special handling of SFTs.
2280         (compute_tag_properties): Likewise.
2281         (set_initial_properties): Likewise.
2282         (compute_call_clobbered): Likewise.
2283         (count_mem_refs): Likewise.
2284         (compute_memory_partitions): Likewise.
2285         (compute_flow_insensitive_aliasing): Likewise.
2286         (setup_pointers_and_addressables): Likewise.
2287         (new_type_alias): Likewise.
2288         (struct used_part): Remove.
2289         (used_portions): Likewise.
2290         (struct used_part_map): Likewise.
2291         (used_part_map_eq): Likewise.
2292         (used_part_map_hash): Likewise.
2293         (free_used_part_map): Likewise.
2294         (up_lookup): Likewise.
2295         (up_insert): Likewise.
2296         (get_or_create_used_part_for): Likewise.
2297         (create_sft): Likewise.
2298         (create_overlap_variables_for): Likewise.
2299         (find_used_portions): Likewise.
2300         (create_structure_vars): Likewise.
2301         * tree.def (STRUCT_FIELD_TAG): Remove.
2302         * tree.h (MTAG_P): Adjust.
2303         (struct tree_memory_tag): Remove base_for_components and
2304         unpartitionable flags.
2305         (struct tree_struct_field_tag): Remove.
2306         (SFT_PARENT_VAR): Likewise.
2307         (SFT_OFFSET): Likewise.
2308         (SFT_SIZE): Likewise.
2309         (SFT_NONADDRESSABLE_P): Likewise.
2310         (SFT_ALIAS_SET): Likewise.
2311         (SFT_UNPARTITIONABLE_P): Likewise.
2312         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
2313         (union tree_node): Remove sft field.
2314         * alias.c (get_alias_set): Remove special handling of SFTs.
2315         * print-tree.c (print_node): Remove handling of SFTs.
2316         * tree-dump.c (dequeue_and_dump): Likewise.
2317         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
2318         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
2319         * tree-predcom.c (set_alias_info): Do not set subvars.
2320         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
2321         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
2322         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
2323         (add_vars_for_offset): Remove.
2324         (add_virtual_operand): Remove special handling of SFTs.
2325         (add_call_clobber_ops): Likewise.
2326         (add_call_read_ops): Likewise.
2327         (get_asm_expr_operands): Likewise.
2328         (get_modify_stmt_operands): Likewise.
2329         (get_expr_operands): Likewise.
2330         (add_to_addressable_set): Likewise.
2331         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
2332         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
2333         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
2334         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
2335         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
2336         (tree_node_structure): Likewise.
2337         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
2338         handling of SFTs.
2339         (find_what_p_points_to): Likewise.
2340
2341 2008-05-08  Sa Liu  <saliu@de.ibm.com>
2342
2343         * config/spu/spu.md: Fixed subti3 pattern.
2344
2345 2008-05-08  Richard Guenther  <rguenther@suse.de>
2346
2347         PR middle-end/36154
2348         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
2349         sure to create a representative for trailing arrays for PTA.
2350
2351 2008-05-08  Richard Guenther  <rguenther@suse.de>
2352
2353         PR middle-end/36172
2354         * fold-const.c (operand_equal_p): Two objects which types
2355         differ in pointerness are not equal.
2356
2357 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
2358
2359         * calls.c (compute_argument_block_size): Add argument tree fndecl.
2360         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
2361         (emit_library_call_value_1): Add new variable fndecl initialized by
2362         NULL_TREE. It should be the decl type of orgfun, but this information
2363         seems not to be available here, so it uses the default calling abi.
2364         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
2365         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
2366         by TARGET_RETURN_IN_MEMORY.
2367         * config/i386/i386-interix.h: Likewise.
2368         * config/i386/i386.h: Likewise.
2369         * config/i386/i386elf.h: Likewise.
2370         * config/i386/ptx4-i.h: Likewise.
2371         * config/i386/sol2-10.h: Likewise.
2372         * config/i386/sysv4.h: Likewise.
2373         * config/i386/vx-common.h: Likewise.
2374         * config/cris/cris.h: Removed #if 0 clause.
2375         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
2376         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
2377         argument.
2378         (ix86_sol10_return_in_memory): Likewise.
2379         (ix86_i386elf_return_in_memory): New.
2380         (ix86_i386interix_return_in_memory): New.
2381         * config/mt/mt-protos.h (mt_return_in_memory): New.
2382         * config/mt/mt.c: Likewise.
2383         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
2384         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
2385         * config/bfin/bfin.h: Likewise.
2386         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
2387         argument.
2388         * config/bfin/bfin.c: Likewise.
2389         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
2390         * config/alpha/unicosmk.h: Likewise.
2391         * config/i386/cygming.h: Likewise.
2392         * config/iq2000/iq2000.h: Likewise.
2393         * config/mips/mips.h: Likewise.
2394         * config/mn10300/mn10300.h: Likewise.
2395         * config/rs6000/rs6000.h: Likewise.
2396         * config/score/score.h: Likewise.
2397         * config/spu/spu.h: Likewise.
2398         * config/v850/v850.h: Likewise.
2399         * defaults.h: Likewise.
2400         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
2401         * expr.c (emit_block_move): Adjust use of
2402         OUTGOING_REG_PARM_STACK_SPACE.
2403         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
2404         OUTGOING_REG_PARM_STACK_SPACE.
2405         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
2406
2407 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
2408
2409         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
2410         on OMP_RETURN for OMP_FOR.
2411
2412         PR debug/35896
2413         * dwarf2out.c (dw_expand_expr, common_check): Removed.
2414         (fortran_common): New function.
2415         (gen_variable_die): Call fortran_common instead of common_check,
2416         adjust for it returning tree instead of rtx.  Formatting.
2417
2418 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
2419
2420         PR rtl/7335
2421         PR rtl/33826
2422         * see.c (see_copy_insn): Copy new pure const attributes for new call.
2423         * c-decl.c (merge_decls): Ditto.
2424         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
2425         to RTL_CONST_OR_PURE_CALL_P.
2426         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
2427         Initialized DECL_LOOPING_CONST_PURE.
2428         (process_call_operands): Set tree_side_effects properly.
2429         * tree.h (TREE_READONLY_DECL_P): Removed.
2430         (DECL_IS_PURE): Renamed to DECL_PURE_P.
2431         (DECL_LOOPING_OR_CONST_P): New macro.
2432         (struct tree_function_decl): Added looping_const_or_pure_p.
2433         (ECF_*) Renumbered.
2434         (ECF_LOOPING_OR_CONST_P): New macro.
2435         * rtlanal.c (pure_const_p): Removed.
2436         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
2437         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
2438         to RTL_CONST_CALL_P.
2439         * ipa-pure-const.c (pure_const_state_e): Added looping field.
2440         (check_decl, check_tree, check_call, scan_function): Initialize
2441         looping.
2442         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
2443         (static_execute): Set looping true for recursive functions.
2444         Undo setting state to IPA_NEITHER for recursive functions.
2445         * cse.c (cse_insn): 
2446         * ifcvt.c (noce_can_store_speculate_p): Changed
2447         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
2448         RTL_CONST_OR_PURE_CALL_P.
2449         * dse.c (scan_insn): Ditto.
2450         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
2451         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
2452         RTL_CONST_OR_PURE_CALL_P.
2453         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
2454         pure_call_p to RTL_CONST_CALL_P.
2455         * gimplify.c (gimplify_call_expr): Clear side effects for
2456         non-looping pure and constant calls.
2457         * calls.c (emit_call_1): Set rtl flags from ecf flags.
2458         (flags_from_decl_or_type): Set ecf flags from decl flags.
2459         (initialize_argument_information): Turn off
2460         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
2461         Change const to pure if callee_copies is true rather than just
2462         turning off const.
2463         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
2464         way of marking pure calls.
2465         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
2466         Remove hack that was supposed to fix pr7335 and remove old
2467         way of marking pure calls.
2468         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
2469         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
2470         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
2471         RTL_CONST_OR_PURE_CALL_P.
2472         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
2473         * loop-invariant.c (find_exits, find_invariant_bb): Changed
2474         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
2475         * sched-deps.c (schedule_analyze): Ditto.
2476         * rtl.h (struct rtx_def): Use call field, unchanging field, and
2477         return_val field of calls to represent pure and const function info.
2478         (CONST_OR_PURE_CALL_P): Deleted macro.
2479         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
2480         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
2481         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
2482         TREE_READONLY.
2483         * tree-optimize.c (execute_fixup_cfg): Added test for
2484         ECF_LOOPING_CONST_OR_PURE.
2485         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
2486         DECL_PURE_P.
2487         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
2488         effects for looping pure or const calls.
2489         (verify_gimple_expr): Added verification code. 
2490         * config/alpha/alpha.c (alpha_legitimize_address,
2491         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
2492         RTL_CONST_CALL_P.
2493         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
2494         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
2495         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
2496         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
2497         RTL_CONST_OR_PURE_CALL_P.
2498         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
2499         and const calls to be deleted.
2500
2501 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
2502
2503         PR target/35714
2504         * config/i386/mmx.md (mmx_subv2sf3): New expander.
2505         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
2506         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
2507         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
2508         to handle nonimmediate operands.
2509         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
2510         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
2511         to handle nonimmediate operands.
2512         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
2513         (mmx_pmulhrwv4hi3): New expander.  Use
2514         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2515         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
2516         (sse2_umulv1siv1di3): New expander.  Use
2517         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2518         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
2519         (mmx_eq<mode>3): New expander.  Use
2520         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2521         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
2522         (mmx_uavgv8qi3): New expander.  Use
2523         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2524         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
2525         (mmx_uavgv4hi3): New expander.  Use
2526         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2527
2528         * config/i386/sse.md
2529         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
2530         to handle nonimmediate operands.
2531         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
2532         to handle nonimmediate operands.
2533         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
2534         to handle nonimmediate operands.
2535         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
2536         to handle nonimmediate operands.
2537         (sse2_unpckhpd_exp): New expander.  Use
2538         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2539         (sse2_unpcklpd_exp): New expander.  Use
2540         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2541         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
2542         to handle nonimmediate operands.
2543         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
2544         to handle nonimmediate operands.
2545         (*sse2_<plusminus_insn><mode>3): Rename from
2546         sse2_<plusminus_insn><mode>3 insn pattern.
2547         (sse2_<plusminus_insn><mode>3): New expander.  Use
2548         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2549         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
2550         (sse2_umulv2siv2di3): New expander.  Use
2551         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2552         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
2553         (sse4_1_mulv2siv2di3): New expander.  Use
2554         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2555         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
2556         (sse2_pmaddwd): New expander.  Use
2557         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2558         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
2559         (sse2_eq<mode>3): New expander.  Use
2560         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2561         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
2562         (sse4_1_eqv2di3): New expander.  Use
2563         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2564         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
2565         (sse2_uavgv16qi3): New expander.  Use
2566         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2567         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
2568         (sse2_uavgv16qi3): New expander.  Use
2569         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2570         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
2571         (sse2_uavgv8hi3): New expander.  Use
2572         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2573         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
2574         (ssse3_pmulhrswv8hi3): New expander.  Use
2575         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2576         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
2577         (ssse3_pmulhrswv4hi3): New expander.  Use
2578         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2579
2580         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
2581         (<sse>_vmmul<mode>3): Ditto.
2582         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
2583         (divv2df3): Ditto.
2584         (ssse3_pmaddubsw128): Use register_operand for operand 1.
2585         (ssse3_pmaddubsw): Ditto.
2586
2587         * config/i386/i386.c (struct_builtin_description)
2588         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
2589         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
2590         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
2591         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
2592         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
2593         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
2594         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
2595         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
2596         (ix86_fixup_binary_operands): Assert that src1
2597         and src2 must have the same mode when swapped.
2598         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
2599         and ix86_binary_operator_ok.  Do not force operands in registers
2600         when optimizing.
2601
2602 2008-05-07  Jan Hubicka  <jh@suse.cz>
2603
2604         * cgraph.c (dump_cgraph_node): Update.
2605         * cgraph.h (cgraph_local_info): Break out inline summary.
2606         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
2607         hook.
2608         * ipa-inline (inline_summary): New accestor function.
2609         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
2610         cgraph_decide_inlining, compute_inline_parameters): Update.
2611         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
2612
2613 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
2614
2615         Cleanup ColdFire scheduling support and add V4 pipeline model.
2616
2617         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
2618         (define_attr cpu): Add cfv4 value.
2619         (define_attr type, define_attr type1): Merge into a single 'type'
2620         attribute.  Update all uses.
2621         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
2622         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
2623         Update all uses.
2624         (define_attr opx_mem, define_attr opy_mem): Remove.
2625         (define_attr op_mem): Clean up, update comment.
2626         (define_attr size): Use specific values instead of general int.
2627         (define_attr guess, define_attr split): Remove.  Update all uses.
2628         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
2629         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
2630         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
2631         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
2632         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
2633         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
2634         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
2635         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
2636         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
2637         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
2638         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
2639         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
2640         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
2641         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
2642         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
2643         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
2644         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
2645         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
2646         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
2647         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
2648         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
2649         Update or set attributes.
2650         (stack_tie): New fake instruction.
2651
2652         * config/m68k/m68k.h (TUNE_CFV4): New macro.
2653         (m68k_sched_attr_size): Update declaration.
2654         (m68k_sched_attr_type2): Remove.
2655         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
2656         Declare new bypass predicates.
2657
2658         * config/m68k/m68k.c (m68k_sched_issue_rate,
2659         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
2660         implementations.
2661         (TARGET_SCHED_ISSUE_RATE,
2662         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
2663         (override_options): Handle scheduling for ColdFire V4 core.
2664         (m68k_expand_prologue): Emit stack_tie.
2665         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
2666         'OP_TYPE_FPN'.  Update all uses.
2667         (sched_guess_p): Remove.
2668         (sched_address_type): Handle symbolic addresses.
2669         (sched_get_operand): New static function.
2670         (sched_operand_type): Merge into sched_attr_op_type.
2671         (sched_attr_op_type): Handle FP registers, handle quick constants,
2672         update.
2673         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
2674         (m68k_sched_attr_size): Update.  Move logic to ...
2675         (sched_get_attr_size_int): New static function.
2676         (sched_get_opxy_mem_type): New static function.
2677         (m68k_sched_attr_op_mem): Update.
2678         (m68k_sched_attr_type2): Remove.
2679         (sched_cfv4_bypass_data): New static variable.
2680         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
2681         (m68k_sched_issue_rate): Implement scheduler hook.
2682         (struct _sched_ib: enabled_p): New field.
2683         (m68k_sched_variable_issue): Update.  Handle V4.
2684         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
2685         sched_dump_class_func_t, sched_dump_split_class,
2686         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
2687         sched_dump_dfa_class, m68k_sched_dump): Remove.
2688         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
2689         hook.
2690         (m68k_sched_init_global): Remove statisctics dumping, introduce
2691         sanity check that all instructions have pipeline reservations.  Handle
2692         ColdFire V4 core.
2693         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
2694         Handle ColdFire V4 core.
2695         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
2696         New static functions.
2697         (m68k_sched_address_bypass_p): New bypass predicate.
2698         (sched_get_indexed_address_scale): New static function.
2699         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
2700
2701         * cf.md: Update comments.
2702         (define_attr type2): Remove.  Use 'type' attribute instead.
2703         Update all uses.
2704         (cf_ib): Rename to cfv123_ib.  Update all uses.
2705         (cf_oep): Rename to cfv123_oep.  Update all uses.
2706         (cf_chr): Rename to cfv123_chr.  Update all uses.
2707         (cf_mem): Rename to cfv123_mem.  Update all uses.
2708         (cf_mac): Move to more appropriate place.
2709         (cfv123_guess): New automaton and cpu_unit.
2710         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
2711         Update uses of 'size' attribute.  Handle before reload scheduling.
2712         (cfv123_guess): New dummy reservation for unhandled instructions.
2713         (cfv4_*): Pipeline description of ColdFire V4 core.
2714         (ignore): New reservation to handle 'ignore' type.
2715
2716 2008-05-07  Ian Lance Taylor  <iant@google.com>
2717
2718         PR middle-end/36013
2719         * gimplify.c (find_single_pointer_decl_1): Don't look through
2720         indirections.
2721         (find_single_pointer_decl): Adjust comments.
2722
2723 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
2724
2725         PR middle-end/36137
2726         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
2727         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
2728
2729         PR middle-end/36106
2730         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
2731         integral type rather than floating point, then VIEW_CONVERT_EXPR
2732         to the floating point type.
2733
2734 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
2735
2736         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
2737         TFmode op0 to register.
2738
2739 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
2740
2741         * c-decl.c (grokdeclarator): Comment typo.
2742
2743 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
2744
2745         * tree-flow.h: Remove prototype for computed_goto_p.
2746         * tree-cfg.c (computed_goto_p): Make static.
2747
2748 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
2749
2750         PR target/35657
2751         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
2752         (contains_aligned_value_p): This.  Handle _Decimal128.
2753         (ix86_function_arg_boundary): Only align _Decimal128 to its
2754         natural boundary and handle it properly.
2755
2756 2008-05-06  Martin Jambor  <mjambor@suse.cz>
2757
2758         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
2759         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
2760         (ipcp_method_set_orig_node): Removed.
2761         (ipcp_cval_get_cvalue_type): Removed.
2762         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
2763         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
2764         (ipcp_cval_set_cvalue_type): Removed.
2765         (ipcp_cval_get_cvalue): Removed.
2766         (ipcp_cval_set_cvalue): Removed.
2767         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
2768         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
2769         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
2770         (ipcp_cval_meet): Renamed to ipa_lattice_meet
2771         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
2772         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
2773         (ipcp_get_ith_lattice): Changed parameters.
2774         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
2775         (ipcp_lattice_from_jfunc): Changed parameters.
2776         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
2777         (ipcp_method_cval_print): Added temporary variable info.
2778         (ipcp_redirect): Removed already unused local variable caller.
2779         (ipcp_redirect): New temporary variable orig_callee_info
2780         (ipcp_redirect): Removed newly unused local variable callee.
2781         (ipcp_redirect): Removed (a bit confusing) local variable type.
2782         (ipcp_insert_stage): Added local variable info.
2783         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
2784         renamed too
2785         (ipcp_formal_create): Removed.
2786         (ipcp_method_cval_set): Removed.
2787         (ipcp_propagate_stage): Renamed lattice variables.
2788         (ipcp_method_cval_set_cvalue_type): Removed.
2789         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
2790         (ipcp_print_all_lattices): Changed printed strings to refer to 
2791         lattices rather than cvals.
2792         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
2793         (ipcp_propagate_const): Changed formal parameters.
2794         (build_const_val): Changed formal parameters.
2795         (ipcp_insert_stage): Removed useless variable cvalue
2796         (build_const_val): Changed formal parameters.
2797         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
2798         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
2799         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
2800         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
2801         (ipcp_print_func_profile_counts): Changed string from "method" to 
2802         "function"
2803         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
2804         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
2805         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
2806         (ipcp_structures_print): Renamed to ipcp_print_all_structures
2807         (ipcp_profile_print): Renamed to ipcp_print_profile_data
2808         (ipcp_lat_is_const): Changed parameters and made inline.
2809         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
2810         (ipcp_redirect): Renamed to ipcp_need_redirect_p
2811         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
2812         the predicate condition directly
2813         (ipcp_propagate_stage): Added local variable args. Removed local
2814         variable callee.  (Both are mere code simplifications.)
2815         (ipcp_method_dont_insert_const): Renamed to
2816         ipcp_node_not_modifiable_p.
2817         (ipcp_node_not_modifiable_p): Made inline.
2818         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
2819         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
2820         (ipcp_print_all_lattices): Removed variable cvalue
2821         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
2822         Updated comments.
2823
2824 2008-05-06  Olivier Hainque  <hainque@adacore.com>
2825
2826         * tree-sra.c (try_instantiate_multiple_fields): Early return
2827         if field has POINTER_TYPE.
2828
2829 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
2830
2831         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
2832         by using 'q' specifier for instruction.
2833         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
2834
2835 2008-05-06  Anatoly Sokolov <aesok@post.ru>
2836
2837         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
2838         Change mode of zero_extract from QImode to HImode.
2839         (sign bit tests peepholes): (Ditto.).
2840
2841 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
2842
2843         * config/i386/mmx.md: Remove double backslashes from asm templates.
2844         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
2845         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
2846         to handle nonimmediate operands.
2847         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
2848         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
2849         to handle nonimmediate operands.
2850         (*mmx_<code>v2sf3_finite): New insn pattern.
2851         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
2852         (mmx_<code>v2sf3): New expander.  Use
2853         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2854         (mmx_<plusminus_insn><mode>3): New expander.  Use
2855         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2856         (*mmx_<plusminus_insn><mode>3): New insn pattern.
2857         (mmx_add<mode>3): Removed.
2858         (mmx_ssadd<mode>3): Ditto.
2859         (mmx_usadd<mode>3): Ditto.
2860         (mmx_sub<mode>3): Ditto.
2861         (mmx_sssub<mode>3): Ditto.
2862         (mmx_ussub<mode>3): Ditto.
2863         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
2864         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
2865         to handle nonimmediate operands.
2866         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
2867         insn pattern.
2868         (mmx_smulv4hi3_highpart): New expander.  Use
2869         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2870         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
2871         insn pattern.
2872         (mmx_umulv4hi3_highpart): New expander.  Use
2873         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2874         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
2875         (mmx_<code>v4hi3): New expander.  Use
2876         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2877         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
2878         (mmx_<code>v8qi3): New expander.  Use
2879         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2880         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
2881         (mmx_<code><mode>3): New expander.  Use
2882         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2883
2884 2008-05-05  Jan Hubicka  <jh@suse.cz>
2885
2886         PR tree-optimization/36118
2887         * passes.c (pass_init_dump_file): Fix dump header.
2888
2889 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2890
2891         PR middle-end/36141
2892         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
2893         VCE for function decls.
2894
2895 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
2896
2897         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
2898
2899 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
2900
2901         * config/i386/i386.md (sat_plusminus): New.
2902         (plusminus_insn): Likewise.
2903         (plusminus_mnemonic): Likewise.
2904         (addsub): Removed.
2905         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
2906         (*<addsub><mode>3_cc_overflow): Renamed to ...
2907         (*<plusminus_insn><mode>3_cc_overflow): This.
2908         (*<addsub>si3_zext_cc_overflow): Renamed to ...
2909         (*<plusminus_insn>si3_zext_cc_overflow): This.
2910
2911         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
2912         (<plusminus_insn><mode>3): This.
2913         (*<addsub><mode>3): Renamed to ...
2914         (*<plusminus_insn><mode>3): This.
2915         (<sse>_vm<addsub><mode>3): Renamed to ...
2916         (<sse>_vm<plusminus_insn><mode>3): This.
2917         (sse3_h<addsub>v4sf3): Renamed to ...
2918         (sse3_h<plusminus_insn>v4sf3): This.
2919         (sse3_h<addsub>v2df3): Renamed to ...
2920         (sse3_h<plusminus_insn>v2df3): This.
2921         (<plusminus_insn><mode>3): New.
2922         (*<plusminus_insn><mode>3): Likewise.
2923         (sse2_<plusminus_insn><mode>3): Likewise.
2924         (add<mode>): Removed.
2925         (*add<mode>3): Likewise.
2926         (sse2_ssadd<mode>3): Likewise.
2927         (sse2_usadd<mode>3): Likewise.
2928         (sub<mode>3): Likewise.
2929         (*sub<mode>3): Likewise.
2930         (sse2_sssub<mode>3): Likewise.
2931         (sse2_ussub<mode>3): Likewise.
2932
2933 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
2934
2935         * gthr-single.h: Add in required interface elements as per gthr.h.
2936         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
2937         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
2938         Generalize UNUSED macro. 
2939         (__gthread_once): Add.
2940         (__gthread_key_create): Add.
2941         (__gthread_key_delete): Add.
2942         (__gthread_getspecific): Add.
2943         (__gthread_setspecific): Add.
2944         
2945 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
2946
2947         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
2948         the same size types for the indirect reference on the rhs, then
2949         create a VCE.
2950
2951 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
2952
2953         * config/i386/i386.md
2954         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
2955         one insn template instead of template series.
2956         (*xordi_1_rex64): Ditto.
2957         (*xordi_2_rex64): Ditto.
2958
2959 2008-05-05  Ira Rosen  <irar@il.ibm.com>
2960
2961         PR tree-optimization/36119
2962         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
2963         in case of SLP.
2964
2965 2008-06-04  Jan Hubicka  <jh@suse.cz>
2966
2967         tree-optimization/36100
2968         * tree-pass.h (pass_O0_always_inline): Declare.
2969         * ipa-inline.c (inline_transform): Remove dead code.
2970         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
2971         pass_O0_always_inline): New.
2972         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
2973
2974 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
2975
2976         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
2977         mnemonic in this_param move for TARGET_64BIT.
2978
2979 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
2980
2981         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
2982         (*strmovsi_rex_1): Ditto.
2983         (*strsetsi_1): Ditto.
2984         (*strsetsi_rex_1): Ditto.
2985
2986         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
2987         adddicc expanders using SWI mode iterator.
2988
2989 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
2990
2991         PR target/36121
2992         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
2993         argument handling.
2994
2995 2008-05-04  David S. Miller  <davem@davemloft.net>
2996
2997         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
2998         (sparc*-*-linux*): Use linux.h in tm_file.
2999         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
3000         compiler defaulting to 32-bit.
3001         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
3002         no longer needed.
3003         * config/sparc/linux.h: Remove definitions now obtained
3004         properly from linux.h
3005         * config/sparc/linux64.h: Likewise.
3006         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
3007         don't want this setting for 32-bit builds in a biarch compiler.
3008         * doc/install.texi: Add sparc-linux to list of targets
3009         supporting --enable-targets=all.
3010
3011 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
3012
3013         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
3014
3015 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
3016
3017         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
3018         after V4SI_FTYPE_V8HI.
3019         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
3020         case V4SI_FTYPE_V2DF.
3021
3022 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
3023
3024         * doc/invoke.texi (max-flow-memory-locations): Removed.
3025         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
3026         
3027 2008-05-03  Richard Guenther  <rguenther@suse.de>
3028
3029         PR middle-end/34973
3030         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
3031
3032 2008-05-02  David S. Miller  <davem@davemloft.net>
3033
3034         * config.gcc (need_64bit_hwint): Document libcpp dependency.
3035
3036 2008-05-02  Simon Baldwin <simonb@google.com>
3037
3038         PR bootstrap/36108
3039         * c-common.h (warn_array_subscript_range): Removed.
3040         * c-common.c (warn_array_subscript_range): Ditto.
3041         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
3042         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
3043
3044 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
3045
3046         * config/i386/i386.c (ix86_special_builtin_type): New.
3047         (bdesc_special_args): Likewise.
3048         (ix86_expand_special_args_builtin): Likewise.
3049         (ix86_init_mmx_sse_builtins): Updated.
3050         (ix86_expand_builtin): Updated.
3051         (ix86_expand_store_builtin): Removed.
3052         (ix86_expand_unop_builtin): Likewise.
3053
3054         * config/i386/mm3dnow.h (__v2sf): Moved to ...
3055         * config/i386/mmintrin.h (__v2sf): Here.
3056
3057         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
3058         const __v2sf.
3059         (_mm_loadl_pi): Likewise.
3060         (_mm_storeh_pi): Replace __v2si with __v2sf.
3061         (_mm_storel_pi): Likewise.
3062
3063         * doc/extend.texi: Correct __builtin_ia32_loadhps,
3064         __builtin_ia32_loadlps, __builtin_ia32_storehps,
3065         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
3066         __builtin_ia32_loadlpd.
3067
3068 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
3069
3070         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
3071         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
3072         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
3073         (ix86_init_mmx_sse_builtins): Updated.
3074         (ix86_expand_args_builtin): Likewise.
3075         (ix86_expand_builtin): Likewise.
3076         (ix86_expand_unop1_builtin): Renamed to ...
3077         (ix86_expand_unop_vec_merge_builtin): This.
3078
3079 2008-05-01  Jan Hubicka  <jh@suse.cz>
3080
3081         PR bootstrap/36100
3082         * ipa-inline.c (inline_generate_summary): Make static.
3083         (inline_transform): Do not call inlining at -O0; make static.
3084         * passes.c (execute_todo): Add sanity check.
3085         (execute_one_ipa_transform_pass): Execute proper flags.
3086
3087 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
3088
3089         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
3090         (DECL_NONADDRESSABLE_P): Likewise.
3091         * alias.c (record_component_aliases): Fix comment.
3092
3093 2008-05-01  Simon Baldwin <simonb@google.com>
3094
3095         * c-common.h (warn_array_subscript_range): New function.
3096         * c-common.c (warn_array_subscript_range): Ditto.
3097         * tree-vrp.c (check_array_ref): Corrected code to agree with
3098         comment, ignoring only arrays of size 0 or size 1.
3099         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
3100
3101 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
3102
3103         * config/i386/i386.c (ix86_builtin_type): Replace
3104         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
3105         (bdesc_args): Updated.
3106         (ix86_init_mmx_sse_builtins): Likewise.
3107         (ix86_expand_args_builtin): Likewise.
3108
3109         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
3110         with __v1di.
3111
3112         * doc/extend.texi: Correct __builtin_ia32_palignr.
3113
3114 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
3115
3116         PR target/36095
3117         * config/i386/i386.c (bdesc_crc32): Removed.
3118         (ix86_expand_crc32): Likewise.
3119         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
3120         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
3121         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
3122         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
3123         UINT_FTYPE_UINT_UCHAR.
3124         (bdesc_args): Updated. Add crc32 builtins.
3125         (ix86_init_mmx_sse_builtins): Updated.
3126         (ix86_expand_args_builtin): Updated to support subreg.
3127
3128         * doc/extend.texi: Correct __builtin_ia32_crc32di.
3129
3130 2008-05-01  Jan Hubicka  <jh@suse.cz>
3131
3132         * tree-pass.h (opt_pass): Add IPA_PASS.
3133         (varpool_node, cgraph_node): Forward declare.
3134         (ipa_opt_pass): Define.
3135         (pass_ipa_inline): Turn into ipa_opt_pass.
3136         (pass_apply_inline): Remove.
3137         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
3138         (apply_inline): Turn into ....
3139         (inline_transform): ... this one.
3140         (inline_generate_summary): New function.
3141         (pass_apply_inline): Remove.
3142         * function.h (ipa_opt_pass): Forward declare structure; typedef;
3143         vector.
3144         (struct function): Add ipa_transforms_to_apply.
3145         * passes.c (register_one_dump_file): Work on IPA_PASS.
3146         (init_optimization_passes): Remove pass_inline_parameters and
3147         pass_apply_inline.
3148         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
3149         (execute_one_pass) ... here; apply transforms when possible.
3150         (add_ipa_transform_pass, execute_ipa_summary_asses,
3151         execute_one_ipa_transform_pass): New.
3152         (execute_ipa_pass_list): Update for IPA_PASS type.
3153
3154 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
3155
3156         * config/i386/i386.c (ix86_builtin_type): Add
3157         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
3158         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
3159         (bdesc_args): Add SSE4a builtins.
3160         (ix86_init_mmx_sse_builtins): Updated.
3161         (ix86_expand_args_builtin): Likewise.
3162         (ix86_expand_builtin): Likewise.
3163
3164 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
3165
3166         * config/i386/i386.c (ix86_builtin_type): Add
3167         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
3168         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
3169         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
3170         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
3171         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
3172         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
3173         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
3174         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
3175         and DI_FTYPE_DI_DI_INT.
3176         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
3177         (ix86_init_mmx_sse_builtins): Updated.
3178         (ix86_expand_args_builtin): Likewise.
3179         (ix86_expand_builtin): Likewise.
3180         (ix86_expand_binop_imm_builtin): Removed.
3181
3182         * doc/extend.texi: Correct __builtin_ia32_palignr128.
3183
3184 2008-04-30  Richard Guenther  <rguenther@suse.de>
3185
3186         PR tree-optimization/32921
3187         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
3188
3189 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
3190
3191         * config/arm/arm.c (arm_unwind_emit): Use
3192         crtl->all_throwers_are_sibcalls instead of
3193         cfun->all_throwers_are_sibcalls.
3194         (arm_output_fn_unwind): Likewise.
3195         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
3196         instead of cfun->uses_pic_offset_table.
3197         (frv_expand_prologue): Likewise.
3198         (frv_frame_pointer_required): Likewise.
3199         (frv_expand_fdpic_call): Likewise.
3200         (frv_emit_movsi): Likewise.
3201         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
3202         cfun->returns_pcc_struct instead of
3203         current_function_returns_pcc_struct.
3204         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
3205         instead of cfun->calls_eh_return.
3206         (m32c_pushm_popm): Likewise.
3207         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
3208         "extern" declaration.
3209
3210 2008-04-30  Richard Guenther  <rguenther@suse.de>
3211
3212         PR tree-optimization/21636
3213         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
3214         constant address.
3215         (evaluate_stmt): Print the likely value.
3216         (ccp_visit_stmt): Avoid excessive vertical spacing.
3217
3218 2008-04-30  Rafael Espindola  <espindola@google.com>
3219
3220         * builtins.c (fold_call_expr): Return realret.
3221         * tree-ssa-threadedge.c
3222         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
3223         __builtin_object_size.
3224
3225 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
3226
3227         * gcc.c (wrapper_string): New variable.
3228         (insert_wrapper): New function.
3229         (execute): New option -wrapper.
3230         * doc/invoke.texi (Overall Options): New driver option -wrapper.
3231
3232 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
3233
3234         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
3235         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
3236         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
3237         from...
3238         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
3239         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
3240         config/rs6000/e500crtres64gprctr.asm,
3241         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
3242         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
3243         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
3244         config/rs6000/e500crtsav64gprctr.asm,
3245         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
3246         config/rs6000/e500crtsavg64gprctr.asm: New files.
3247         * config/rs6000/t-ppccomm: Add build rules for new files.
3248         (LIB2FUNCS_STATIC_EXTRA): Add new files.
3249         * config/rs6000/t-netbsd: Add build rules for new files.
3250         (LIB2FUNCS_STATIC_EXTRA): New variable.
3251         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
3252         (CRTSAVRES_DEFAULT_SPEC): Likewise.
3253         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
3254
3255 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
3256
3257         * config/i386/i386.c (ix86_builtin_type): Add
3258         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
3259         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
3260         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
3261         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
3262         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
3263         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
3264         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
3265         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
3266         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
3267         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
3268         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
3269         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
3270         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
3271         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
3272         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
3273         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
3274         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
3275         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
3276         V1DI_FTYPE_V2SI_V2SI.
3277         (bdesc_2arg): Moved to ...
3278         (bdesc_args): Here.
3279         (ix86_init_mmx_sse_builtins): Updated.
3280         (ix86_expand_args_builtin): Updated.  Take a pointer
3281         to const struct builtin_description.  Handle comparison
3282         builtin functions.
3283         (ix86_expand_sse_compare): Take a new argument for swapping operands.
3284         (ix86_expand_builtin): Updated.
3285
3286         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
3287         (ssse3_pmaddubsw128): This.
3288         (ssse3_pmaddubswv4hi3): Renamed to ...
3289         (ssse3_pmaddubsw): This.
3290
3291         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
3292         (__builtin_ia32_packssdw128): Likewise.
3293         (__builtin_ia32_packuswb128): Likewise.
3294         (__builtin_ia32_pmaddubsw): Likewise.
3295         (__builtin_ia32_pmaddubsw128): Likewise.
3296
3297 2008-04-30  Richard Guenther  <rguenther@suse.de>
3298
3299         PR tree-optimization/14847
3300         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
3301         (recognize_bits_test): Use it.
3302         (recognize_single_bit_test): Likewise.
3303
3304 2008-04-30  Martin Jambor  <mjambor@suse.cz>
3305
3306         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
3307         instead of setting number of formal parameters to zero.
3308         (ipcp_init_stage): Do not set the number of actual parameters to zero 
3309         either.
3310         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
3311         which are called with variable number of arguments.
3312         (ipcp_insert_stage): Explicitely skipping all nodes which are
3313         called with variable number of arguments.
3314         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
3315         number of parameters.
3316
3317         * ipa-prop.h (struct ipa_node_params): Added flag
3318         called_with_var_arguments
3319         (ipa_set_param_count): Added.  Changed sole setter to use it.
3320         (ipa_get_param_count): Added.  All readers of param_count
3321         converted to use it instead.
3322         (ipa_set_called_with_variable_arg): Added.
3323         (ipa_is_called_with_var_arguments): Added.
3324         (ipa_get_ith_param): Added.  All readers of param_decls converted
3325         to use it instead.
3326         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
3327         changed to use it. 
3328         (ipa_get_cs_argument_count): Added, all readers of argument_count
3329         changed to cal it.
3330         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
3331         to use it.
3332         
3333         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
3334         (struct ipcp_lattice): Renamed cval_type to type
3335         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
3336
3337         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
3338         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
3339         (ipcp_insert_stage): Changed the type of variable cvalue to tree
3340         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
3341         (build_const_val): Changed the type of parameter cvalue to tree
3342         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
3343         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
3344         
3345         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
3346         constant 
3347
3348         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
3349         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
3350         (ipa_add_method): Renamed to ipa_push_func_to_list
3351         (ipa_remove_method): Renamed to ipa_pop_func_from_list
3352         (ipa_callsite_param_count): Removed.
3353         (ipa_callsite_param_count_set): Removed.
3354         (ipa_callsite_param): Removed.
3355         (ipa_callsite_callee): Removed.
3356         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
3357         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
3358         (ipa_method_formal_count): Removed.
3359         (ipa_method_formal_count_set): Removed.
3360         (ipa_method_get_tree): Removed.
3361         (ipa_method_tree_map_create): Removed.
3362         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
3363         (ipa_create_param_decls_array): Creates the array itself
3364         (ipa_create_param_decls_array): Temporary variable info instead of 
3365         a few dereferences.
3366         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
3367         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
3368         (get_type): Removed.
3369         (ipa_jf_get_info_type): Removed.
3370         (ipa_node_create): Renamed to ipa_create_node_params
3371         (ipa_free): Renamed to ipa_free_all_node_params
3372         (ipa_nodes_create): Renamed to ipa_create_all_node_params
3373         (ipa_edges_create): Renamed to ipa_create_all_edge_args
3374         (ipa_edges_free): Renamed to ipa_free_all_edge_args
3375         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
3376         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
3377         ipa_free_all_edge_args
3378         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
3379         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
3380         (ipa_create_methodlist_node): Removed.
3381         (ipa_methodlist_method): Removed.
3382         (ipa_methodlist_method_set): Removed.
3383         (ipa_methodlist_next_method): Removed.
3384         (ipa_methodlist_next_method_set): Removed.
3385         (ipa_method_is_modified): Removed.
3386         (ipa_method_modify_create): Removed.
3387         (ipa_method_modify_init): Temporary variable info instead of a few 
3388         dereferences.
3389         (ipa_detect_param_modifications): Temporary variable info instead of 
3390         a few dereferences.
3391         (ipa_compute_jump_functions): Temporary variable info instead of 
3392         a few dereferences.
3393         (ipa_method_modify_set): Removed.
3394         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
3395         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
3396         than craph_node as the first parameter.
3397         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
3398         (ipa_method_modify_init): Removed.
3399         (ipa_compute_jump_functions): Added a temp variable instead of 
3400         repeatadly dereferencing the cgraph_edge.aux pointer
3401         (ipa_callsite_param_set_type): Removed.
3402         (ipa_compute_jump_functions): i renamed to index and moved to 
3403         an inner block
3404         (ipa_callsite_param_set_info_type_formal): Removed.
3405         (ipa_callsite_param_set_info_type): Removed.
3406         (ipa_callsite_param_map_create): Removed.
3407         (ipa_callsite_tree): Removed.
3408         (ipa_callsite_caller): Removed.
3409         (ipa_pop_func_from_list): return_method removed to return_func
3410
3411         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
3412         prefixed all values with IPA_. Changed all users.
3413         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
3414         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
3415         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
3416         (union parameter_info): Renamed to jump_func_value.
3417         (union jump_func_value): Renamed value to constant
3418         (struct ipa_jump_func): Renamed info_type to value
3419         (struct ipa_node): Renamed to ipa_node_params
3420         (struct ipa_node_params): Renamed ipa_arg_num to param_count
3421         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
3422         (struct ipa_node_params): Renamed ipa_mod to modified_flags
3423         (struct ipa_edge): Renamed to ipa_edge_args
3424         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
3425         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
3426         (struct ipa_methodlist): Renamed to ipa_func_list
3427         (struct ipa_func_list): method_p renamed to node, next_method
3428         renamed to next
3429         (ipa_methodlist_p): Removed, switched all users to struct pointer
3430         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
3431
3432 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
3433
3434         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
3435         (rs6000_emit_epilogue): Use backchain to restore only when we
3436         have a large frame.  Make use of frame pointer to restore if we
3437         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
3438
3439 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
3440
3441         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
3442         Add mode to zero_extract.
3443         (sign bit tests peepholes): (Ditto.).
3444
3445 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
3446
3447         * config/i386/i386.c (ix86_builtins): Replace Prescott New
3448         Instructions in comments with SSE3.
3449         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
3450         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
3451         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
3452         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
3453         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
3454         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
3455         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
3456         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
3457         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
3458         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
3459         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
3460         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
3461         (bdesc_sse_args): Renamed to ...
3462         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
3463         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
3464         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
3465         IX86_BUILTIN_FABSQ.
3466         (bdesc_1arg): Moved to ...
3467         (bdesc_args): Here.
3468         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
3469         Instructions in comments with SSE3.
3470         (ix86_expand_sse_operands_builtin): Renamed to ...
3471         (ix86_expand_args_builtin): This.  Updated.
3472         (ix86_expand_unop1_builtin): Update comments.
3473         (ix86_expand_builtin): Updated.
3474
3475 2008-04-29  Richard Guenther  <rguenther@suse.de>
3476
3477         PR tree-optimization/36078
3478         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
3479         Update virtual SSA form after cleaning up the CFG.
3480
3481 2008-04-29  Richard Guenther  <rguenther@suse.de>
3482
3483         PR middle-end/15255
3484         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
3485
3486 2008-04-29  Richard Guenther  <rguenther@suse.de>
3487
3488         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
3489         (compute_may_aliases): Do not call finalize_ref_all_pointers.
3490         (compute_flow_insensitive_aliasing): Do not treat
3491         PTR_IS_REF_ALL pointers special.
3492         (get_smt_for): Likewise.
3493         (may_alias_p): Re-structure.
3494         (is_escape_site): A ref-all pointer conversion is not an escape site.
3495         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
3496         PTR_IS_REF_ALL pointers special.
3497         * tree-ssa-structalias.h (struct alias_info): Remove
3498         ref_all_symbol_mem_tag field.
3499         (PTR_IS_REF_ALL): Remove.
3500
3501 2008-04-29  Richard Guenther  <rguenther@suse.de>
3502
3503         PR middle-end/36077
3504         * fold-const.c (extract_muldiv_1): In combining division constants
3505         make sure to never overflow.
3506
3507 2008-04-29  Nick Clifton  <nickc@redhat.com>
3508
3509         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
3510
3511 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3512
3513         PR bootstrap/35169
3514         * optc-gen.awk: Work around HP-UX/IA awk bug.
3515
3516 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
3517
3518         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
3519         2008-04-25 commit.
3520
3521 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
3522
3523         PR target/36073
3524         * config/i386/i386.md
3525         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
3526         Change operand 1 predicate to nonimmediate_operand.
3527
3528 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
3529
3530         PR debug/36060
3531         * dwarf2out.c (struct die_struct): Mark as chain_circular through
3532         die_sub field.
3533         * gengtype.c (walk_type, write_func_for_structure): Handle
3534         chain_circular.
3535         * doc/gty.texi: Document chain_circular.
3536
3537 2008-04-28  Richard Guenther  <rguenther@suse.de>
3538
3539         PR tree-optimization/36066
3540         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
3541         SCEV and loop.
3542
3543 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
3544
3545         PR target/36064
3546         * config/i386/i386.md
3547         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
3548         Use match_scratch instead of match_operand for operands 3 and 4.
3549
3550 2008-04-27  Richard Guenther  <rguenther@suse.de>
3551
3552         PR tree-optimization/18754
3553         PR tree-optimization/34223
3554         * tree-pass.h (pass_complete_unrolli): Declare.
3555         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
3556         loop size before and after unconditionally of UL_NO_GROWTH in effect.
3557         Rewrite loop into loop closed SSA form if it is not already.
3558         (tree_unroll_loops_completely): Re-structure to iterate over
3559         innermost loops with intermediate CFG cleanups.
3560         Unroll outermost loops only if requested or the code does not grow
3561         doing so.
3562         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
3563         loops are available.
3564         (tree_vectorize): Instead do so here.
3565         (tree_complete_unroll): Also unroll outermost loops.
3566         (tree_complete_unroll_inner): New function.
3567         (gate_tree_complete_unroll_inner): Likewise.
3568         (pass_complete_unrolli): New pass.
3569         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
3570         uses outside of the loop.
3571         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
3572         form if it is available.  
3573         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
3574         * passes.c (init_optimization_passes): Schedule complete inner
3575         loop unrolling pass before the first CCP pass after final inlining.
3576
3577 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
3578
3579         * targhooks.h (default_emutls_var_fields,
3580         default_emutls_var_init): Declare.
3581         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
3582         * target.h (struct gcc_target): Add struct emutls member.
3583         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
3584         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
3585         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
3586         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
3587         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
3588         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
3589         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
3590         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
3591         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
3592         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
3593         emit debug information.
3594         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
3595         * varasm.c: Include targhooks.h.
3596         (emutls_object_section, emutls_tmpl_section): New.
3597         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
3598         (EMUTLS_SEPARATOR): New.
3599         (prefix_name): New.
3600         (get_emutls_object_name): New.
3601         (default_emutls_var_fields): New, broken out of ...
3602         (get_emutls_object_type): ... here.  Adjust to use target hooks.
3603         (get_emutls_init_templ_addr): Adjust to use target hooks.
3604         (emutls_decl): Adjust to use target hooks.
3605         (emutls_finish): Likewise.
3606         (default_emutls_var_init): New, broken out of ...
3607         (assemble_variable): ... here.  Adjust to use target hooks.
3608         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
3609         SECCAT_EMUTLS_TMPL.
3610         * c-common.c (handle_section_attribute): Prevent overriding
3611         sections for emulated tls with special sections.
3612         * config/i386/i386.c (x86_64_elf_select_section): Add
3613         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
3614         (x86_64_elf_unique_section): Likewise.
3615         * config/vxworks.c: Include tree.h.
3616         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
3617         (vxworks_override_options): Set TLS scheme.
3618         * doc/tm.texi (Emulated TLS): New node.
3619
3620 2008-04-26  Simon Baldwin <simonb@google.com>
3621
3622         PR c/35652
3623         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
3624         with propagated string constants.
3625
3626 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
3627
3628         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
3629         constraint for operand 2 when operand 0 is memory operand.
3630         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
3631         operand 0 is memory operand.
3632         (fix_trunc<mode>_i387_with_temp): Ditto.
3633         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
3634         operand 2 when operand 1 is memory operand.
3635         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
3636         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
3637         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
3638         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
3639         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
3640         operands 2,3 and 4 when operand 1 is memory operand.
3641         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
3642         is memory operand.
3643         (fistdi2_floor_with_temp): Ditto.
3644         (fist<mode>2_floor_with_temp): Ditto.
3645         (fistdi2_ceil_with_temp): Ditto.
3646         (fist<mode>2_ceil_with_temp): Ditto.
3647         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
3648
3649 2008-04-26  David Daney  <ddaney@avtrex.com>
3650
3651         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
3652         unspec_volitile.
3653         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
3654         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
3655         UNSPEC_UPDATE_GOT_VERSION): Renumber.
3656         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
3657         (compare_and_swap_12): New insn.
3658         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
3659         * config/mips/mips.c (mips_force_binary): New function.
3660         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
3661         (mips_expand_compare_and_swap_12): New function.
3662         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
3663
3664 2008-04-25  Jan Hubicka  <jh@suse.cz>
3665
3666         PR testsuite/35843
3667         * cfgexpand.c (pass_expand): Turn into RTL pass.
3668         * passes.c (execute_one_pass): Do pass typechecking after execution.
3669         * tree-pass.h (pass_expand): Turn into RTL pass.
3670
3671         * function.h (struct rtl_data): Move here fields
3672         accesses_prior_frames, calls_eh_return, saves_all_registers,
3673         has_nonlocal_goto, has_asm_statement, is_thunk,
3674         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
3675         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
3676         arg_pointer_save_area_init from struct function; turn into bool.
3677         (struct function): Move
3678         calls_eh_return, saves_all_registers, has_nonlocal_goto,
3679         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
3680         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
3681         tail_call_emit, arg_pointer_save_area_init
3682         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
3683         (current_function_returns_struct, current_function_returns_pcc_struct,
3684         current_function_calls_setjmp, current_function_calls_alloca,
3685         current_function_accesses_prior_frames,
3686         current_function_calls_eh_return, current_function_is_thunk,
3687         current_function_stdarg, current_function_profile,
3688         current_function_limit_stack, current_function_uses_pic_offset_table,
3689         current_function_uses_const_pool, current_function_has_nonlocal_label,
3690         current_function_saves_all_registers,
3691         current_function_has_nonlocal_goto,
3692         current_function_has_asm_statement): Remove accesor macros.
3693         * ra-conflict.c (global_conflicts): Update.
3694         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
3695         (suitable_for_tail_call_opt_p): Update.
3696         * builtins.c (expand_builtin_return_addr): Update.
3697         (expand_builtin_setjmp_setup): Update.
3698         (expand_builtin_nonlocal_goto): Update.
3699         * final.c (final_start_function): Update.
3700         (profile_function): Update.
3701         (leaf_function_p): Update.
3702         (only_leaf_regs_used): Update.
3703         * df-scan.c (df_get_exit_block_use_set): Update.
3704         * dojump.c (clear_pending_stack_adjust): Update.
3705         * tree-stdarg.c (gate_optimize_stdarg): Update.
3706         * gimple-low.c (lower_function_body): Update.
3707         * global.c (compute_regsets): Update.
3708         (global_alloc): Update.
3709         * dwarf2out.c (dwarf2out_begin_prologue): Update.
3710         * expr.c (expand_assignment): Update.
3711         * dse.c (dse_step0): Update.
3712         (dse_step1): Update.
3713         * c-decl.c (store_parm_decls): Update.
3714         * local-alloc.c (combine_regs): Update.
3715         (find_free_reg): Update.
3716         * function.c (assign_parms_augmented_arg_list): Update.
3717         (assign_parm_find_data_types): Update.
3718         (assign_parms): Update.
3719         (allocate_struct_function): Update.
3720         (expand_function_start): Update.
3721         (expand_function_end): Update.
3722         (get_arg_pointer_save_area): Update.
3723         (thread_prologue_and_epilogue_insns): Update.
3724         (rest_of_match_asm_constraints): Update.
3725         * stor-layout.c (variable_size): Update.
3726         * gcse.c (gcse_main): Update.
3727         (bypass_jumps): Update.
3728         * gimplify.c (gimplify_function_tree): Update.
3729         * calls.c (emit_call_1): Update.
3730         (expand_call): Update.
3731         * bt-load.c (compute_defs_uses_and_gen): Update.
3732         * except.c (sjlj_assign_call_site_values): Update.
3733         (sjlj_emit_function_enter): Update.
3734         (can_throw_external): Update.
3735         (set_nothrow_function_flags): Update.
3736         (expand_builtin_unwind_init): Update.
3737         (expand_eh_return): Update.
3738         (convert_to_eh_region_ranges): Update.
3739         (output_function_exception_table): Update.
3740         * emit-rtl.c (gen_tmp_stack_mem): Update.
3741         * cfgexpand.c (expand_used_vars): Update.
3742         (tree_expand_cfg): Update.
3743         * cfgcleanup.c (rest_of_handle_jump): Update.
3744         * explow.c (allocate_dynamic_stack_space): Update.
3745         * varasm.c (assemble_start_function): Update.
3746         (force_const_mem): Update.
3747         (mark_constant_pool): Update.
3748         * tree-optimize.c (tree_rest_of_compilation): Update.
3749         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
3750         * tree-cfg.c (notice_special_calls): Update.
3751         (is_ctrl_altering_stmt): Update.
3752         (tree_can_make_abnormal_goto): Update.
3753         (tree_purge_dead_abnormal_call_edges): Update.
3754         * config/alpha/predicates.md: Update.
3755         * config/alpha/alpha.c (alpha_sa_mask): Update.
3756         (alpha_sa_size): Update.
3757         (alpha_does_function_need_gp): Update.
3758         (alpha_expand_prologue): Update.
3759         (alpha_start_function): Update.
3760         (alpha_output_function_end_prologue): Update.
3761         (alpha_expand_epilogue): Update.
3762         * config/frv/frv.c (frv_stack_info): Update.
3763         (frv_expand_epilogue): Update.
3764         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
3765         (s390_register_info): Update.
3766         (s390_frame_info): Update.
3767         (s390_init_frame_layout): Update.
3768         (s390_can_eliminate): Update.
3769         (save_gprs): Update.
3770         * config/spu/spu.c (spu_split_immediate): Update.
3771         (need_to_save_reg): Update.
3772         (spu_expand_prologue): Update.
3773         (spu_expand_epilogue): Update.
3774         * config/sparc/sparc.md: Update.
3775         * config/sparc/sparc.c (eligible_for_return_delay): Update.
3776         (sparc_tls_got): Update.
3777         (legitimize_pic_address): Update.
3778         (sparc_emit_call_insn): Update.
3779         (sparc_expand_prologue): Update.
3780         (output_return): Update.
3781         (print_operand): Update.
3782         (sparc_function_ok_for_sibcall): Update.
3783         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
3784         * config/m32r/m32r.md: Update.
3785         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
3786         (m32r_compute_frame_size): Update.
3787         (m32r_expand_prologue): Update.
3788         (m32r_expand_epilogue): Update.
3789         (m32r_legitimize_pic_address): Update.
3790         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
3791         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
3792         * config/i386/i386.c (ix86_frame_pointer_required): Update.
3793         (gen_push): Update.
3794         (ix86_save_reg): Update.
3795         (ix86_compute_frame_layout): Update.
3796         (ix86_expand_prologue): Update.
3797         (ix86_expand_epilogue): Update.
3798         * config/sh/sh.c (output_stack_adjust): Update.
3799         (calc_live_regs): Update.
3800         (sh5_schedule_saves): Update.
3801         (sh_expand_prologue): Update.
3802         (sh_expand_epilogue): Update.
3803         (sh_setup_incoming_varargs): Update.
3804         (sh_allocate_initial_value): Update.
3805         (sh_get_pr_initial_val): Update.
3806         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
3807         * config/sh/sh.md (label:): Update.
3808         * config/avr/avr.c (out_movhi_mr_r): Update.
3809         * config/crx/crx.h (enum): Update.
3810         * config/xtensa/xtensa.h (along): Update.
3811         * config/stormy16/stormy16.c Update.
3812         (xstormy16_compute_stack_layout): Update.
3813         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
3814         (fr30_expand_prologue): Update.
3815         * config/cris/cris.c (cris_conditional_register_usage): Update.
3816         (cris_reg_saved_in_regsave_area): Update.
3817         (cris_initial_frame_pointer_offset): Update.
3818         (cris_simple_epilogue): Update.
3819         (cris_expand_prologue): Update.
3820         (cris_expand_epilogue): Update.
3821         (cris_expand_pic_call_address): Update.
3822         (cris_asm_output_symbol_ref): Update.
3823         (cris_asm_output_label_ref): Update.
3824         * config/cris/cris.md Update.
3825         * config/iq2000/iq2000.c (compute_frame_size): Update.
3826         (iq2000_expand_epilogue): Update.
3827         * config/mt/mt.h (save_direction): Update.
3828         * config/mn10300/mn10300.c (mn10300_function_value): Update.
3829         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
3830         (ia64_secondary_reload_class): Update.
3831         * config/m68k/m68k.c (m68k_save_reg): Update.
3832         (m68k_expand_prologue): Update.
3833         (m68k_expand_epilogue): Update.
3834         (legitimize_pic_address): Update.
3835         * config/rs6000/rs6000.c (rs6000_got_register): Update.
3836         (first_reg_to_save): Update.
3837         (first_altivec_reg_to_save): Update.
3838         (compute_vrsave_mask): Update.
3839         (compute_save_world_info): Update.
3840         (rs6000_stack_info): Update.
3841         (spe_func_has_64bit_regs_p): Update.
3842         (rs6000_ra_ever_killed): Update.
3843         (rs6000_emit_eh_reg_restore): Update.
3844         (rs6000_emit_allocate_stack): Update.
3845         (rs6000_emit_prologue): Update.
3846         (rs6000_emit_epilogue): Update.
3847         (rs6000_output_function_epilogue): Update.
3848         (output_profile_hook): Update.
3849         (rs6000_elf_declare_function_name): Update.
3850         * config/rs6000/rs6000.h (rs6000_args): Update.
3851         * config/rs6000/rs6000.md: Update.
3852         * config/mcore/mcore.c (mcore_expand_prolog): Update.
3853         * config/arc/arc.c (arc_output_function_epilogue): Update.
3854         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
3855         * config/darwin.c (machopic_function_base_name): Update.
3856         * config/score/score3.c (score3_compute_frame_size): Update.
3857         (rpush): Update.
3858         (rpop): Update.
3859         (score3_epilogue): Update.
3860         * config/score/score7.c (score7_compute_frame_size): Update.
3861         (score7_prologue): Update.
3862         (score7_epilogue): Update.
3863         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
3864         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
3865         * config/arm/arm.c (use_return_insn): Update.
3866         (require_pic_register): Update.
3867         (arm_load_pic_register): Update.
3868         (arm_compute_save_reg0_reg12_mask): Update.
3869         (arm_compute_save_reg_mask): Update.
3870         (thumb1_compute_save_reg_mask): Update.
3871         (output_return_instruction): Update.
3872         (arm_output_function_prologue): Update.
3873         (arm_output_epilogue): Update.
3874         (arm_get_frame_offsets): Update.
3875         (arm_expand_prologue): Update.
3876         (thumb_pushpop): Update.
3877         (thumb_exit): Update.
3878         (thumb1_expand_prologue): Update.
3879         (thumb1_expand_epilogue): Update.
3880         (arm_unwind_emit): Update.
3881         (arm_output_fn_unwind): Update.
3882         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
3883         * config/arm/arm.md: Update.
3884         * config/pa/pa.md: Update.
3885         * config/pa/pa.c (legitimize_pic_address): Update.
3886         (compute_frame_size): Update.
3887         (hppa_expand_prologue): Update.
3888         (hppa_expand_epilogue): Update.
3889         (borx_reg_operand): Update.
3890         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
3891         (HARD_REGNO_RENAME_OK): Update.
3892         * config/mips/mips.c (mips_global_pointer): Update.
3893         (mips_save_reg_p): Update.
3894         (mips_compute_frame_info): Update.
3895         (mips_frame_pointer_required): Update.
3896         (mips_expand_prologue): Update.
3897         (mips_expand_epilogue): Update.
3898         (mips_can_use_return_insn): Update.
3899         (mips_reorg_process_insns): Update.
3900         * config/v850/v850.c (compute_register_save_size): Update.
3901         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
3902         * config/mmix/mmix.c (along): Update.
3903         (mmix_expand_epilogue): Update.
3904         * config/bfin/bfin.c (legitimize_pic_address): Update.
3905         (must_save_p): Update.
3906         (stack_frame_needed_p): Update.
3907         (add_to_reg): Update.
3908         (bfin_expand_prologue): Update.
3909         * stmt.c (expand_asm_operands): Update.
3910         * reload1.c (reload): Update.
3911         (init_elim_table): Update.
3912
3913 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
3914         
3915         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
3916         
3917 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
3918
3919         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
3920         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
3921         (mov<mode>): Removed.
3922         (*movv4sf_internal): Likewise.
3923         (*movv2df_internal): Likewise.
3924
3925 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
3926
3927         * config.gcc (crx-*-elf): Remove deprecation.
3928
3929 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
3930
3931         * config/i386/cygming-crtend.c (register_frame_ctor): Register
3932         __gcc_deregister_frame with atexit.
3933         (deregister_frame_dtor): Remove.
3934
3935 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
3936             Nathan Sidwell  <nathan@codesourcery.com>
3937
3938         * config/rs6000/rs6000.opt (mspe): Remove Var property.
3939         (misel): Likewise.
3940         * config/rs6000/rs6000.h (rs6000_spe): Declare.
3941         (rs6000_isel): Likewise.
3942         * config/rs6000/rs6000.c (rs6000_spe): New variable.
3943         (rs6000_isel): New variable.
3944         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
3945
3946 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
3947
3948         PR c++/35758
3949         * c-common.c (handle_vector_size_attribute): Call
3950         lang_hooks.types.reconstruct_complex_type instead of
3951         reconstruct_complex_type.
3952         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
3953         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
3954         * langhooks.h (struct lang_hooks_for_types): Add
3955         reconstruct_complex_type hook.
3956         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
3957         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
3958