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