OSDN Git Service

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