1 2009-08-31 Dodji Seketeli <dodji@redhat.com>
4 * cgraph.h (cgraph_get_node): Declare ...
5 * cgraph.c (cgraph_get_node): ... new function.
6 * dwarf2out.c (gen_generic_params_dies,
7 generic_parameter_die, tree_add_const_value_attribute_for_decl,
8 make_ith_pack_parameter_name,
9 append_entry_to_tmpl_value_parm_die_table,
10 gen_remaining_tmpl_value_param_die_attribute): New functions.
11 (gen_subprogram_die): Generate debug info for template parameters
12 if debug info level is higher than DINFO_LEVEL_TERSE.
13 Use tree_add_const_value_attribute_for_decl instead of
14 tree_add_const_value_attribute.
15 (gen_const_die): Use tree_add_const_value_attribute_for_decl
16 instead of tree_add_const_value_attribute.
17 (gen_struct_or_union_type_die): Generate debug
18 info for template parameters if debug info level is higher than
20 (tree_add_const_value_attribute): Handle integral and pointer
21 constants. Update comment.
22 (dwarf_tag_name): Support DW_TAG_GNU_template_template_param.
23 (dwarf_attr_name): Support DW_AT_GNU_template_name.
24 (reference_to_unused): Fix thinko. Remove redundant predicates from
26 (tree_add_const_value_attribute): Make this work for constant
28 tree_add_const_value_attribute_for_decl is to be used for variable
30 (add_location_or_const_value_attribute): Use
31 tree_add_const_value_attribute_for_decl now.
32 (dwarf2out_finish): Emit the DW_AT_const_value attribute of
33 DW_TAG_template_value_param DIEs after function DIEs have been
35 * langhooks.h (lang_hooks_for_types): Add
36 get_argument_pack_elems.
37 (lang_hooks_for_decls): Add generic_generic_parameter_decl_p.
38 (lang_hooks): Added get_innermost_generic_parms,
39 get_innermost_generic_args.
40 * langhooks-def.h (LANG_HOOKS_GET_INNERMOST_GENERIC_PARMS,
41 LANG_HOOKS_GET_INNERMOST_GENERIC_ARGS,
42 LANG_HOOKS_GET_ARGUMENT_PACK_ELEMS,
43 LANG_HOOKS_GENERIC_GENERIC_PARAMETER_DECL_P): New language hooks.
45 2009-08-31 DJ Delorie <dj@redhat.com>
47 * config/mep/mep.c (machine_function): Add frame_locked flag. Set
48 it once we start generating the prologue or epilogue.
49 (mep_call_saves_register): If the frame is locked, re-use cached values.
50 (mep_assign_save_slots): New, broken out from mep_expand_prologue.
51 (mep_expand_prologue): Call it.
52 (mep_expand_epilogue): Likewise.
53 (mep_start_function): Use the same logic as mep_expand_prologue.
54 (mep_pass_by_reference): Make logic more readable.
55 (mep_return_in_memory): Zero-sized objects are passed in memory.
56 (mep_reorg_noframe): Make sure we have accurate REG_DEAD notes.
59 2009-08-31 Richard Guenther <rguenther@suse.de>
61 * builtins.c (fold_builtin_memory_op): Use the alias oracle
62 to query if the memory regions for memmove overlap.
63 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Relax the
64 asserts on pointers, instead deal with odd trees.
65 (ptr_derefs_may_alias_p): Likewise.
66 (refs_may_alias_p_1): Constructor bases also never alias.
68 2009-08-31 Gerald Pfeifer <gerald@pfeifer.com>
70 * doc/install.texi (Final install): Adjust reference on where to
71 order printed manuals.
73 2009-08-30 Olivier Hainque <hainque@adacore.com>
75 * dwarf2out.c (switch_to_frame_table_section): Move
76 definition prior to first use.
78 2009-08-30 Richard Guenther <rguenther@suse.de>
80 PR tree-optimization/41186
81 * tree-ssa-alias.c (ptr_deref_may_alias_ref_p): Remove.
82 (ao_ref_init_from_ptr_and_size): New function.
83 (ref_maybe_used_by_call_p_1): Be more precise tracking
84 used ranges for builtin functions.
85 (ref_maybe_used_by_call_p): Adjust.
86 (call_may_clobber_ref_p_1): Be more precise tracking clobbered
87 ranges for builtin functions.
88 * tree-ssa-alias.h (ao_ref_init_from_ptr_and_size): Declare.
90 2009-08-30 Alan Modra <amodra@bigpond.net.au>
93 * fwprop.c (get_reg_use_in): Delete.
94 (free_load_extend): New function.
95 (forward_propagate_subreg): Use it.
97 2009-08-29 Kaz Kojima <kkojima@gcc.gnu.org>
99 * config.gcc (sh*-*-elf): Add superh stuff only for sh*-superh-elf.
101 2009-08-29 Kai Tietz<kai.tietz@onevision.com>
104 * config/i386.c (ix86_expand_epilogue): Correct stack adjustment for
107 2009-08-29 Douglas B Rupp <rupp@gnat.com>
109 * crtstuff.c (__do_global_dtors_aux): Use atexit if no
110 fini or fini_array section.
112 2009-08-28 Sebastian Pop <sebastian.pop@amd.com>
114 * graphite-dependences.c (graphite_legal_transform_bb): Call
115 pbb_remove_duplicate_pdrs.
116 * graphite-poly.c (can_collapse_pdr): Removed.
117 (pdr_find_duplicate): Removed.
118 (can_collapse_pdrs): New.
119 (pbb_remove_duplicate_pdrs): New.
120 (new_poly_dr): Do not look for duplicates.
121 * graphite-poly.h (struct poly_bb): New field pdr_duplicates_removed.
122 (PBB_PDR_DUPLICATES_REMOVED): New.
123 (pbb_remove_duplicate_pdrs): Declared.
125 2009-08-28 Sebastian Pop <sebastian.pop@amd.com>
127 * graphite-interchange.c (pbb_interchange_profitable_p): Adjust
128 the strides by multiplying by PDR_NB_REFS.
129 * graphite-poly.c (can_collapse_pdr): New.
130 (pdr_find_duplicate): New.
131 (new_poly_dr): Call pdr_find_duplicate. Collapse duplicate PDRs.
132 Initialize PDR_NB_REFS.
133 * graphite-poly.h (struct poly_dr): Add field nb_refs.
135 (new_poly_dr): Number of subscripts is a graphite_dim_t.
137 2009-08-28 Sebastian Pop <sebastian.pop@amd.com>
140 * graphite-poly.c (apply_poly_transforms): Remove legality test before
143 2009-08-28 Sebastian Pop <sebastian.pop@amd.com>
145 * graphite-dependences.c (pddr_original_scattering): Return NULL
146 for read-read dependence relations.
147 * graphite-poly.h (enum poly_dr_type): Fix comment.
150 (pdr_may_write_p): New.
152 2009-08-28 Sebastian Pop <sebastian.pop@amd.com>
154 * graphite-poly.h (enum POLY_DR_TYPE): Renamed poly_dr_type.
155 (struct poly_dr): Same.
157 * graphite-poly.c (new_poly_dr): Same.
158 * graphite-dependences.c (dot_deps): Disable call to system.
160 2009-08-28 Cary Coutant <ccoutant@google.com>
163 * dwarf2out.c (gen_type_die_with_usage): Use proper context for
164 struct/union/enum types local to a function.
166 2009-08-28 Konrad Trifunovic <konrad.trifunovic@gmail.com>
167 Sebastian Pop <sebastian.pop@amd.com>
169 * graphite-blocking.c (pbb_strip_mine_loop_depth): Renamed
170 pbb_strip_mine_time_depth. Changed the implementation so that
171 transformation is expressed as a transformation on
172 time (scatttering) dimensions. Also, ensures that the 2d+1
173 scheduling format is preserved.
174 (pbb_strip_mine_profitable_p): Profitability is based on the
175 iteration number of a given time (scattering) dimension,
176 and not on a original loop depth dimension.
177 (pbb_strip_mine): Call pbb_number_of_iterations_at_time.
178 (pbb_do_strip_mine): Call psct_dynamic_dim.
179 * graphite-poly.c (pbb_number_of_iterations_at_time): New.
180 * graphite-poly.h (pbb_number_of_iterations_at_time): Declared.
181 (pbb_nb_dynamic_scattering_transform): New.
182 (psct_dynamic_dim): New.
184 2009-08-28 Konrad Trifunovic <konrad.trifunovic@gmail.com>
186 * graphite-ppl.c (ppl_max_for_le): Renamed ppl_max_for_le_pointset.
187 * graphite-ppl.h (ppl_max_for_le): Renamed ppl_max_for_le_pointset.
188 * graphite-poly.c (pbb_number_of_iterations): Rename ppl_max_for_le.
189 * graphite-interchange.c (build_linearized_memory_access): Same.
190 (memory_stride_in_loop): Same.
192 2009-08-28 Sebastian Pop <sebastian.pop@amd.com>
194 * graphite-dependences.c (pddr_original_scattering): New.
195 (graphite_legal_transform_dr): Call pddr_original_scattering.
198 * graphite-dependences.h (dot_deps): Declared.
199 * graphite-poly.c (new_poly_dr): Initialize PDR_ID.
200 (print_pdr): Print PDR_ID.
201 * graphite-poly.h (struct poly_dr): Add field id.
204 * graphite-scop-detection.c (dot_all_scops_1): Cleanup comment.
206 2009-08-28 Sebastian Pop <sebastian.pop@amd.com>
208 * graphite-dependences.c (graphite_carried_dependence_level_k): Do
209 not delete the original dependence relation.
211 2009-08-28 Sebastian Pop <sebastian.pop@amd.com>
213 * graphite-dependences.c (new_poly_dr_pair): Renamed new_poly_ddr.
214 (eq_poly_dr_pair_p): Renamed eq_poly_ddr_p.
215 (hash_poly_dr_pair_p): Renamed hash_poly_ddr_p.
216 (free_poly_ddr): New.
217 (pddr_is_empty): New.
218 (dependence_polyhedron_1): Now returns a poly_ddr_p.
219 (dependence_polyhedron): Same. Remove useless gcc_assert.
221 (graphite_legal_transform_dr): Call pddr_is_empty and free_poly_ddr.
222 (graphite_carried_dependence_level_k): Call pddr_is_empty.
223 * graphite-dependences.h (enum poly_dependence_kind): New.
224 (poly_dr_pair): Renamed poly_ddr. Added a field kind.
225 (PDRP_SOURCE): Renamed PDDR_SOURCE.
226 (PDRP_SINK): Renamed PDDR_SINK.
227 (PDRP_DDP): Renamed PDDR_DDP.
229 (free_poly_ddr): Declared.
230 * graphite-poly.c (new_scop): Use the new hash function names.
231 * graphite-poly.h (struct scop): Renamed field original_pdr_pairs
233 (SCOP_ORIGINAL_PDR_PAIRS): Renamed SCOP_ORIGINAL_PDDRS.
235 2009-08-28 Sebastian Pop <sebastian.pop@amd.com>
237 * cfgloopmanip.c (create_empty_loop_on_edge): Generate upper
238 bounds with LT_EXPR to make niter analysis more precise on code
239 generated by Graphite.
241 2009-08-28 Sebastian Pop <sebastian.pop@amd.com>
243 * graphite-dependences.c (graphite_legal_transform_dr): Fix formatting.
244 (graphite_legal_transform_bb): Same.
245 (poly_drs_may_alias_p): Same.
247 2009-08-28 Richard Guenther <rguenther@suse.de>
249 * tree.def: Remove note about obsolete TYPE_NONCOPIED_PARTS.
251 2009-08-28 Jan Beulich <jbeulich@novell.com>
253 * config/i386/netware.c: Include langhooks.h.
254 (i386_nlm_encode_section_info): Simplify.
255 (netware_override_options): Delete.
256 * config/i386/netware.h (netware_override_options): Delete
258 (OVERRIDE_OPTIONS): Delete definition.
259 (SUBTARGET_OVERRIDE_OPTIONS): Define.
260 (ASM_COMMENT_START): Define.
261 * config/i386/nwld.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Define.
263 2009-08-28 Jan Beulich <jbeulich@novell.com>
265 * configure.ac: For in-tree ld, do a plain version check to
266 determine whether comdat groups are supported.
267 * configure: Regenerate.
269 2009-08-28 Olivier Hainque <hainque@adacore.com>
271 * collect2.c (DO_COLLECT_EXPORT_LIST): New internal macro,
272 always defined. Reflect definition or absence of such for
273 COLLECT_EXPORT_LIST. Readability helper.
274 (scanfilter): New enum, to help control what symbols
275 are to be considered or ignored by scan_prog_file.
276 (enum pass): Rename as "scanpass", moved together with scanfilter
277 prior to scan_prog_file's prototype.
278 (scan_prog_file): Accept and honor scanpass and scanfilter arguments.
279 Group prototype with the scanpass/scanfilter definitions, factorize
280 head comments for the several implementations at the prototype.
281 (main): Reorganize the first pass link control to let AIX
282 drag only the needed frame tables in executables. Prevent
283 frame tables collection during the scan aimed at static ctors.
284 Pre-link and scan for frame tables later to compensate.
285 * doc/tm.texi (ASM_OUTPUT_DWARF_TABLE_REF): New macro.
286 A C statement to issue assembly directives that create a reference
287 to the given DWARF table identifier label from the current function
289 * dwarf2out.c (switch_to_eh_frame_section): Add a BACK argument
290 to differentiate first time section entry. Only emit a .data
291 tables start identifier label the first time around.
292 (switch_to_frame_table_section): New function. Helper for
293 output_call_frame_info to switch possibly BACK into the eh_frame
294 or the debug_frame section depending on FOR_EH.
295 (output_call_frame_info): Use helper to first enter the proper
297 (output_fde): Use ASM_OUTPUT_DWARF_TABLE_REF when defined to
298 emit a link to the frame table start label from each function
300 * config/rs6000/rs6000.c (rs6000_aix_asm_output_dwarf_table_ref):
301 New function. Implementation of ASM_OUTPUT_DWARF_TABLE_REF.
302 * config/rs6000/rs6000-protos.h: Declare it.
303 * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Define.
305 2009-08-27 Kaz Kojima <kkojima@gcc.gnu.org>
307 * config/sh/sh.c (split_branches): Check the result of
310 2009-08-27 Steve Ellcey <sje@cup.hp.com>
312 * config/ia64/hpux.h (LIB_SPEC): Add -lrt for when
313 using -pthread -fopenmp
315 2009-08-27 Gerald Pfeifer <gerald@pfeifer.com>
317 * doc/service.texi (service directory): Update URL.
319 2009-08-27 Uros Bizjak <ubizjak@gmail.com>
321 PR rtl-optimization/40861
322 * simplify-rtx.c (simplify_subreg): Do not call simplify_gen_subreg to
323 extract word from a multi-word subreg for negative byte positions.
325 2009-08-27 Tristan Gingold <gingold@adacore.com>
326 Douglas B Rupp <rupp@gnat.com>
328 * config/ia64/ia64.c (ia64_attribute_table): Add "common_object" entry.
329 (SECTION_VMS_OVERLAY): Define.
330 (ia64_vms_common_object_attribute): Added. Handle the "common_object"
332 (ia64_vms_elf_asm_named_section): Added. Generate .section pseudo-op
334 (ia64_vms_output_aligned_decl_common): Added. Generate pseudo-op for
335 common_object declarations.
336 (ia64_section_type_flags): Set section flag for common_object.
337 * config/ia64/ia64-protos.h
338 (ia64_vms_output_aligned_decl_common): Declare.
339 (ia64_vms_elf_asm_named_section): Declare.
341 2009-08-27 Michael Matz <matz@suse.de>
343 * expr.c (expand_expr_real_2): New function taking exploded
344 unary or binary expression, split out from ...
345 (expand_expr_real_1): ... here. Move over all unary/binary
346 switch parts to above function, in particular these codes:
347 PAREN_EXPR, NOP_EXPR, CONVERT_EXPR, POINTER_PLUS_EXPR, PLUS_EXPR,
348 MINUS_EXPR, MULT_EXPR, TRUNC_DIV_EXPR, FLOOR_DIV_EXPR, CEIL_DIV_EXPR,
349 ROUND_DIV_EXPR, EXACT_DIV_EXPR, RDIV_EXPR, TRUNC_MOD_EXPR,
350 FLOOR_MOD_EXPR, CEIL_MOD_EXPR, ROUND_MOD_EXPR, FIXED_CONVERT_EXPR,
351 FIX_TRUNC_EXPR, FLOAT_EXPR, NEGATE_EXPR, ABS_EXPR, MAX_EXPR, MIN_EXPR,
352 BIT_NOT_EXPR, TRUTH_AND_EXPR, BIT_AND_EXPR, TRUTH_OR_EXPR,
353 BIT_IOR_EXPR, TRUTH_XOR_EXPR, BIT_XOR_EXPR, LROTATE_EXPR, RROTATE_EXPR,
354 LSHIFT_EXPR, RSHIFT_EXPR, LT_EXPR, LE_EXPR, GT_EXPR, GE_EXPR, EQ_EXPR,
355 NE_EXPR, UNORDERED_EXPR, ORDERED_EXPR, UNLT_EXPR, UNLE_EXPR, UNGT_EXPR,
356 UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR, TRUTH_NOT_EXPR, COMPLEX_EXPR,
357 WIDEN_SUM_EXPR, REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR,
358 VEC_EXTRACT_EVEN_EXPR, VEC_EXTRACT_ODD_EXPR, VEC_INTERLEAVE_HIGH_EXPR,
359 VEC_INTERLEAVE_LOW_EXPR, VEC_LSHIFT_EXPR, VEC_RSHIFT_EXPR,
360 VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR, VEC_UNPACK_FLOAT_HI_EXPR,
361 VEC_UNPACK_FLOAT_LO_EXPR, VEC_WIDEN_MULT_HI_EXPR,
362 VEC_WIDEN_MULT_LO_EXPR, VEC_PACK_TRUNC_EXPR, VEC_PACK_SAT_EXPR,
363 VEC_PACK_FIX_TRUNC_EXPR.
364 (<case PAREN_EXPR>): Call set_mem_attributes() with type, not the
367 2009-08-27 Richard Guenther <rguenther@suse.de>
369 * gengtype.c (main): Handle uint64_t.
370 * ipa-utils.c (get_base_var): Indent properly.
371 * tree-ssa-live.c (debug_scope_block): New function.
372 * tree-flow.h (debug_scope_block): Declare.
373 * tree-ssa-copy.c (replace_exp_1): Add vertical space.
374 * basic-block.h (enum profile_status): Rename to
375 enum profile_status_d.
376 (x_profile_status): Adjust type.
378 2009-08-27 Dodji Seketeli <dodji@redhat.com>
381 * dwarf2out.c (get_context_die): Declare this static function.
382 (gen_type_die_with_usage): Make sure a DIE is a generated for
383 the context of a typedef.
385 2009-08-26 Anatoly Sokolov <aesok@post.ru>
387 * doc/invoke.texi (AVR Options): Remove documentation of -minit-stack
390 2009-08-26 Richard Sandiford <rdsandiford@googlemail.com>
392 * config/mips/mips-protos.h (mips_output_sync): Declare.
393 (mips_sync_loop_insns): Likewise.
394 (mips_output_sync_loop): Replace first two parameters with an rtx.
395 * config/mips/mips.c (mips_multi_member): New structure.
396 (mips_multi_members): New variable.
397 (mips_multi_start): New function.
398 (mips_multi_add): Likewise.
399 (mips_multi_add_insn): Likewise.
400 (mips_multi_add_label): Likewise.
401 (mips_multi_last_index): Likewise.
402 (mips_multi_copy_insn): Likewise.
403 (mips_multi_set_operand): Likewise.
404 (mips_multi_write): Likewise.
405 (mips_print_operand_punctuation): Remove '%|' and '%-'.
406 (mips_init_print_operand_punct): Update accordingly.
407 (mips_start_ll_sc_sync_block): New function.
408 (mips_end_ll_sc_sync_block): Likewise.
409 (mips_output_sync): Likewise.
410 (mips_sync_insn1_template): Likewise.
411 (mips_sync_insn2_template): Likewise.
412 (mips_get_sync_operand): Likewise.
413 (mips_process_sync_loop): Likewise.
414 (mips_output_sync_loop): Use mips_process_sync_loop.
415 (mips_sync_loop_insns): New function.
416 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Delete.
417 (MIPS_COMPARE_AND_SWAP_12): Likewise.
418 (MIPS_COMPARE_AND_SWAP_12_ZERO_OP): Likewise.
419 (MIPS_COMPARE_AND_SWAP_12_NONZERO_OP): Likewise.
420 (MIPS_SYNC_OP, MIPS_SYNC_OP_12): Likewise.
421 (MIPS_SYNC_OP_12_AND, MIPS_SYNC_OP_12_XOR): Likewise.
422 (MIPS_SYNC_OLD_OP_12): Likewise.
423 (MIPS_SYNC_OLD_OP_12_AND, MIPS_SYNC_OLD_OP_12_XOR): Likewise.
424 (MIPS_SYNC_NEW_OP_12): Likewise.
425 (MIPS_SYNC_NEW_OP_12_AND, MIPS_SYNC_NEW_OP_12_XOR): Likewise.
426 (MIPS_SYNC_OLD_OP, MIPS_SYNC_NEW_OP): Likewise.
427 (MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND, MIPS_SYNC_NEW_NAND): Likewise.
428 (MIPS_SYNC_EXCHANGE, MIPS_SYNC_EXCHANGE_12): Likewise.
429 (MIPS_SYNC_EXCHANGE_12_ZERO_OP): Likewise.
430 (MIPS_SYNC_EXCHANGE_12_NONZER_OP): Likewise.
431 * config/mips/mips.md (sync_mem): New attribute.
432 (sync_oldval, sync_newval, sync_inclusive_mask): Likewise.
433 (sync_exclusive_mask, sync_required_oldval): Likewise.
434 (sync_insn1_op2, sync_insn1, sync_insn2): Likewise.
435 (sync_release_barrier): Likewise.
436 (length): Handle sync loops.
437 (sync): Use mips_output_sync.
438 * config/mips/sync.md (*memory_barrier): Use mips_output_sync.
439 (sync_compare_and_swap<mode>): Set the new sync_* attributes
440 and use mips_output_sync_loop.
441 (compare_and_swap_12, sync_add<mode>, sync_<optab>_12): Likewise.
442 (sync_old_<optab>_12, sync_new_<optab>_12, sync_nand_12): Likewise.
443 (sync_old_nand_12, sync_new_nand_12, sync_sub<mode>): Likewise.
444 (sync_old_add<mode>, sync_old_sub<mode>): Likewise.
445 (sync_new_add<mode>, sync_new_sub<mode>): Likewise.
446 (sync_<optab><mode>, sync_old_<optab><mode>): Likewise.
447 (sync_new_<optab><mode>, sync_nand<mode>): Likewise.
448 (sync_old_nand<mode>, sync_new_nand<mode>): Likewise.
449 (sync_lock_test_and_set<mode>, test_and_set_12): Likewise.
451 2009-08-26 Richard Guenther <rguenther@suse.de>
454 * gimplify.c (gimplify_addr_expr): Canonicalize ADDR_EXPRs if
455 the types to not match.
456 * tree-cfg.c (verify_gimple_assign_single): Adjust ADDR_EXPR
458 * tree-ssa.c (useless_type_conversion_p): Conversions to
459 pointers to unprototyped functions are useless.
461 2009-08-26 Richard Guenther <rguenther@suse.de>
463 * tree-ssa-structalias.c (create_variable_info_for): Remove
464 strange whole-program condition, prepare to be called for non-globals.
465 (intra_create_variable_infos): For restrict qualified DECL_BY_REFERENCE
466 params build a representative with known type and track its fields.
468 2009-08-26 Uros Bizjak <ubizjak@gmail.com>
470 * config/alpha/sync.md: Update comment about unpredictable LL/SC lock
471 clearing by a taken branch.
472 (sync_<fetchop_name><mode>): Split when epilogue_completed is set,
473 effectively after bbro pass.
474 (sync_nand<mode>): Ditto.
475 (sync_old_<fetchop_name><mode>): Ditto.
476 (sync_old_nand<mode>): Ditto.
477 (sync_new_<fetchop_name><mode>): Dito.
478 (sync_new_nand<mode>): Ditto.
479 (sync_compare_and_swap<mode>_1): Ditto.
480 (*sync_compare_and_swap<mode>): Ditto.
481 (sync_lock_test_and_set<mode>_1): Ditto.
482 ("sync_lock_test_and_set<mode>): Ditto.
484 2009-08-25 Douglas B Rupp <rupp@gnat.com>
486 * hwint.h (HOST_LONG_FORMAT): New macro
487 * bitmap.c, c-decl.c, mips-tfile.c, print-rtl.c, print-tree.c:
489 * system.h (HOST_PTR_PRINTF): Resurrect old macro
490 * doc/hostconfig.texi (HOST_LONG_FORMAT): Document.
491 (HOST_PTR_PRINTF): Document.
493 2009-08-25 Jan Hubicka <jh@suse.cz>
495 * config/i386/bmmintrin.h: Replace by #error.
498 Michael Meissner <michael.meissner@amd.com>
499 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
500 Tony Linthicum <tony.linthicum@amd.com>
502 * config/i386/i386.h (TARGET_SSE5): New macro for SSE5.
503 (TARGET_ROUND): New macro for the round/ptest instructions which
504 are shared between SSE4.1 and SSE5.
505 (OPTION_MASK_ISA_ROUND): Ditto.
506 (OPTION_ISA_ROUND): Ditto.
507 (TARGET_FUSED_MADD): New macro for -mfused-madd swtich.
508 (TARGET_CPU_CPP_BUILTINS): Add SSE5 support.
510 * config/i386/i386.opt (-msse5): New switch for SSE5 support.
511 (-mfused-madd): New switch to give users control over whether the
512 compiler optimizes to use the multiply/add SSE5 instructions.
514 * config/i386/i386.c (enum pta_flags): Add PTA_SSE5.
515 (ix86_handle_option): Turn off 3dnow if -msse5.
516 (override_options): Add SSE5 support.
517 (print_operand): %Y prints comparison codes for SSE5 com/pcom
519 (ix86_expand_sse_movcc): Add SSE5 support.
520 (ix86_expand_sse5_unpack): New function to use pperm to unpack a
521 vector type to the next largest size.
522 (ix86_expand_sse5_pack): New function to use pperm to pack a
523 vector type to the next smallest size.
524 (IX86_BUILTIN_FMADDSS): New for SSE5 intrinsic.
525 (IX86_BUILTIN_FMADDSD): Ditto.
526 (IX86_BUILTIN_FMADDPS): Ditto.
527 (IX86_BUILTIN_FMADDPD): Ditto.
528 (IX86_BUILTIN_FMSUBSS): Ditto.
529 (IX86_BUILTIN_FMSUBSD): Ditto.
530 (IX86_BUILTIN_FMSUBPS): Ditto.
531 (IX86_BUILTIN_FMSUBPD): Ditto.
532 (IX86_BUILTIN_FNMADDSS): Ditto.
533 (IX86_BUILTIN_FNMADDSD): Ditto.
534 (IX86_BUILTIN_FNMADDPS): Ditto.
535 (IX86_BUILTIN_FNMADDPD): Ditto.
536 (IX86_BUILTIN_FNMSUBSS): Ditto.
537 (IX86_BUILTIN_FNMSUBSD): Ditto.
538 (IX86_BUILTIN_FNMSUBPS): Ditto.
539 (IX86_BUILTIN_FNMSUBPD): Ditto.
540 (IX86_BUILTIN_PCMOV_V2DI): Ditto.
541 (IX86_BUILTIN_PCMOV_V4SI): Ditto.
542 (IX86_BUILTIN_PCMOV_V8HI): Ditto.
543 (IX86_BUILTIN_PCMOV_V16QI): Ditto.
544 (IX86_BUILTIN_PCMOV_V4SF): Ditto.
545 (IX86_BUILTIN_PCMOV_V2DF): Ditto.
546 (IX86_BUILTIN_PPERM): Ditto.
547 (IX86_BUILTIN_PERMPS): Ditto.
548 (IX86_BUILTIN_PERMPD): Ditto.
549 (IX86_BUILTIN_PMACSSWW): Ditto.
550 (IX86_BUILTIN_PMACSWW): Ditto.
551 (IX86_BUILTIN_PMACSSWD): Ditto.
552 (IX86_BUILTIN_PMACSWD): Ditto.
553 (IX86_BUILTIN_PMACSSDD): Ditto.
554 (IX86_BUILTIN_PMACSDD): Ditto.
555 (IX86_BUILTIN_PMACSSDQL): Ditto.
556 (IX86_BUILTIN_PMACSSDQH): Ditto.
557 (IX86_BUILTIN_PMACSDQL): Ditto.
558 (IX86_BUILTIN_PMACSDQH): Ditto.
559 (IX86_BUILTIN_PMADCSSWD): Ditto.
560 (IX86_BUILTIN_PMADCSWD): Ditto.
561 (IX86_BUILTIN_PHADDBW): Ditto.
562 (IX86_BUILTIN_PHADDBD): Ditto.
563 (IX86_BUILTIN_PHADDBQ): Ditto.
564 (IX86_BUILTIN_PHADDWD): Ditto.
565 (IX86_BUILTIN_PHADDWQ): Ditto.
566 (IX86_BUILTIN_PHADDDQ): Ditto.
567 (IX86_BUILTIN_PHADDUBW): Ditto.
568 (IX86_BUILTIN_PHADDUBD): Ditto.
569 (IX86_BUILTIN_PHADDUBQ): Ditto.
570 (IX86_BUILTIN_PHADDUWD): Ditto.
571 (IX86_BUILTIN_PHADDUWQ): Ditto.
572 (IX86_BUILTIN_PHADDUDQ): Ditto.
573 (IX86_BUILTIN_PHSUBBW): Ditto.
574 (IX86_BUILTIN_PHSUBWD): Ditto.
575 (IX86_BUILTIN_PHSUBDQ): Ditto.
576 (IX86_BUILTIN_PROTB): Ditto.
577 (IX86_BUILTIN_PROTW): Ditto.
578 (IX86_BUILTIN_PROTD): Ditto.
579 (IX86_BUILTIN_PROTQ): Ditto.
580 (IX86_BUILTIN_PROTB_IMM): Ditto.
581 (IX86_BUILTIN_PROTW_IMM): Ditto.
582 (IX86_BUILTIN_PROTD_IMM): Ditto.
583 (IX86_BUILTIN_PROTQ_IMM): Ditto.
584 (IX86_BUILTIN_PSHLB): Ditto.
585 (IX86_BUILTIN_PSHLW): Ditto.
586 (IX86_BUILTIN_PSHLD): Ditto.
587 (IX86_BUILTIN_PSHLQ): Ditto.
588 (IX86_BUILTIN_PSHAB): Ditto.
589 (IX86_BUILTIN_PSHAW): Ditto.
590 (IX86_BUILTIN_PSHAD): Ditto.
591 (IX86_BUILTIN_PSHAQ): Ditto.
592 (IX86_BUILTIN_FRCZSS): Ditto.
593 (IX86_BUILTIN_FRCZSD): Ditto.
594 (IX86_BUILTIN_FRCZPS): Ditto.
595 (IX86_BUILTIN_FRCZPD): Ditto.
596 (IX86_BUILTIN_CVTPH2PS): Ditto.
597 (IX86_BUILTIN_CVTPS2PH): Ditto.
598 (IX86_BUILTIN_COMEQSS): Ditto.
599 (IX86_BUILTIN_COMNESS): Ditto.
600 (IX86_BUILTIN_COMLTSS): Ditto.
601 (IX86_BUILTIN_COMLESS): Ditto.
602 (IX86_BUILTIN_COMGTSS): Ditto.
603 (IX86_BUILTIN_COMGESS): Ditto.
604 (IX86_BUILTIN_COMUEQSS): Ditto.
605 (IX86_BUILTIN_COMUNESS): Ditto.
606 (IX86_BUILTIN_COMULTSS): Ditto.
607 (IX86_BUILTIN_COMULESS): Ditto.
608 (IX86_BUILTIN_COMUGTSS): Ditto.
609 (IX86_BUILTIN_COMUGESS): Ditto.
610 (IX86_BUILTIN_COMORDSS): Ditto.
611 (IX86_BUILTIN_COMUNORDSS): Ditto.
612 (IX86_BUILTIN_COMFALSESS): Ditto.
613 (IX86_BUILTIN_COMTRUESS): Ditto.
614 (IX86_BUILTIN_COMEQSD): Ditto.
615 (IX86_BUILTIN_COMNESD): Ditto.
616 (IX86_BUILTIN_COMLTSD): Ditto.
617 (IX86_BUILTIN_COMLESD): Ditto.
618 (IX86_BUILTIN_COMGTSD): Ditto.
619 (IX86_BUILTIN_COMGESD): Ditto.
620 (IX86_BUILTIN_COMUEQSD): Ditto.
621 (IX86_BUILTIN_COMUNESD): Ditto.
622 (IX86_BUILTIN_COMULTSD): Ditto.
623 (IX86_BUILTIN_COMULESD): Ditto.
624 (IX86_BUILTIN_COMUGTSD): Ditto.
625 (IX86_BUILTIN_COMUGESD): Ditto.
626 (IX86_BUILTIN_COMORDSD): Ditto.
627 (IX86_BUILTIN_COMUNORDSD): Ditto.
628 (IX86_BUILTIN_COMFALSESD): Ditto.
629 (IX86_BUILTIN_COMTRUESD): Ditto.
630 (IX86_BUILTIN_COMEQPS): Ditto.
631 (IX86_BUILTIN_COMNEPS): Ditto.
632 (IX86_BUILTIN_COMLTPS): Ditto.
633 (IX86_BUILTIN_COMLEPS): Ditto.
634 (IX86_BUILTIN_COMGTPS): Ditto.
635 (IX86_BUILTIN_COMGEPS): Ditto.
636 (IX86_BUILTIN_COMUEQPS): Ditto.
637 (IX86_BUILTIN_COMUNEPS): Ditto.
638 (IX86_BUILTIN_COMULTPS): Ditto.
639 (IX86_BUILTIN_COMULEPS): Ditto.
640 (IX86_BUILTIN_COMUGTPS): Ditto.
641 (IX86_BUILTIN_COMUGEPS): Ditto.
642 (IX86_BUILTIN_COMORDPS): Ditto.
643 (IX86_BUILTIN_COMUNORDPS): Ditto.
644 (IX86_BUILTIN_COMFALSEPS): Ditto.
645 (IX86_BUILTIN_COMTRUEPS): Ditto.
646 (IX86_BUILTIN_COMEQPD): Ditto.
647 (IX86_BUILTIN_COMNEPD): Ditto.
648 (IX86_BUILTIN_COMLTPD): Ditto.
649 (IX86_BUILTIN_COMLEPD): Ditto.
650 (IX86_BUILTIN_COMGTPD): Ditto.
651 (IX86_BUILTIN_COMGEPD): Ditto.
652 (IX86_BUILTIN_COMUEQPD): Ditto.
653 (IX86_BUILTIN_COMUNEPD): Ditto.
654 (IX86_BUILTIN_COMULTPD): Ditto.
655 (IX86_BUILTIN_COMULEPD): Ditto.
656 (IX86_BUILTIN_COMUGTPD): Ditto.
657 (IX86_BUILTIN_COMUGEPD): Ditto.
658 (IX86_BUILTIN_COMORDPD): Ditto.
659 (IX86_BUILTIN_COMUNORDPD): Ditto.
660 (IX86_BUILTIN_COMFALSEPD): Ditto.
661 (IX86_BUILTIN_COMTRUEPD): Ditto.
662 (IX86_BUILTIN_PCOMEQUB): Ditto.
663 (IX86_BUILTIN_PCOMNEUB): Ditto.
664 (IX86_BUILTIN_PCOMLTUB): Ditto.
665 (IX86_BUILTIN_PCOMLEUB): Ditto.
666 (IX86_BUILTIN_PCOMGTUB): Ditto.
667 (IX86_BUILTIN_PCOMGEUB): Ditto.
668 (IX86_BUILTIN_PCOMFALSEUB): Ditto.
669 (IX86_BUILTIN_PCOMTRUEUB): Ditto.
670 (IX86_BUILTIN_PCOMEQUW): Ditto.
671 (IX86_BUILTIN_PCOMNEUW): Ditto.
672 (IX86_BUILTIN_PCOMLTUW): Ditto.
673 (IX86_BUILTIN_PCOMLEUW): Ditto.
674 (IX86_BUILTIN_PCOMGTUW): Ditto.
675 (IX86_BUILTIN_PCOMGEUW): Ditto.
676 (IX86_BUILTIN_PCOMFALSEUW): Ditto.
677 (IX86_BUILTIN_PCOMTRUEUW): Ditto.
678 (IX86_BUILTIN_PCOMEQUD): Ditto.
679 (IX86_BUILTIN_PCOMNEUD): Ditto.
680 (IX86_BUILTIN_PCOMLTUD): Ditto.
681 (IX86_BUILTIN_PCOMLEUD): Ditto.
682 (IX86_BUILTIN_PCOMGTUD): Ditto.
683 (IX86_BUILTIN_PCOMGEUD): Ditto.
684 (IX86_BUILTIN_PCOMFALSEUD): Ditto.
685 (IX86_BUILTIN_PCOMTRUEUD): Ditto.
686 (IX86_BUILTIN_PCOMEQUQ): Ditto.
687 (IX86_BUILTIN_PCOMNEUQ): Ditto.
688 (IX86_BUILTIN_PCOMLTUQ): Ditto.
689 (IX86_BUILTIN_PCOMLEUQ): Ditto.
690 (IX86_BUILTIN_PCOMGTUQ): Ditto.
691 (IX86_BUILTIN_PCOMGEUQ): Ditto.
692 (IX86_BUILTIN_PCOMFALSEUQ): Ditto.
693 (IX86_BUILTIN_PCOMTRUEUQ): Ditto.
694 (IX86_BUILTIN_PCOMEQB): Ditto.
695 (IX86_BUILTIN_PCOMNEB): Ditto.
696 (IX86_BUILTIN_PCOMLTB): Ditto.
697 (IX86_BUILTIN_PCOMLEB): Ditto.
698 (IX86_BUILTIN_PCOMGTB): Ditto.
699 (IX86_BUILTIN_PCOMGEB): Ditto.
700 (IX86_BUILTIN_PCOMFALSEB): Ditto.
701 (IX86_BUILTIN_PCOMTRUEB): Ditto.
702 (IX86_BUILTIN_PCOMEQW): Ditto.
703 (IX86_BUILTIN_PCOMNEW): Ditto.
704 (IX86_BUILTIN_PCOMLTW): Ditto.
705 (IX86_BUILTIN_PCOMLEW): Ditto.
706 (IX86_BUILTIN_PCOMGTW): Ditto.
707 (IX86_BUILTIN_PCOMGEW): Ditto.
708 (IX86_BUILTIN_PCOMFALSEW): Ditto.
709 (IX86_BUILTIN_PCOMTRUEW): Ditto.
710 (IX86_BUILTIN_PCOMEQD): Ditto.
711 (IX86_BUILTIN_PCOMNED): Ditto.
712 (IX86_BUILTIN_PCOMLTD): Ditto.
713 (IX86_BUILTIN_PCOMLED): Ditto.
714 (IX86_BUILTIN_PCOMGTD): Ditto.
715 (IX86_BUILTIN_PCOMGED): Ditto.
716 (IX86_BUILTIN_PCOMFALSED): Ditto.
717 (IX86_BUILTIN_PCOMTRUED): Ditto.
718 (IX86_BUILTIN_PCOMEQQ): Ditto.
719 (IX86_BUILTIN_PCOMNEQ): Ditto.
720 (IX86_BUILTIN_PCOMLTQ): Ditto.
721 (IX86_BUILTIN_PCOMLEQ): Ditto.
722 (IX86_BUILTIN_PCOMGTQ): Ditto.
723 (IX86_BUILTIN_PCOMGEQ): Ditto.
724 (IX86_BUILTIN_PCOMFALSEQ): Ditto.
725 (IX86_BUILTIN_PCOMTRUEQ): Ditto.
726 (enum multi_arg_type): New enum for describing the various SSE5
727 intrinsic argument types.
728 (bdesc_multi_arg): New table for SSE5 intrinsics.
729 (ix86_init_mmx_sse_builtins): Add SSE5 intrinsic support.
730 (ix86_expand_multi_arg_builtin): New function for creating SSE5
732 (ix86_expand_builtin): Add SSE5 intrinsic support.
733 (ix86_sse5_valid_op_p): New function to validate SSE5 3 and 4
734 operand instructions.
735 (ix86_expand_sse5_multiple_memory): New function to split the
736 second memory reference from SSE5 instructions.
737 (type_has_variadic_args_p): Delete in favor of stdarg_p.
738 (ix86_return_pops_args): Use stdarg_p to determine if the function
739 has variable arguments.
740 (ix86_setup_incoming_varargs): Ditto.
741 (x86_this_parameter): Ditto.
743 * config/i386/i386-protos.h (ix86_expand_sse5_unpack): Add
745 (ix86_expand_sse5_pack): Ditto.
746 (ix86_sse5_valid_op_p): Ditto.
747 (ix86_expand_sse5_multiple_memory): Ditto.
749 * config/i386/i386.md (UNSPEC_SSE5_INTRINSIC): Add new UNSPEC
750 constant for SSE5 support.
751 (UNSPEC_SSE5_UNSIGNED_CMP): Ditto.
752 (UNSPEC_SSE5_TRUEFALSE): Ditto.
753 (UNSPEC_SSE5_PERMUTE): Ditto.
754 (UNSPEC_SSE5_ASHIFT): Ditto.
755 (UNSPEC_SSE5_LSHIFT): Ditto.
756 (UNSPEC_FRCZ): Ditto.
757 (UNSPEC_CVTPH2PS): Ditto.
758 (UNSPEC_CVTPS2PH): Ditto.
759 (PCOM_FALSE): Add new constant for true/false SSE5 comparisons.
761 (COM_FALSE_S): Ditto.
762 (COM_FALSE_P): Ditto.
765 (type attribute): Add ssemuladd, sseiadd1, ssecvt1, sse4arg types.
766 (unit attribute): Add support for ssemuladd, ssecvt1, sseiadd1 sse4arg
768 (memory attribute): Ditto.
769 (sse4_1_round<mode>2): Use TARGET_ROUND instead of TARGET_SSE4_1.
770 Use SSE4_1_ROUND_* constants instead of hard coded numbers.
771 (rint<mode>2): Use TARGET_ROUND instead of TARGET_SSE4_1.
772 (floor<mode>2): Ditto.
773 (ceil<mode>2): Ditto.
774 (btrunc<mode>2): Ditto.
775 (nearbyintdf2): Ditto.
776 (nearbyintsf2): Ditto.
777 (sse_setccsf): Disable if SSE5.
778 (sse_setccdf): Ditto.
779 (sse5_setcc<mode>): New support for SSE5 conditional move.
780 (sse5_pcmov_<mode>): Ditto.
782 * config/i386/sse.md (SSEMODE1248): New mode iterator for SSE5.
785 (ssemodesuffixf4): New mode attribute for SSE5.
786 (ssemodesuffixf2s): Ditto.
787 (ssemodesuffixf2c): Ditto.
788 (sserotatemax): Ditto.
789 (ssescalarmode): Ditto.
790 (sse_maskcmpv4sf3): Disable if SSE5.
791 (sse_maskcmpv2df3): Ditto.
792 (sse_vmmaskcmpv4sf3): Ditto.
793 (sse5_fmadd<mode>4): Add SSE5 floating point multiply/add instructions.
794 (sse5_vmfmadd<mode>4): Ditto.
795 (sse5_fmsub<mode>4): Ditto.
796 (sse5_vmfmsub<mode>4): Ditto.
797 (sse5_fnmadd<mode>4): Ditto.
798 (sse5_vmfnmadd<mode>4): Ditto.
799 (sse5_fnmsub<mode>4): Ditto.
800 (sse5_vmfnmsub<mode>4): Ditto.
801 (sse5i_fmadd<mode>4): Ditto.
802 (sse5i_fmsub<mode>4): Ditto.
803 (sse5i_fnmadd<mode>4): Ditto.
804 (sse5i_fnmsub<mode>4): Ditto.
805 (sse5i_vmfmadd<mode>4): Ditto.
806 (sse5i_vmfmsub<mode>4): Ditto.
807 (sse5i_vmfnmadd<mode>4): Ditto.
808 (sse5i_vmfnmsub<mode>4): Ditto.
809 (mulv16qi3): Add SSE5 support.
811 (sse5_mulv4si3): New insn for 32-bit multiply support on SSE5.
812 (sse2_mulv4si3): Disable if SSE5.
813 (sse4_1_roundpd): Use TARGET_ROUND instead of TARGET_SSE4_1.
814 (sse4_1_roundps): Ditto.
815 (sse4_1_roundsd): Ditto.
816 (sse4_1_roundss): Ditto.
817 (sse_maskcmpv4sf3): Disable if SSE5 so the SSE5 instruction will
819 (sse_maskcmpsf3): Ditto.
820 (sse_vmmaskcmpv4sf3): Ditto.
821 (sse2_maskcmpv2df3): Ditto.
822 (sse2_maskcmpdf3): Ditto.
823 (sse2_vmmaskcmpv2df3): Ditto.
824 (sse2_eq<mode>3): Ditto.
825 (sse2_gt<mode>3): Ditto.
826 (sse5_pcmov_<mode>): Add SSE5 support.
827 (vec_unpacku_hi_v16qi): Ditto.
828 (vec_unpacks_hi_v16qi): Ditto.
829 (vec_unpacku_lo_v16qi): Ditto.
830 (vec_unpacks_lo_v16qi): Ditto.
831 (vec_unpacku_hi_v8hi): Ditto.
832 (vec_unpacks_hi_v8hi): Ditto.
833 (vec_unpacku_lo_v8hi): Ditto.
834 (vec_unpacks_lo_v8hi): Ditto.
835 (vec_unpacku_hi_v4si): Ditto.
836 (vec_unpacks_hi_v4si): Ditto.
837 (vec_unpacku_lo_v4si): Ditto.
838 (vec_unpacks_lo_v4si): Ditto.
839 (sse5_pmacsww): New SSE5 intrinsic insn.
840 (sse5_pmacssww): Ditto.
841 (sse5_pmacsdd): Ditto.
842 (sse5_pmacssdd): Ditto.
843 (sse5_pmacssdql): Ditto.
844 (sse5_pmacssdqh): Ditto.
845 (sse5_pmacsdqh): Ditto.
846 (sse5_pmacsswd): Ditto.
847 (sse5_pmacswd): Ditto.
848 (sse5_pmadcsswd): Ditto.
849 (sse5_pmadcswd): Ditto.
850 (sse5_pcmov_<move>): Conditional move support on SSE5.
851 (sse5_phaddbw): New SSE5 intrinsic insn.
852 (sse5_phaddbd): Ditto.
853 (sse5_phaddbq): Ditto.
854 (sse5_phaddwd): Ditto.
855 (sse5_phaddwq): Ditto.
856 (sse5_phadddq): Ditto.
857 (sse5_phaddubw): Ditto.
858 (sse5_phaddubd): Ditto.
859 (sse5_phaddubq): Ditto.
860 (sse5_phadduwd): Ditto.
861 (sse5_phadduwq): Ditto.
862 (sse5_phaddudq): Ditto.
863 (sse5_phsubbw): Ditto.
864 (sse5_phsubwd): Ditto.
865 (sse5_phsubdq): Ditto.
867 (sse5_pperm_sign_v16qi_v8hi): New insns for pack/unpack with SSE5.
868 (sse5_pperm_zero_v16qi_v8hi): Ditto.
869 (sse5_pperm_sign_v8hi_v4si): Ditto.
870 (sse5_pperm_zero_v8hi_v4si): Ditto.
871 (sse5_pperm_sign_v4si_v2di): Ditto.
872 (sse5_pperm_sign_v4si_v2di): Ditto.
873 (sse5_pperm_pack_v2di_v4si): Ditto.
874 (sse5_pperm_pack_v4si_v8hi): Ditto.
875 (sse5_pperm_pack_v8hi_v16qi): Ditto.
876 (sse5_perm<mode>): New SSE5 intrinsic insn.
877 (rotl<mode>3): Ditto.
878 (sse5_rotl<mode>3): Ditto.
879 (sse5_ashl<mode>3): Ditto.
880 (sse5_lshl<mode>3): Ditto.
881 (sse5_frcz<mode>2): Ditto.
882 (sse5s_frcz<mode>2): Ditto.
883 (sse5_cvtph2ps): Ditto.
884 (sse5_cvtps2ph): Ditto.
885 (sse5_vmmaskcmp<mode>3): Ditto.
886 (sse5_com_tf<mode>3): Ditto.
887 (sse5_maskcmp<mode>3): Ditto.
888 (sse5_maskcmp_uns<mode>3): Ditto.
889 (sse5_maskcmp_uns2<mode>3): Ditto.
890 (sse5_pcom_tf<mode>3): Ditto.
892 * config/i386/predicates.md (sse5_comparison_float_operator):
893 New predicate to match the comparison operators supported by
894 the SSE5 com instruction.
895 (ix86_comparison_int_operator): New predicate to match just the
896 signed int comparisons.
897 (ix86_comparison_uns_operator): New predicate to match just the
898 unsigned int comparisons.
900 * doc/invoke.texi (-msse5): Add documentation.
901 (-mfused-madd): Ditto.
903 * doc/extend.texi (x86 intrinsics): Document new SSE5 intrinsics.
905 * config.gcc (i[34567]86-*-*): Include bmmintrin.h and
909 * config/i386/cpuid.h (bit_SSE5): Define SSE5 bit.
911 * config/i386/bmmintrin.h: New file, provide common x86 compiler
912 intrinisics for SSE5.
914 * config/i386/smmintrin.h: Move instructions shared with SSE5 to
917 * config/i386/mmintrin-common.h: New file, to contain common
918 instructions between SSE4.1 and SSE5.
920 * config/i386/netware.c (gen_stdcall_or_fastcall_decoration): Use
921 FOREACH_FUNCTION_ARGS to iterate over the argument list.
922 (gen_regparm_prefix): Ditto.
924 * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix): Use
925 FOREACH_FUNCTION_ARGS to iterate over the argument list. Use
926 prototype_p to determine if a function is prototyped.
928 2009-08-25 Ville Voutilainen <ville.voutilainen@gmail.com>
930 * c-common.c (c_common_reswords) add the alignof keyword,
931 with same RID as __alignof and __alignof__
933 2009-08-25 Anatoly Sokolov <aesok@post.ru>
935 * hooks.h (hook_bool_const_int_const_int_true): Declare.
936 * hooks.c (hook_bool_const_int_const_int_true): New function.
937 * target.h (struct gcc_target): Add can_eliminate field.
938 * target-def.h (TARGET_CAN_ELIMINATE): Define.
939 (TARGET_INITIALIZER): Use TARGET_CAN_ELIMINATE.
940 * ira.c (setup_eliminable_regset): Use can_eliminate target hook.
941 * reload1.c (update_eliminables, init_elim_table): (Ditto.).
942 (elim_table): Revise comment.
943 * system.h (CAN_ELIMINATE): Poison.
944 * defaults.h (CAN_ELIMINATE): Remove.
945 * doc/tm.texi (CAN_ELIMINATE): Revise documentation.
947 * config/alpha/vms.h (CAN_ELIMINATE): Remove macro.
948 * config/alpha/alpha.c (TARGET_CAN_ELIMINATE) [TARGET_ABI_OPEN_VMS]:
950 (alpha_vms_can_eliminate): Declare as static, change return type to
952 * config/alpha/alpha-protos.h (alpha_vms_can_eliminate): Remove.
954 * config/arm/arm.h (CAN_ELIMINATE): Remove macro.
955 * config/arm/arm.c (TARGET_CAN_ELIMINATE): Define macro.
956 (arm_can_eliminate): New function.
958 * config/avr/avr.h (CAN_ELIMINATE): Remove macro.
959 * config/avr/avr.c (TARGET_CAN_ELIMINATE): Define macro.
960 (avr_can_eliminate): Declare as static.
961 * config/avr/avr-protos.h (avr_can_eliminate): Remove.
963 * config/bfin/bfin.h (CAN_ELIMINATE): Remove macro.
964 * config/bfin/bfin.c (TARGET_CAN_ELIMINATE): Define macro.
965 (bfin_can_eliminate): New function.
967 * config/crx/crx.h (CAN_ELIMINATE): Remove macro.
968 * config/crx/crx.c (TARGET_CAN_ELIMINATE): Define macro.
969 (crx_can_eliminate): New function.
971 * config/fr30/fr30.h (CAN_ELIMINATE): Remove macro.
972 * config/fr30/fr30.c (TARGET_CAN_ELIMINATE): Define macro.
973 (fr30_can_eliminate): New function.
975 * config/frv/frv.h (CAN_ELIMINATE): Remove macro.
976 * config/frv/frv.c (TARGET_CAN_ELIMINATE): Define macro.
977 (frv_can_eliminate): New function.
979 * config/h8300/h8300.h (CAN_ELIMINATE): Remove macro.
980 * config/h8300/h8300.c (TARGET_CAN_ELIMINATE): Define macro.
981 (h8300_can_eliminate): New function.
983 * config/i386/i386.h (CAN_ELIMINATE): Remove macro.
984 * config/i386/i386.c (TARGET_CAN_ELIMINATE): Define macro.
985 (i386_can_eliminate): Declare as static, change return type to bool.
986 * config/i386/i386-protos.h (i386_can_eliminate): Remove.
988 * config/ia64/ia64.h (CAN_ELIMINATE): Remove macro.
989 * config/ia64/ia64.c (TARGET_CAN_ELIMINATE): Define macro.
990 (ia64_can_eliminate): New function.
992 * config/iq2000/iq2000.h (CAN_ELIMINATE): Remove macro.
993 * config/iq2000/iq2000.c (TARGET_CAN_ELIMINATE): Define macro.
994 (iq2000_can_eliminate): New function.
996 * config/m32r/m32r.h (CAN_ELIMINATE): Remove macro.
997 * config/m32r/m32r.c (TARGET_CAN_ELIMINATE): Define macro.
998 (m32r_can_eliminate): New function.
1000 * config/m68hc11/m68hc11.h (CAN_ELIMINATE): Remove macro.
1001 * config/m68hc11/m68hc11.c (TARGET_CAN_ELIMINATE): Define macro.
1002 (m68hc11_can_eliminate): New function.
1004 * config/m68k/m68k.h (CAN_ELIMINATE): Remove macro.
1005 * config/m68k/m68k.c (TARGET_CAN_ELIMINATE): Define macro.
1006 (m68k_can_eliminate): New function.
1008 * config/mep/mep.h (CAN_ELIMINATE): Remove macro.
1009 * config/mep/mep.c (TARGET_CAN_ELIMINATE): Define macro.
1010 (mep_can_eliminate): New function.
1012 * config/mips/mips.h (CAN_ELIMINATE): Remove macro.
1013 * config/mips/mips.c (TARGET_CAN_ELIMINATE): Define macro.
1014 (mips_can_eliminate): New function.
1016 * config/rs6000/rs6000.h (CAN_ELIMINATE): Remove macro.
1017 * config/rs6000/rs6000.c (TARGET_CAN_ELIMINATE): Define macro.
1018 (rs6000_can_eliminate): New function.
1020 * config/s390/s390.h (CAN_ELIMINATE): Remove macro.
1021 * config/s390/s390.c (TARGET_CAN_ELIMINATE): Define macro.
1022 (s390_can_eliminate): Declare as static.
1023 * config/s390/s390-protos.h (sparc_can_eliminate): Remove.
1025 * config/score/score.h (CAN_ELIMINATE): Remove macro.
1026 * config/score/score.c (TARGET_CAN_ELIMINATE): Define macro.
1027 (score_can_eliminate): New function.
1029 * config/sparc/sparc.h (CAN_ELIMINATE): Remove macro.
1030 * config/sparc/sparc.c (TARGET_CAN_ELIMINATE): Define macro.
1031 (sparc_can_eliminate): Declare as static.
1032 * config/sparc/sparc-protos.h (sparc_can_eliminate): Remove.
1034 * config/stormy16/stormy16.h (CAN_ELIMINATE): Remove macro.
1035 * config/stormy16/stormy16.c (TARGET_CAN_ELIMINATE): Define macro.
1036 (xstormy16_can_eliminate): New function.
1038 * config/v850/v850.h (CAN_ELIMINATE): Remove macro.
1039 * config/v850/v850.c (TARGET_CAN_ELIMINATE): Define macro.
1040 (v850_can_eliminate): New function.
1042 2009-08-25 Uros Bizjak <ubizjak@gmail.com>
1044 * config/alpha/alpha.md (*cmpdf_ieee_ext[123]): Remove.
1045 (*cmpdf_internal): Enable for all ALPHA_FPTM levels.
1046 (*movdfcc_ext[1234]): Disable for IEEE mode.
1048 2009-08-25 Eric Botcazou <ebotcazou@adacore.com>
1050 * gimplify.c (prepare_gimple_addressable): New static function.
1051 (gimplify_modify_expr_to_memcpy): Invoke it on the RHS before marking
1053 (gimplify_addr_expr): Invoke it similarly on the operand instead of
1054 manually fiddling with it.
1056 2009-08-25 Michael Matz <matz@suse.de>
1058 * expr.h (jumpifnot_1, jumpif_1, do_jump_1): Declare.
1059 * dojump.c (do_jump_by_parts_greater): Take two operands instead of
1061 (do_jump_by_parts_equality, do_compare_and_jump): Ditto.
1062 (jumpifnot_1, jumpif_1): New wrappers for do_jump_1.
1063 (do_jump): Split out code for simple binary comparisons into ...
1064 (do_jump_1): ... this, taking the individual operands and code.
1065 Change callers to helper function above accordingly.
1066 * expr.c (expand_expr_real_1): Use jumpifnot_1 for simple binary
1069 2009-08-25 Michael Matz <matz@suse.de>
1071 * expr.h (struct separate_ops, sepops): New type for passing
1072 around an exploded simple expression.
1073 * optabs.c (expand_widen_pattern_expr, expand_vec_shift_expr):
1074 Use this structure instead of expression tree.
1075 (get_vcond_icode, expand_vec_cond_expr_p): Don't take whole
1076 expression, only its type.
1077 (expand_vec_cond_expr): Take type and individual operands instead
1079 * optabs.h (expand_widen_pattern_expr, expand_vec_cond_expr,
1080 expand_vec_shift_expr): Change prototype accordingly.
1081 * tree-vect-stmts.c (vectorizable_condition): Change call of
1082 expand_vec_cond_expr_p to pass only type.
1083 * expr.c (do_store_flags): Change prototype and implementation
1084 to take an exploded expression.
1085 (expand_expr_real_1): New local ops initialized with details
1086 of the full expression. Use it instead of full
1087 expression in calls to do_store_flags, expand_vec_cond_expr,
1088 expand_widen_pattern_expr and expand_vec_shift_expr.
1090 2009-08-25 Michael Matz <matz@suse.de>
1092 * expr.c (expand_expr_real_1): New local treeop0, treeop1,
1093 treeop2 initialized with first three operands of the full expression.
1094 Substitute all TREE_OPERAND (exp, [012]) calls with them.
1096 2009-08-25 Kai Tietz <kai.tietz@onevision.com>
1098 * gcc/gthr-win32.h (__UNUSED_PARAM): Define, if not already present.
1099 (__gthread_objc_condition_allocate): Mark arguments as unused.
1100 (__gthread_objc_condition_deallocate): Likewise.
1101 (__gthread_objc_condition_wait): Likewise.
1102 (__gthread_objc_condition_broadcast): Likewise.
1103 (__gthread_objc_condition_signal): Likewise.
1104 (__gthread_objc_thread_detach): Cast via INT_PTR to pointer.
1105 (__gthread_objc_thread_id): Likewise.
1107 2009-08-25 Janus Weil <janus@gcc.gnu.org>
1110 * tree-pretty-print.c (print_call_name): Print the correct call name
1111 for procedure pointer components.
1113 2009-08-24 Steve Ellcey <sje@cup.hp.com>
1115 * config/ia64/ia64.c (ia64_promote_function_mode): Call
1116 default_promote_function_mode when not VMS.
1118 2009-08-24 Olivier Hainque <hainque@adacore.com>
1120 * convert.c (convert_to_integer): Don't assume an input pointer is
1121 POINTER_SIZE wide. Fetch from the type instead.
1123 2009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1125 * configure.ac (AC_PREREQ): Bump to 2.64.
1127 2009-08-24 Rafael Avila de Espindola <espindola@google.com>
1129 * gcc.c (standard_exec_prefix_1,standard_exec_prefix_2): Remove.
1130 (process_command): Don't search standard_exec_prefix_1 and
1131 standard_exec_prefix_2.
1133 2009-08-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1135 * config/arm/arm.c (output_return_instruction): Handle for
1138 2009-08-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1140 * config/arm/arm.c (arm_select_cc_mode): Handle subreg.
1142 2009-08-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1144 * config/arm/vfp.md (*arm_movdi_vfp): Mark as predicable.
1145 (*arm_movdf_vfp): Likewise.
1147 2009-08-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1149 * config/arm/neon.md (vashl<mode>3): Rename from ashl<mode>3.
1150 (vashr<mode>3): Rename from ashr<mode>3.
1151 (vlshr<mode>3): Rename from lshr<mode>3.
1153 2009-08-24 Kai Tietz <kai.tietz@onevision.com>
1156 * c-format.c (format_wanted_type): Add new member scalar_identity_flag.
1157 (check_format_info_main): Use scalar_identify_flag.
1158 (check_format_types): Check for scalar size identity if
1159 scalar_identify_flag is set.
1160 (printf_length_specs): Extend by new field.
1161 (asm_fprintf_length_specs): Likewise.
1162 (gcc_diag_length_specs): Likewise.
1163 (scanf_length_specs): Likewise.
1164 (strfmon_length_specs): Likewise.
1165 (gcc_gfc_length_specs): Likewise.
1166 * config/i386/msformat-c.c (ms_printf_length_specs): Likewise.
1167 (ms_printf_flag_specs): Likewise.
1168 * c-format.h (format_length_info): Add new member scalar_identity_flag.
1170 2009-08-23 Uros Bizjak <ubizjak@gmail.com>
1173 * config/i386/i386.c (*call_pop_1): Disable for sibling calls.
1174 (*call_value_pop_1): Ditto.
1175 (*sibcall_pop_1): New insn pattern.
1176 (*sibcall_value_pop_1): Ditto.
1178 2009-08-23 Alan Modra <amodra@bigpond.net.au>
1181 * config/rs6000/rs6000.md (rotlsi3_64, ashlsi3_64, lshrsi3_64,
1184 2009-08-23 Alan Modra <amodra@bigpond.net.au>
1187 * fwprop.c (try_fwprop_subst): Allow multiple sets.
1188 (get_reg_use_in): New function.
1189 (forward_propagate_subreg): Propagate through subreg of zero_extend
1192 2009-08-22 Kaz Kojima <kkojima@gcc.gnu.org>
1194 * config/sh/t-sh (TARGET_LIBGCC2_CFLAGS): Define.
1195 * config/sh/t-netbsd (TARGET_LIBGCC2_CFLAGS): Add -mieee.
1197 2009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1199 * configure.ac: Remove --with-datarootdir, --with-docdir,
1200 --with-htmldir switches. No need to call AC_SUBST for
1201 datarootdir, docdir, htmldir any more.
1202 * configure: Regenerate.
1203 * doc/install.texi (Configuration): Document --datarootdir,
1204 --docdir, --htmldir, --pdfdir; update documentation for
1205 --infodir, --mandir.
1206 (Prerequisites): Bump Autoconf version to 2.64, Automake to 1.11,
1209 * aclocal.m4: Regenerate.
1210 * config.in: Regenerate.
1211 * configure: Regenerate.
1213 2009-08-21 Douglas B Rupp <rupp@gnat.com>
1214 Olivier Hainque <hainque@adacore.com>
1216 * config/ia64/ia64.c: Include libfuncs.h.
1217 (TARGET_PROMOTE_FUNCITON_MODE): Define target macro.
1218 (ia64_expand_call): Use reg 25 on VMS.
1219 (ia64_initialize_trampoline): Fix for VMS ABI.
1220 (ia64_function_arg_offset): Always returns 0 when TARGET_ABI_OPEN_VMS.
1221 (ia64_function_arg): Initialize reg 25 on VMS.
1222 Fix OpenVMS ABI issues for varargs.
1223 For OpenVMS, emit the Argument Information register set in the
1224 incoming/sibcall case as well.
1225 (ia64_arg_type): New function.
1226 (ia64_function_arg_advance): Keep track of cum->words.
1227 Fix OpenVMS ABI issues for varargs.
1228 (ia64_function_value): On VMS, promote mode of non-aggregate types.
1229 (ia64_override_options): Set flag_no_common on VMS.
1230 (ia64_init_builtins): Disable FWRITE builtin.
1231 (ia64_asm_output_external): Call DO_CRTL_NAMES.
1232 (ia64_vms_init_libfuncs): Add decc$ routines.
1233 (ia64_vms_valid_pointer_mode): New function.
1234 (ia64_struct_value_rtx): Allways NULL_RTX on VMS.
1235 (ia64_promote_function_mode): New function
1236 * config/ia64/ia64.h (TARGET_ABI_OPEN_VMS): Define as 0 for default.
1237 (LONG_DOUBLE_TYPE_SIZE): Force to 64 on VMS.
1238 (LIBCGC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
1239 (INIT_CUMULATIVE_ARGS): Add atypes for VMS.
1240 (INIT_CUMULATIVE_INCOMING_ARGS): Likewise.
1241 (ASM_OUTPUT_DEF): Use ISDIGIT instead of isdigit.
1242 Suppress trailing '#' if VALUE is numeric.
1243 * config/ia64/vms.h (PROMOTE_FUNCTION_MODE): Remove, code moved to
1244 ia64_promote_function_mode.
1245 (TARGET_VALID_POINTER_MODE): Define.
1247 2009-08-21 Michael Meissner <meissner@linux.vnet.ibm.com>
1250 * config/rs6000/rs6000.c (rs6000_override_options): Use
1251 TARGET_64BIT instead of TARGET_POWERPC64 to set the size of pointers.
1254 * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Fix
1255 reporting of vector + decimal/boolean/complex error.
1257 2009-08-21 Jakub Jelinek <jakub@redhat.com>
1259 * config/rs6000/rs6000.c (rs6000_init_builtins): Fix type of
1260 __vector double TYPE_DECL.
1262 2009-08-21 Richard Earnshaw <rearnsha@arm.com>
1264 * arm.h (MACHMODE): New define. Include insn-modes.h if available.
1265 (CUMULATIVE_ARGS): Use MACHMODE for declaration of aapcs_vfp_mode.
1266 * arm.c (aapcs_vfp_is_call_or_return_candidate): Change base_mode
1267 to pointer to enum machine_mode. Update all callers as needed.
1269 2009-08-21 Uros Bizjak <ubizjak@gmail.com>
1271 * config/alpha/alpha.md (exception_receiver): Emit alternative
1272 GP load sequence if flag_reorder_blocks_and_partition is set.
1273 (*exception_receiver_2): Also enable when
1274 flag_reorder_blocks_and_partition is set.
1276 2009-08-20 Matt Rice <ratmice@gmail.com>
1277 Diego Novillo <dnovillo@google.com>
1279 * Makefile.in (PLUGIN_HEADERS): Include incpath.h and
1282 2009-08-20 Richard Guenther <rguenther@suse.de>
1284 * c-objc-common.h (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Do not define.
1285 * c-tree.h (c_dup_lang_specific_decl): Remove.
1286 (struct lang_decl, struct lang_type): Move definitions ...
1287 * c-lang.h: ... here. New file.
1288 * c-decl.c: Include c-lang.h.
1289 (c_dup_lang_specific_decl): Remove.
1290 * c-typeck.c: Include c-lang.h.
1291 * Makefile.in (c-decl.o): Add c-lang.h dependency.
1292 (c-typeck.o): Likewise.
1293 * c-config-lang.in (gtfiles): Add c-lang.h.
1294 * gengtype.c (get_output_file_with_visibility): Handle c-lang.h
1297 2009-08-20 Uros Bizjak <ubizjak@gmail.com>
1299 * config/alpha/alpha.c (alpha_end_function): Do not clear
1300 crtl->emit structure and free insn locators if cfun->is_thunk is true,
1301 this is now handled in generic code.
1303 2009-08-20 Andreas Krebbel <krebbel1@de.ibm.com>
1305 * config/s390/s390.c (Z10_PREDICT_DISTANCE): New macro.
1306 (s390_z10_fix_long_loop_prediction): New function.
1307 (s390_z10_optimize_cmp): INSN walk moved to callee - s390_reorg.
1308 (s390_reorg): Walk over the INSNs and invoke
1309 s390_z10_fix_long_loop_prediction and s390_z10_optimize_cmp.
1311 2009-08-20 Andreas Krebbel <krebbel1@de.ibm.com>
1313 * config/s390/s390.md ("*brx_stage1_<GPR:mode>", "*brxg_64bit",
1314 "*brx_64bit", "*brx_31bit"): New patterns.
1315 * config/s390/s390.c ('E'): New output modifier.
1317 2009-08-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1318 Richard Earnshaw <richard.earnshaw@arm.com>
1320 * config/arm/arm.c (arm_emit_movpair): Handle CONST_INT.
1321 * config/arm/arm.md (*arm_movtas_ze): New pattern for movt.
1323 2009-08-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1325 * pa.md (reload_inhi, reload_outhi, reload_inqi, reload_outqi): New
1327 * pa.c (emit_move_sequence): Check if address of operand1 is valid
1328 for mode mode of operand0 when doing secondary reload for SAR.
1330 2009-08-19 Jakub Jelinek <jakub@redhat.com>
1333 * expr.c (expand_expr_real_1) <normal_inner_ref>: Handle all kinds
1334 of CONCAT, not just bitpos 0 bitsize size of the whole CONCAT.
1336 2009-08-19 Jason Merrill <jason@redhat.com>
1338 * doc/invoke.texi (C++ Dialect Options): Note change of minimum
1339 supported template depth in C++0x.
1341 2009-08-19 Jakub Jelinek <jakub@redhat.com>
1343 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Don't call
1344 free_after_compilation.
1345 * config/score/score7.c (score7_output_mi_thunk): Likewise.
1346 * config/score/score3.c (score3_output_mi_thunk): Likewise.
1347 * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
1348 * config/mips/mips.c (mips_output_mi_thunk): Likewise.
1349 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
1350 * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise.
1351 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
1353 2009-08-19 Ian Lance Taylor <iant@google.com>
1355 * doc/md.texi (Insn Canonicalizations): Correct canonicalization
1356 of (plus (mult (neg B) C) A).
1358 2009-08-18 Michael Matz <matz@suse.de>
1360 * omp-low.c (optimize_omp_library_calls): Use types_compatible_p
1361 instead of comparing TYPE_MAIN_VARIANT for equality.
1362 * tree-vect-patterns.c (vect_recog_dot_prod_pattern,
1363 vect_recog_widen_mult_pattern, vect_recog_widen_sum_pattern): Ditto.
1364 * tree-vect-loop.c (vect_is_simple_reduction): Ditto.
1365 * gimplify.c (goa_lhs_expr_p): Ditto and use
1366 STRIP_USELESS_TYPE_CONVERSION.
1368 2009-08-18 Michael Matz <matz@suse.de>
1370 * tree-ssa-structalias.c (create_variable_info_for): Also mark
1371 first field in a struct.
1372 (intra_create_variable_infos): Don't deal with flag_argument_noalias.
1374 2009-08-18 Uros Bizjak <ubizjak@gmail.com>
1376 * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Allocate insn
1377 locators before emit_insn is called. Remove assert that
1379 (alpha_end_function): Clear crtl->emit structure and free insn
1380 locators if cfun->is_thunk is true.
1382 2009-08-18 Jason Merrill <jason@redhat.com>
1384 * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
1386 * configure.ac: Test for it.
1387 * configure, config.in: Regenerate.
1388 * doc/install.texi: Document --enable-gnu-unique-object.
1390 2009-08-18 Richard Guenther <rguenther@suse.de>
1393 * builtins.c (fold_builtin_pow): Fold pow(pow(x,y),z) to
1394 pow(x,y*z) only if x is nonnegative.
1396 2009-08-18 Jakub Jelinek <jakub@redhat.com>
1398 * bb-reorder.c (fix_up_fall_thru_edges): Only call invert_jump
1402 * config/rs6000/rs6000.c (rs6000_legitimize_address): For
1403 [DT][FDI]mode ensure the offset isn't 4/8/12 bytes below 0x8000.
1405 2009-08-17 DJ Delorie <dj@redhat.com>
1407 * config/m32c/m32c.md (UNS_FSETB, UNS_FREIT): New.
1408 * config/m32c/prologue.md (epilogue_freit): New.
1410 * config/m32c/m32c.c (m32c_function_needs_enter): Add prototype.
1411 (bank_switch_p): Likewise.
1412 (fast_interrupt_p): Likewise.
1413 (interrupt_p): Likewise.
1414 (m32c_conditional_register_usage): Round memregs size up.
1415 (need_to_save): We only need to save $a0 when we use ENTER.
1416 (interrupt_p): Check for fast_interrupt too.
1417 (bank_switch_p): New.
1418 (fast_interrupt_p): New.
1419 (m32c_attribute_table): Add bank_switch and fast_interrupt.
1420 (m32c_emit_prolog): Support bank switching and fast interrupts.
1421 * doc/extend.texi (Function Attributes): Add bank_switch and
1424 2009-08-17 Douglas B Rupp <rupp@gnat.com>
1426 * config/alpha/alpha.c (vms_valid_pointer_mode): New function.
1427 * config/alpha/vms.h (TARGET_VALID_POINTER_MODE): Define.
1429 2009-08-16 Douglas B Rupp <rupp@gnat.com>
1431 * doc/invoke.texi (Target options): Add new option list for IA-64/VMS.
1432 (menu): Add IA-64/VMS Options.
1433 (IA-64/VMS Options): Likewise.
1435 2009-08-16 Richard Sandiford <rdsandiford@googlemail.com>
1438 * config/mips/mips.md (*lwxs): Use :P for pointer values.
1440 2009-08-16 Richard Sandiford <rdsandiford@googlemail.com>
1442 * config/mips/mips-protos.h (mips_push_asm_switch): New function.
1443 (mips_pop_asm_switch): Likewise.
1444 * config/mips/mips.c (set_noreorder, set_nomacro, set_noat): Replace
1446 (mips_noreorder, mips_nomacro, mips_noat): ...these new variables.
1447 (mips_push_asm_switch_1, mips_pop_asm_switch_1): New functions.
1448 (mips_push_asm_switch, mips_pop_asm_switch): Likewise.
1449 (mips_print_operand_punctuation): Use them. Check mips_noreorder
1450 instead of set_noreorder.
1451 (mips_output_function_prologue): Use the new functions.
1452 (mips_output_function_epilogue): Likewise.
1453 (mips_need_noat_wrapper_p): New function, split out from...
1454 (mips_final_prescan_insn, mips_final_postscan_insn): ...here.
1455 Use mips_push_asm_switch and mips_pop_asm_switch.
1456 * config/mips/mips.h (FUNCTION_PROFILER): Use mips_push_asm_switch
1457 and mips_pop_asm_switch.
1458 (ASM_OUTPUT_REG_POP): Likewise.
1459 (DBR_OUTPUT_SEQEND): Remove boilerplate comment.
1460 Use mips_pop_asm_switch.
1461 (mips_asm_switch): New structure.
1462 (set_noreorder, set_nomacro): Replace with...
1463 (mips_noreorder, mips_nomacro, mips_noat): ...these new variables.
1464 * config/mips/mips.md (fix_truncdfsi2_macro): Use mips_nomacro
1465 instead of set_nomacro.
1466 (fix_truncsfsi2_macro): Likewise.
1467 (cprestore): Likewise.
1468 (hazard): Use mips_noreorder instead of set_noreorder.
1469 * config/mips/sdemtk.h (FUNCTION_PROFILER): As for mips.h.
1471 2009-08-16 Uros Bizjak <ubizjak@gmail.com>
1473 * config/alpha/alpha.c (alpha_end_function): Handle NULL_RTX returned
1474 from prev_active_insn.
1476 2009-08-16 Anatoly Sokolov <aesok@post.ru>
1478 * config/avr/avr.h (AVR_HAVE_8BIT_SP): New macros.
1479 * config/avr/avr.c (avr_override_options): Initialize
1480 avr_current_arch variable.
1481 (avr_cpu_cpp_builtins): Define __AVR_HAVE_8BIT_SP__ or
1482 __AVR_HAVE_16BIT_SP__ according to the device type.
1483 (expand_prologue, output_movhi): Use AVR_HAVE_8BIT_SP instead of
1485 (expand_epilogue): Use correct QI mode frame pointer for tiny stack.
1486 Use AVR_HAVE_8BIT_SP instead of TARGET_TINY_STACK.
1488 2009-08-16 Dodji Seketeli <dodji@redhat.com>
1491 * gcc/dwarf2out.c (gen_inlined_subroutine_die): Concentrate on
1492 generating inlined subroutine die only. We shouldn't be
1493 called for anything else.
1494 (gen_block_die): Don't generate inline subroutine debug info for
1497 2009-08-15 Sebastian Pop <sebastian.pop@amd.com>
1499 * graphite-poly.c (print_pbb): Print PBB index.
1501 2009-08-15 Sebastian Pop <sebastian.pop@amd.com>
1504 * graphite-interchange.c (ppl_max_for_le): Moved...
1505 * graphite-poly.c (pbb_number_of_iterations): Call ppl_max_for_le.
1506 * graphite-ppl.c (ppl_max_for_le): ... here. Correct the use of
1507 ppl_Pointset_Powerset_C_Polyhedron_maximize.
1508 * graphite-ppl.h (ppl_max_for_le): Declared.
1510 2009-08-14 Olatunji Ruwase <tjruwase@google.com>
1512 * doc/extend.texi (Symbol-Renaming Pragmas): redefine_extname is
1513 supported on all platforms.
1514 * target.h (struct gcc_target): Remove handle_pragma_redefine_extname.
1515 * c-cppbuiltin.c: Remove use of targetm.handle_pragma_redefine_extname.
1516 * c-pragma.c: Likewise.
1517 * target-def.h (TARGET_INITIALIZER): Remove
1518 TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME.
1519 * config/sol2.h: Remove use of TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME.
1521 2009-08-14 Douglas B Rupp <rupp@gnat.com>
1523 * config/ia64/fde-vms.c: New file.
1524 * config/ia64/fde-glibc.c (_Unwind_FindTableEntry): Add dummy arg.
1525 * config/ia64/unwind-ia64.c (UNW_ accessors): Move to unwind-ia64.h
1526 (MD_UNW_COMPATIBLE_PERSONALITY_P): Provide default.
1527 (uw_frame_state_for): Only register a personality routine if it is
1528 known to be compatible with our expectations.
1529 (_Unwind_FindEnclosingFunction, uw_frame_state_for):
1530 Declare unw_table_entry stack variable and
1531 mod all calls to _Unwind_FindTableEntry to add arg.
1532 * config/ia64/unwind-ia64.h (UNW_ accessors): Move here.
1533 (_Unwind_FindTableEntry): Add arg to prototype.
1535 2009-08-14 Eric Botcazou <ebotcazou@adacore.com>
1537 * config/ia64/unwind-ia64.c (struct _Unwind_Context): Add new
1538 field 'signal_pfs_loc'.
1539 (uw_frame_state_for): Remove duplicate code dealing with leaf
1540 procedures without unwind info.
1541 If in the frame after unwinding through a signal handler, restore
1542 the AR.PFS register instead of the CFM if AR.PFS has not been saved.
1543 * config/ia64/linux-unwind.h (ia64_fallback_frame_state): Do not set
1544 'pfs_loc' to the AR.PFS location in the signal context; instead
1545 set 'signal_pfs_loc'.
1546 Manually generate the unwind info for the AR.PFS register.
1547 (ABI_MARKER_OLD_LINUX_SIGTRAMP, ABI_MARKER_OLD_LINUX_INTERRUPT,
1548 ABI_MARKER_LINUX_SIGTRAMP, ABI_MARKER_LINUX_INTERRUPT): Define.
1549 (ia64_handle_unwabi): Test 'fs->unwabi' against them.
1550 Do not set 'pfs_loc' to the AR.PFS location in the signal context;
1551 instead set 'signal_pfs_loc'.
1552 Remove code preventing the AR.PFS register from being restored
1553 from the signal context.
1555 2009-08-14 Douglas B Rupp <rupp@gnat.com>
1556 Tristan Gingold <gingold@adacore.com>
1558 * config.gcc (ia64-hp-*vms*): Insert ia64/t-ia64 in tmake_file.
1559 * config/ia64/t-vms: New file.
1560 * config/ia64/vms64.h: New file.
1561 * config/ia64/vms.h: New file.
1562 * config/ia64/vms-crtinit.asm: New file.
1563 * config/ia64/vms_symvec_libgcc_s.opt: New file.
1564 * config/ia64/vms-unwind.h: New file.
1566 2009-08-14 Uros Bizjak <ubizjak@gmail.com>
1568 * config/alpha/alpha.c (alpha_emit_conditional_move): Handle
1571 2009-08-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1574 * builtins.c (do_mpc_arg2): Make extern, define for any MPC version.
1576 * real.h (do_mpc_arg2): ... here.
1577 * fold-const.c (const_binop): Use MPC for complex MULT_EXPR
1580 2009-08-14 Rafael Avila de Espindola <espindola@google.com>
1582 * final.c (add_debug_prefix_map): Don't use GC memory for
1583 old_prefix and new_prefix.
1585 2009-08-14 Richard Guenther <rguenther@suse.de>
1587 * ipa-prop.c (compute_complex_pass_through): If we cannot
1588 compute a non-varying offset for IPA_JF_ANCESTOR punt.
1590 2009-08-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1592 * c-lex.c (c_lex_with_flags): Increase size of local variable
1593 to avoid memory clobber.
1595 2009-08-14 Paolo Bonzini <bonzini@gnu.org>
1598 * config/i386/i386.c (ix86_fp_comparison_strategy):
1599 Only enable/disable sahf at function granularity.
1601 2009-08-14 Hans-Peter Nilsson <hp@axis.com>
1603 PR rtl-optimization/41064
1604 * reload1.c (reload_as_needed): Don't call extract_insn
1605 for known invalid replacements after calling
1606 validate_replace_rtx_group and verify_changes.
1608 2009-08-14 Uros Bizjak <ubizjak@gmail.com>
1611 * config/i386/sse.md (SSEMODE124C8): New mode iterator.
1612 (vcond<SSEMODEF2P:mode>): Assert that operation is supported by
1613 ix86_expand_fp_vcond.
1614 (vcond<SSEMODE124C8:mode>): Use SSEMODE124C8 instead of SSEMODE124.
1615 Assert that operation is supported by ix86_expand_int_vcond.
1616 (vcondu<SSEMODE124C8:mode>): Ditto.
1618 2009-08-13 DJ Delorie <dj@redhat.com>
1620 * config/i386/djgpp-stdint.h: New.
1621 * config.gcc (djgpp): Use it.
1623 2009-08-13 Kaz Kojima <kkojima@gcc.gnu.org>
1625 * config/sh/sh.c (sh_override_options): When flag_exceptions or
1626 flag_unwind_tables is on, turn flag_reorder_blocks_and_partition off.
1628 2009-08-13 Ghassan Shobaki <ghassan.shobaki@amd.com>
1630 * tree-ssa-loop-prefetch.c
1631 (prune_ref_by_group_reuse): Enhance probabilistic analysis
1632 for long-stride pruning.
1633 (compute_miss_rate): New function to compute the probability
1634 that two memory references access different cache lines.
1636 2009-08-13 Dave Korn <dave.korn.cygwin@gmail.com>
1638 * gcc/config/i386/cygwin.h (LINK_SPEC): Add --enable-auto-image-base.
1640 2009-08-13 Richard Guenther <rguenther@suse.de>
1643 * tree-ssa-ccp.c (ccp_fold): When folding pointer additions
1644 use the constant pointer type.
1645 * gimplify.c (canonicalize_addr_expr): Canonicalize independent
1646 of CV qualifiers on the target pointer type.
1647 * tree-ssa.c (useless_type_conversion_p): Move incomplete pointer
1648 conversion check before restrict check.
1650 2009-08-12 Kaz Kojima <kkojima@gcc.gnu.org>
1653 * config/sh/sh.md (reload_outdf__RnFRm+4): Fix thinko.
1655 2009-08-12 Kaz Kojima <kkojima@gcc.gnu.org>
1657 * config/sh/sh.c (sh_promote_function_mode): Add ATTRIBUTE_UNUSED.
1659 2009-08-12 Richard Guenther <rguenther@suse.de>
1661 PR tree-optimization/41011
1662 * ipa-cp.c (ipcp_lattice_from_jfunc): Deal with failing fold
1663 and reference constructing.
1665 2009-08-12 Xinliang David Li <davidxl@google.com>
1667 PR tree-optimization/41012
1668 * tree-flow.h : New external interface.
1669 * gimple-low.c (check_call_arg): Change to public function.
1670 Remove argument mismatch check in lowering.
1671 * tree-inline.h (tree_can_inline_p): Interface change.
1672 * tree-inline.c (tree_can_inline_p): Fold argument mismatch check
1674 * ipa-inline.c (cgraph_decide_inlining_of_small_functions):
1675 Call change to tree_can_inline_p function.
1676 (cgraph_decide_inlining_incrementally): Ditto.
1678 2009-08-12 Richard Sandiford <rdsandiford@googlemail.com>
1680 PR tree-optimization/41031
1681 * tree-outof-ssa.c (insert_value_copy_on_edge): Use promote_decl_mode
1682 on the partition variable rather than promote_mode on the source
1683 type. Assert that the partition variable's type has the same
1684 mode as the source value's.
1686 2009-08-12 Paolo Bonzini <bonzini@gnu.org>
1688 * doc/tm.texi (TARGET_PROMOTE_FUNCTION_MODE): Add documentation
1689 for for_return == 2.
1690 * function.c (assign_parm_setup_reg): Use for_return == 2, improve
1692 * calls.c (expand_call): Fix typo.
1693 * explow.c (promote_decl_mode): Use for_return == 2 for RESULT_DECL
1695 * stmt.c (expand_value_return): Use promote_function_mode to copy out
1697 * targhooks.c (default_promote_function_mode): Handle for_return == 2.
1698 * config/cris/cris.c (cris_promote_function_mode): Likewise.
1699 * config/mmix/mmix.c (mmix_promote_function_mode): Likewise.
1700 * config/pa/pa.c (pa_promote_function_mode): Likewise.
1702 2009-08-12 Andrew Haley <aph@redhat.com>
1704 * config/arm/arm.c (arm_init_libfuncs): Add __sync_synchronize.
1706 2009-08-12 Sebastian Pop <sebastian.pop@amd.com>
1709 * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
1711 2009-08-12 Richard Guenther <rguenther@suse.de>
1713 * alias.c (get_alias_set): Honor TYPE_STRUCTURAL_EQUALITY_P.
1714 * gimplify.c (gimplify_modify_expr): Do not use
1715 lang_hooks.types_compatible_p.
1716 * tree-ssa.c (useless_type_conversion_p): For aggregates
1717 just return false if the canonical types differ.
1719 2009-08-12 Sebastian Pop <sebastian.pop@amd.com>
1722 * sese.c (convert_for_phi_arg): New.
1723 (add_guard_exit_phis): Use convert_for_phi_arg.
1725 2009-08-12 Sebastian Pop <sebastian.pop@amd.com>
1727 * graphite-sese-to-poly.c (pdr_add_data_dimensions): Dont add
1728 unknown subscript upper bounds.
1730 2009-08-12 Sebastian Pop <sebastian.pop@amd.com>
1731 Pranav Garg <pranav.garg2107@gmail.com>
1733 * graphite-interchange.c (gather_access_strides): Removed.
1734 (ppl_max_for_le): New.
1735 (build_linearized_memory_access): New.
1736 (memory_stride_in_loop): New.
1737 (pbb_interchange_profitable_p): Reimplemented.
1738 * graphite-ppl.h (ppl_new_id_map): New.
1739 (ppl_interchange): New.
1741 2009-08-12 Sebastian Pop <sebastian.pop@amd.com>
1743 * graphite-interchange.c (compute_subscript): Removed.
1744 (compute_array_size_cstr): Removed.
1745 (compute_array_size_poly): Removed.
1746 (compute_array_size): Removed.
1747 (gather_access_strides_poly): Removed.
1748 (gather_access_strides): Empty.
1750 2009-08-12 Sebastian Pop <sebastian.pop@amd.com>
1752 * graphite-dependences.c (dependence_polyhedron_1): Replace
1753 pdr_nb_subscripts with PDR_NB_SUBSCRIPTS.
1754 (graphite_legal_transform_dr): Same.
1755 (graphite_carried_dependence_level_k): Same.
1756 * graphite-poly.c (new_poly_dr): Add a parameter nb_subscripts.
1757 Initialize PDR_NB_SUBSCRIPTS.
1758 (print_pdr_access_layout): Replace pdr_nb_subscripts with
1760 * graphite-poly.h (struct poly_dr): Add nb_subscripts field.
1761 (PDR_NB_SUBSCRIPTS): New.
1762 (pdr_nb_subscripts): Removed.
1763 (pdr_dim): Simplified.
1764 * graphite-sese-to-poly.c (build_poly_dr): Replace pdr_nb_subscripts
1765 with PDR_NB_SUBSCRIPTS.
1767 2009-08-12 Sebastian Pop <sebastian.pop@amd.com>
1769 * graphite-interchange.c (compute_array_size): Remove use of
1771 * graphite-poly.c (new_poly_dr): Remove argument data_container.
1772 Do not initialize PDR_DATA_CONTAINER.
1773 (print_pdr): Do not print PDR_DATA_CONTAINER.
1774 * graphite-poly.h (struct poly_dr): Remove data_container field.
1775 (PDR_DATA_CONTAINER): Removed.
1776 * graphite-sese-to-poly.c (pdr_add_data_dimensions): Remove use of
1778 (build_poly_dr): Same.
1780 2009-08-12 Konrad Trifunovic <konrad.trifunovic@gmail.com>
1781 Sebastian Pop <sebastian.pop@amd.com>
1783 * graphite-dependences.c (graphite_legal_transform_dr): Work on a
1784 copy of the dependence polyhedron. Free the temporary objects.
1785 (graphite_carried_dependence_level_k): Free unused objects before
1788 * testsuite/gcc.dg/graphite/interchange-1.c: XFAILed.
1789 * testsuite/gcc.dg/graphite/interchange-2.c: XFAILed.
1790 * testsuite/gcc.dg/graphite/interchange-3.c: XFAILed.
1791 * testsuite/gcc.dg/graphite/interchange-4.c: XFAILed.
1792 * testsuite/gcc.dg/graphite/interchange-7.c: XFAILed.
1794 2009-08-12 Sebastian Pop <sebastian.pop@amd.com>
1796 * graphite-blocking.c (scop_do_strip_mine): Call store_scattering.
1797 Early return without analyzing the data dependences if no
1798 transform has been done. Call restore_scattering if the transform
1800 (graphite-interchange.c): Same.
1801 * graphite-poly.c (print_scattering_function): Test for
1803 (graphite_read_transforms): Initialize PBB_TRANSFORMED.
1804 (apply_poly_transforms): Do not gcc_assert that
1805 the transform is legal.
1806 (new_poly_bb): Initialize PBB_TRANSFORMED, PBB_SAVED and PBB_ORIGINAL.
1807 Do not initialize PBB_NB_SCATTERING_TRANSFORM, PBB_NB_LOCAL_VARIABLES,
1808 PBB_TRANSFORMED_SCATTERING, and PBB_ORIGINAL_SCATTERING.
1809 (free_poly_dr): Free PBB_TRANSFORMED, PBB_SAVED, and PBB_ORIGINAL.
1810 * graphite-poly.h (struct poly_scattering): New.
1811 (struct poly_bb): Add original, transformed, and saved fields.
1812 Remove transformed_scattering, original_scattering,
1813 nb_local_variables and nb_scattering_transform fields.
1814 (PBB_ORIGINAL, PBB_TRANSFORMED, PBB_SAVED): New.
1815 (poly_scattering_new): New.
1816 (poly_scattering_free): New.
1817 (poly_scattering_copy): New.
1818 (store_scattering_pbb): New.
1819 (store_scattering): New.
1820 (restore_scattering_pbb): New.
1821 (restore_scattering): New.
1822 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons):
1823 Initialize PBB_TRANSFORMED and PBB_ORIGINAL.
1825 2009-08-12 Sebastian Pop <sebastian.pop@amd.com>
1827 * graphite-poly.c (print_pbb): Add parentheses in the pretty print.
1830 2009-08-12 Sebastian Pop <sebastian.pop@amd.com>
1832 * Makefile.in (graphite.o): Depends on PREDICT_H.
1833 * graphite.c: Include predict.h.
1834 (graphite_finalize): Call tree_estimate_probability.
1835 * predict.c (predict_loops): Do not call scev_initialize and
1837 (tree_estimate_probability_bb): New.
1838 (tree_estimate_probability): Do not initialize loops: move that
1839 code to the driver. Call tree_estimate_probability_bb.
1840 (tree_estimate_probability_driver): New.
1841 (pass_profile): Use tree_estimate_probability_driver.
1842 * predict.h (tree_estimate_probability): Declared.
1844 2009-08-12 Sebastian Pop <sebastian.pop@amd.com>
1846 * graphite-clast-to-gimple.c (gloog): Add time to TV_GRAPHITE_CODE_GEN.
1847 * graphite-dependences.c (graphite_legal_transform): Add time to
1848 TV_GRAPHITE_DATA_DEPS.
1849 (dependency_between_pbbs_p): Same.
1850 * timevar.def (TV_GRAPHITE_DATA_DEPS, TV_GRAPHITE_CODE_GEN): New.
1852 2009-08-12 Andrey Belevantsev <abel@ispras.ru>
1854 PR rtl-optimization/41033
1855 * alias.c (nonoverlapping_component_refs_p): Punt when strict
1856 aliasing is disabled.
1858 2009-08-11 Adam Nemet <anemet@caviumnetworks.com>
1860 * config/mips/predicates.md (qi_mask_operand, hi_mask_operand,
1861 si_mask_operand, and_load_operand, low_bitmask_operand,
1862 and_reg_operand, and_operand): New predicates.
1863 * config/mips/constraints.md (Yb, Yh, Yw, Yz): New constraints.
1864 * config/mips/mips.c (and_operands_ok): New function.
1865 * config/mips/mips-protos.h (and_operands_ok): Declare it.
1866 * config/mips/mips.md (move_type): Add ext_ins and logical.
1867 (type): Handle them.
1868 (and<mode>3): Use and_reg_operand as the second operand's predicate.
1869 (*and<mode>3): Add alternatives for lbu, lhu, lwu, <d>ext and
1870 shift_shift. Remove commutative constraint modifier.
1871 (*and<mode>3_mips16): Add alternatives for lbu, lhu, lwu and
1873 (*clear_upper32_dext): Remove define_insn_and_split.
1874 (*clear_upper32): Turn this define_insn_and_split ...
1875 (splitter for ANDing register with 0xffff_ffff): .. into this.
1877 2009-08-11 Adam Nemet <anemet@caviumnetworks.com>
1879 * combine.c (try_widen_shift_mode): Factor out code to check if an
1880 integer constant is a low-order bitmask from here ...
1881 * rtlanal.c (low_bitmask_len): ... to here.
1882 * rtl.h (low_bitmask_len): Declare.
1884 2009-08-11 Uros Bizjak <ubizjak@gmail.com>
1887 * config/alpha/alpha.md (addsi3): Remove expander.
1888 (addsi3): Rename from *addsi3_internal insn pattern.
1889 (subsi3): Remove expander.
1890 (subsi3): Rename from *subsi3_internal insn pattern.
1892 2009-08-11 Douglas B Rupp <rupp@gnat.com>
1894 * config/alpha/alpha.c (alpha_init_builtins): Nullify FWRITE and
1897 2009-08-11 Vasiliy Fofanov <fofanov@adacore.com>
1898 Eric Botcazou <botcazou@adacore.com>
1899 Douglas B Rupp <rupp@gnat.com>
1901 * config/alpha/alpha.c (alpha_return_in_memory): On VMS, ensure
1902 that records that fit in 64 bits are returned by immediate value,
1903 as required by OpenVMS Calling Standard.
1904 (function_value): Adjust for above modification.
1905 (alpha_va_start) <TARGET_ABI_OPEN_VMS>: Use
1906 virtual_incoming_args_rtx as base object, not next_arg.
1907 * config/alpha/vms.h: (DEFAULT_PCC_STRUCT_RETURN): Define as 0.
1909 2009-08-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1911 * reload.c (find_reloads_subreg_address): Check the original
1912 req_equiv_mem address to detect the case where an address is
1913 not valid in the outer mode.
1915 2009-08-11 Richard Guenther <rguenther@suse.de>
1918 * builtins.c (gimplify_va_arg_expr): Do not call SET_EXPR_LOCATION.
1920 2009-08-10 Douglas B Rupp <rupp@gnat.com>
1922 * config/alpha/vms.h (OPTIMIZATION_OPTIONS): Remove
1923 (OVERRIDE_OPTIONS): Incorporate removed OPTIMIZATION_OPTIONS.
1925 2009-08-10 Olivier Hainque <hainqueu@adacore.com>
1926 Douglas B Rupp <rupp@gnat.com>
1928 * config/alpha/alpha.c (alpha_sa_size): Force procedure type to
1929 PT_STACK when frame_pointer_needed on OpenVMS.
1930 (alpha_pv_save_size, alpha_using_fp): Remove.
1931 (alpha_vms_can_eliminate): New function. Support for CAN_ELIMINATE
1932 with proper processing for PT_NULL.
1933 (alpha_vms_initial_elimination_offset): New function. Support for
1934 INITIAL_ELIMINATION_OFFSET with proper processing for PT_NULL.
1935 (alpha_sa_size): Force procedure type to PT_STACK when
1936 frame_pointer_needed on OpenVMS.
1937 * config/alpha/alpha-protos.h (alpha_pv_save_size): Remove prototype.
1938 (alpha_using_fp): Likewise.
1939 (alpha_vms_can_eliminate): Add prototype.
1940 (alpha_vms_initial_elimination_offset): Likewise.
1941 * config/alpha/vms.h (CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET):
1942 Call alpha_vms_can_eliminate and alpha_vms_initial_elimination_offset.
1944 2009-08-10 Eric Botcazou <botcazou@adacore.com>
1945 Douglas B Rupp <rupp@gnat.com>
1947 * config/alpha/alpha.c (common_object_handler): New function.
1948 (vms_attribute_table): Declare a single attribute "common_object".
1949 (vms_output_aligned_decl_common): New global function.
1950 (SECTION_VMS_OVERLAY): Delete.
1951 (SECTION_VMS_GLOBAL): Likewise.
1952 (SECTION_VMS_INITIALIZE): Likewise.
1953 (vms_asm_named_section): Remove support for above flags.
1954 (vms_section_type_flags): Delete.
1955 (TARGET_SECTION_TYPE_FLAGS): Likewise.
1956 * config/alpha/alpha-protos.h (vms_output_aligned_decl_common): New.
1957 * config/alpha/vms.h (ASM_OUTPUT_ALIGNED_COMMON): Delete.
1958 (ASM_OUTPUT_ALIGNED_DECL_COMMON): New macro.
1960 2009-08-10 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
1963 * longlong.h [__sh__] (udiv_qrnnd): Add T register to clobber list.
1964 (sub_ddmmss): Likewise.
1966 2009-08-10 Andreas Tobler <a.tobler@schweiz.org>
1969 * config/rs6000/freebsd.h: Define SVR4_ASM_SPEC. Adjust copyright
1972 2009-08-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1975 * reload1.c (reload_as_needed): Use cancel_changes to completely
1976 undo a failed replacement attempt.
1978 2009-08-10 Richard Guenther <rguenther@suse.de>
1981 * tree-ssa.c (useless_type_conversion_p_1): Fold into ...
1982 (useless_type_conversion_p): ... here. Require pointer targets
1985 2009-08-10 Dodji Seketeli <dodji@redhat.com>
1988 * tree-inline.c (copy_statement_list): The resulting copy shouldn't
1989 loose the original type of the statement list.
1991 2009-08-09 Douglas B Rupp <rupp@gnat.com>
1993 * config/alpha/alpha.c: Include libfuncs.h
1994 (avms_asm_output_extern): New function.
1995 (alpha_init_libfuncs): Init some decc libfuncs.
1996 * config/alpha/alpha-protos.h (avms_asm_output_external): Declare.
1997 * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Define.
1998 (DO_CRTL_NAMES): Define.
2000 * config/alpha/vms64.h: (POINTERS_EXTEND_UNSIGNED): Remove undef.
2001 (LONG_TYPE_SIZE): Define.
2002 (TARGET_OS_CPP_BUILTINS): Define with __LONG_POINTERS=1
2003 (SUBTARGET_SWITCHES): Define malloc64 switch.
2004 (TARGET_DEFAULT): Default MASK_MALLOC64 set.
2005 (MASK_RETURN_ADDR): Define.
2006 doc/invoke.texi (mmalloc64): Document switch.
2008 2009-08-09 Olivier Hainque <hainque@adacore.com>
2009 Douglas B Rupp <rupp@gnat.com>
2011 * config/alpha/alpha.c (struct machine_function): New flag for VMS,
2012 uses_condition_handler.
2013 (alpha_expand_builtin_establish_vms_condition_handler): New expander.
2014 (alpha_expand_builtin_revert_vms_condition_handler): New expander.
2015 (enum alpha_builtin): New ALPHA_BUILTIN_REVERT_VMS_CONDITION_HANDLER
2016 and ALPHA_BUILTIN_ESTABLISH_VMS_CONDITION_HANDLER values.
2017 (code_for_builtin): New insn codes for the new alpha_builtins.
2018 (alpha_init_builtins): Register the new functions as BUILT_IN_MD.
2019 (alpha_sa_size): Account for uses_condition_handler.
2020 (alpha_expand_prologue): Likewise.
2021 (alpha_start_function): Likewise.
2022 (alpha_expand_epilogue): Likewise.
2023 * config/alpha/alpha-protos.h: Prototype the new alpha.c builtin
2024 establish/revert expanders.
2025 * config/alpha/alpha.h (DWARF_FRAME_REGNUM): Define.
2026 * config/alpha/alpha.md (builtin_establish_vms_condition_handler):
2027 New expander, resorting to the alpha.c associated function.
2028 (builtin_revert_vms_condition_handler): Likewise.
2029 * config/alpha/vms-gcc_shell_handler.c: New file. Implements
2030 __gcc_shell_handler, the static VMS condition handler used as
2031 an indirection wrapper to the current dynamically established
2033 * config/alpha/vms-unwind.h: Complete rewrite.
2034 * config/alpha/t-vms (LIB2FUNCS_EXTRA): Add vms-gcc_shell_handler.c
2035 * config/alpha/vms.h (MD_UNWIND_SUPPORT):
2037 2009-08-09 Eric Botcazou <botcazou@adacore.com>
2038 Douglas B Rupp <rupp@gnat.com>
2040 * config/alpha/alpha.c (alpha_links): Add 'target' field.
2041 (alpha_need_linkage): Handle aliases. Return function symbol.
2042 (alpha_use_linkage): Rename 'linkage' argument to 'func'.
2043 Use ultimate alias target for the linkage name.
2044 * config/alpha/alpha.md (movmemdi): Use the symbol returned
2045 by alpha_need_linkage for the function symbol.
2046 (setmemdi): Likewise.
2048 2009-08-09 Douglas B Rupp <rupp@gnat.com>
2050 * config/alpha/alpha.c (TARGET_ASM_UNALIGNED_*_OP): Define if on VMS.
2051 * config/alpha/vms.h (OBJECT_FORMAT_ELF): Define.
2052 (ASM_WEAKEN_LABEL): Define.
2053 (CRT_CALL_STATIC_FUNCTION): Define.
2054 (STARTFILE_SPEC): Add crtbegin.o crtbeginS.o.
2055 (ENDFILE_SPEC): Define.
2056 (INIT_SECTION_ASM_OP): Define.
2057 * config/alpha/vms-dwarf2eh.asm (__EH_FRAME_BEGIN__): Remove.
2058 * config/alpha/t-vms (EXTRA_PARTS): Add crtbegin.o crtbeginS.o
2060 (MULTILIB_OSDIRNAMES): Define.
2061 (shlib_version): Define.
2062 (SHLIB_EXT): Define.
2063 (SHLIB_OBJS): Define.
2064 (SHLIB_NAME): Define.
2065 (SHLIB_MULTILIB): Define.
2066 (SHLIB_INSTALL): Define.
2067 (SHLIB_SYMVEC): Define.
2068 (SHLIB_SYMVECX2): Define.
2069 (SHLIB_LINK): Define.
2071 2009-08-09 Douglas B Rupp <rupp@gnat.com>
2073 * config/alpha/alpha.c (alpha_initialize_trampoline):
2074 Initialize VMS trampoline IAW ABI for bounded procedure calls.
2075 (alpha_start_function): Emit transfer address on nested functions
2076 for VMS trampoline call.
2077 * config/alpha/t-vms (LIB2FUNCS_EXTRA): Remove vms_tramp.asm
2078 since no longer used.
2079 * config/alpha/vms-tramp.asm: Remove.
2080 * config/alpha/vms.h (TRAMPOLINE_TEMPLATE): Leave undefined
2081 since now only data initialized at runtime.
2083 2009-08-09 Douglas B Rupp <rupp@gnat.com>
2085 * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Define.
2086 (LINK_GCC_C_SEQUENCE_SPEC): Define.
2087 (MD_EXEC_PREFIX): Remove, no longer used.
2088 (MD_STARTFILE_PREFIX): Likewise.
2089 (INCLUDE_DEFAULTS): Likewise.
2090 * config/alpha/t-vms:
2091 (vms-dwarf2.o, vms-dwarf2eh.o): Use GCC_FOR_TARGET to compile.
2093 2009-08-09 Richard Guenther <rguenther@suse.de>
2095 PR tree-optimization/41016
2096 * tree-ssa-ifcombine.c (get_name_for_bit_test): Fix tuplification bug.
2097 (operand_precision): Remove.
2098 (integral_operand_p): Likewise.
2099 (recognize_single_bit_test): Adjust.
2101 2009-08-09 Richard Sandiford <rdsandiford@googlemail.com>
2103 * c-common.c (c_fully_fold_internal): Issue a warning if a binary
2104 operation overflows. Likewise non-cast unary arithmetic.
2105 If one arm of a conditional expression is always taken,
2106 inhibit evaluation warnings for the other arm. Likewise inhibit
2107 evaluation warnings for the second && or || operand if the first
2108 operand is enough to determine the result.
2109 * c-typeck.c (build_conditional_expr): Apply the same inhibition
2111 (build_binary_op): Prevent duplicate evaluation warnings.
2113 2009-08-09 Richard Sandiford <rdsandiford@googlemail.com>
2115 * tree-out-of-ssa.c (insert_value_copy_on_edge): If the source
2116 and destination have different modes, Use promote_mode to
2117 determine the signedness of the conversion. Assert that the
2118 promoted source mode matches the destination mode. Don't pass
2119 the destination and destination mode to expand_expr if the source
2120 mode is different. Simplify conversion logic.
2122 2009-08-09 Ira Rosen <irar@il.ibm.com>
2124 PR tree-optimization/41008
2125 * tree-vect-loop.c (vect_is_simple_reduction): Get operands
2126 from condition only in case it's a comparison. Adjust checks.
2128 2009-08-09 Bernd Schmidt <bernd.schmidt@analog.com>
2130 * tree-dfa.c (renumber_gimple_stmt_uids_in_blocks): New function.
2131 * tree-flow.h (renumber_gimple_stmt_uids_in_blocks): Declare it.
2132 * tree-ssa-loop-ivopts.c (comp_cost): Make COST an integer.
2133 (enum iv_position): Add IP_AFTER_USE and IP_BEFORE_USE.
2134 (dump_cand): Handle them.
2135 (struct iv_cand): New members COST_STEP and AINC_USE.
2136 (stmt_after_increment): Likewise.
2137 (stmt_after_inc_pos): Renamed from stmt_after_ip_original_pos. All
2138 callers changed. Use gimple_uid comparison instead of scanning.
2139 (add_candidate_1): When looking for identical candidates, take
2140 AINC_USE into account. Set it for new candidates.
2141 (force_expr_to_var_cost): Cast target_spill_cost to int.
2142 (get_address_cost): New arguments STMT_AFTER_INC and MAY_AUTOINC.
2143 All callers changed. Check for availability of autoinc addressing
2144 modes, both in general for a given mode, and in the specific use case.
2145 (get_computation_cost_at): New argument CAN_AUTOINC. All callers
2147 (get_computation_cost): Likewise.
2148 (autoinc_possible_for_pair, set_autoinc_for_original_candidates,
2149 add_autoinc_candidates): New static functions.
2150 (add_candidate): Call add_autoinc_candidates for candidates based on
2152 (find_iv_candidates): Call set_autoinc_for_original_candidates.
2153 (determine_use_iv_cost_address): If we have an autoinc candidate at
2154 the matching use, verify autoinc is possible and subtract the cost
2155 of the candidate's step from the cost.
2156 (determine_iv_cost): Record the cost of the increment in the COST_STEP
2157 member of the candidate.
2158 (tree_ssa_iv_optimize_loop): Swap the calls to determine_iv_costs and
2159 determine_use_iv_costs. Call renumber_gimple_stmt_uids_in_blocks.
2161 2009-08-09 Douglas B Rupp <rupp@gnat.com>
2163 * config.build (ia64-hp-*vms*): New target.
2164 (alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify
2166 * config.gcc (ia64-hp-*vms*): New target.
2167 (alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify
2169 * config.host (ia64-hp-*vms*): New target.
2170 (alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify
2173 2009-08-08 Richard Guenther <rguenther@suse.de>
2175 PR tree-optimization/40991
2176 * tree-ssa-pre.c (eliminate): Delay purging EH edges.
2178 2009-08-08 Richard Sandiford <rdsandiford@googlemail.com>
2180 * combine.c (gen_lowpart_or_truncate): Exclude CONST_INTs from
2181 mode check. Do truncations in an integer mode.
2182 (force_to_mode): Handle subregs for all mode types. Only do
2183 arithmetic simplifications on integer modes.
2185 2009-08-07 Richard Guenther <rguenther@suse.de>
2187 PR tree-optimization/40999
2188 * tree-ssa-ccp.c (get_symbol_constant_value): Handle CONST_DECLs.
2189 (maybe_fold_reference): Lookup constant initializers.
2190 (fold_gimple_assign): Likewise.
2192 2009-08-07 Richard Guenther <rguenther@suse.de>
2194 * tree-ssa.c (useless_type_conversion_p_1): Only for types
2195 that require structural equality defer to the langhook.
2197 2009-08-07 Martin Jambor <mjambor@suse.cz>
2199 * ipa-prop.h (enum jump_func_type): New value IPA_JF_ANCESTOR, changed
2201 (struct ipa_pass_through_data): New type.
2202 (struct ipa_ancestor_jf_data): New type.
2203 (union jump_func_value): Removed field formal_id, added fields
2204 pass_through and ancestor.
2205 (struct ipa_param_call_note): Changed type of formal_id to int from
2207 * ipa-prop.c (ipa_print_node_jump_functions): Print pass through with
2208 operations jump functions and ancestor jump functions.
2209 (compute_complex_pass_through): New function.
2210 (compute_scalar_jump_functions): Call compute_complex_pass_through,
2211 reflect changes in the jump function strucutre.
2212 (update_jump_functions_after_inlining): Ignore complex pass-through
2213 and ancestor jump functions.
2214 * ipa-cp.c (ipcp_lattice_from_jfunc): Added support for ancestor and
2215 polynomial pass-through with operation jump functions.
2217 2009-08-07 Jakub Jelinek <jakub@redhat.com>
2219 * dwarf2out.c (output_fde): When doing hot/cold partitioning, use
2220 fde->dw_fde_begin as begin label instead of hot/cold label.
2221 Use LLSDAC label instead of LLSDA for second section lsda.
2222 (dwarf2out_do_cfi_startproc): Add SECOND argument. Use LLSDAC
2223 label instead of LLSDA if it is true.
2224 (dwarf2out_begin_prologue, dwarf2out_switch_text_section): Adjust
2226 * except.c (add_call_site, dw2_size_of_call_site_table): Add
2227 SECTION argument. Use it as index into crtl->eh.call_site_record
2229 (dw2_output_call_site_table): Likewise. Add CS_FORMAT argument,
2230 use it to determine how to print table entries instead of using
2231 #ifdef HAVE_AS_LEB128. For SECTION > 0 use hot resp. cold
2232 label instead of normal begin label as base.
2233 (sjlj_assign_call_site_values): Adjust add_call_site caller.
2234 (convert_to_eh_region_ranges): When doing hot/cold partitioning,
2235 ensure no EH range spans between sections and that landing pads
2236 are always in the corresponding section.
2237 (sjlj_size_of_call_site_table, sjlj_output_call_site_table): Adjust
2238 for crtl->eh.call_site_record being an array rather than scalar.
2239 (output_one_function_exception_table): New function, copied
2240 from output_function_exception_table. Adjust
2241 dw2_size_of_call_site_table, dw2_output_call_site_table
2242 callers. For SECOND section use *C suffixed labels.
2243 (output_function_exception_table): Call
2244 output_one_function_exception_table and, when doing hot/cold
2245 partitioning, also another time for the second section.
2246 * opts.c: Include except.h.
2247 (decode_options): Allow -freorder-blocks-and-partition with
2248 exceptions, unless SJLJ or TARGET_UNWIND_INFO.
2249 * Makefile.in (opts.o): Depend on $(EXCEPT_H).
2250 * function.h (struct rtl_eh): Change call_site_record from
2251 scalar into array of 2 elements.
2253 2009-08-07 Martin Jambor <mjambor@suse.cz>
2255 * ipa-prop.c (count_formal_params_1): New function.
2256 (ipa_get_vector_of_formal_parms): New function.
2257 (get_vector_of_formal_parm_types): New function.
2258 (ipa_modify_formal_parameters): New function.
2259 (ipa_modify_call_arguments): New function.
2260 (index_in_adjustments_multiple_times_p): New function.
2261 (ipa_combine_adjustments): New function.
2262 (ipa_dump_param_adjustments): New function.
2263 * ipa-prop.h (struct ipa_parm_adjustment): New type.
2264 (ipa_get_vector_of_formal_parms): Declare.
2265 (ipa_modify_formal_parameters): Declare.
2266 (ipa_modify_call_arguments): Declare.
2267 (ipa_combine_adjustments): Declare.
2268 (ipa_dump_param_adjustments): Declare.
2269 (build_ref_for_offset): Declare.
2270 * Makefile.in (tree-sra.o): Add ipa-prop.h to dependencies.
2271 * tree-sra.c: Include ipa-prop.c.
2272 (build_ref_for_offset): Make public.
2274 2009-08-06 Neil Vachharajani <nvachhar@gmail.com>
2276 * value-prof.c (init_pid_map): Replace xmalloc with XCNEWVEC.
2278 2009-08-06 Thomas Schwinge <tschwinge@gnu.org>
2280 * gcc/doc/extend.texi (__builtin_extract_return_address)
2281 (__builtin_frob_return_address): Document.
2283 2009-08-06 Paul Brook <paul@codesourcery.com>
2285 * config/arm/lib1funcs.asm (ARM_DIV_BODY): Add Thumb-2 implementation.
2286 (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Only use Thumb-1
2287 implementation on ARMv6-M.
2289 2009-08-06 Richard Earnshaw <rearnsha@arm.com>
2291 * doc/extend.texi (pcs): Document new attribute for ARM.
2293 2009-08-06 Richard Earnshaw <rearnsha@arm.com>
2295 * arm.c (pcs_attribute_args): Comment out unsupported attribute
2298 2009-08-06 Richard Earnshaw <rearnsha@arm.com>
2300 * arm.c (arm_handle_pcs_attribute): Pass the entire name object to
2303 2009-08-06 Richard Earnshaw <rearnsha@arm.com>
2305 * arm.c (arm_handle_pcs_attribute): Use %qE in warning.
2307 2009-08-06 Richard Earnshaw <rearnsha@arm.com>
2309 Merge ARM/hard_vfp_branch to trunk.
2311 2009-08-04 Richard Earnshaw <rearnsha@arm.com>
2313 * arm.c (libcall_eq): New function.
2314 (libcall_hash): New function.
2315 (add_libcall): New function.
2316 (arm_libcall_uses_aapcs_base): New function.
2317 (arm_libcall_value): Use arm_libcall_uses_aapcs_base to check for
2318 libcalls using the base PCS.
2319 (arm_init_cumulative_args): Likewise.
2321 2009-07-20 Joseph Myers <joseph@codesourcery.com>
2323 * config/arm/arm.c (arm_libcall_value, arm_init_cumulative_args):
2324 Use base ABI for conversion libfuncs between HFmode and SFmode.
2326 2009-05-12 Joseph Myers <joseph@codesourcery.com>
2328 * config/arm/arm.c (aapcs_vfp_sub_candidate): Use V2SImode and
2329 V4SImode as representatives of all 64-bit and 128-bit vector
2330 types. Allow vector types without vector modes.
2331 (aapcs_vfp_is_call_or_return_candidate): Handle vector types
2332 without vector modes like BLKmode.
2333 (aapcs_vfp_allocate): Handle TImode for non-TARGET_NEON like
2334 BLKmode. Avoid unsupported vector modes or TImode moves for
2336 (aapcs_vfp_allocate_return_reg): Likewise.
2337 (arm_vector_mode_supported_p): Only support V2SImode, V4HImode and
2338 V8QImode if TARGET_NEON || TARGET_IWMMXT.
2340 2009-05-12 Joseph Myers <joseph@codesourcery.com>
2342 * config/arm/arm.c (arm_handle_pcs_attribute): New.
2343 (arm_get_pcs_model): Pass attribute arguments to
2344 arm_pcs_from_attribute.
2345 (arm_init_cumulative_args): Use base AAPCS for conversions from
2346 floating-point types to DImode.
2347 (arm_attribute_table): Add pcs attribute.
2348 (arm_handle_pcs_attribute): New.
2349 * config/arm/bpabi.h (DECLARE_LIBRARY_RENAMES): When renaming
2350 conversions from floating-point types to DImode, also declare them
2351 to use base AAPCS and declare functions they call to use base
2352 AAPCS and their RTABI names.
2354 2009-05-12 Joseph Myers <joseph@codesourcery.com>
2356 * doc/invoke.texi (-mfloat-abi=@var{name}): Remove statement about
2357 -mfloat-abi=hard not being supported for VFP.
2359 2009-05-11 Kazu Hirata <kazu@codesourcery.com>
2361 * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Pass a libcall
2362 SYMBOL_REF to hard_libcall_value.
2364 2009-03-05 Joseph Myers <joseph@codesourcery.com>
2365 Richard Earnshaw <rearnsha@arm.com>
2367 * config/arm/arm.c (aapcs_layout_arg): Once a co-processor argument
2368 has been put on the stack, all remaining co-processory arguments for
2369 that co-processor also go on the stack.
2371 2009-03-05 Joseph Myers <joseph@codesourcery.com>
2373 * config/arm/arm.c (arm_return_in_memory): Handle returning
2374 vectors of suitable size in registers also for AAPCS case.
2376 2009-01-13 Richard Earnshaw <rearnsha@arm.com>
2378 * doc/tm.texi (TARGET_LIBCALL_VALUE): Add missing end statement.
2380 2008-12-09 Richard Earnshaw <rearnsha@arm.com>
2382 ARM Hard-VFP calling convention
2383 * target-def.h (TARGET_LIBCALL_VALUE): New hook.
2384 * target.h (gcc_target): Add libcall_value to table of call hooks.
2385 * targhooks.h (default_libcall_value): Default implementation.
2386 * targhooks.c (default_libcall_value): Likewise.
2387 * doc/tm.texi (TARGET_LIBCALL_VALUE): Document it.
2388 * optabs.c (expand_unop): Use it.
2389 * expr.h (hard_libcall_value): Pass the function RTX through.
2390 * calls.c (emit_library_call_value_1): Update call to
2392 * explow.c (hard_libcall_value): Use new target hook.
2393 * testsuite/lib/target-supports.exp
2394 (check_effective_target_arm_hard_vfp_ok): New hook.
2395 (check_effective_target_arm_neon_ok): Improve test for neon
2397 * testsuite/gcc.target/arm/eabi1.c: Only run test in base variant.
2398 * config/arm/arm.c: Include cgraph.h
2399 (TARGET_FUNCTION_VALUE): Override default hook.
2400 (arm_pcs_default): New variable.
2401 (arm_override_options): Don't fault hard calling convention with VFP.
2402 Add support for AAPCS variants.
2403 (arm_function_value): Make static. Handle AAPCS variants.
2404 (arm_libcall_value): New function.
2405 (arm_apply_result_size): Handle VFP registers in results.
2406 (arm_return_in_memory): Rework all AAPCS variants; handle hard-vfp
2408 (pcs_attribute_args): New variable.
2409 (arm_pcs_from_attribute): New function.
2410 (arm_get_pcs_model): New function.
2411 (aapcs_vfp_cum_init): New function.
2412 (aapcs_vfp_sub_candidate): New function.
2413 (aapcs_vfp_is_return_candidate): New function.
2414 (aapcs_vfp_is_call_candidate): New function.
2415 (aapcs_vfp_allocate): New function.
2416 (aapcs_vfp_allocate_return_reg): New function.
2417 (aapcs_vfp_advance): New function.
2418 (aapcs_cp_arg_layout): New variable.
2419 (aapcs_select_call_coproc): New function.
2420 (aapcs_select_return_coproc): New function.
2421 (aapcs_allocate_return_reg): New function.
2422 (aapcs_libcall_value): New function.
2423 (aapcs_layout_arg): New function.
2424 (arm_init_cumulative_args): Initialize AAPCS args data.
2425 (arm_function_arg): Handle AAPCS variants using new interface.
2426 (arm_arg_parital_bytes): Likewise.
2427 (arm_function_arg_advance): New function.
2428 (arm_function_ok_for_sibcall): Ensure that sibling calls agree on
2429 calling conventions.
2430 (arm_setup_incoming_varargs): Handle new AAPCS args data.
2431 * arm.h (NUM_VFP_ARG_REGS): Define.
2432 (LIBCALL_VALUE): Update.
2433 (FUNCTION_VALUE): Delete.
2434 (FUNCTION_VALUE_REGNO_P): Add VFP regs.
2435 (arm_pcs): New enum.
2436 (CUMULATIVE_ARGS): New data to support AAPCS argument marshalling.
2437 (FUNCTION_ARG_ADVANCE): Call arm_function_arg_advance.
2438 (FUNCTION_ARG_REGNO_P): Add VFP regs.
2439 * arm-protos.h (arm_function_arg_advance): Add.
2440 (aapcs_libcall_value): Add.
2441 (arm_function_value): Delete.
2443 2009-08-06 Uros Bizjak <ubizjak@gmail.com>
2444 H.J. Lu <hongjiu.lu@intel.com>
2447 * config/i386/i386.c (standard_sse_mode_p): Remove.
2448 (standard_sse_constant_p): Return 2 for integer mode
2449 vector_all_ones_operand when SSE2 is enabled.
2450 (standard_sse_constant_opcode)<case 2>: Always return [v]pcmpeqd.
2451 (ix86_expand_vector_move): Do not check for negative values from
2452 standard_sse_constant_p.
2454 2009-08-06 Richard Guenther <rguenther@suse.de>
2456 * tree-ssa.c (useless_type_conversion_p_1): Make function and
2457 array type comparisons frontend independent.
2458 * Makefile.in (tree-ssa.o): Add $(TARGET_H) dependency.
2459 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Always fill
2460 out array reference lower bound and element size operands.
2461 (ao_ref_init_from_vn_reference): Properly compute the offset
2462 for ARRAY_RANGE_REF.
2463 (vn_reference_fold_indirect): Fill out array reference lower
2464 bound and element size operands.
2465 * tree-ssa-pre.c (phi_translate_1): Fail if we have to translate
2466 a non gimple valued reference operand which can happen for
2467 array reference lower bound or element size.
2468 (create_component_ref_by_pieces_1): Properly generate the
2469 element size operand for array references.
2471 2009-08-06 Richard Guenther <rguenther@suse.de>
2473 PR tree-optimization/40964
2474 * tree.c (iterative_hash_host_wide_int): Export.
2475 * tree.h (iterative_hash_host_wide_int): Declare.
2476 * tree-ssa-structalias.c (heapvar_map): New struct.
2477 (heapvar_map_eq): New function.
2478 (heapvar_map_hash): Likewise.
2479 (heapvar_lookup): Adjust.
2480 (heapvar_insert): Likewise.
2481 (make_constraint_from_heapvar): Allow multiple heap variables
2482 per decl at different offsets.
2483 (init_alias_heapvars): Adjust.
2485 2009-08-04 David Daney <ddaney@caviumnetworks.com>
2487 * config/mips/mips.h (TARGET_SYNC_AFTER_SC): New macro.
2488 * mips_output_sync_loop (mips_output_sync_loop): Only emit
2489 trailing sync if TARGET_SYNC_AFTER_SC.
2491 2009-08-05 David Daney <ddaney@caviumnetworks.com>
2493 * gcc/config/mips/sync.md (sync_compare_and_swap<mode>,
2494 compare_and_swap_12, sync_add<mode>, sync_<optab>_12,
2495 sync_old_<optab>_12, sync_new_<optab>_12, sync_nand_12,
2496 sync_old_nand_12, sync_new_nand_12, sync_sub<mode>,
2497 sync_old_add<mode>, sync_old_sub<mode>, sync_new_add<mode>,
2498 sync_new_sub<mode>, sync_<optab><mode>, sync_old_<optab><mode>,
2499 sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
2500 sync_new_nand<mode>, sync_lock_test_and_set<mode>,
2501 test_and_set_12): Rewrite calls to mips_output_sync_loop.
2502 * gcc/config/mips/mips-protos.h (mips_output_sync_loop): Make
2503 the prototype declaration match the definition.
2504 * gcc/config/mips/mips.c (mips_output_sync_loop): Emit sync
2505 instructions explicitly. Add barrier_before and operands
2507 * gcc/config/mips/mips.h (MIPS_COMPARE_AND_SWAP,
2508 MIPS_COMPARE_AND_SWAP_12, MIPS_SYNC_OP, MIPS_SYNC_OP_12,
2509 MIPS_SYNC_OLD_OP_12, MIPS_SYNC_NEW_OP_12, MIPS_SYNC_OLD_OP,
2510 MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND,
2511 MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE,
2512 MIPS_SYNC_EXCHANGE_12): Remove sync instructions.
2514 2009-08-05 Andrew Pinski <pinskia@gmail.com>
2516 * tree-ssa-alias.c: Fix intervals to use [) syntax.
2518 2009-08-05 Uros Bizjak <ubizjak@gmail.com>
2519 Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz>
2522 * config/i386/i386.c (ix86_split_long_move): Fix push of multi-part
2525 2009-08-05 Jakub Jelinek <jakub@redhat.com>
2527 PR rtl-optimization/40924
2528 * dse.c (canon_address): Before calling cselib_expand_value_rtx
2529 make sure canon_rtx (mem_address) isn't simpler than
2530 canon_rtx (expanded_mem_address).
2532 2009-08-05 Li Feng <nemokingdom@gmail.com>
2534 * graphite-sese-to-poly.c (build_pbb_drs): Remove build alias set
2536 (build_scop_drs): Build alias set for each SCoP.
2538 2009-08-04 Sandra Loosemore <sandra@codesourcery.com>
2540 * doc/invoke.texi (MIPS Options): Document new 1004K -march options.
2541 * config/mips/mips.c (mips_cpu_info_table): Add 1004K cores.
2542 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Add pattern for 1004K.
2543 (MIPS_ARCH_FLOAT_SPEC): Likewise.
2544 (BASE_DRIVER_SELF_SPECS): Likewise.
2546 2009-08-04 Andrew Pinski <pinskia@gmail.com>
2548 * tree-ssa-alias.c: Fix some comment typos.
2550 2009-08-04 Kaz Kojima <kkojima@gcc.gnu.org>
2552 * config/sh/linux-atomic.asm (ATOMIC_BOOL_COMPARE_AND_SWAP,
2553 ATOMIC_OP_AND_FETCH, ATOMIC_COMBOP_AND_FETCH): Define.
2555 2009-08-03 Janis Johnson <janis187@us.ibm.com>
2558 * simplify-rtx.c (simplify_binary_operation_1): Disable
2559 simplifications for decimal float operations.
2561 2009-08-03 Jakub Jelinek <jakub@redhat.com>
2564 * tree-ssa.c (warn_uninitialized_var): Even on LHS warn for
2565 operand of INDIRECT_REF.
2567 2009-08-03 Uros Bizjak <ubizjak@gmail.com>
2569 * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject CONST
2570 constants referencing TLS symbols.
2572 2009-08-03 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
2574 * config/sh/linux-atomic.asm (ATOMIC_COMPARE_AND_SWAP): Rename
2575 __sync_compare_and_swap_* to __sync_val_compare_and_swap_*.
2577 2009-08-03 Richard Guenther <rguenther@suse.de>
2579 * tree.c (make_vector_type): Build a main variant first,
2580 get the canonical one and then build the variant.
2581 * tree-ssa.c (useless_type_conversion_p_1): Handle
2583 (useless_type_conversion_p): Conversions to pointers to
2584 incomplete record types are useless.
2586 2009-08-03 Richard Guenther <rguenther@suse.de>
2588 * tree-cfg.c (pass_warn_unused_result): Mark name that no dump
2589 file will be created.
2590 * omp-low.c (pass_diagnose_omp_blocks): Likewise.
2591 * toplev.c (compile_file): Adjust comment.
2593 2009-08-03 Kaz Kojima <kkojima@gcc.gnu.org>
2595 * config/sh/sh-protos.h (sh_promote_function_mode): Remove.
2596 * config/sh/sh.c (sh_promote_function_mode): Wrap long lines.
2597 (TARGET_PROMOTE_FUNCTION_MODE): Define.
2598 (TARGET_PROMOTE_FUNCTION_ARGS): Remove.
2599 (sh_promote_function_mode): Fix typo.
2601 2009-08-03 Andreas Krebbel <krebbel1@de.ibm.com>
2603 * explow.c (promote_mode): Mark TYPE and PUNSIGNEDP as possibly unused.
2605 2009-08-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2607 * pa.c (pa_promote_function_mode): Remove ATTRIBUTE_UNUSED from
2608 declaration arguments.
2610 2009-08-02 Uros Bizjak <ubizjak@gmail.com>
2612 * config/i386/i386.c (ix86_expand_fp_compare): Use const0_rtx instead
2613 of GEN_INT (0x00) and const1_rtx instead of GEN_INT (0x01).
2614 (ix86_split_ashl): Ditto.
2615 (ix86_expand_vector_init_one_nonzero): Ditto.
2616 (ix86_expand_vector_set): Ditto.
2617 (ix86_expand_reduc_v4sf): Ditto.
2619 2009-08-02 Paolo Bonzini <bonzini@gnu.org>
2621 * explow.c (promote_function_mode): Remove assert.
2622 * config/sh/sh.c (sh_promote_function_mode): Declare.
2624 2009-08-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2626 * config/pa/pa.c (pa_promote_function_mode): Declare.
2627 Change to static. Fix promote_mode call.
2629 * gthr-dce.h (CONST_CAST2): Define if not defined.
2630 (__gthread_setspecific): Use CONST_CAST2 to fix warning.
2632 * config.gcc (hppa[12]*-*-hpux10*): Add stdint support.
2634 2009-08-01 Paolo Bonzini <bonzini@gnu.org>
2636 * expr.c (store_constructor): Use promote_decl_mode. Remove
2637 now write-only variable unsignedp.
2638 (expand_expr_real_1): Use promote_decl_mode.
2639 * expr.h (promote_function_mode, promote_decl_mode): New.
2640 (promote_mode): Remove last argument.
2641 * function.c (assign_temp): Drop last argument of promote_mode.
2642 (assign_parm_find_data_types): Use promote_function_mode.
2643 (assign_parm_setup_reg): Likewise.
2644 (expand_function_end): Use promote_function_mode.
2645 * calls.c (initialize_argument_information): Use promote_function_mode.
2646 (precompute_arguments): Use promote_mode instead of checking if
2647 only PROMOTE_FUNCTION_MODE is defined.
2648 (expand_call): When making sibcall decisions, use promote_function_mode.
2649 Below, remove an if for targetm.calls.promote_function_return and
2650 and use promote_function_mode.
2651 (emit_library_call_value_1): Use promote_function_mode, fix bug
2652 where promote_mode was passed FOR_CALL == 0 for a return value in an
2654 * cfgexpand.c (expand_one_register_var): Use promote_decl_mode.
2655 * explow.c (promote_function_mode, promote_decl_mode): New.
2656 (promote_mode): Keep only the FOR_CALL == 0 case.
2657 * combine.c (setup_incoming_promotion): Remove test of
2658 promote_function_args. Use promote_function_mode.
2659 * stmt.c (expand_value_return): Use promote_decl_mode.
2660 (expand_decl): Use promote_decl_mode.
2662 * expr.c (store_constructor): Use promote_decl_mode. Remove
2663 now write-only variable unsignedp.
2664 (expand_expr_real_1): Use promote_decl_mode.
2665 * expr.h (promote_function_mode, promote_decl_mode): New.
2666 (promote_mode): Remove last argument.
2667 * function.c (assign_temp): Drop last argument of promote_mode.
2668 (assign_parm_find_data_types): Use promote_function_mode.
2669 (assign_parm_setup_reg): Likewise.
2670 (expand_function_end): Use promote_function_mode.
2671 * calls.c (initialize_argument_information): Use promote_function_mode.
2672 (precompute_arguments): Use promote_mode instead of checking if
2673 only PROMOTE_FUNCTION_MODE is defined.
2674 (expand_call): When making sibcall decisions, use promote_function_mode.
2675 Below, remove an if for targetm.calls.promote_function_return and
2676 and use promote_function_mode.
2677 (emit_library_call_value_1): Use promote_function_mode, fix bug
2678 where promote_mode was passed FOR_CALL == 0 for a return value in an
2680 * cfgexpand.c (expand_one_register_var): Use promote_decl_mode.
2681 * explow.c (promote_function_mode, promote_decl_mode): New.
2682 (promote_mode): Keep only the FOR_CALL == 0 case.
2683 * combine.c (setup_incoming_promotion): Remove test of
2684 promote_function_args. Use promote_function_mode.
2685 * stmt.c (expand_value_return): Use promote_decl_mode.
2686 (expand_decl): Use promote_decl_mode.
2688 * explow.c (promote_function_mode): Just call the target hook.
2689 * targhooks.c (default_promote_function_mode,
2690 default_promote_function_mode_always_promote): New.
2691 * targhooks.h (default_promote_function_mode,
2692 default_promote_function_mode_always_promote): Declare.
2693 * target.h (promote_function_args, promote_function_return): Remove.
2694 (promote_function_mode): New.
2695 * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS,
2696 TARGET_PROMOTE_FUNCTION_RETURN): Remove.
2697 (TARGET_PROMOTE_FUNCTION_MODE): New.
2698 (TARGET_CALLS): Adjust.
2699 * system.h (TARGET_PROMOTE_FUNCTION_ARGS,
2700 TARGET_PROMOTE_FUNCTION_RETURN, PROMOTE_FUNCTION_MODE): Poison.
2702 * config/s390/s390.h (PROMOTE_FUNCTION_MODE): Move...
2703 * config/s390/s390.c (s390_promote_function_mode): ... here,
2704 with pointer handling.
2705 (TARGET_PROMOTE_FUNCTION_MODE): Define.
2706 (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
2708 * config/sparc/sparc.h (PROMOTE_FUNCTION_MODE): Move...
2709 * config/sparc/sparc.c (sparc_promote_function_mode): ... here,
2710 with pointer handling.
2711 (TARGET_PROMOTE_FUNCTION_MODE): Define.
2712 (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
2714 * config/sh/sh-protos.h (sh_promote_function_mode): New.
2715 * config/sh/sh.c (sh_promote_function_mode): New.
2716 (TARGET_PROMOTE_FUNCTION_MODE): Define.
2717 (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
2719 * config/cris/cris.h (PROMOTE_FUNCTION_MODE): Move...
2720 * config/cris/cris.c (cris_promote_function_mode): ... here.
2721 (TARGET_PROMOTE_FUNCTION_MODE): Define.
2722 (TARGET_PROMOTE_FUNCTION_ARGS): Remove.
2724 * config/mmix/mmix.h (PROMOTE_FUNCTION_MODE): Move...
2725 * config/mmix/mmix.c (mmix_promote_function_mode): ... here.
2726 (TARGET_PROMOTE_FUNCTION_MODE): Define.
2727 (TARGET_PROMOTE_FUNCTION_ARGS): Remove.
2729 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Move...
2730 * config/arm/arm.c (arm_promote_function_mode): ... here, without
2731 complex type handling.
2732 (TARGET_PROMOTE_FUNCTION_MODE): Define.
2733 (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
2735 * config/pa/pa.c (pa_promote_function_mode): New.
2736 (TARGET_PROMOTE_FUNCTION_MODE): Define.
2737 (TARGET_PROMOTE_FUNCTION_RETURN): Remove.
2739 * config/alpha/alpha.c (TARGET_PROMOTE_FUNCTION_ARGS,
2740 TARGET_PROMOTE_FUNCTION_RETURN): Remove.
2741 (TARGET_PROMOTE_FUNCTION_MODE): Define equivalently.
2742 * config/xtensa/xtensa.c: Likewise.
2743 * config/stormy16/stormy16.c: Likewise.
2744 * config/iq2000/iq2000.c: Likewise.
2745 * config/rs6000/rs6000.c: Likewise.
2746 * config/picochip/picochip.c: Likewise.
2747 * config/arc/arc.c: Likewise.
2748 * config/mcore/mcore.c: Likewise.
2749 * config/score/score.c: Likewise.
2750 * config/mips/mips.c: Likewise.
2751 * config/bfin/bfin.c: Likewise.
2752 * config/ia64/ia64.c: Likewise (disabled though).
2754 * config/frv/frv.h: Remove pointless remark.
2756 * doc/tm.texi (PROMOTE_FUNCTION_MODE,
2757 TARGET_PROMOTE_FUNCTION_ARGS,
2758 TARGET_PROMOTE_FUNCTION_RETURN): Consolidate into...
2759 (TARGET_PROMOTE_FUNCTION_MODE): ... this.
2761 2009-08-01 Sebastian Pop <sebastian.pop@amd.com>
2763 * doc/invoke.texi (-fgraphite-force-parallel): Renamed
2764 -floop-parallelize-all.
2765 * toplev.c (process_options): Rename flag_graphite_force_parallel to
2766 flag_loop_parallelize_all.
2767 * tree-ssa-loop.c (gate_graphite_transforms): Same.
2768 * graphite.c (graphite_transform_loops): Same.
2770 * graphite-poly.c (apply_poly_transforms): Same.
2772 2009-07-31 Richard Earnshaw <rearnsha@arm.com>
2774 PR tree-optimization/40914
2775 * ipa-prop.c (ipa_get_ptr_load_param): New argument use_delta,
2776 if set, then check the delta field of the PMF record.
2777 (ipa_get_stmt_member_ptr_load_param): Propagate new param use_delta.
2778 (ipa_analyze_call_uses): Handle machines where the vbit for a PMF
2779 call is stored in the delta.
2781 2009-07-31 Adam Nemet <anemet@caviumnetworks.com>
2783 * config/mips/mips.md (*clear_upper32_dext): New pattern.
2785 2009-07-31 Uros Bizjak <ubizjak@gmail.com>
2787 * config/i386/bsd.h (ASM_BYTE): New define.
2788 * config/i386/darwin.h (ASM_BYTE): Rename from ASM_BYTE_OP.
2789 * config/i386/att.h (ASM_BYTE): New define. Use ASM_BYTE instead of
2790 .byte. Use fputs or putc instead of fprintf where appropriate.
2791 * config/i386/i386-interix.h: Use ASM_BYTE instead of .byte. Use
2792 fputs or putc instead of fprintf where appropriate.
2793 * config/i386/i386elf.h: Ditto.
2794 * config/i386/sysv4.h: Ditto.
2796 * config/i386/i386.c (TARGET_ASM_BYTE_OP): New define.
2797 * config/i386/i386.md (x86_sahf_1): Use ASM_BYTE instead of .byte.
2798 (*tls_global_dynamic_64): Ditto.
2800 2009-07-31 Christian Bruel <christian.bruel@st.com>
2802 * gcc/config.gcc (sh*-*-elf): test with_libgloss.
2804 2009-07-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2806 * config/arm/arm.c (arm_arm_address_cost): Fix typo.
2807 Remove dead code for MINUS.
2809 2009-07-31 Anthony Green <green@moxielogic.com>
2811 * config/moxie/moxie.c (moxie_expand_prologue): Use $r5 instead of
2813 (moxie_expand_epilogue): Ditto for epilogue.
2814 (moxie_setup_incoming_varargs): ABI change. Use 5 registers for
2816 (moxie_function_arg): Ditto.
2817 (moxie_pass_by_reference): Ditto.
2818 (moxie_arg_partial_bytes): Ditto.
2819 * config/moxie/moxie.h (CALL_USED_REGISTERS): Ditto.
2820 (FUNCTION_ARG_ADVANCE) Ditto.
2821 (REG_PARM_STACK_SPACE) Ditto.
2822 (FUNCTION_ARG_REGNO_P) Dito.
2824 * config.gcc: Add moxie linux config support.
2825 * gcc/config/moxie/uclinux.h: New file.
2827 2009-07-31 DJ Delorie <dj@redhat.com>
2829 * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
2830 (UNSPECV_SP_SWITCH_E): New.
2831 (sp_switch_1): Change to an unspec.
2832 (sp_switch_2): Change to an unspec. Don't use post-inc when we
2834 * config/sh/sh.c (sh_expand_prologue): Use the constant pool to
2835 reference the new stack's address
2837 2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
2839 * Makefile.in (OBJS-common): Added dependence on graphite-blocking.o,
2840 graphite-clast-to-gimple.o, graphite-dependences.o,
2841 graphite-interchange.o, graphite-poly.o, graphite-ppl.o,
2842 graphite-scop-detection.o, graphite-sese-to-poly.o, and sese.o.
2843 (graphite-blocking.o,
2844 graphite-clast-to-gimple.o, graphite-dependences.o,
2845 graphite-interchange.o, graphite-poly.o, graphite-ppl.o,
2846 graphite-scop-detection.o, graphite-sese-to-poly.o, and sese.o): New.
2847 * cfgloop.c (alloc_loop): Set loop->can_be_parallel to false.
2848 * cfgloop.h (struct loop): Add can_be_parallel field.
2849 * common.opt (fgraphite-identity): Moved up.
2850 (fgraphite-force-parallel): New flag.
2851 * graphite.c: Rewrite.
2852 * graphite.h: Rewrite.
2853 * passes.c (init_optimization_passes): Schedule a pass of DCE and LIM
2855 * toplev.c (graphite_out_file): New file descriptor.
2856 (graphite_in_file): New.
2857 (process_options): flag_graphite_force_parallel cannot be used without
2859 * tree-ssa-loop.c: Include toplev.h.
2860 (gate_graphite_transforms): Enable flag_graphite for
2861 flag_graphite_force_parallel.
2863 2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
2865 * ChangeLog.graphite: New.
2866 * graphite-blocking.c: New.
2867 * graphite-clast-to-gimple.c: New.
2868 * graphite-clast-to-gimple.h: New.
2869 * graphite-dependences.c: New.
2870 * graphite-dependences.h: New.
2871 * graphite-interchange.c: New.
2872 * graphite-poly.c: New.
2873 * graphite-poly.h: New.
2874 * graphite-ppl.c: New.
2875 * graphite-ppl.h: New.
2876 * graphite-scop-detection.c: New.
2877 * graphite-scop-detection.h: New.
2878 * graphite-sese-to-poly.c: New.
2879 * graphite-sese-to-poly.h: New.
2883 2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
2885 * tree-chrec.c (evolution_function_right_is_integer_cst): New.
2886 * tree-chrec.h (evolution_function_right_is_integer_cst): Declared.
2888 2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
2890 * tree-chrec.c (operator_is_linear): Handle BIT_NOT_EXPR.
2891 (scev_is_linear_expression): Return false if the evolution is not
2892 affine multivariate.
2894 2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
2896 * tree-data-ref.c (graphite_find_data_references_in_stmt): New.
2897 * tree-data-ref.h (graphite_find_data_references_in_stmt): Declared.
2899 2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
2901 * tree-data-ref.c (debug_data_references): New.
2902 (debug_data_reference): New.
2903 * tree-data-ref.h (debug_data_references): Declared.
2904 (debug_data_reference): Declared.
2906 2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
2908 * tree-data-ref.c (stmt_simple_memref_p: Removed.
2909 * tree-data-ref.h (scop_p): Removed.
2910 (struct data_reference): Remove field scop.
2912 (stmt_simple_memref_p): Removed.
2914 2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
2916 * cfgloop.h (create_empty_loop_on_edge): Pass an extra argument.
2917 * cfgloopmanip.c (create_empty_loop_on_edge): Leave the loop_latch
2920 2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
2922 * doc/invoke.texi (-fgraphite-force-parallel): Documented.
2924 2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
2926 * doc/invoke.texi (-fgraphite-identity): Documented.
2928 2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
2930 * tree-scalar-evolution.c: Fix comment.
2931 (instantiate_scev_1): Return unknow from scev instantiation if the
2932 result is not above instantiate_below.
2934 2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
2936 * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop): Not
2937 static anymore. Instantiate the symbols that may have been introduced
2939 * tree-scalar-evolution.h (compute_overall_effect_of_inner_loop):
2942 2009-07-30 DJ Delorie <dj@redhat.com>
2944 * config/mep/mep.c (mep_asm_init_sections): Add section flags and
2945 .vliw directive to VLIW sections.
2947 2009-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2949 * Makefile.in (AUTOCONF, ACLOCAL, ACLOCAL_AMFLAGS, aclocal_deps):
2951 ($(srcdir)/configure, $(srcdir)/aclocal.m4): New rules.
2952 (AUTOHEADER): New variable.
2953 ($(srcdir)/cstamp-h.in): Use it.
2955 2009-07-30 Michael Meissner <meissner@linux.vnet.ibm.com>
2956 Pat Haugen <pthaugen@us.ibm.com>
2957 Revital Eres <ERES@il.ibm.com>
2959 * config/rs6000/vector.md (VEC_F): Add VSX support.
2963 (vector_load_<mode>): Ditto.
2964 (vector_store_<mode>): Ditto.
2965 (vector GPR move split): Ditto.
2966 (vec_reload_and_plus_<mptrsize>): Ditto.
2967 (vec_reload_and_reg_<mptrsize>): Ditto.
2968 (add<mode>3): Ditto.
2969 (sub<mode>3): Ditto.
2970 (mul<mode>3): Ditto.
2971 (neg<mode>2): Ditto.
2972 (abs<mode>2): Ditto.
2973 (smin<mode>3): Ditto.
2974 (smax<mode>3): Ditto.
2975 (vector_eq<mode>): Ditto.
2976 (vector_gt<mode>): Ditto.
2977 (vector_ge<mode>): Ditto.
2978 (vector_gtu<mode>): Ditto.
2979 (vector_select_<mode>_uns): Ditto.
2980 (vector_eq_<mode>_p): Ditto.
2981 (vector_gt_<mode>_p): Ditto.
2982 (vector_ge_<mode>_p): Ditto.
2983 (vector_gtu_<mode>_p): Ditto.
2984 (cr6_test_for_zero): Ditto.
2985 (cr6_test_for_zero_reverse): Ditto.
2986 (cr6_test_for_lt): Ditto.
2987 (cr6_test_for_lt_reverse): Ditto.
2988 (xor<mode>3): Ditto.
2989 (ior<mode>3): Ditto.
2990 (and<mode>3): Ditto.
2991 (one_cmpl<mode>2): Ditto.
2992 (nor<mode>2): Ditto.
2993 (andc<mode>2): Ditto.
2994 (float<VEC_int<mode>2): Ditto.
2995 (unsigned_float<VEC_int><mode>2): Ditto.
2996 (fix_trunc<mode><VEC_int>2): Ditto.
2997 (fixuns_trunc<mode><VEC_int>2): Ditto.
2999 (vec_set<mode>): Ditto.
3000 (vec_extract<mode>): Ditto.
3001 (vec_interleave_highv4sf): Ditto.
3002 (vec_interleave_lowv4sf): Ditto.
3003 (vec_realign_load_<mode>): Ditto.
3004 (vec_shl_<mode>): Ditto.
3005 (vec_shr_<mode>): Ditto.
3006 (div<mode>3): New patterns for VSX.
3007 (vec_interleave_highv2df): Ditto.
3008 (vec_interleave_lowv2df): Ditto.
3009 (vec_pack_trunc_v2df): Ditto.
3010 (vec_pack_sfix_trunc_v2df): Ditto.
3011 (vec_pack_ufix_trunc_v2df): Ditto.
3012 (vec_unpacks_hi_v4sf): Ditto.
3013 (vec_unpacks_lo_v4sf): Ditto.
3014 (vec_unpacks_float_hi_v4si): Ditto.
3015 (vec_unpacks_float_lo_v4si): Ditto.
3016 (vec_unpacku_float_hi_v4si): Ditto.
3017 (vec_unpacku_float_lo_v4si): Ditto.
3018 (movmisalign<mode>): Ditto.
3019 (vector_ceil<mode>2): New patterns for vectorizing math library.
3020 (vector_floor<mode>2): Ditto.
3021 (vector_btrunc<mode>2): Ditto.
3022 (vector_copysign<mode>3): Ditto.
3024 * config/rs6000/predicates.md (easy_vector_constant_msb): New
3025 predicate for setting the high bit in each word, used for copysign.
3027 * config/rs6000/ppc-asm.h (f19): Whitespace.
3028 (f32-f63): Define if VSX.
3029 (v0-v31): Define if Altivec.
3030 (vs0-vs63): Define if VSX.
3032 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power7.md and vsx.md.
3034 * config/rs6000/power7.md: New file, provide tuning parameters for
3037 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Add VSX support.
3038 (rs6000_cpu_cpp_builtins): Ditto.
3039 (altivec_overloaded_builtins): Ditto.
3040 (altivec_resolve_overloaded_builtin): Ditto.
3042 * config/rs6000/rs6000.opt (-mno-vectorize-builtins): Add new
3043 debug switch to disable vectorizing simple math builtin
3046 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
3047 Vectorize simple math builtin functions.
3048 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
3049 hook to vectorize math builtins.
3050 (rs6000_override_options): Enable -mvsx on -mcpu=power7.
3051 (rs6000_builtin_conversion): Add VSX/power7 support.
3052 (rs6000_builtin_vec_perm): Ditto.
3053 (vsplits_constant): Add support for loading up a vector constant
3054 with just the high bit set in each part.
3055 (rs6000_expand_vector_init): Add VSX/power7 support.
3056 (rs6000_expand_vector_set): Ditto.
3057 (rs6000_expand_vector_extract): Ditto.
3058 (rs6000_emit_move): Ditto.
3059 (bdesc_3arg): Ditto.
3060 (bdesc_2arg): Ditto.
3061 (bdesc_1arg): Ditto.
3062 (rs6000_expand_ternop_builtin): Ditto.
3063 (altivec_expand_builtin): Ditto.
3064 (rs6000_expand_unop_builtin): Ditto.
3065 (rs6000_init_builtins): Ditto.
3066 (altivec_init_builtins): Ditto.
3067 (builtin_function_type): Ditto.
3068 (rs6000_common_init_builtins): Ditto.
3069 (rs6000_handle_altivec_attribute); Ditto.
3070 (rs6000_mangle_type): Ditto.
3071 (rs6000_vector_mode_supported_p): Ditto.
3072 (rs6000_mode_dependent_address): Altivec addresses with AND -16
3075 * config/rs6000/vsx.md: New file for VSX support.
3077 * config/rs6000/rs6000.h (EASY_VECTOR_MSB): New macro for
3078 identifing values with just the most significant bit set.
3079 (enum rs6000_builtins): Add builtins for VSX. Add simple math
3080 vectorized builtins.
3082 * config/rs6000/altivec.md (UNSPEC_VRFIP): Delete.
3083 (UNSPEC_VRFIM): Delete.
3084 (splitter for loading up vector with most significant bit): New
3085 splitter for vectorizing copysign.
3086 (altivec_vrfiz): Rename from altivec_fturncv4sf2. Add support for
3087 vectorizing simple math functions.
3088 (altivec_vrfip): Add support for vectorizing simple math functions.
3089 (altivec_vrfim): Ditto.
3090 (altivec_copysign_v4sf3): New insn for Altivec copysign support.
3092 * config/rs6000/rs6000.md (UNSPEC_BPERM): New constant.
3093 (power7.md, vsx.md): Include for power7 support.
3094 (copysigndf3): Use VSX instructions if -mvsx.
3095 (negdf2_fpr): Ditto.
3096 (absdf2_fpr): Ditto.
3097 (nabsdf2_fpr): Ditto.
3098 (adddf3_fpr): Ditto.
3099 (subdf3_fpr): Ditto.
3100 (muldf3_fpr): Ditto.
3101 (divdf3_fpr): Ditto.
3102 (fix_truncdfdi2_fpr): Ditto.
3103 (cmpdf_internal1): Ditto.
3104 (fred, fred_fpr): Convert into expander/insn to add VSX support.
3105 (btruncdf2, btruncdf2_fpr): Ditto.
3106 (ceildf2, ceildf2_fpr): Ditto.
3107 (floordf2, floordf2_fpr): Ditto.
3108 (floatdidf2, floatdidf2_fpr): Ditto.
3109 (fmadddf4_fpr): Name insn. Use VSX instructions if -mvsx.
3110 (fmsubdf4_fpr): Ditto.
3111 (fnmadddf4_fpr_1): Ditto.
3112 (fnmadddf4_fpr_2): Ditto.
3113 (fnmsubdf4_fpr_1): Ditto.
3114 (fnmsubdf4_fpr_2): Ditto.
3115 (fixuns_truncdfdi2): Add expander for VSX support.
3116 (fix_truncdfdi2): Ditto.
3117 (fix_truncdfsi2): Ditto.
3119 (btruncsf2): Whitespace.
3120 (movdf_hardfloat32): Add support for VSX registers.
3121 (movdf_softfloat32): Ditto.
3122 (movdf_hardfloat64): Ditto.
3123 (movdf_hardfloat64_mfpgpr): Ditto.
3124 (movdf_softfloat64): Ditto.
3125 (movti splitters): Add check for vector registers supporting
3126 TImode in the future.
3127 (bpermd): Add power7 bpermd instruction.
3129 * config/rs6000/altivec.h (vec_div): Define if VSX.
3133 (vec_nearbyint): Ditto.
3136 (all predicates): Use the generic builtin function, and not the V4SF
3137 specific function so that the predicates will work with VSX's V2DF.
3141 * doc/extend.texi (PowerPC Altivec/VSX Built-in Functions):
3142 Document new VSX functions and types.
3144 * doc/invoke.texi (PowerPc options): Document -mpopcntd, -mvsx
3147 * doc/md.texi (PowerPC constraints): Document "wd", "wf", "ws",
3148 "wa", and "j" constraints. Modify "v" to talk about Altivec
3149 instead of just vector.
3151 2009-07-30 Andrew MacLeod <amacleod@redhat.com>
3154 * tree-into-ssa.c (insert_phi_nodes_for, rewrite_add_phi_arguments): Set
3155 location for phi arguments.
3156 (rewrite_update_phi_arguments): Find locations for reaching defs.
3157 * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis):
3158 Add location to add_phi_arg calls.
3159 * tree-loop-districbution.c (update_phis_for_loop_copy): Add locations.
3160 * tree-ssa-loop-manip.c (create_iv, add_exit_phis_edge,
3161 split_loop_exit_edge, tree_transform_and_unroll_loop): Add locations.
3162 * tree-tailcall.c (add_successor_phi_arg, eliminate_tail_call,
3163 create_tailcall_accumulator, tree_optimize_tail_calls_1): Add locations.
3164 * tree.h (struct phi_arg_d): Add location_t to PHI arguments.
3165 * tree-phinodes.c (make_phi_node): Initialize location.
3166 (resize_phi_node): Initialize location to UNKNOWN_LOCATION.
3167 (add_phi_arg): Add location parameter.
3168 (remove_phi_arg_num): Move location when moving phi argument.
3169 * omp-low.c (expand_parallel_call, expand_omp_for_static_chunk): Set
3171 * tree-vect-loop-manip.c (slpeel_update_phis_for_duplicate_loop,
3172 slpeel_update_phi_nodes_for_guard1,
3173 slpeel_update_phi_nodes_for_guard2,
3174 slpeel_tree_duplicate_loop_to_edge_cfg, set_prologue_iterations,
3175 vect_loop_versioning): Set locations.
3176 * tree-parloops.c (create_phi_for_local_result,
3177 transform_to_exit_first_loop, create_parallel_loop): Add locations.
3178 * gimple-pretty-print.c (dump_gimple_phi): Dump lineno's if present.
3179 * tree-vect-loop.c (get_initial_def_for_induction,
3180 vect_create_epilog_for_reduction, vect_finalize_reduction): Add
3182 * tree-flow-inline.h (gimple_phi_arg_location): New. Return locus.
3183 (gimple_phi_arg_location_from_edge): New. Return locus from an edge.
3184 (gimple_phi_arg_set_location): New. Set locus.
3185 (gimple_phi_arg_has_location): New. Check for locus.
3186 (redirect_edge_var_map_location): New. Return locus from var_map.
3187 * tree-vect-data-refs.c (vect_setup_realignment): Set location.
3188 * tree-ssa-phiopt.c (conditional_replacement): Set locus when
3189 combining PHI arguments.
3190 (cond_store_replacement): Set location.
3191 * cfgexpand.c (gimple_assign_rhs_to_tree): Transfer locus if possible.
3192 * grpahite.c (add_loop_exit_phis, add_guard_exit_phis,
3193 scop_add_exit_phis_edge): Add locations.
3194 * tree-cfgcleanup.c (remove_forwarder_block,
3195 remove_forwarder_block_with_phi): Add locations.
3196 * tree-ssa-pre.c (insert_into_preds_of_block): Add locations.
3197 * tree-predcom.c (initialize_root_vars, initialize_root_vars_lm): Add
3199 * tree-ssa-dce.c (forward_edge_to_pdom): Add locations.
3200 * tree-ssa.c (redirect_edge_var_map_add, ssa_redirect_edge,
3201 flush_pending_stmts): Add source location.
3202 * lambda-code.c (perfect_nestify): Maintain location stack with argument
3203 stack to preserve locations.
3204 * tree-vect-stmts.c (vectorizable_load): Add location.
3205 * tree-inline.c (copy_phis_for_bb): Copy locus.
3206 (setup_one_parameter): Add call locus to inlined parameter stmts.
3207 (initialize_inlined_parameters): Pass in call location as parameter
3209 (tree_function_versioning): Pass location to setup_one_parameter.
3210 * tree-ssa-phiprop.c (phiprop_insert_phi): Set locations.
3211 * tree-outof-ssa.c (struct _elim_graph): Add source_location vecs for
3212 copy and edge lists.
3213 (insert_partition_copy_on_edge, insert_value_copy_on_edge,
3214 insert_rtx_to_part_on_edge, insert_part_to_rtx_on_edge): Provide a
3215 locus parameter and override the stmt default if provided.
3216 (new_elim_graph, clear_elim_graph, delete_elim_graph,
3217 elim_graph_add_edge, elim_graph_remove_succ_edge,
3218 FOR_EACH_ELIM_GRAPH_SUCC, FOR_EACH_ELIM_GRAPH_PRED, eliminate_build,
3219 elim_forward, elim_unvisited_predecessor, elim_backward, elim_create,
3220 eliminate_phi): Add locus info in elimination graph for each edge and
3222 (insert_backedge_copies): Copy locus if present.
3223 * tree-flow.h (struct _edge_var_map): Add locus field.
3224 * tree-switch_conversions.c (fix_phi_nodes): Add locations.
3225 * tree-cfg.c (reinstall_phi_args, gimple_make_forwarder_block,
3226 add_phi_args_after_copy_edge, gimple_lv_adjust_loop_header_phi): Add
3228 * ipa-struct-reorg.c (make_edge_and_fix_phis_of_dest): Add locations.
3230 2009-07-30 Martin Jambor <mjambor@suse.cz>
3232 PR tree-optimization/40570
3233 * ipa-inline.c (cgraph_decide_inlining): Watch out for dead single
3236 2009-07-30 Razya Ladelsky <razya@il.ibm.com>
3238 * ssa-loop-manip.c: Include langhooks.h.
3239 (rewrite_phi_with_iv): New.
3240 (rewrite_all_phi_nodes_with_iv): New.
3241 (canonicalize_loop_ivs): Move here from tree-parloops.c.
3242 Remove reduction_list argument. Use rewrite_all_phi_nodes_with_iv.
3243 * tree-parloops.c (loop_parallel_p): Move out all conditions
3244 except dependency check.
3245 (canonicalize_loop_ivs): Move to tree-ssa-loop-manip.c.
3246 (gen_parallel_loop): Call canonicalize_loop_ivs without
3247 reduction_list argument.
3248 (build_new_reduction): New.
3249 (gather_scalar_reductions): New.
3250 (try_get_loop_niter): New.
3251 (try_create_reduction_list): New.
3252 (parallleize_loops): Change the parallel conditions check.
3253 * tree-flow.h (canonicalize_loop_ivs): Remove one argument.
3254 * Makefile.in (tree-ssa-loop-manip.o): Add langhooks.h dependency.
3256 2009-07-30 Dave Korn <dave.korn.cygwin@gmail.com>
3258 * opt-functions.awk (opt_args): Allow argument to be enclosed in
3260 * doc/options.texi (Option properties): Mention new quoting syntax.
3262 2009-07-29 Douglas B Rupp <rupp@gnat.com>
3264 * config/alpha/alpha.c (alpha_start_function):
3265 Handle VMS_DEBUG_MAIN_POINTER
3266 * config/alpha/vms.h (VMS_DEBUG_MAIN_POINTER): Define new macro.
3267 * doc/invoke.texi: Document -mdebug-main switch.
3269 2009-07-29 Richard Henderson <rth@redhat.com>
3271 * cgraph.c (cgraph_set_call_stmt_including_clones): Tidy.
3272 (cgraph_create_edge_including_clones): Likewise.
3273 * tree-inline.c (copy_bb): Operate on the correct edges
3274 when updating the callgraph.
3276 2009-07-29 Douglas B Rupp <rupp@gnat.com>
3278 * config/alpha/vms-cc.c: Deleted.
3279 * config/alpha/vms-ld.c: Deleted.
3280 * config/alpha/t-vms64: Moved to config/vms
3281 * config/alpha/vms-crt0-64.c: Moved to config/vms
3282 * config/alpha/vms-crt0.c: Moved to config/vms
3283 * config/alpha/vms-psxcrt0-64.c: Moved to config/vms
3284 * config/alpha/vms-psxcrt0.c: Moved to config/vms
3285 * config/alpha/xm-vms.h: Moved to config/vms
3286 * config/alpha/x-vms: Moved to config/vms
3287 * config/alpha/t-vms (vcrt0.o, pcrt0.o): Move rules to new file
3289 * config/vms/t-vms: Moved here from config/alpha. Alpha specific
3290 parts removed. (STMP_FIXPROTO, STMP_FIXINC, LIMITS_H_TEST): Set.
3292 * config/vms/t-vms64: Moved here from config/alpha
3293 * config/vms/vms-crt0-64.c: Moved here from config/alpha.
3294 (argc,argv,envp): Enforce 32bit malloc'ing.
3295 * config/vms/vms-psxcrt0-64.c: Likewise.
3296 * config/vms/vms-crt0.c: Moved here from config/alpha.
3297 * config/vms/vms-psxcrt0.c: Likewise.
3298 * config/vms/vms-crtl-64.h: New file.
3299 * config/vms/vms-crtl.h: New file.
3300 * config/vms/vms.opt: New file.
3301 * config/vms/xm-vms64.h: New file.
3302 * config/vms/xm-vms.h: Moved here from config/alpha.
3303 (STANARD_EXEC_PREFIX, STANDARD_STARTFILE_PREFIX, STANDARD_INCLUDE_DIR):
3305 * config/vms/x-vms: Moved here from config/alpha.
3306 (version, VMS_EXTRA_PARTS): Moved to t-vms.
3307 (vms-ld.o, vms-cc.o): Removed.
3308 (LN, LN_S, USE_COLLECT2, POD2MAN): Set.
3310 2009-07-29 Douglas B Rupp <rupp@gnat.com>
3312 * dwarf2out.c (add_name_and_src_coords_attributes): Push on the
3313 correct stack (obvious VMS fix).
3315 2009-07-29 Douglas B Rupp <rupp@gnat.com>
3317 * dwarf2out.c (output_file_names): Output VMS style file name, size,
3318 date, version info if VMS_DEBUGGING_INFO defined.
3319 * vmsdgbout.c (vms_file_stats_name): New functon. VMS style file name,
3320 size, date calculating code moved here.
3322 2009-07-29 Paul Brook <paul@codesourcery.com>
3324 * config/arm/lib1funcs.asm (clear_cache): Use ARM_FUNC_START and
3327 2009-07-29 Uros Bizjak <ubizjak@gmail.com>
3330 * config/alpha/alpha.c (alpha_expand_unaligned_store): Convert src
3331 to DImode when generating insq_le insn.
3333 2009-07-28 Douglas B Rupp <rupp@gnat.com>
3335 * dwarf2out.c (DWARF2_INDIRECT_STRING_SUPPORT_MISSING_ON_TARGET):
3336 New macro set for VMS_DEBUGGGING_INFO.
3337 (AT_string_form): Use it.
3339 2009-07-28 DJ Delorie <dj@redhat.com>
3341 * config/mep/mep.c (vtext_section): New.
3342 (vftext_section): New.
3343 (ftext_section): New.
3344 (mep_select_section): Add support for functions.
3345 (mep_unique_section): Likewise.
3346 (mep_asm_init_sections): Likewise.
3347 (mep_encode_section_info): Remove it from here.
3349 * config/mep/mep.h (USE_SELECT_SECTION_FOR_FUNCTIONS): Define.
3351 2009-07-28 Paolo Bonzini <bonzinI@gnu.org>
3353 * tree.h (TREE_DEPRECATED): Document it is used for types too.
3354 (TYPE_VECTOR_OPAQUE): Use default_def_flag
3356 2009-07-28 Douglas B Rupp <rupp@gnat.com>
3358 * dwarf2out.c (output_file_names): Test new macro
3359 DWARF2_DIR_SHOULD_END_WITH_SEPARATOR.
3360 (add_comp_dir_attribute): Likewise.
3362 2009-07-28 Kai Tietz <kai.tietz@onevision.com>
3364 * config/i386/mingw-w64.h (LINK_SPEC): Add
3365 separating space between commands.
3367 2009-07-28 Jan Hubicka <jh@suse.cz>
3369 PR tree-optimization/40759
3370 * tree-ssa-dce.c (mark_virtual_phi_result_for_renaming): Mark all uses
3373 2009-07-27 DJ Delorie <dj@redhat.com>
3375 * config/mep/mep.c (mep_expand_builtin_saveregs): Make sure 64-bit
3376 types are dword-aligned.
3377 (mep_expand_va_start): Likewise.
3379 2009-07-27 Olivier Hainque <hainque@adacore.com>
3380 Douglas B Rupp <rupp@gnat.com>
3382 * convert.c (convert_to_pointer): Don't assume the target
3383 pointer type is POINTER_SIZE long. Fetch its precision instead.
3385 2009-07-27 Douglas B Rupp <rupp@gnat.com>
3387 * system.h (fopen): Undefine if macro.
3389 2009-07-27 Jakub Jelinek <jakub@redhat.com>
3391 * dwarf2out.c (output_cfi_p): Removed.
3392 (output_cfis): New function.
3393 (output_fde): New function, split from output_call_frame_info.
3394 (output_call_frame_info): Use it.
3395 (dwarf2out_switch_text_section): Use output_cfis.
3397 2009-07-24 Kai Tietz <kai.tietz@onevision.com>
3399 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Error build when
3400 TARGET_BI_ARCH is specified without enabling SJLJ.
3401 * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Define MD_UNWIND_SUPPORT,
3402 if TARGET_64BIT and TARGET_BI_ARCH aren't defined.
3404 2009-07-26 Mikael Pettersson <mikpe@it.uu.se>
3406 * arm.md (negdi2): Use DImode if forcing a value into a register.
3408 2009-07-26 Ira Rosen <irar@il.ibm.com>
3410 PR tree-optimization/40801
3411 * tree-vect-stmts.c (vectorizable_call): Get previous copy
3412 of vector operand from the previous copy of vector statement.
3413 Pass the correct definition type value to
3414 vect_get_vec_def_for_stmt_copy().
3416 2009-07-25 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>