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