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