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