1 2009-12-07 DJ Delorie <dj@redhat.com>
4 * config/mep/mep.c (mep_expand_prologue): Set
5 really_need_stack_frame after frame_size is set.
7 2009-12-07 Richard Henderson <rth@redhat.com>
10 * combine.c (setup_incoming_promotions): Improve the conditions
11 under which we respect the promotions applied.
13 2009-12-07 Eric Botcazou <ebotcazou@adacore.com>
15 * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch.
16 * config/sparc/linux64.h (ASM_SPEC): Likewise.
18 2009-12-07 Richard Henderson <rth@redhat.com>
22 * tree-ssa.c (insert_debug_temp_for_var_def): Skip propagation
23 for ssa names already registered for update.
25 2009-12-07 Jakub Jelinek <jakub@redhat.com>
28 * ddg.c (add_inter_loop_mem_dep): Use ANTI_DEP if from or to
31 2009-12-07 Sebastian Pop <sebastian.pop@amd.com>
33 * config/i386/driver-i386.c (host_detect_local_cpu): Add -mlwp to the
34 options when bit_LWP is set.
36 2009-12-07 Sebastian Pop <sebastian.pop@amd.com>
38 * config/i386/cpuid.h (bit_ABM): New.
39 * config/i386/driver-i386.c (host_detect_local_cpu): Add -mabm to the
40 options when bit_ABM is set.
42 2009-12-07 Jakub Jelinek <jakub@redhat.com>
44 * config/i386/i386.c (bdesc_special_args): Move __builtin_clzs from
46 (bdesc_args): ... here.
47 * config.gcc (i[34567]86-*-*): Include abmintrin.h.
48 (x86_64-*-*): Likewise.
50 2009-12-07 Sebastian Pop <sebastian.pop@amd.com>
52 * config.gcc (i[34567]86-*-*, x86_64-*-*): Add popcntintrin.h.
53 * config/i386/abmintrin.h (_mm_popcnt_u32, _mm_popcnt_u64): Moved...
54 * config/i386/i386-c.c (__POPCNT__): Defined.
55 * config/i386/popcntintrin.h: ...here. New file.
56 * config/i386/smmintrin.h (_mm_popcnt_u32, _mm_popcnt_u64): Moved...
57 Include popcntintrin.h.
58 * config/i386/x86intrin.h: Include popcntintrin.h when __POPCNT__
61 2009-12-07 Sebastian Pop <sebastian.pop@amd.com>
63 * config/i386/i386-protos.h (ix86_expand_fma4_multiple_memory):
65 * config/i386/i386.c (ix86_expand_fma4_multiple_memory): Removed.
66 * config/i386/sse.md: Remove all XOP splitters.
67 Allow the second and fourth operands of XOP multiply-add insns
70 2009-12-07 Sebastian Pop <sebastian.pop@amd.com>
72 * config/i386/sse.md: Remove all FMA4 splitters.
73 Allow the second operand of FMA4 insns to be a nonimmediate.
74 Fix comments punctuation.
76 2009-12-07 Julian Brown <julian@codesourcery.com>
78 * config/arm/constraints.md (Ps, Pt): New constraint letters.
79 * config/arm/thumb2.md (*thumb2_addsi_short): Tighten constraints.
81 2009-12-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
84 * configure.ac (HAVE_mpc): Don't define.
85 * config.in, configure: Regenerate.
88 * builtins.c: Remove HAVE_mpc* checks throughout.
89 * fold-const.c: Likewise.
93 2009-12-07 Edmar Wienskoski <edmar@freescale.com>
95 * config.gcc (cpu_is_64bit): Add new core e500mc64.
96 (powerpc*-*-*): Add new core e500mc64.
97 * config/rs6000/e500mc64.md: New file.
98 * config/rs6000/rs6000.c (processor_costs): Add new costs for
100 (rs6000_override_options): Add e500mc64 case to
101 processor_target_table. Altivec and Spe options not allowed with
102 e500mc64. Disable string instructions for e500mc64. Enable branch
103 targets alignment for both e500mc and e500mc64. Initialize
104 rs6000_cost for e500mc64.
105 (rs6000_emit_sISEL): New function.
106 (rs6000_emit_sCOND): Call rs6000_emit_sISEL for isel targets.
107 (rs6000_emit_int_cmove): Fix mode of 64 bit isel pattern
109 (rs6000_issue_rate): Set issue rate for e500mc64.
110 (rs6000_rtx_costs): Set more accurate cost for mfcr instruction
111 on architectures with isel.
112 * config/rs6000/rs6000-protos.h (rs6000_emit_sISEL): Declare.
113 * config/rs6000/rs6000.h (processor_type): Add
114 PROCESSOR_PPCE500MC64.
115 (ASM_CPU_SPEC): Add e500mc64.
116 * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc64.
118 (abssi2_isel): Expand pattern to handle DImode.
119 (nabs<mode>2_isel): New pattern.
120 (absdi2): Change pattern to handle 64 bit isel targets.
121 (absdi2_internal): Exclude ISEL targets.
122 (nabsdi2): Exclude ISEL targets.
123 * doc/invoke.texi: Add e500mc64 to list of cpus.
125 2009-12-07 Uros Bizjak <ubizjak@gmail.com>
127 * config/i386/i386.md (any_or): New code iterator.
128 (any_logic): Rename from plogic code iterator.
129 (logicprefix): Rename from plogicprefix code attribute.
130 (<code><mode>3): Macroize expander from {ior,xor}<mode>3 using
131 any_or code iterator.
132 (*<code><mode>_1): Macroize insn from *{ior,xor}<mode>_1 using
133 any_or code iterator.
134 (*<code><mode>_2): Ditto from *{ior,xor}<mode>_2.
135 (*<code><mode>_3): Ditto from *{ior,xor}<mode>_3.
136 (ior and xor splitters): Ditto.
137 * config/i386/mmx.md: Updated for rename.
138 * config/i386/sse.md: Ditto.
140 2009-12-07 Uros Bizjak <ubizjak@gmail.com>
142 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
143 Remove quotes around condition logic code.
145 2009-12-06 Richard Henderson <rth@redhat.com>
148 * tree-ssa-dom.c (degenerate_phi_result): Check for NULL phi
151 2009-12-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
153 * doc/install.texi: Document MPC is required.
155 2009-12-06 Uros Bizjak <ubizjak@gmail.com>
157 * config/i386/i386.md (g): Add HImode and QImode.
158 (general_szext_operand): New mode attribute.
159 (*test<mode>_1): Macroize insn from *test{qi,hi,si}_1 using
160 SWI124 mode iterator.
161 (and<mode>3): Macroize expander from and{qi,hi,si,di}3 using
163 (*and<mode>_2): Macroize insn from *and{qi,hi,si}_2 using
164 SWI124 mode iterator.
165 (ior<mode>3): Macroize expander from ior{qi,hi,si,di}3 using
167 (*ior<mode>_1): Macroize insn from *ior{hi,si,di}_1 using
168 SWI248 mode iterator.
169 (*ior<mode>_2): Macroize insn from *ior{qi,hi,si,di}_2 using
171 (*ior<mode>_3): Macroize insn from *ior{qi,hi,si,di}_3 using
173 (xor<mode>3): Macroize expander from xor{qi,hi,si,di}3 using
175 (*xor<mode>_1): Macroize insn from *xor{hi,si,di}_1 using
176 SWI248 mode iterator.
177 (*xor<mode>_2): Macroize insn from *xor{qi,hi,si,di}_2 using
179 (*xor<mode>_3): Macroize insn from *xor{qi,hi,si,di}_3 using
182 2009-12-05 Sebastian Pop <sebastian.pop@amd.com>
184 * config/i386/i386.c (TARGET_DEFAULT_TARGET_FLAGS): Add
186 * config/i386/i386.h (CC1_CPU_SPEC_1): Remove
187 "'-mfused-madd' was removed".
188 * config/i386/i386.opt (mfused-madd): New.
189 * config/i386/sse.md: Add TARGET_FUSED_MADD to FMA4 insns.
190 * doc/invoke.texi (-mfused-madd, -mno-fused-madd): Document.
192 2009-12-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
194 * pa64-hpux.h (LIB_SPEC): Handle -rdynamic.
195 * pa-hpux10.h (LIB_SPEC): Likewise.
196 * pa-hpux11.h (LIB_SPEC): Likewise.
199 * pa/linux-unwind.h (pa32_fallback_frame_state): Set fs->signal_frame
201 * pa/hpux-unwind.h (pa32_fallback_frame_state): Likewise.
203 2009-12-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
205 * configure: Regenerate.
207 2009-12-05 Richard Earnshaw <rearnsha@arm.com>
209 * arm/thumb2.md (thumb2_mulsi_short_compare0): Use a low-register
212 2009-12-04 David Daney <ddaney@caviumnetworks.com>
214 PR rtl-optimization/42164
215 * combine.c (combine_simplify_rtx): Handle truncation of integer
218 2009-12-04 Richard Guenther <rguenther@suse.de>
220 * lto-streamer-out.c (pack_ts_decl_common_value_fields):
221 Revert previous change.
222 (lto_output_ts_decl_common_tree_pointers): Stream DECL_VALUE_EXPR.
223 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
226 2009-12-04 Richard Guenther <rguenther@suse.de>
228 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
230 (call_may_clobber_ref_p_1): Likewise.
232 2009-12-04 Matthias Klose <doko@ubuntu.com>
233 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
236 * config.gcc (hppa*-*-linux*): Use config/t-slibgcc-libgcc.
237 * config/pa/pa-linux.h (LIB_SPEC): Remove.
239 2009-12-03 Sebastian Pop <sebastian.pop@amd.com>
240 Richard Henderson <rth@redhat.com>
242 * config/i386/i386-protos.h (ix86_fma4_valid_op_p): Remove.
243 * config/i386/i386.c (ix86_fma4_valid_op_p): Remove.
244 * config/i386/i386.md: Do not use ix86_fma4_valid_op_p.
245 * config/i386/sse.md (fma4_*): Remove alternative with operand 1
246 matching a memory access. Do not use ix86_fma4_valid_op_p.
248 Do not use ix86_fma4_valid_op_p in FMA4 and XOP splitters.
250 2009-12-03 Richard Henderson <rth@redhat.com>
252 * config/i386/i386.c (ix86_fixup_binary_operands): For FMA4, force
253 all operands into registers.
255 2009-12-03 Sebastian Pop <sebastian.pop@amd.com>
257 * config/i386/i386.c (ix86_expand_fma4_multiple_memory): Remove unused
259 * config/i386/i386-protos.h (ix86_expand_fma4_multiple_memory): Same.
260 * config/i386/sse.md: Same.
262 2009-12-03 Richard Guenther <rguenther@suse.de>
264 * cgraphunit.c (assemble_thunk): Use DECL_ASSEMBLER_NAME
265 instead of DECL_NAME for the entry point.
267 2009-12-03 Richard Earnshaw <rearnsha@arm.com>
269 * arm/linux-atomic.c (SYNC_LOCK_RELEASE): Place memory barrier
270 before the lock release.
272 2009-12-03 Michael Matz <matz@suse.de>
275 * cfgexpand.c (struct stack_var): Add conflicts member.
276 (stack_vars_conflict, stack_vars_conflict_alloc,
277 n_stack_vars_conflict): Remove.
278 (add_stack_var): Initialize conflicts member.
279 (triangular_index, resize_stack_vars_conflict): Remove.
280 (add_stack_var_conflict, stack_var_conflict_p): Rewrite in
282 (union_stack_vars): Only run over the conflicts.
283 (partition_stack_vars): Remove special case.
284 (expand_used_vars_for_block): Don't call resize_stack_vars_conflict,
285 don't create self-conflicts.
286 (account_used_vars_for_block): Don't create any conflicts.
287 (fini_vars_expansion): Free bitmaps, don't free or clear removed
290 2009-12-03 Bernd Schmidt <bernd.schmidt@analog.com>
293 * regrename.c (live_in_chains): New variable.
294 (verify_reg_tracked): New static function.
295 (scan_rtx_reg): Update live_in_chains.
296 (scan_rtx): Only promote sets in COND_EXEC to OP_INOUT if
297 we're already tracking the reg.
298 (build_def_use): Likewise. Initialize live_in_chains.
300 2009-12-03 Ken Werner <ken.werner@de.ibm.com>
302 * config/spu/spu-elf.h (STARTFILE_SPEC): Add support for gprof
304 * config/spu/spu-protos.h (spu_function_profiler): Add prototype.
305 * config/spu/spu.c (spu_function_profiler): New function.
306 * config/spu/spu.h (FUNCTION_PROFILER): Invoke
307 spu_function_profiler.
308 (NO_PROFILE_COUNTERS): Define.
309 (PROFILE_BEFORE_PROLOGUE): Likewise.
311 2009-12-03 Dave Korn <dave.korn.cygwin@gmail.com>
313 * ggc-page.c (struct free_object): Pull definition out ...
314 (struct globals): .. from here.
316 2009-12-02 Richard Guenther <rguenther@suse.de>
318 * fold-const.c (div_if_zero_remainder): Honor that sizetypes
319 are sign-extending. Simplify.
321 2009-12-02 Richard Henderson <rth@redhat.com>
324 * tree-loop-distribution.c (build_size_arg_loc): Tidy.
325 (generate_memset_zero): Convert to sizetype properly. Tidy.
327 2009-12-02 Richard Guenther <rguenther@suse.de>
329 * lto-streamer-out.c (pack_ts_decl_common_value_fields):
330 Do not pretend we have value exprs.
332 2009-12-02 Richard Guenther <rguenther@suse.de>
335 * fold-const.c (try_move_mult_to_index): Do not leak
336 domain types into the IL.
338 2009-12-02 Richard Guenther <rguenther@suse.de>
341 * tree.c (free_lang_data): Disable if not using LTO.
343 2009-12-02 Richard Guenther <rguenther@suse.de>
346 * cfgloopmanip.c (remove_path): Avoid cancelling loops twice.
348 2009-12-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
351 * tree.h (int_or_pointer_precision): Remove.
352 * tree.c (int_or_pointer_precision): Remove.
353 (integer_pow2p): Use TYPE_PRECISION instead.
354 (tree_log2): Likewise.
355 (tree_floor_log2): Likewise.
356 (signed_or_unsigned_type_for): Likewise.
357 * fold-const.c (fit_double_type): Likewise.
358 * varasm.c (initializer_constant_valid_p): Likewise.
360 2009-12-02 Ira Rosen <irar@il.ibm.com>
362 * doc/invoke.texi (-fdump-tree-slp): Document.
363 (-ftree-vectorizer-verbose): Update.
364 (-ftree-slp-vectorize): Document.
366 2009-12-02 Nick Clifton <nickc@redhat.com>
368 * config/rx/rx.c (rx_conditional_register_usage): Do not warn if
369 no fixed registers are available for interrupt handlers. Do not
370 fix normal registers.
371 (MUST_SAVE_ACC_REGISTER): New macro.
372 (rx_get_stack_layout): Create a stack frame for fast interrupt
373 handlers, if necessary. Push extra registers if needed in order
374 to save the accumulator.
375 (rx_expand_prologue): Create a stack frame for fast interrupt
376 handlers, if necessary.
377 (rx_expand_builtin_mvfc): Handle the case where there is no target.
379 2009-12-01 Sebastian Pop <sebastian.pop@amd.com>
381 * config/i386/abmintrin.h (__lzcnt16): New.
384 * config/i386/i386-builtin-types.def (UINT16_FTYPE_UINT16): New.
385 * config/i386/i386.c (IX86_BUILTIN_CLZS): New.
386 (bdesc_special_args): Add __builtin_clzs.
387 (ix86_expand_args_builtin): Handle UINT16_FTYPE_UINT16.
389 2009-12-01 Sebastian Pop <sebastian.pop@amd.com>
391 * config/i386/abmintrin.h (_mm_popcnt_u32): New.
392 (_mm_popcnt_u64): New.
394 2009-12-01 Sebastian Pop <sebastian.pop@amd.com>
396 * config/i386/abmintrin.h: New.
397 * config/i386/i386-c.c (ix86_target_macros_internal): Defined __ABM__.
398 * config/i386/x86intrin.h: Include abmintrin.h when __ABM__ is defined.
400 2009-12-01 Uros Bizjak <ubizjak@gmail.com>
402 * config/i386/i386.md (SWI124): Rename from CRC32MODE.
403 (crc32modesuffix): Remove.
404 (crc32modeconstraint): Ditto.
405 (sse4_2_crc32<mode>): Update for renamed mode iterator. Use
406 imodesuffix instead of crc32modesuffix and <r>m instead of
409 2009-12-01 Jakub Jelinek <jakub@redhat.com>
412 * tree-cfgcleanup.c (cleanup_omp_return): Don't ICE if control_bb
413 contains no statements.
415 2009-12-01 Grigori Fursin <grigori.fursin@inria.fr>
416 Joern Rennecke <amylaar@spamcop.net>
418 * cgraphunit.c (plugin.h): Include.
419 (ipa_passes): Invoke PLUGIN_ALL_IPA_PASSES_START /
420 PLUGIN_ALL_IPA_PASSES_END at start / end of processing.
421 * gcc-plugin.h (highlev-plugin-common.h, hashtab.h): Include.
422 (enum plugin_event): Define by including plugin.def.
423 Last enumerator is now called PLUGIN_EVENT_FIRST_DYNAMIC.
424 (plugin_event_name): Change type to const char **.
425 (get_event_last, get_named_event_id, unregister_callback): Declare.
426 (register_callback): Change type of event argument to int.
427 (highlev-plugin-common.h): New file.
428 * Makefile.in (GCC_PLUGIN_H): Add highlev-plugin-common.h and
430 (tree-optimize.o passes.o): Depend on $(PLUGIN_H).
431 (PLUGIN_HEADERS): Add opts.h, $(PARAMS_H) and plugin.def.
432 (s-header-vars): New rule.
433 (install-plugin): Depend on s-header-vars. Install b-header-vars.
434 * params.c (get_num_compiler_params): New function.
435 * params.h (get_num_compiler_params): Declare.
436 * passes.c (plugin.h): Include.
437 (make_pass_instance): Invoke PLUGIN_NEW_PASS.
438 (do_per_function_toporder, pass_init_dump_file): No longer static.
439 (pass_fini_dump_file): Likewise.
440 (execute_one_pass): Likewise. Invoke PLUGIN_OVERRIDE_GATE and
441 PLUGIN_PASS_EXECUTION.
442 (execute_ipa_pass_list): Invoke PLUGIN_EARLY_GIMPLE_PASSES_START and
443 PLUGIN_EARLY_GIMPLE_PASSES_END.
444 * plugin.c (plugin_event_name_init): New array, defined by
445 including plugin.def.
446 (FMT_FOR_PLUGIN_EVENT): Update.
447 (plugin_event_name): Change type to const char ** and initialize
448 to plugin_event_name_init.
449 (event_tab, event_last, event_horizon): New variable.
450 (get_event_last): New function.
451 (plugin_callbacks_init): New array.
452 (plugin_callbacks: Change type to struct callback_info **.
453 Initialize to plugin_callbacks_init.
454 (htab_event_eq, get_named_event_id, unregister_callback): New function.
455 (invoke_plugin_va_callbacks): Likewise.
456 (register_callback): Change type of event argument to int.
457 Handle new events. Allow dynamic events.
458 (invoke_plugin_callbacks): Likewise. Return success status.
459 (plugins_active_p): Allow dynamic callbacks.
460 * plugin.def: New file.
461 * plugin.h (invoke_plugin_callbacks): Update prototype.
462 (invoke_plugin_va_callbacks): Declare.
463 * tree-optimize.c (plugin.h): Include.
464 (tree_rest_of_compilation): Invoke PLUGIN_ALL_PASSES_START and
465 PLUGIN_ALL_PASSES_END.
466 * tree-pass.h (execute_one_pass, pass_init_dump_file): Declare.
467 (pass_fini_dump_file, do_per_function_toporder): Likewise.
468 * doc/plugin.texi: Document new event types.
470 2009-12-01 Martin Jambor <mjambor@suse.cz>
472 PR tree-optimization/42237
473 * tree-sra.c (sra_ipa_modify_assign): Split gimple_reg_type assignments
474 in between references into two.
476 2009-12-01 Richard Guenther <rguenther@suse.de>
478 * tree-inline.c (copy_tree_body_r): Do not set TREE_BLOCK
479 to the block of the call when remapping a type.
481 2009-12-01 Martin Jambor <mjambor@suse.cz>
483 * cgraph.h (struct cgraph_edge): Reorder fields. Make loop_nest
485 * ipa-prop.h (struct ipa_param_call_note): Likewise.
486 * ipa-prop.c (ipa_note_param_call): Initialize note->loop_nest.
488 2009-12-01 Richard Guenther <rguenther@suse.de>
490 * final.c (rest_of_clean_state): If -fcompare-debug is
491 given dump final insns without UIDs.
492 * tree-ssa-live.c (remove_unused_scope_block_p): Remove
493 after_inlining checks.
495 2009-11-30 Chao-ying Fu <fu@mips.com>
497 * config/mips/mips-dsp.md (mips_lhx_<mode>): Use sign_extend.
499 2009-11-30 Dave Korn <dave.korn.cygwin@gmail.com>
501 * configure.ac (USE_CYGWIN_LIBSTDCXX_WRAPPERS): Define to reflect
502 status of AC_CHECK_FUNC for Cygwin DLL libstdc++ support wrappers.
503 * configure: Regenerate.
504 * config.in: Regenerate.
506 * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Define list of --wrap
507 options for Cygwin DLL libstdc++ support wrappers.
508 (CXX_WRAP_SPEC_OPT): Define spec to use wrappers or not by default
509 according to defined value of USE_CYGWIN_LIBSTDCXX_WRAPPERS.
510 (CXX_WRAP_SPEC): Define entire wrapper spec in or out according to
511 whether USE_CYGWIN_LIBSTDCXX_WRAPPERS is even defined or not.
512 (LINK_SPEC): Include CXX_WRAP_SPEC.
513 * gcc/config/i386/winnt.c (wrapper_strcmp): New qsort helper function.
514 (i386_find_on_wrapper_list): Check if a function is found on the list
515 of libstdc++ wrapper options.
516 (i386_pe_file_end): If we are importing a wrapped function, also emit
517 an external declaration for the real version.
518 * config/i386/cygming.opt (muse-libstdc-wrappers): New option for
519 Cygwin targets. Update copyright year.
521 2009-11-30 Steve Ellcey <sje@cup.hp.com>
522 Jakub Jelinek <jakub@redhat.com>
524 * function.c (instantiate_virtual_regs_in_insn): Copy to new reg
527 2009-11-30 Anatoly Sokolov <aesok@post.ru>
529 * config/sh/sh.c (sh_promote_prototypes): Make static.
530 (sh_function_value, sh_libcall_value, sh_function_value_regno_p): New
532 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
533 * config/sh/sh.h (FUNCTION_VALUE_REGNO_P): Redefine, use
534 sh_function_value_regno_p.
535 (FUNCTION_VALUE, LIBCALL_VALUE): Remove.
536 * config/sh/sh-protos.h (sh_function_value_regno_p): Declare.
537 (sh_promote_prototypes) : Remove.
539 2009-11-30 Julian Brown <julian@codesourcery.com>
541 * config/arm/arm.h (PREFERRED_RELOAD_CLASS): Don't restrict Thumb-2
544 2009-11-30 Richard Henderson <rth@redhat.com>
546 * config/i386/i386.c (ix86_vec_interleave_v2df_operator_ok): New.
547 (bdesc_special_args): Update insn codes.
548 (avx_vpermilp_parallel): Correct range check.
549 (ix86_rtx_costs): Handle vector permutation rtx codes.
550 (struct expand_vec_perm_d): Move earlier.
551 (get_mode_wider_vector): New.
552 (expand_vec_perm_broadcast_1): New.
553 (ix86_expand_vector_init_duplicate): Use it. Tidy AVX modes.
554 (expand_vec_perm_broadcast): New.
555 (ix86_expand_vec_perm_builtin_1): Use it.
556 * config/i386/i386-protos.h: Update.
557 * config/i386/predicates.md (avx_vbroadcast_operand): New.
558 * config/i386/sse.md (AVX256MODE24P): New.
559 (ssescalarmodesuffix2s): New.
560 (avxhalfvecmode, avxscalarmode): Fill out to all modes.
561 (avxmodesuffixf2c): Add V8SI, V4DI.
562 (vec_dupv4sf): New expander.
563 (*vec_dupv4sf_avx): Add vbroadcastss alternative.
564 (*vec_set<mode>_0_avx, **vec_set<mode>_0_sse4_1): Macro-ize for
565 V4SF and V4SI. Move C alternatives to front. Add insertps and
567 (*vec_set<mode>_0_sse2): Split out from ...
568 (vec_set<mode>_0): Macro-ize for V4SF and V4SI.
569 (vec_interleave_highv2df, vec_interleave_lowv2df): Require register
570 destination; use ix86_vec_interleave_v2df_operator_ok, instead of
571 ix86_fixup_binary_operands.
572 (*avx_interleave_highv2df, avx_interleave_lowv2df): Add movddup.
573 (*sse3_interleave_highv2df, sse3_interleave_lowv2df): New.
574 (*avx_movddup, *sse3_movddup): Remove. New splitter from
575 vec_select form to vec_duplicate form.
576 (*sse2_interleave_highv2df, sse2_interleave_lowv2df): Use
577 ix86_vec_interleave_v2df_operator_ok.
578 (avx_movddup256, avx_unpcklpd256): Change to expanders, merge into ...
579 (*avx_unpcklpd256): ... here.
580 (*vec_dupv4si_avx): New.
581 (*vec_dupv2di_avx): Add movddup alternative.
582 (*vec_dupv2di_sse3): New.
583 (vec_dup<AVX256MODE24P>): Replace avx_vbroadcasts<AVXMODEF4P> and
584 avx_vbroadcastss256; represent with vec_duplicate instead of
585 nested vec_concat operations.
586 (avx_vbroadcastf128_<mode>): Rename from
587 avx_vbroadcastf128_p<avxmodesuffixf2c>256.
588 (*avx_vperm_broadcast_v4sf): New.
589 (*avx_vperm_broadcast_<AVX256MODEF2P>): New.
591 2009-11-30 Martin Jambor <mjambor@suse.cz>
594 * tree-sra.c (struct access): New field grp_different_types.
595 (dump_access): Dump grp_different_types.
596 (compare_access_positions): Prefer scalars and vectors over other
598 (sort_and_splice_var_accesses): Set grp_different_types if appropriate.
599 (sra_modify_expr): Use the original also when dealing with a complex
600 or vector group accessed as multiple types.
602 2009-11-30 Richard Henderson <rth@redhat.com>
604 * config/i386/i386.c (avx_vperm2f128_parallel): New.
605 * config/i386/i386-protos.h: Declare it.
606 * config/i386/predicates.md (avx_vperm2f128_v8sf_operand,
607 avx_vperm2f128_v8si_operand, avx_vperm2f128_v4df_operand): New.
608 * config/i386/sse.md (avx_vperm2f128<mode>3): Change to expander.
609 (*avx_vperm2f128<mode>_full): Renamed from avx_vperm2f128<mode>3.
610 (*avx_vperm2f128<mode>_nozero): New.
612 2009-11-30 Richard Henderson <rth@redhat.com>
614 * config/i386/i386-builtin-types.def (V4DF_FTYPE_V4DF_V4DF_V4DI): New.
615 (V8SF_FTYPE_V8SF_V8SF_V8SI): New.
616 * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Support
617 V4DF and V8SF for AVX; relax constraint on V4SF to SSE1 from SSE2.
618 (IX86_BUILTIN_VEC_PERM_V4DF, IX86_BUILTIN_VEC_PERM_V8SF): New.
619 (bdesc_args): Add them.
620 (ix86_expand_builtin): Expand them.
621 (expand_vec_perm_pshufb2): Only operate on 16-byte vectors.
623 2009-11-30 Martin Jambor <mjambor@suse.cz>
626 * ipa-prop.c (ipa_write_node_info): Initialize note_count to zero.
628 2009-11-30 Jakub Jelinek <jakub@redhat.com>
630 * ipa-reference.c (propagate): Only dump bitmaps if computed.
632 2009-11-30 Olga Golovanevsky <olga@il.ibm.com>
635 * ipa-struct-reorg.c (new_var_eq): Use DECL_UID to hash new variables.
636 (new_var_hash): Likewise.
637 (is_in_new_vars_htab): Likewise.
638 (add_to_new_vars_htab): Likewise.
640 2009-11-30 Ira Rosen <irar@il.ibm.com>
642 * tree-vect-stmts.c (vectorizable_assignment): Support
645 2009-11-30 Richard Guenther <rguenther@suse.de>
647 * doc/contrib.texi (Contributors): Add myself.
649 2009-11-30 Richard Guenther <rguenther@suse.de>
651 * tree.c (free_lang_data): Do not set debug_info_level to
654 2009-11-30 Richard Guenther <rguenther@suse.de>
658 * expr.c (expand_expr_addr_expr_1): Properly expand the initializer
661 2009-11-30 Richard Guenther <rguenther@suse.de>
663 * tree-into-ssa.c (insert_phi_nodes): Add PHI nodes in
666 2009-11-30 Richard Guenther <rguenther@suse.de>
668 * tree-dump.c (dump_option_value_in): Add TDF_NOUID.
669 * tree-pass.h (TDF_NOUID): Likewise.
670 * print-rtl.c: Include tree-pass.h.
671 (print_mem_expr): Pass dump_flags.
672 (print_rtx): Likewise.
673 * print-tree.c: Include tree-pass.h.
674 (print_node_brief): Handle TDF_NOUID.
675 (print_node): Likewise.
676 * tree-pretty-print.c (dump_decl_name): Likewise.
677 (dump_generic_node): Likewise.
678 * Makefile.in (print-rtl.o, print-tree.o): Add $(TREE_PASS_H)
681 2009-11-30 Nick Clifton <nickc@redhat.com>
683 * config/stormy16/stormy16-lib2-count-leading-zeros.c: Delete.
684 * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Remove
685 stormy16-lib2-count-leading-zeros.c.
686 * config/stormy16/stormy16-lib2.c (__clzhi2): Move code from
687 __stormy16_count_leading_zeros() into this function.
688 (__ctzhi2): Use __builtin_clz.
689 (__ffshi2): Likewise.
691 2009-11-30 Eric Botcazou <ebotcazou@adacore.com>
693 * config/sparc/sparc.c (DF_MODES): Simplify.
694 (TF_ONLY_MODES, OF_ONLY_MODES): Delete.
695 (TF_MODES, OF_MODES): Adjust for above change.
696 (TF_MODES_NO_S, OF_MODES_NO_S): Likewise.
697 * config/sparc/sparc.h (REGNO_REG_CLASS): Move around.
699 2009-11-30 Paolo Bonzini <bonzini@gnu.org>
701 PR rtl-optimization/41812
702 * fwprop.c (local_md, local_lr): New globals.
703 (process_defs, process_uses): Remove local_md argument. Never
704 consider dead pseudos to have singleton def-use chains.
705 (single_def_use_enter_block): Perform LR simulation.
706 (build_single_def_use_links): Remove local_md local variable.
707 Add DF_NOTE. Allocate local_lr.
708 (fwprop_done): Do not remove DF_CHAIN, we do not use it anymore.
709 * df-problems.c (df_md_scratch): New.
710 (df_md_alloc, df_md_free): Allocate/free it.
711 (df_md_local_compute): Only include live registers in init.
712 (df_md_transfer_function): Prune the in-set computed by
713 the confluence function, and the gen-set too.
715 2009-11-30 Hans-Peter Nilsson <hp@axis.com>
717 PR rtl-optimization/40086
718 * reorg.c (relax_delay_slots): When looking for redundant insn at
719 the branch target, use next_real_insn, not next_active_insn.
721 2009-11-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
723 * doc/install.texi: Update minimum MPC version to 0.8.
725 2009-09-09 Segher Boessenkool <segher@kernel.crashing.org>
727 * config/rs6000/rs6000.md (fnmaddsf4_powerpc_1): Remove
728 HONOR_SIGNED_ZEROS final condition.
729 (fnmsubsf4_powerpc_1): Same.
730 (fnmadddf4_fpr_1): Same.
731 (fnmsubdf4_fpr_1): Same.
733 2009-11-29 Ira Rosen <irar@il.ibm.com>
735 PR tree-optimization/42193
736 * tree-vect-stmts.c (vectorizable_operation): Set vectorization factor
737 to 1 in case of basic block SLP.
738 (vectorizable_load): Likewise.
740 2009-11-28 Jan Hubicka <jh@suse.cz>
742 * cgraph.c (same_body_alias_1): Break out of
743 (same_body_alias): ... here; remove comdat check; it is handled
745 (cgraph_add_thunk): New.
746 (dump_cgraph_node): Dump aliases and thunks.
747 * cgraph.h (cgraph_thunk_info): New structure.
748 (struct cgraph_node): Add thunk info.
749 (cgraph_add_thunk): New.
750 * cgraphunit.c (cgraph_emit_thunks): Remove.
751 (cgraph_finalize_compilation_unit): Do not call cgraph_emit_thunks.
752 (assemble_thunk): New function.
753 (cgraph_expand_function): Handle thunks.
755 (init_lowered_empty_function): New.
756 * cp-objcp-common.h (LANG_HOOKS_CALLGRAPH_EMIT_ASSOCIATED_THUNKS):
758 * lto-cgraph.c (lto_output_node): Stream thunk info.
759 (input_node): Likewise.
760 * langhooks.h (lang_hooks_for_callgraph): Remove emit_associated_thunks.
761 * langhooks-def.h (LANG_HOOKS_CALLGRAPH_EMIT_ASSOCIATED_THUNKS): Remove.
762 (LANG_HOOKS_CALLGRAPH_INITIALIZER): Update.
763 * i386.c (x86_output_mi_thunk): Make output prettier.
765 2009-11-28 Richard Guenther <rguenther@suse.de>
767 PR tree-optimization/42183
768 * tree-nrv.c (tree_nrv): Bail out if the RESULT_DECL has its
769 address taken. Merge the addressable state of the NRV
770 variable and the result instead of copying it.
772 2009-11-28 Jakub Jelinek <jakub@redhat.com>
774 * matrix-reorg.c (analyze_matrix_allocation_site): Remove unused
775 malloc_fname variable.
776 (check_allocation_function): Remove unused gsi and bb_level_0
778 (transform_access_sites): Remove unused d_type_size and d_type_size_k
780 * omega.c (resurrect_subs): Remove unused n variable.
781 (omega_solve_geq): Remove unused neweqns variable.
782 * lto-streamer-in.c (lto_read_tree): Remove unused end_marker variable.
783 * tree-inline.c (declare_return_variable): Remove USE_P argument,
784 return use instead of var.
785 (remap_decl, remap_block): Remove unused fn variable.
786 (expand_call_inline): Remove unused retvar variable, adjust
787 declare_return_variable caller.
788 (optimize_inline_calls): Remove unused prev_fn variable.
789 * tree-vect-slp.c (vect_analyze_slp_instance): Remove unused ncopies
791 (vect_create_mask_and_perm): Remove unused group_size and dr_chain_size
793 * tree-ssa-loop-niter.c (split_to_var_and_offset): Handle MINUS_EXPR
795 * tree-vect-loop.c (vect_analyze_loop_form): Remove unused backedge
797 (vect_create_epilog_for_reduction): Remove unused bytesize variable.
798 * omp-low.c (workshare_safe_to_combine_p): Remove par_entry_bb
799 parameter. Remove unused par_stmt variable.
800 (determine_parallel_type): Adjust workshare_safe_to_combine_p caller.
801 (expand_omp_sections): Remove unused l1 variable.
802 (lower_omp_for): Remove unused ilist variable.
803 * tree-loop-distribution.c (mark_nodes_having_upstream_mem_writes):
804 Remove unused has_upstream_mem_write_p variable.
805 * recog.c (decode_asm_operands): Remove unused noperands variable.
806 * tree-ssa-alias.c (refs_may_alias_p_1): Remove unused size1 and
808 * libgcov.c (__gcov_merge_delta): Remove unused last variable.
809 * tree-call-cdce.c (gen_conditions_for_pow_int_base): Remove unused
811 (gen_conditions_for_pow): Remove unused ec variable.
812 * tree-ssa-sccvn.c (vn_reference_lookup_3): Remove unused size
814 * ipa-struct-reorg.c (program_redefines_malloc_p): Remove unused
816 * tree-ssa-sink.c (statement_sink_location): Remove unused code
818 * regmove.c (copy_src_to_dest): Remove unused insn_uid and move_uid
820 * tree-complex.c (create_one_component_var): Remove unused inner_type
822 * calls.c (emit_call_1): Don't GEN_INT (struct_value_size)
823 unnecessarily when GEN_*CALL omits that argument.
824 * regrename.c (regrename_optimize): Remove unused regs_seen variable.
825 (build_def_use): Remove unused icode variable.
826 * ipa-pure-const.c (check_call): Remove unused callee and avail
828 * tree-dfa.c (add_referenced_var): Remove unused v_ann variable.
829 * tree-vect-patterns.c (vect_recog_pow_pattern): Remove unused type
831 (vect_pattern_recog): Remove unused stmt variable.
832 * sel-sched-ir.c (make_regions_from_the_rest): Remove unused
833 new_regions variable.
834 * postreload.c (reload_cse_simplify_operands): Remove unused mode
836 * tree-parloops.c (create_call_for_reduction_1): Remove unused
838 (create_parallel_loop): Remove unused res variable.
839 (gen_parallel_loop): Remove unused nloop variable.
840 * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
841 * value-prof.c (gimple_mod_subtract_transform,
842 gimple_stringops_transform): Remove unused value variable.
843 (gimple_stringops_values_to_profile): Remove unused fcode variable.
844 * tree-vrp.c (register_new_assert_for): Remove unused found variable.
845 (vrp_visit_switch_stmt): Remove unused n variable.
846 * tree-vect-stmts.c (vectorizable_conversion): Remove unused expr
848 (vectorizable_operation): Remove unused shift_p variable.
849 (vectorizable_store): Remove unused first_stmt_vinfo variable.
850 * tree-ssa-operands.c (add_stmt_operand): Remove unused v_ann variable.
851 * tree-vect-data-refs.c (vect_analyze_data_refs): Remove unused bb
853 (vect_permute_store_chain): Remove unused scalar_dest variable.
854 (vect_supportable_dr_alignment): Remove unused invariant_in_outerloop
856 * tree-ssa-threadupdate.c (thread_single_edge): Remove unused
858 * tree-optimize.c (tree_rest_of_compilation): Remove unused node
860 * optabs.c (expand_binop): Remove unused equiv_value variable.
861 (emit_libcall_block): Remove unused prev variable.
862 (init_optabs): Remove unused int_mode variable.
863 * tree-ssa-structalias.c (scc_visit): Remove unused have_ref_node
865 (do_structure_copy): Remove unused lhsbase and rhsbase variables.
866 (find_func_aliases): Remove unused rhstype variable.
867 (ipa_pta_execute): Remove unused varid variable.
869 2009-11-28 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
871 * config/avr/avr.h (ASM_OUTPUT_EXTERNAL): Add.
873 2009-11-28 David Binderman <dcb314@hotmail.com>
875 * ira-color.c (put_allocno_into_bucket): Remove set but not used
876 local variable hard_regs_num.
877 * ira-lives.c (process_single_reg_class_operands): Remove cover_class.
878 * loop-unswitch.c (unswitch_loop): Remove zero_bitmap.
879 * lower-subreg.c (decompose_multiword_subregs): Remove next.
881 2009-11-27 Martin Jambor <mjambor@suse.cz>
884 * tree-sra.c (get_replaced_param_substitute): Call create_tmp_var
885 instead of create_tmp_var. Set DECL_GIMPLE_REG_P to one manually
886 for vector and complex types.
887 (get_adjustment_for_base): Describe return value in the comment.
889 2009-11-27 Nick Clifton <nickc@redhat.com>
891 * longlong.h (count_leading_zeros): Define macro for stormy16 target.
892 (COUNT_LEADING_ZEROS_0): Likewise.
893 * config/stormy16/stormy16-lib2.c: Arrange for separate
894 compilation of each function.
895 (__ffshi2): New function.
896 (__stormy16_count_leading_zeros): New function.
897 * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Use stub files to
898 compile each function into its own object file.
899 (stormy16-lib2-ashlsi3.c): New stub file.
900 (stormy16-lib2-ashrsi3.c): New stub file.
901 (stormy16-lib2-clzhi2.c): New stub file.
902 (stormy16-lib2-count-leading-zeros.c): New stub file.
903 (stormy16-lib2-ctzhi2.c): New stub file.
904 (stormy16-lib2-divsi3.c): New stub file.
905 (stormy16-lib2-ffshi2.c): New stub file.
906 (stormy16-lib2-lshrsi3.c): New stub file.
907 (stormy16-lib2-modsi3.c): New stub file.
908 (stormy16-lib2-parityhi2.c): New stub file.
909 (stormy16-lib2-popcounthi2.c): New stub file.
910 (stormy16-lib2-udivmodsi4.c): New stub file.
911 (stormy16-lib2-udivsi3.c): New stub file.
912 (stormy16-lib2-umodsi3.c): New stub file.
914 2009-11-27 Richard Henderson <rth@redhat.com>
916 * config/i386/sse.md (vec_interleave_highv16qi,
917 vec_interleave_lowv16qi, vec_interleave_highv8hi,
918 vec_interleave_lowv8hi, vec_interleave_highv4si,
919 vec_interleave_lowv4si, vec_interleave_highv2di,
920 vec_interleave_lowv2di, vec_interleave_highv4sf,
921 vec_interleave_lowv4sf, vec_interleave_highv2df,
922 vec_interleave_lowv2df): Remove expanders.
923 (sse_unpcklps, sse_unpckhps, sse2_unpckhpd_exp, sse2_unpcklpd_exp,
924 sse2_punpckhqdq, sse2_punpcklqdq, sse2_punpckhbw, sse2_punpcklbw,
925 sse2_punpckhwd, sse2_punpcklwd, sse2_punpckhdq, sse2_punpckldq):
926 Rename to their proper vec_interleave equivalent. Update all users
928 * config/i386/i386.c, config/i386/i386.md: Update all users.
930 2009-11-27 Michael Matz <matz@suse.de>
932 PR rtl-optimization/42084
933 * cfgexpand.c (maybe_cleanup_end_of_block): Add new parameter,
934 use it to stop walking.
935 (expand_gimple_cond): Adjust call to above.
937 2009-11-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
940 * gthr-solaris.h (__gthread_mutex_destroy): Remove UNUSED.
941 [SUPPORTS_WEAK && GTHREAD_USE_WEAK] (__gthread_active_p): Use
942 __extension__ to allow cast from function pointer to object
944 * doc/install.texi (--enable-threads): Clarify use of Solaris threads.
946 2009-11-27 Steven Bosscher <steven@gcc.gnu.org>
948 * config/ia64/itanium1.md: Remove.
949 * config/ia64/ia64.md: Do not include it.
950 * config/ia64/ia64.c (ia64_handle_option): Remove "itanium",
951 "itanium1", and "merced" from the processor alias table.
952 (clocks, add_cycles): Remove global variables.
953 (ia64_sched_reorder2): Don't set/use them.
954 (ia64_dfa_new_cycle, ia64_h_i_d_extended, ia64_reorg): Likewise.
955 (bundling): Likewise. Remove extra pass for MMMUL/MMSHF.
957 2009-11-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
959 * config/s390/s390.c (last_scheduled_insn): New variable.
960 (s390_fpload_toreg, s390_z10_prevent_earlyload_conflicts): New
962 (s390_sched_reorder, s390_sched_variable_issue): New functions.
963 (TARGET_SCHED_VARIABLE_ISSUE, TARGET_SCHED_REORDER): Target hooks
966 2009-11-27 Michael Matz <matz@suse.de>
969 * tree-eh.c (lower_catch): Stop after expanding a catch-all.
971 2009-11-27 Richard Guenther <rguenther@suse.de>
973 * timevar.def (TV_LOOP_MOVE_INVARIANTS, TV_LOOP_UNSWITCH,
974 TV_LOOP_UNROLL, TV_LOOP_DOLOOP): New timevars.
975 * loop-init.c (pass_rtl_move_loop_invariants): Use
976 TV_LOOP_MOVE_INVARIANTS.
977 (pass_rtl_unswitch): Use TV_LOOP_UNSWITCH.
978 (pass_rtl_unroll_and_peel): Use TV_LOOP_UNROLL.
979 (pass_rtl_doloop): Use TV_LOOP_DOLOOP.
981 2009-11-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
983 * emit-rtl.c (next_active_insn, prev_active_insn): Correct comment.
985 2009-11-27 Jakub Jelinek <jakub@redhat.com>
987 * config/i386/i386.c (ix86_emit_restore_sse_regs_using_mov): Remove
988 unused insn variable.
989 * genemit.c (output_peephole2_scratches): Only declare and initialize
990 _regs_allocated if it will be ever used.
991 * cfgloopmanip.c (create_empty_if_region_on_edge): Remove unused
993 (create_empty_loop_on_edge): Remove unused freq and cnt variables.
994 * unwind-c.c (PERSONALITY_FUNCTION): Remove unused action_record
997 * opts.c (decode_options): If optimize is bigger than 255,
1000 2009-11-26 Richard Henderson <rth@redhat.com>
1002 * config/i386/sse.md (mulv16qi3): Change back from an expander
1003 to an insn-and-split.
1004 (mulv4si): Mention AVX not XOP for AVX exception.
1005 (*sse2_mulv4si3): Likewise.
1006 (mulv2di3): Use vmulld not vpmacsdd for XOP expansion. Tidy.
1008 2009-11-26 Bernd Schmidt <bernd.schmidt@analog.com>
1010 * cfgexpand (n_stack_vars_conflict): New static variable.
1011 (triangular_index): Reduce likelyhood of overflow by performing
1012 the division before the multiplication.
1013 (resize_stack_vars_conflict): Call fatal_error if overflow
1014 occurred in triangular_index. Update n_stack_vars_conflict.
1017 * regrename.c (struct du_chain): Remove member earlyclobber.
1018 (scan_rtx_reg): Don't set it. Remove argument earlyclobber,
1019 all callers changed.
1020 (scan_rtx): Remove argument earlyclobber, all callers changed.
1021 (hide_operands, restore_operands, record_out_operands): New functions,
1022 broken out of build_def_use.
1023 (build_def_use): Call them as necessary.
1025 * regrename.c (struct du_head): New members id, conflicts,
1026 hard_conflicts and cannot_rename.
1027 (enum scan_actions): Remove terminate_all_read and
1028 terminate_overlapping_read; add mark_all_read.
1029 (scan_actions_name): Likewise.
1030 (du_head_p): New typedef. Define a vector type for it.
1031 (id_to_chain): New static variable.
1032 (note_sets, clear_dead_regs): Delete functions.
1033 (free_chain_data): New function.
1034 (merge_overlapping_regs): Simply walk the conflicts bitmap.
1035 Remove argument B, all callers changed.
1036 (regrename_optimize): Allocate id_to_chain. Ignore chains that have
1037 the cannot_rename bit set. Update regno and nregs of a renamed chain.
1038 Call free_chain_data when done.
1039 (do_replace): Remove death notes when the renamed reg is set in the
1040 last insn; add them if not.
1041 (mark_conflict, note_sets_clobbers): New static function.
1042 (fail_current_block, current_id, open_chains_set, live_hard_regs): New
1044 (scan_rtx_reg): Keep track of conflicts between chains, and between
1045 chains and hard regs. Don't terminate chains when we find a read we
1046 can't handle, mark it unrenameable instead. For terminate_write,
1047 terminate chains that are written with an exact match or a superset
1048 of registers. Set fail_current_block if multi-word lifetimes are too
1050 (scan_rtx_address): Use mark_all_read instead of terminate_all_read.
1051 (build_def_use): Initialize current_id, live_chains and live_hard_regs;
1052 free memory for them when done.
1053 Rearrange the steps so that earlyclobbers are noted before reads
1054 are processed. Add new steps to keep track of hard register lifetimes
1055 outside insn operands.
1057 2009-11-26 Richard Guenther <rguenther@suse.de>
1059 * tree-ssa-dce.c (nr_walks): New variable.
1060 (mark_aliased_reaching_defs_necessary): Adjust oracle cut-off.
1061 (perform_tree_ssa_dce): Init nr_walks.
1063 2009-11-26 Michael Matz <matz@suse.de>
1065 PR tree-optimization/41905
1066 * tree-eh.c (lower_eh_constructs_2): Don't add assignments
1067 below statements that can't fall thru.
1069 2009-11-26 Michael Matz <matz@suse.de>
1071 * builtins.c (expand_builtin_printf, expand_builtin_fprintf,
1072 expand_builtin_sprintf): Remove.
1073 (expand_builtin): Don't call them.
1075 2009-11-26 Richard Guenther <rguenther@suse.de>
1077 * tree-ssa-dce.c (perform_tree_ssa_dce): Allocate visited bitmap.
1079 2009-11-26 Nick Clifton <nickc@redhat.com>
1081 * config/rx/rx.c (rx_expand_epilogue): Add checks for sibcalls
1082 being used incorrectly.
1083 (rx_function_ok_for_sibcall): New function. Do not allow indirect
1084 sibcalls, or sibcalls from interrupt functions.
1085 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define.
1086 * config/rx/rx.md (sibcall): Convert to a define_expand. Check
1087 for a MEM inside a MEM.
1088 (sibcall_value): Likewise.
1089 (sibcall_internal): New pattern containing old sibcall pattern.
1090 (sibcall_value_internal): Likewise.
1092 2009-11-25 Richard Henderson <rth@redhat.com>
1094 * config/i386/i386-builtin-types.awk (DEF_VECTOR_TYPE): Allow an
1095 optional 3rd argument to define the mode.
1096 * config/i386/i386-builtin-types.def (UQI, UHI, USI, UDI): New.
1097 (V2UDI, V4USI, V8UHI, V16UQI): New.
1098 (V4SF_FTYPE_V4SF_V4SF_V4SI, V2UDI_FTYPE_V2UDI_V2UDI_V2UDI,
1099 V4USI_FTYPE_V4USI_V4USI_V4USI, V8UHI_FTYPE_V8UHI_V8UHI_V8UHI,
1100 V16UQI_FTYPE_V16UQI_V16UQI_V16UQI): New.
1101 * config/i386/i386-modes.def: Rearrange for double-wide AVX.
1102 * config/i386/i386-protos.h (ix86_expand_vec_extract_even_odd): New.
1103 * config/i386/i386.c (IX86_BUILTIN_VEC_PERM_*): New.
1104 (bdesc_args): Add the builtin definitions to match.
1105 (ix86_expand_builtin): Expand them.
1106 (ix86_builtin_vectorization_cost): Rename from
1107 x86_builtin_vectorization_cost.
1108 (ix86_vectorize_builtin_vec_perm, struct expand_vec_perm_d,
1109 doublesize_vector_mode, expand_vselect, expand_vselect_vconcat,
1110 expand_vec_perm_blend, expand_vec_perm_vpermil,
1111 expand_vec_perm_pshufb, expand_vec_perm_1,
1112 expand_vec_perm_pshuflw_pshufhw, expand_vec_perm_palignr,
1113 expand_vec_perm_interleave2, expand_vec_perm_pshufb2,
1114 expand_vec_perm_even_odd_1, expand_vec_perm_even_odd,
1115 ix86_expand_vec_perm_builtin_1, extract_vec_perm_cst,
1116 ix86_expand_vec_perm_builtin, ix86_vectorize_builtin_vec_perm_ok,
1117 ix86_expand_vec_extract_even_odd, TARGET_VECTORIZE_BUILTIN_VEC_PERM,
1118 TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): New.
1119 * sse.md (SSEMODE_EO): New.
1120 (vec_extract_even<mode>): Use SSEMODE_EO and
1121 ix86_expand_vec_extract_even_odd.
1122 (vec_extract_odd<mode>): Likewise.
1123 (mulv16qi3, vec_pack_trunc_v8hi, vec_pack_trunc_v4si,
1124 vec_pack_trunc_v2di): Use ix86_expand_vec_extract_even_odd.
1126 2009-11-25 Richard Henderson <rth@redhat.com>
1128 * target.h (targetm.vectorize.builtin_vec_perm_ok): New.
1129 * target-def.h (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): New.
1130 * hooks.h, hooks.c (hook_bool_tree_tree_true): New.
1131 * tree-vect-slp.c (vect_create_mask_and_perm): Don't create
1132 the vector constant here...
1133 (vect_transform_slp_perm_load): ... do it here instead. Validate
1134 that the permutation vector is implementable by the target.
1136 2009-11-25 Jakub Jelinek <jakub@redhat.com>
1138 * config/rs6000/sysv4.opt (mregnames): Change Var to rs6000_regnames.
1139 * config/rs6000/sysv4.h (TARGET_REGNAMES): Define.
1141 * print-rtl.c (print_rtx): When printing newline, append
1142 print_rtx_head and indentation after the newline.
1145 * config/i386/i386.c (print_operand): For 32-byte memory use
1146 YMMWORD in -masm=intel mode. Use TBYTE instead of XWORD.
1147 * config/i386/i386.md (crc32modesuffix): Expand to nothing
1148 in -masm=intel mode.
1149 (sse4_2_crc32di): Print just crc32 instead of crc32q in
1151 * config/i386/mmx.md (*mmx_pinsrw): Print correct size of
1152 memory operand in -masm=intel mode.
1153 * config/i386/sse.md (*avx_pinsr<ssevecsize>, *sse4_1_pinsrb,
1154 *sse2_pinsrw): Likewise.
1155 (sse_cvtss2siq, sse_cvtss2siq_2, sse_cvttss2siq): Don't print
1156 q suffix in -masm=intel mode.
1158 2009-11-25 Eric Botcazou <ebotcazou@adacore.com>
1163 * dwarf2out.c (dwarf2out_args_size_adjust): Rename to...
1164 (dwarf2out_stack_adjust): ...this. Do not adjust the arg size for
1165 ACCUMULATE_OUTGOING_ARGS targets. Rename former version to...
1166 (dwarf2out_notice_stack_adjust): ...this. Adjust for above renaming.
1167 (dwarf2out_frame_debug_expr): Revert previous change and adjust for
1169 (dwarf2out_frame_debug): Add ??? comment. Adjust for above renaming.
1171 2009-11-25 Uros Bizjak <ubizjak@gmail.com>
1173 * config/i386/predicates.md (emms_operation): New predicate.
1174 (vzeroupper_operation): Ditto.
1175 (vzeroall_operation): Improve pattern recognition.
1176 * config/i386/sse.md (avx_vzeroupper_rex64): Remove insn pattern.
1177 (avx_vzeroupper): Change insn pattern to expander.
1178 (*avx_vzeroupper): New insn pattern. Use vzeroupper_operation
1180 (*avx_vzeroall): Remove operands 1 and 2.
1181 * config/i386/mmx.md (mmx_emms): Change insn pattern to expander.
1183 (*mmx_emms): New insn pattern. Use emms_operation predicate.
1184 (*mmx_femms): Ditto.
1185 * config/i386/i386.c (enum ix86_builtins)
1186 <IX86_BUILTIN_VZEROUPPER_REX64>: Remove.
1187 (struct builtin_description) <CODE_FOR_avx_vzeroupper_rex64>:
1188 Remove initailization.
1189 <CODE_FOR_avx_vzeroupper>: Unconditionally initialize here.
1191 2009-11-25 Paul Brook <paul@codesourcery.com>
1193 * config/arm/arm.md (consttable_4): Handle (high ...).
1195 2009-11-25 Robert Nelson <robert.nelson@digikey.com>
1196 Richard Earnshaw <rearnsha@arm.com>
1198 * arm.h (enum vfp_reg_type): Add VFP_NONE.
1199 * arm.c (all_fpus): Use it for floating point units that aren't based
1200 on the VFP architecture.
1201 (aapcs_vfp_is_call_or_return_candidate): Make base_mode a pointer to
1204 2009-11-25 H.J. Lu <hongjiu.lu@intel.com>
1206 * alias.c: Remove trailing white spaces.
1207 * alloc-pool.c: Likewise.
1208 * alloc-pool.h: Likewise.
1209 * attribs.c: Likewise.
1210 * auto-inc-dec.c: Likewise.
1211 * basic-block.h: Likewise.
1212 * bb-reorder.c: Likewise.
1213 * bt-load.c: Likewise.
1214 * builtins.c: Likewise.
1215 * builtins.def: Likewise.
1216 * c-common.c: Likewise.
1217 * c-common.h: Likewise.
1218 * c-cppbuiltin.c: Likewise.
1219 * c-decl.c: Likewise.
1220 * c-format.c: Likewise.
1221 * c-lex.c: Likewise.
1222 * c-omp.c: Likewise.
1223 * c-opts.c: Likewise.
1224 * c-parser.c: Likewise.
1225 * c-pretty-print.c: Likewise.
1226 * c-tree.h: Likewise.
1227 * c-typeck.c: Likewise.
1228 * caller-save.c: Likewise.
1229 * calls.c: Likewise.
1231 * cfganal.c: Likewise.
1232 * cfgexpand.c: Likewise.
1233 * cfghooks.c: Likewise.
1234 * cfghooks.h: Likewise.
1235 * cfglayout.c: Likewise.
1236 * cfgloop.c: Likewise.
1237 * cfgloop.h: Likewise.
1238 * cfgloopmanip.c: Likewise.
1239 * cfgrtl.c: Likewise.
1240 * cgraph.c: Likewise.
1241 * cgraph.h: Likewise.
1242 * cgraphbuild.c: Likewise.
1243 * cgraphunit.c: Likewise.
1244 * cif-code.def: Likewise.
1245 * collect2.c: Likewise.
1246 * combine.c: Likewise.
1247 * convert.c: Likewise.
1248 * coverage.c: Likewise.
1249 * crtstuff.c: Likewise.
1251 * cselib.c: Likewise.
1252 * dbgcnt.c: Likewise.
1253 * dbgcnt.def: Likewise.
1254 * dbgcnt.h: Likewise.
1255 * dbxout.c: Likewise.
1259 * defaults.h: Likewise.
1260 * df-byte-scan.c: Likewise.
1261 * df-core.c: Likewise.
1262 * df-problems.c: Likewise.
1263 * df-scan.c: Likewise.
1266 * diagnostic.c: Likewise.
1267 * diagnostic.h: Likewise.
1268 * dominance.c: Likewise.
1269 * domwalk.c: Likewise.
1270 * double-int.c: Likewise.
1271 * double-int.h: Likewise.
1273 * dwarf2asm.c: Likewise.
1274 * dwarf2asm.h: Likewise.
1275 * dwarf2out.c: Likewise.
1276 * ebitmap.c: Likewise.
1277 * ebitmap.h: Likewise.
1278 * emit-rtl.c: Likewise.
1279 * et-forest.c: Likewise.
1280 * except.c: Likewise.
1281 * except.h: Likewise.
1282 * expmed.c: Likewise.
1285 * final.c: Likewise.
1286 * flags.h: Likewise.
1287 * fold-const.c: Likewise.
1288 * function.c: Likewise.
1289 * function.h: Likewise.
1290 * fwprop.c: Likewise.
1292 * gcov-dump.c: Likewise.
1293 * gcov-io.c: Likewise.
1294 * gcov-io.h: Likewise.
1297 * genattr.c: Likewise.
1298 * genattrtab.c: Likewise.
1299 * genautomata.c: Likewise.
1300 * genchecksum.c: Likewise.
1301 * genconfig.c: Likewise.
1302 * genflags.c: Likewise.
1303 * gengtype-parse.c: Likewise.
1304 * gengtype.c: Likewise.
1305 * gengtype.h: Likewise.
1306 * genmddeps.c: Likewise.
1307 * genmodes.c: Likewise.
1308 * genopinit.c: Likewise.
1309 * genpreds.c: Likewise.
1310 * gensupport.c: Likewise.
1311 * ggc-common.c: Likewise.
1312 * ggc-page.c: Likewise.
1313 * ggc-zone.c: Likewise.
1315 * gimple-iterator.c: Likewise.
1316 * gimple-low.c: Likewise.
1317 * gimple-pretty-print.c: Likewise.
1318 * gimple.c: Likewise.
1319 * gimple.def: Likewise.
1320 * gimple.h: Likewise.
1321 * gimplify.c: Likewise.
1322 * graphds.c: Likewise.
1323 * graphite-clast-to-gimple.c: Likewise.
1324 * gthr-nks.h: Likewise.
1325 * gthr-posix.c: Likewise.
1326 * gthr-posix.h: Likewise.
1327 * gthr-posix95.h: Likewise.
1328 * gthr-single.h: Likewise.
1329 * gthr-tpf.h: Likewise.
1330 * gthr-vxworks.h: Likewise.
1332 * haifa-sched.c: Likewise.
1333 * hard-reg-set.h: Likewise.
1334 * hooks.c: Likewise.
1335 * hooks.h: Likewise.
1336 * hosthooks.h: Likewise.
1337 * hwint.h: Likewise.
1338 * ifcvt.c: Likewise.
1339 * incpath.c: Likewise.
1340 * init-regs.c: Likewise.
1341 * integrate.c: Likewise.
1342 * ipa-cp.c: Likewise.
1343 * ipa-inline.c: Likewise.
1344 * ipa-prop.c: Likewise.
1345 * ipa-pure-const.c: Likewise.
1346 * ipa-reference.c: Likewise.
1347 * ipa-struct-reorg.c: Likewise.
1348 * ipa-struct-reorg.h: Likewise.
1349 * ipa-type-escape.c: Likewise.
1350 * ipa-type-escape.h: Likewise.
1351 * ipa-utils.c: Likewise.
1352 * ipa-utils.h: Likewise.
1354 * ira-build.c: Likewise.
1355 * ira-color.c: Likewise.
1356 * ira-conflicts.c: Likewise.
1357 * ira-costs.c: Likewise.
1358 * ira-emit.c: Likewise.
1359 * ira-int.h: Likewise.
1360 * ira-lives.c: Likewise.
1363 * lambda-code.c: Likewise.
1364 * lambda-mat.c: Likewise.
1365 * lambda-trans.c: Likewise.
1366 * lambda.h: Likewise.
1367 * langhooks.c: Likewise.
1369 * libgcov.c: Likewise.
1370 * lists.c: Likewise.
1371 * loop-doloop.c: Likewise.
1372 * loop-init.c: Likewise.
1373 * loop-invariant.c: Likewise.
1374 * loop-iv.c: Likewise.
1375 * loop-unroll.c: Likewise.
1376 * lower-subreg.c: Likewise.
1377 * lto-cgraph.c: Likewise.
1378 * lto-compress.c: Likewise.
1379 * lto-opts.c: Likewise.
1380 * lto-section-in.c: Likewise.
1381 * lto-section-out.c: Likewise.
1382 * lto-streamer-in.c: Likewise.
1383 * lto-streamer-out.c: Likewise.
1384 * lto-streamer.c: Likewise.
1385 * lto-streamer.h: Likewise.
1386 * lto-symtab.c: Likewise.
1387 * lto-wpa-fixup.c: Likewise.
1388 * matrix-reorg.c: Likewise.
1390 * mode-switching.c: Likewise.
1391 * modulo-sched.c: Likewise.
1392 * omega.c: Likewise.
1393 * omega.h: Likewise.
1394 * omp-low.c: Likewise.
1395 * optabs.c: Likewise.
1396 * optabs.h: Likewise.
1397 * opts-common.c: Likewise.
1399 * params.def: Likewise.
1400 * params.h: Likewise.
1401 * passes.c: Likewise.
1402 * plugin.c: Likewise.
1403 * postreload-gcse.c: Likewise.
1404 * postreload.c: Likewise.
1405 * predict.c: Likewise.
1406 * predict.def: Likewise.
1407 * pretty-print.c: Likewise.
1408 * pretty-print.h: Likewise.
1409 * print-rtl.c: Likewise.
1410 * print-tree.c: Likewise.
1411 * profile.c: Likewise.
1412 * read-rtl.c: Likewise.
1414 * recog.c: Likewise.
1415 * reg-stack.c: Likewise.
1416 * regcprop.c: Likewise.
1417 * reginfo.c: Likewise.
1418 * regmove.c: Likewise.
1419 * regrename.c: Likewise.
1421 * regstat.c: Likewise.
1422 * reload.c: Likewise.
1423 * reload1.c: Likewise.
1424 * resource.c: Likewise.
1426 * rtl.def: Likewise.
1428 * rtlanal.c: Likewise.
1429 * sbitmap.c: Likewise.
1430 * sched-deps.c: Likewise.
1431 * sched-ebb.c: Likewise.
1432 * sched-int.h: Likewise.
1433 * sched-rgn.c: Likewise.
1434 * sched-vis.c: Likewise.
1435 * sdbout.c: Likewise.
1436 * sel-sched-dump.c: Likewise.
1437 * sel-sched-dump.h: Likewise.
1438 * sel-sched-ir.c: Likewise.
1439 * sel-sched-ir.h: Likewise.
1440 * sel-sched.c: Likewise.
1441 * sel-sched.h: Likewise.
1444 * simplify-rtx.c: Likewise.
1445 * stack-ptr-mod.c: Likewise.
1447 * stor-layout.c: Likewise.
1448 * store-motion.c: Likewise.
1449 * stringpool.c: Likewise.
1450 * stub-objc.c: Likewise.
1451 * sync-builtins.def: Likewise.
1452 * target-def.h: Likewise.
1453 * target.h: Likewise.
1454 * targhooks.c: Likewise.
1455 * targhooks.h: Likewise.
1456 * timevar.c: Likewise.
1457 * tlink.c: Likewise.
1458 * toplev.c: Likewise.
1459 * toplev.h: Likewise.
1460 * tracer.c: Likewise.
1461 * tree-affine.c: Likewise.
1462 * tree-affine.h: Likewise.
1463 * tree-browser.def: Likewise.
1464 * tree-call-cdce.c: Likewise.
1465 * tree-cfg.c: Likewise.
1466 * tree-cfgcleanup.c: Likewise.
1467 * tree-chrec.c: Likewise.
1468 * tree-chrec.h: Likewise.
1469 * tree-complex.c: Likewise.
1470 * tree-data-ref.c: Likewise.
1471 * tree-data-ref.h: Likewise.
1472 * tree-dfa.c: Likewise.
1473 * tree-dump.c: Likewise.
1474 * tree-dump.h: Likewise.
1475 * tree-eh.c: Likewise.
1476 * tree-flow-inline.h: Likewise.
1477 * tree-flow.h: Likewise.
1478 * tree-if-conv.c: Likewise.
1479 * tree-inline.c: Likewise.
1480 * tree-into-ssa.c: Likewise.
1481 * tree-loop-distribution.c: Likewise.
1482 * tree-loop-linear.c: Likewise.
1483 * tree-mudflap.c: Likewise.
1484 * tree-nested.c: Likewise.
1485 * tree-nomudflap.c: Likewise.
1486 * tree-nrv.c: Likewise.
1487 * tree-object-size.c: Likewise.
1488 * tree-optimize.c: Likewise.
1489 * tree-outof-ssa.c: Likewise.
1490 * tree-parloops.c: Likewise.
1491 * tree-pass.h: Likewise.
1492 * tree-phinodes.c: Likewise.
1493 * tree-predcom.c: Likewise.
1494 * tree-pretty-print.c: Likewise.
1495 * tree-profile.c: Likewise.
1496 * tree-scalar-evolution.c: Likewise.
1497 * tree-ssa-address.c: Likewise.
1498 * tree-ssa-alias.c: Likewise.
1499 * tree-ssa-ccp.c: Likewise.
1500 * tree-ssa-coalesce.c: Likewise.
1501 * tree-ssa-copy.c: Likewise.
1502 * tree-ssa-copyrename.c: Likewise.
1503 * tree-ssa-dce.c: Likewise.
1504 * tree-ssa-dom.c: Likewise.
1505 * tree-ssa-dse.c: Likewise.
1506 * tree-ssa-forwprop.c: Likewise.
1507 * tree-ssa-ifcombine.c: Likewise.
1508 * tree-ssa-live.c: Likewise.
1509 * tree-ssa-live.h: Likewise.
1510 * tree-ssa-loop-ch.c: Likewise.
1511 * tree-ssa-loop-im.c: Likewise.
1512 * tree-ssa-loop-ivcanon.c: Likewise.
1513 * tree-ssa-loop-ivopts.c: Likewise.
1514 * tree-ssa-loop-manip.c: Likewise.
1515 * tree-ssa-loop-niter.c: Likewise.
1516 * tree-ssa-loop-prefetch.c: Likewise.
1517 * tree-ssa-loop-unswitch.c: Likewise.
1518 * tree-ssa-loop.c: Likewise.
1519 * tree-ssa-math-opts.c: Likewise.
1520 * tree-ssa-operands.c: Likewise.
1521 * tree-ssa-operands.h: Likewise.
1522 * tree-ssa-phiopt.c: Likewise.
1523 * tree-ssa-phiprop.c: Likewise.
1524 * tree-ssa-pre.c: Likewise.
1525 * tree-ssa-propagate.c: Likewise.
1526 * tree-ssa-reassoc.c: Likewise.
1527 * tree-ssa-sccvn.c: Likewise.
1528 * tree-ssa-sink.c: Likewise.
1529 * tree-ssa-structalias.c: Likewise.
1530 * tree-ssa-ter.c: Likewise.
1531 * tree-ssa-threadedge.c: Likewise.
1532 * tree-ssa-threadupdate.c: Likewise.
1533 * tree-ssa-uncprop.c: Likewise.
1534 * tree-ssa.c: Likewise.
1535 * tree-ssanames.c: Likewise.
1536 * tree-switch-conversion.c: Likewise.
1537 * tree-tailcall.c: Likewise.
1538 * tree-vect-data-refs.c: Likewise.
1539 * tree-vect-generic.c: Likewise.
1540 * tree-vect-loop-manip.c: Likewise.
1541 * tree-vect-loop.c: Likewise.
1542 * tree-vect-patterns.c: Likewise.
1543 * tree-vect-slp.c: Likewise.
1544 * tree-vect-stmts.c: Likewise.
1545 * tree-vectorizer.c: Likewise.
1546 * tree-vectorizer.h: Likewise.
1547 * tree-vrp.c: Likewise.
1549 * tree.def: Likewise.
1551 * treestruct.def: Likewise.
1552 * unwind-compat.c: Likewise.
1553 * unwind-dw2-fde-glibc.c: Likewise.
1554 * unwind-dw2.c: Likewise.
1555 * value-prof.c: Likewise.
1556 * value-prof.h: Likewise.
1557 * var-tracking.c: Likewise.
1558 * varasm.c: Likewise.
1559 * varpool.c: Likewise.
1562 * vmsdbgout.c: Likewise.
1564 * xcoffout.c: Likewise.
1566 2009-11-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1568 * pa.c (output_call): Only use sr4 for long interspace calls if
1569 call binds local and generating non PIC code.
1570 (attr_length_call): Adjust length calculation for above.
1572 2009-11-25 Uros Bizjak <ubizjak@gmail.com>
1574 * config/i386/i386.md (plusminus_carry_mnemonic): New code attribute.
1575 (add<mode>3_carry): Change operand order of plus RTX.
1576 (*add<mode>3_carry): Ditto.
1577 (*addsi3_carry_zext): Ditto.
1578 (*add<dwi>3_doubleword): Update for changed operand order.
1579 (*negti2_1 splitter): Ditto.
1580 (*negdi2_1 splitter): Ditto.
1581 (<plusminus_insn><mode>3_carry): Macroize expander from
1582 {add,sub}<mode>3_carry patterns using plusminus code iterator.
1583 (*<plusminus_insn><mode>3_carry): Macroize insn from
1584 *{add,sub}<mode>3_carry patetrns using plusminus code iterator.
1585 (neg<mode>2): Macroize expander from neg{qi,hi,si,di,ti}2
1586 patterns using SDWIM mode iterator.
1587 (*neg<dwi>2_doubleword): New insn_and_split pattern. Macroize
1588 pattern from *neg{di,ti}2_1 patterns and corresponding splitters
1589 using DWIH mode iterator.
1590 (*neg<mode>2_1): Macroize insn from neg{qi,hi,si,di}2_1 patterns
1591 using SWI mode iterator.
1592 (*neg<mode>2_cmpz): Ditto from neg{qi,hi,si,di}2_cmpz patterns.
1593 (one_cmpl<mode>2): Macroize expander from one_cmpl{qi,hi,si,di}2
1594 patterns using SWIM mode iterator.
1595 (*one_cmpl<mode>2_1): Macroize insn from one_cmpl{hi,si,di}2_1
1596 patterns using SWI248 mode iterator.
1597 (*one_cmpl<mode>2_2): Macroize insn from one_cmpl{qi,hi,si,di}2_2
1598 patterns using SWI mode iterator.
1599 (*one_cmpl<mode>2_2 splitter): Macroize splitter from
1600 one_cmpl{qi,hi,si,di}2_2 splitter patterns using SWI mode iterator.
1602 2009-11-24 Michael Matz <matz@suse.de>
1604 * expr.c (set_storage_via_libcall): Fix build_call_expr call.
1606 2009-11-24 David Binderman <dcb314@hotmail.com>
1608 * expr.c (store_field): Remove set but not used local variable
1610 (expand_expr_real_2): Remove treeop2.
1611 * gcse.c (update_ld_motion_stores): Remove new_rtx.
1612 * haifa-sched.c (max_issue): Remove points.
1613 (sched_create_recovery_edges): Remove e.
1614 * ira-costs.c (setup_allocno_cover_class_and_costs): Remove mode.
1616 2009-11-24 Nick Clifton <nickc@redhat.com>
1618 * config/v850/v850.c (function_arg): Fix handling of zero-length
1621 2009-11-24 Michael Matz <matz@suse.de>
1623 * tree.h (union tree_ann_d): Don't declare.
1624 (tree_base): Remove ann field.
1625 (struct var_ann_d): Declare forward.
1626 (tree_result_decl, tree_parm_decl, tree_var_decl): Add ann field.
1627 (DECL_VAR_ANN_PTR): New macro.
1628 * tree-dfa.c (create_var_ann): Rewrite in terms of above macro,
1629 accept only VAR, PARM or RESULT decls.
1630 (create_tree_common_ann): Remove.
1631 (remove_referenced_var): Use DECL_VAR_ANN_PTR.
1632 * tree-eh.c (lookup_expr_eh_lp): Remove.
1633 * tree-flow-inline.h (var_ann, get_var_ann): Rewrite in terms of
1635 (ann_type, tree_common_ann, get_tree_common_ann): Remove.
1636 * tree-flow.h (enum tree_ann_type): Remove.
1637 (struct tree_ann_common_d): Remove.
1638 (struct var_ann_d): Remove common field.
1639 (union tree_ann_d): Remove.
1640 (tree_ann_t, tree_ann_common_t): Remove typedefs.
1641 (tree_common_ann, get_tree_common_ann, ann_type,
1642 create_tree_common_ann, lookup_expr_eh_lp): Don't declare.
1643 * tree-ssa.c (delete_tree_ssa): Use DECL_VAR_ANN_PTR.
1644 * tree.c (copy_node_stat): Use DECL_VAR_ANN_PTR.
1645 * builtins.c (expand_builtin_memcpy): Use
1646 currently_expanding_gimple_stmt instead of tree annotation.
1647 (expand_builtin_memset_args): Ditto.
1648 * cfgexpand.c (currently_expanding_gimple_stmt): Add global variable.
1649 (expand_call_stmt): Don't set tree annotation.
1650 (expand_gimple_basic_block): Set currently_expanding_gimple_stmt.
1651 * expr.c (expand_expr_real): Don't call lookup_expr_eh_lp.
1652 * gimple.h (currently_expanding_gimple_stmt): Declare.
1654 2009-11-24 Paolo Carlini <paolo.carlini@oracle.com>
1656 * dwarf2out.c (add_location_or_const_value_attribute): Remove
1657 useless NOTE_VAR_LOCATION_STATUS call.
1658 * cfgrtl.c (commit_one_edge_insertion): Remove useless loop, tidy.
1660 2009-11-24 Rafael Avila de Espindola <espindola@google.com>
1662 * lto-wrapper.c (lto_wrapper_exit): Don't try to delete files if
1663 being called recursively.
1665 2009-11-24 Basile Starynkevitch <basile@starynkevitch.net>
1667 * Makefile.in (PLUGIN_HEADERS): Added files: cppdefault.h flags.h
1668 $(MD5_H) params.def params.h prefix.h tree-inline.h.
1670 2009-11-24 Paul Brook <paul@codesourcery.com>
1672 * gcc/config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Fix comment
1675 2009-11-24 Julian Brown <julian@codesourcery.com>
1676 Paul Brook <paul@codesourcery.com>
1678 * config/arm/arm.c (TARGET_DWARF_REGISTER_SPAN): Define.
1679 (arm_dwarf_register_span): New function.
1680 (arm_dbx_register_number): Add VFPv3 dwarf numbering.
1682 2009-11-24 David Binderman <dcb314@hotmail.com>
1684 * cfgrtl.c (commit_one_edge_insertion): Remove set but not used
1685 local variable bb_note.
1686 * dominance.c (get_dominated_by): Likewise local var n.
1687 (output_file_names): Likewise local var idx.
1688 (add_location_or_const_value_attribute): Likewise local var status.
1689 * dwarf2out.c (gen_variable_die): Likewise local var field.
1690 * emit-rtl.c (no_line_numbers): Remove.
1691 (init_emit_once): Remove line_numbers parameter.
1692 * rtl.h (init_emit_once): Adjust prototype.
1693 * toplev.c (backend_init): Adjust init_emit_once call.
1695 2009-11-24 Richard Guenther <rguenther@suse.de>
1697 PR tree-optimization/42142
1698 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
1699 Handle iv-dependent (non-)kills properly.
1700 (mark_aliased_reaching_defs_necessary): Pass the basic-block
1701 of the reference statement to mark_aliased_reaching_defs_necessary_1.
1703 2009-11-24 Martin Jambor <mjambor@suse.cz>
1705 PR tree-optimization/42154
1706 * tree-sra.c (struct access): Added comments.
1707 (sra_modify_expr): Build references to the old aggregate with
1708 build_ref_for_offset instead of reusing access->expr.
1709 (load_assign_lhs_subreplacements): Likewise.
1711 2009-11-24 Uros Bizjak <ubizjak@gmail.com>
1713 * config/i386/i386.md (add<mode>3_carry): Change insn pattern
1715 (sub<mode>3_carry): Ditto.
1716 (x86_mov<mode>cc_0_m1): Ditto.
1717 (*add<mode>3_carry): New insn pattern. Use VOIDmode match_operator
1718 for ix86_carry_flag_operator operator predicate.
1719 (*sub<mode>3_carry): Ditto.
1720 (*x86_mov<mode>cc_0_m1): Ditto.
1721 (*addsi3_carry_zext): Use VOIDmode match_operator for
1722 ix86_carry_flag_operator operator predicate.
1723 (*subsi3_carry_zext): Ditto.
1724 (*x86_mov<mode>cc_0_m1_s): Ditto.
1725 (*x86_mov<mode>cc_0_m1_neg): Ditto.
1726 * config/i386/predocates.md (ix86_carry_flag_operator): Do not
1727 check operator sub-expressions for FLAGS_REG and const0_rtx.
1728 * config/i386/i386.c (*ix86_gen_sub3_carry): Update prototype.
1729 (ix86_expand_int_movcc): Update calls to gen_x86_mov{si,di}cc_0_m1.
1730 (ix86_expand_int_addcc): Update calls to
1731 gen_{add,sub}{qi,hi,si,di}3_carry. Do not set mode of compare_op.
1732 (ix86_expand_strlensi_unroll_1): Update calls to ix86_gen_sub3_carry.
1733 Do not set mode of compare operation.
1735 2009-11-23 Jan Hubicka <jh@suse.cz>
1738 * ipa-inline.c (inline_transform): Avoid ICE when transform is called
1741 2009-11-23 Jan Hubicka <jh@suse.cz>
1743 * ipa-cp.c (ipcp_compute_node_scale): Work around completely
1744 wrong profile updates.
1745 * predict.c (counts_to_freqs): Be expected for ENTRY/EXIT block
1746 having largest frequency.
1747 * ira-live.c (ira_implicitly_set_insn_hard_regs): Silecne
1748 used uninitalized warning.
1749 * tree-optimize.c (execute_fixup_cfg): Rescale entry and exit block
1752 2009-11-23 Uros Bizjak <ubizjak@gmail.com>
1754 * config/alpha/alpha.md (*cmp_sadd_sidi): Use gen_lowpart instead
1755 of gen_rtx_REG to generate operand 5.
1756 (*cmp_ssub_sidi): Ditto.
1758 2009-11-23 Richard Henderson <rth@redhat.com>
1760 * config/i386/i386.c (avx_vpermilp_parallel): Fix sign compare
1763 2009-11-23 Paul Brook <paul@codesourcery.com>
1765 * config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Add special
1766 case for noreturn functions.
1767 (arm_compute_save_reg_mask): Remove special noreturn handling.
1769 2009-11-23 Richard Guenther <rguenther@suse.de>
1771 * tree-dfa.c (get_ref_base_and_extent): Adjust maximum access
1772 size for DECL bases.
1774 2009-11-22 Richard Henderson <rth@redhat.com>
1776 * i386.c (avx_vpermilp_parallel): New function.
1777 * i386-protos.h: Declare it.
1778 * predicates.md (avx_vpermilp_v8sf_operand, avx_vpermilp_v4df_operand,
1779 avx_vpermilp_v4sf_operand, avx_vpermilp_v2df_operand): New.
1780 * sse.md (AVXMODEFDP, AVXMODEFSP): New iterators.
1781 (ssescalarnum, ssedoublesizemode): Add AVX modes.
1782 (vpermilbits): Remove.
1783 (avx_vpermil<mode>): Change insns to expanders.
1784 (*avx_vpermil<mode>): New. Use vec_select.
1786 2009-11-22 Richard Earnshaw <rearnsha@arm.com>
1788 * opts.c (decode_options): Don't enable flag_schedule_insns
1789 when optimizing for size.
1790 * doc/invoke.texi: Document change.
1792 2009-11-22 Uros Bizjak <ubizjak@gmail.com>
1795 * config/alpha/alpha.md (*cmp_sadd_si): Change mode
1796 of scratch register to SImode.
1797 (*cmp_sadd_sidi): Ditto.
1798 (*cmp_ssub_si): Ditto.
1799 (*cmp_ssub_sidi): Ditto.
1801 2009-11-21 Ian Lance Taylor <iant@google.com>
1803 * Makefile.in (HOST_LIBS): Move higher in file.
1804 (LINKER, LINKER_FLAGS): If ENABLE_BUILD_WITH_CXX, but $(HOST_LIBS)
1805 is not empty, set to $(CC) and $(CFLAGS).
1807 2009-11-22 Martin Jambor <mjambor@suse.cz>
1809 * tree-cfg.c (verify_types_in_gimple_reference): Error out on
1810 V_C_E of an SSA_NAME or an invariant if lvalue is required.
1811 (verify_gimple_call): Verify LHS also with with
1812 verify_types_in_gimple_reference.
1814 2009-11-21 Martin Jambor <mjambor@suse.cz>
1817 * tree-sra.c (access_precludes_ipa_sra_p): New function.
1818 (splice_param_accesses): Check all accesses by calling
1819 access_precludes_ipa_sra_p.
1820 (sra_ipa_modify_expr): Rename argument erite to dont_convert and do
1821 not convert types if it is true.
1822 (sra_ipa_modify_assign): Convert types in case of mismatch.
1824 2009-11-21 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
1826 * config/sh/sh.md (cmpeqsi_t-1): Use logical_operand predicate
1829 2009-11-21 Adam Nemet <adambnemet@gmail.com>
1831 * config/mips/mips-protos.h (mulsidi3_gen_fn): New typedef.
1832 (mips_mulsidi3_gen_fn): Declare new function.
1833 * config/mips/mips.c (mips_mulsidi3_gen_fn): New function.
1834 * config/mips/mips.md (<u>mulsidi3): Change condition to use
1835 mips_mulsidi3_gen_fn. Use mips_mulsidi3_gen_fn to generate the insn.
1836 (<u>mulsidi3_64bit): Don't match for ISA_HAS_DMUL3.
1837 (mulsidi3_64bit_dmul): New define_insn.
1839 2009-11-21 Ben Elliston <bje@au.ibm.com>
1841 * gengtype-lex.l: Enable noinput flex option.
1842 (YY_NO_INPUT): Remove define.
1844 2009-11-21 Alexandre Oliva <aoliva@redhat.com>
1846 * tree-ssa.c (find_released_ssa_name): Handle NULL wi.
1847 (insert_debug_temp_for_var_def): Handle degenerate PHI nodes.
1848 (insert_debug_temps_for_defs): Handle PHI nodes.
1849 * tree-ssa-dom.c (degenerate_phi_result): Don't crash on released
1852 2009-11-21 Alexandre Oliva <aoliva@redhat.com>
1854 * tree-ssa-pre.c (remove_dead_inserted_code): Don't release_defs
1855 after remove_phi_node.
1857 2009-11-21 Alexandre Oliva <aoliva@redhat.com>
1859 PR tree-optimization/42078
1860 * gimple.h (gimple_replace_lhs): New declaration.
1861 * gimple.c (gimple_replace_lhs): New function.
1862 * tree-ssa-math-opts.c (execute_cse_reciprocals): Call it before
1865 2009-11-20 Sebastian Pop <sebastian.pop@amd.com>
1867 * config/i386/sse.md (*xop_pmacsdql_mem): Don't call reg_mentioned_p.
1868 (xop_mulv2div2di3_low): Same.
1869 (*xop_pmacsdqh_mem): Same.
1871 2009-11-20 Richard Henderson <rth@redhat.com>
1873 * config/i386/i386-builtin-types.awk: New file.
1874 * config/i386/i386-builtin-types.def: New file.
1875 * config/i386/t-i386: Use them to build i386-builtin-types.inc.
1876 * config/i386/i386.c: Include it.
1877 (ix86_builtin_type_tab, ix86_get_builtin_type): New.
1878 (ix86_builtin_func_type_tab, ix86_get_builtin_func_type): New.
1879 (struct builtin_isa): Remove GTY marker. Replace tree type with
1880 ix86_builtin_func_type; add set_and_not_built_p.
1881 (def_builtin): Change type parameter to tcode; use
1882 ix86_get_builtin_func_type; update all callers. Accept zero mask
1883 to mean the builtin is unconditionally available.
1884 (ix86_add_new_builtins): Use set_and_not_built_p instead of type
1886 (enum ix86_special_builtin_type, enum ix86_builtin_type): Remove.
1887 Update some users to rationalized enumeration codes from new include.
1888 (enum multi_arg_type): Remove. Replace all enumeration values
1889 with defines to new ix86_builtin_func_type.
1890 (ix86_init_mmx_sse_builtins): Don't build any types here. Defer
1891 all type resolution to def_builtin.
1892 (ix86_init_builtin_types): Split out from ...
1893 (ix86_init_builtins): ... here. Use ix86_get_builtin_func_type.
1895 2009-11-20 Michael Meissner <meissner@linux.vnet.ibm.com>
1898 * config/rs6000/rs6000.c (struct machine_function): Revert
1899 2009-10-23 change to set VRSAVE to non-0 if we use VSX.
1900 (rs6000_expand_to_rtl_hook): Ditto.
1901 (rs6000_check_vector_mode): Ditto.
1902 (compute_vrsave_mask): Ditto.
1904 2009-11-20 Paul Brook <paul@codesourcery.com>
1906 * doc/invoke.texi: Document ARM -mcpu=cortex-a5.
1907 * config/arm/arm-cores.def: Add cortex-a5.
1908 * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a5.
1909 * config/arm/arm-tune.md: Regenerate.
1911 2009-11-20 Olga Golovanevsky <olga@il.ibm.com>
1914 * ipa-struct-reorg.c (find_pos_in_stmt): New parameter.
1915 (ref_pos): New field in structure.
1916 (insert_new_var_in_stmt): New function.
1919 2009-11-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1921 * config.gcc (alpha*-dec-osf[45]*): Set use_gcc_stdint.
1922 * config/alpha/osf.h (SIG_ATOMIC_TYPE): Define.
1923 (INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE): Define.
1924 (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
1925 (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
1926 INT_LEAST64_TYPE): Define.
1927 (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
1928 UINT_LEAST64_TYPE): Define.
1929 (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
1930 INT_FAST64_TYPE): Define.
1931 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
1932 UINT_FAST64_TYPE): Define.
1933 (INTPTR_TYPE, UINTPTR_TYPE): Define.
1935 2009-11-20 Julian Brown <julian@codesourcery.com>
1937 * config/arm/arm.h (ASM_OUTPUT_REG_PUSH): Handle STATIC_CHAIN_REGNUM
1938 specially for Thumb-1.
1939 (ASM_OUTPUT_REG_POP): Likewise.
1941 2009-11-19 Jason Merrill <jason@redhat.com>
1943 * dwarf2out.c (get_context_die): Take TYPE_MAIN_VARIANT.
1945 2009-11-19 Basile Starynkevitch <basile@starynkevitch.net>
1946 Rafael Avila de Espindola <espindola@google.com>
1948 * doc/plugins.texi (Plugin initialization): Added advices for
1949 retrieving the version of GCC at plugin compilation and loading times.
1951 2009-11-19 Basile Starynkevitch <basile@starynkevitch.net>
1953 * plugin.c (FMT_FOR_PLUGIN_EVENT): added definition.
1954 (dump_active_plugins): output to file everything. Use
1955 internationalized dump & FMT_FOR_PLUGIN_EVENT.
1957 2009-11-19 Richard Guenther <rguenther@suse.de>
1959 * gimple.c (canonicalize_cond_expr_cond): Strip conversions
1960 around truth-valued expressions.
1961 * tree.c (free_lang_data): Untangle check for LTO frontend.
1963 2009-11-19 Jakub Jelinek <jakub@redhat.com>
1965 * tree.c (need_assembler_name_p): Use cgraph_get_node instead
1966 of cgraph_node_for_decl.
1967 * cgraph.h (cgraph_node_for_decl): Remove prototype.
1968 * cgraph.c (cgraph_node_for_decl): Remove.
1969 (cgraph_get_node): Just return NULL if !cgraph_hash.
1971 2009-11-19 Paul Brook <paul@codesourcery.com>
1973 * config.gcc: Add new ARM --with-fpu options.
1974 * doc/invoke.texi: Docuent ARM -mfpu=fpv4-sp-d16.
1975 * config/arm/arm.c (all_fpus): Add fpv4-sp-d16.
1977 2009-11-18 Richard Guenther <rguenther@suse.de>
1979 * gimple.h (union gimple_statement_d): Add gsmembase member.
1980 (gimple_vuse_op): Use gsmembase for access.
1981 (gimple_vdef_op): Likewise.
1982 (gimple_vuse): Likewise.
1983 (gimple_vdef): Likewise.
1984 (gimple_vuse_ptr): Likewise.
1985 (gimple_vdef_ptr): Likewise.
1986 (gimple_set_vuse): Likewise.
1987 (gimple_set_vdef): Likewise.
1988 * gsstruct.def (GSS_WITH_MEM_OPS_BASE): Add.
1990 2009-11-18 Daniel Jacobowitz <dan@codesourcery.com>
1992 * doc/arm-neon-intrinsics.texi: Regenerated.
1994 2009-11-18 Daniel Jacobowitz <dan@codesourcery.com>
1996 * config/arm/neon-docgen.ml (analyze_shape_elt): Handle alternatives.
1998 2009-11-18 Paul Brook <paul@codesourcery.com>
1999 Daniel Jacobowitz <dan@codesourcery.com>
2001 * config/arm/arm.c (FL_ARCH7EM, FL_FOR_ARCH7EM): Define.
2002 (arm_arch7em): New variable.
2003 (all_architectures): Add armv7e-m.
2004 (arm_override_options): Set arm_arch7em.
2005 * config/arm/arm.h (TARGET_DSP_MULTIPLY, TARGET_INT_SIMD):
2006 Include arm_arch7em.
2007 (arm_arch7em): Declare.
2009 2009-11-18 Richard Guenther <rguenther@suse.de>
2011 * lto-streamer-in.c (input_gimple_stmt): Assert that we find
2012 a valid field decl if checking is enabled.
2014 2009-11-18 Martin Jambor <mjambor@suse.cz>
2016 * ipa-prop.h (struct ipa_param_call_note): New field lto_stmt_uid.
2017 (lto_ipa_fixup_call_notes): Declare.
2018 * ipa-prop.c (ipa_note_param_call): Store gimple uid.
2019 (update_call_notes_after_inlining): Copy call stmt uid to the new
2021 (ipa_write_param_call_note): New function.
2022 (ipa_read_param_call_note): New function
2023 (ipa_write_node_info): Write also param call notes. Removed a bogus
2024 comment, reformatted to fit 80 columns.
2025 (ipa_read_node_info): Read also param call notes. Removed a bogus
2026 comment. Remove ipa_edge_args_vector growth.
2027 (lto_ipa_fixup_call_notes): New function.
2028 * ipa-cp.c (pass_ipa_cp): Add stmt_fixup hook.
2029 * ipa-inline.c (cgraph_mark_inline_edge): Perform indirect
2030 inlining regardless of flag_wpa.
2031 (cgraph_decide_inlining_of_small_functions): Likewise.
2032 (cgraph_decide_inlining): Likewise.
2033 (inline_read_summary): Likewise.
2035 2009-11-18 Jan Hubicka <jh@suse.cz>
2037 * predict.c (compute_function_frequency): Export.
2038 * predict.h (compute_function_frequency): Declare.
2039 * tree-optimize.c (execute_fixup_cfg): Rescale frequencies.
2041 2009-11-18 Martin Jambor <mjambor@suse.cz>
2043 * passes.c (ipa_write_summaries): Call renumber_gimple_stmt_uids
2044 on all nodes we write summaries for.
2046 2009-11-18 Shujing Zhao <pearly.zhao@oracle.com>
2049 * params.def (PARAM_INLINE_UNIT_GROWTH, PARAM_IPCP_UNIT_GROWTH)
2050 (PARAM_EARLY_INLINING_INSNS, PARAM_IRA_MAX_LOOPS_NUM)
2051 (PARAM_IRA_MAX_CONFLICT_TABLE_SIZE)
2052 (PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP)
2053 (PARAM_MIN_INSN_TO_PREFETCH_RATIO)
2054 (PARAM_PREFETCH_MIN_INSN_TO_MEM_RATIO)
2055 (PARAM_IPA_SRA_PTR_GROWTH_FACTOR): Uppercase the first letter of the
2058 2009-11-18 Jakub Jelinek <jakub@redhat.com>
2060 * dwarf2out.c (loc_list_from_tree): Don't call rtl_for_decl_location
2062 (rtl_for_decl_location): Try harder to get a rtl for TREE_STATIC vars.
2065 * cgraph.h (struct cgraph_node): Add same_body and same_body_alias
2067 (cgraph_same_body_alias, cgraph_remove_same_body_alias): New
2069 * cgraphunit.c (cgraph_expand_function, cgraph_emit_thunks,
2070 cgraph_materialize_all_clones): Handle same_body aliases.
2071 * cgraph.c (cgraph_allocate_node): New function.
2072 (cgraph_create_node): Use it.
2073 (cgraph_node_for_decl, cgraph_node, cgraph_get_node,
2074 cgraph_node_for_asm, cgraph_remove_node): Handle same_body aliases.
2075 (cgraph_same_body_alias, cgraph_remove_same_body_alias): New
2077 * lto-cgraph.c (lto_output_node): Stream out same_body aliases.
2078 (input_node): Stream in same_body aliases.
2079 * lto-symtab.c (lto_cgraph_replace_node): Clear node pointers
2080 for same_body aliases.
2081 (lto_symtab_merge_cgraph_nodes_1): Handle same_body aliases.
2083 2009-11-18 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
2086 * config/darwin.h: Use the extension stub libraries to access
2087 current libgcc_s features.
2089 2009-11-18 Alexandre Oliva <aoliva@redhat.com>
2092 * tree-vect-loop.c (vect_loop_kill_debug_uses): New.
2093 (vect_transform_loop): Call it.
2095 2009-11-18 Alexandre Oliva <aoliva@redhat.com>
2097 * tree-ssa.c (insert_debug_temp_for_var_def): Fix handling of
2100 2009-11-18 Alexandre Oliva <aoliva@redhat.com>
2104 * graphite-scop-detection.c (stmt_simple_for_scop_p): Debug stmts
2106 * graphite-sese-to-poly.c (graphite_stmt_p): Likewise.
2107 (try_generate_gimple_bb): Skip debug stmts when finding data refs.
2108 * sese.c (sese_build_liveouts_bb): Skip debug stmts.
2109 (sese_bad_liveouts_use): New.
2110 (sese_reset_debug_liveouts_bb): New.
2111 (sese_build_liveouts): Use it.
2112 (rename_variables_in_stmt): Reset debug stmts rather than creating
2114 (expand_scalar_variable_stmt): Likewise.
2116 2009-11-18 Alexandre Oliva <aoliva@redhat.com>
2118 * df-scan.c (df_ref_create): Don't mark BB as dirty on debug insns.
2119 (df_ref_remove): Likewise.
2121 2009-11-17 Jan Hubicka <jh@suse.cz>
2123 * ipa-struct-reorg.c (update_cgraph_with_malloc_call): Fix profile
2126 2009-11-17 Eric Botcazou <ebotcazou@adacore.com>
2128 * toplev.c (process_options): Remove dead code.
2129 * doc/invoke.texi (-frename-registers): Mention -fpeel-loops.
2131 2009-11-17 Rafael Avila de Espindola <espindola@google.com>
2133 * lto-symtab.c (lto_symtab_resolve_symbols): Always initialize the
2136 2009-11-17 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2138 PR tree-optimization/41857
2139 * tree-ssa-address.c (move_hint_to_base): Use void pointer to
2140 TYPE's address space instead of pointer to TYPE.
2142 2009-11-17 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2144 * reload.c (find_reloads_address): Fix typo.
2146 2009-11-17 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2148 * config/spu/spu.c (get_pic_reg): Use LAST_ARG_REGNUM as PIC
2149 registers in leaf functions if possible.
2151 2009-11-17 Maxim Kuvyrkov <maxim@codesourcery.com>
2153 * config/m68k/m68k-devices.def: Add MCF5441x family.
2155 2009-11-17 Jan Hubicka <jh@suse.cz>
2157 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not access
2159 * cgraphunit.c (verify_cgraph_node): Verify frequencies for match.
2161 2009-11-17 Uros Bizjak <ubizjak@gmail.com>
2163 * config/i386/predicates.md (x86_64_szext_general_operand): Do not
2164 nest ior expressions.
2165 (x86_64_szext_nonmemory_operand): Ditto.
2166 (call_insn_operand): Ditto.
2168 2009-11-16 Alexandre Oliva <aoliva@redhat.com>
2170 * stmt.c (expand_asm_stmt): Get locus from stmt.
2172 2009-11-16 Alexandre Oliva <aoliva@redhat.com>
2174 * tree-cfg.c (gimple_redirect_edge_and_branch) <case GIMPLE_ASM>:
2175 Create the decl label for the new dest block on demand. Require
2176 a fallthrough edge if no asm labels were redirected.
2178 2009-11-16 Uros Bizjak <ubizjak@gmail.com>
2180 * config/i386/i386.md (cbranchsi4): Use nonimmediate_operand for
2181 operand 1 predicate.
2182 (cstoresi4): Ditto for operand 2.
2183 (cbranch<mode>4): Macroize expander from cbranch{qi,hi,si,di,ti}4
2184 patterns using SDWIM mode iterator.
2185 (cstore<mode>4): Macroize expander from cstore{qi,hi,si,di}4 patterns
2186 using SWIM mode iterator.
2187 (cmpdi_1): Rename from cmpdi_1_rex64.
2188 (cmp<mode>_1): Macroize expander from cmp{si,di}_1 patterns using
2189 SWI48 mode iterator.
2190 (*cmp<mode>_1): Macroize insn from *cmp{qi,hi,si,di}_1_insn patterns
2191 using SWI mode iterator.
2192 (*cmp<mode>_ccno_1): Ditto from *cmp{qi,hi,si,di}_ccno_1.
2193 (*cmp<mode>_minus_1): Ditto from *cmp{qi,hi,si,di}_minus_1.
2194 (*cmpqi_ext_3_insn): Make private.
2195 (*cmpqi_ext_3_insn_rex64): Make private.
2196 (cmpstrnsi): Update for renamed cmpdi_1_rex64.
2197 * config/i386/predicates.md (cmpsi_operand): Remove.
2199 2009-11-16 Paul Brook <paul@codesourcery.com>
2201 * doc/invoke.texi: Document ARM VFPv4 based FPUs.
2202 * config/arm/arm.c (all_fpus): Add VFPv4 entries.
2204 2009-11-14 Jan Hubicka <jh@suse.cz>
2206 * cgraphbuild.c (compute_call_stmt_bb_frequency): Use proper
2208 * cgraph.c (cgraph_clone_edge): Avoid freq_scale 0 to completely
2209 zero out all callees.
2210 * cgraphunit.c (verify_cgraph_node): Verify cgraph nodes for
2211 frequency and count match.
2212 * ipa-inline.c (update_noncloned_frequencies): New function.
2213 (cgraph_clone_inlined_nodes): Use it.
2214 * tree-inline.c (copy_bb): Fix frequency scaling; output
2215 diagnostic on frequency mismatches to dump file.
2216 (initialize_cfun): Do not scale frequency; fix count scaling;
2217 initialize entry and exit block frequencies; copy profile info.
2218 (copy_cfg_body): Use frequency_scale as argument; fix count scaling.
2219 (copy_body): Use frequency_scale as argument.
2220 (expand_call_inline): Compute frequency scale and output diagnostic
2222 (delete_unreachable_blocks_update_callgrah): Remove checking that
2223 has to be done after edge redirection.
2224 (tree_function_versioning): Update initialize_cfun and copy_body call.
2226 2009-11-14 Jan Hubicka <jh@suse.cz>
2228 * cgraph.c (cgraph_release_function_body): Update use of
2229 ipa_transforms_to_apply.
2230 (cgraph_remove_node): Remove ipa_transforms_to_apply.
2231 * cgraph.h (struct cgraph_node): Add ipa_transforms_to_apply.
2232 * cgraphunit.c (save_inline_function_body): Clear ipa_transforms for
2234 (cgraph_materialize_clone): Remove original if dead.
2235 * lto-streamer-in.c (lto_read_body): Remove FIXME and
2236 ipa_transforms_to_apply hack.
2237 * function.h (struct function): Add ipa_transforms_to_apply.
2238 * ipa.c (cgraph_remove_unreachable_nodes): Handle dead clone originals.
2239 * tree-inline.c (copy_bb): Update sanity check.
2240 (initialize_cfun): Do not copy ipa_transforms_to_apply.
2241 (expand_call_inline): remove dead clone originals.
2242 (tree_function_versioning): Merge transformation queues.
2243 * passes.c (add_ipa_transform_pass): Remove.
2244 (execute_one_ipa_transform_pass): Update ipa_transforms_to_apply
2246 (execute_all_ipa_transforms): Update.
2247 (execute_one_pass): Update.
2249 2009-11-14 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
2251 PR target/21078, 21080
2252 * config/avr/avr.c (avr_return_addr_rtx): New function for
2253 builtin_return_address.
2254 (expand_prologue): Calculate stack usage.
2255 (avr_asm_function_end_prologue): Output stack size and offset label.
2256 * config/avr/avr.h (RETURN_ADDR_RTX): Replace.
2257 (machine_function): Add stack_usage.
2258 * config/avr/avr-protos.h (avr_return_addr_rtx): New function.
2260 2009-11-14 Anatoly Sokolov <aesok@post.ru>
2262 * config/iq2000/iq2000.c (iq2000_function_value): Make static, add
2263 new 'outgoing' argument.
2264 (iq2000_libcall_value, iq2000_function_value_regno_p): New functions.
2265 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
2266 * config/iq2000/iq2000.h (FUNCTION_VALUE_REGNO_P): Redefine, use
2267 iq2000_function_value_regno_p.
2268 (FUNCTION_VALUE, LIBCALL_VALUE): Remove.
2269 * config/iq2000/iq2000-protos.h (iq2000_function_value_regno_p):
2272 2009-11-14 Richard Earnshaw <rearnsha@arm.com>
2275 * arm.md (adddi_sesidi_di): Place tied contraint first.
2276 (adddi_zesidi_di, subdi_di_zesidi, subdi_di_sesidi): Likewise
2277 (subdi_zesidi_di, subdi_sesidi_di): Likewise.
2278 (mulsi3_compare0, mulsi_compare0_scratch): Likewise.
2279 (mulsi3addsi, mulsi3addsi_compare0): Likewise.
2280 (mulsi3addsi_compare0_scratch, smulsi3_highpart_nov6): Likewise.
2281 (umulsi3_highpart_nov6, anddi_zesidi_di, anddi_sesdi_di): Likewise.
2282 (anddi_notdi_di, iordi_sesidi_di, xordi_sesidi_di): Likewise.
2283 (andsi_iorsi3_notsi, arm_ashldi3_1bit, arm_ashrdi3_1_bit): Likewise.
2284 (arm_lshrdi3_1bit, one_cmpldi2): Likewise.
2286 2009-11-14 Uros Bizjak <ubizjak@gmail.com>
2288 * config/i386/predicates.md (call_register_no_elim_operand):
2289 New predicate. Reject stack register as valid call operand
2291 (call_insn_operand): Use call_register_no_elim_operand.
2293 2009-11-13 Richard Henderson <rth@redhat.com>
2295 * function.c (stack_protect_prologue): Don't bypass expand_expr
2296 for stack_protect_guard and guard_decl.
2297 (stack_protect_epilogue): Likewise.
2299 2009-11-13 Jan Hubicka <jh@suse.cz>
2301 * ipa.c (function_and_variable_visibility): Clear COMDAT on functions
2302 when to PUBLIC is set.
2304 2009-11-13 Jakub Jelinek <jakub@redhat.com>
2307 * gimplify.c (gimplify_omp_atomic): Set DECL_GIMPLE_REG_P on
2310 2009-11-13 Uros Bizjak <ubizjak@gmail.com>
2313 * config/i386/i386.md (*call_pop_1, *call_1, *call_value_pop_1,
2314 *call_value_1): Use "lsm" as operand 1 constraint.
2315 * config/i386/predicates.md (call_insn_operand): Depend on
2316 index_register_operand to avoid %esp register.
2318 2009-11-13 Uros Bizjak <ubizjak@gmail.com>
2321 2009-11-03 Uros Bizjak <ubizjak@gmail.com>
2324 * config/i386/i386.h (ix86_arch_indices) <X86_ARCH_CALL_ESP>: New.
2325 (TARGET_CALL_ESP): New define.
2326 * config/i386/i386.c (initial_ix86_tune_features): Initialize
2328 * config/i386/i386.md (*call_pop_1_esp, *call_1_esp,
2329 *call_value_pop_1_esp, *call_value_1_esp): Rename from *call_pop_1,
2330 *call_1, *call_value_pop_1 and *call_value_1. Depend on
2332 (*call_pop_1, *call_1, *call_value_pop_1, *call_value_1):
2333 New patterns, use "lsm" as operand 1 constraint.
2334 * config/i386/predicates.md (call_insn_operand): Depend on
2335 index_register_operand for !TARGET_CALL_ESP to avoid %esp register.
2337 2009-11-13 Jason Merrill <jason@redhat.com>
2340 * dwarf2out.c (gen_variable_die): Don't worry about DECL_COMDAT.
2341 Don't emit a second declaration at any scope.
2343 2009-11-13 Andrey Belevantsev <abel@ispras.ru>
2345 PR rtl-optimization/41697
2346 * sel-sched-ir.c (fallthru_bb_of_jump): Bail out when a block with
2347 a conditional jump has a single successor.
2349 2009-11-13 Andrey Belevantsev <abel@ispras.ru>
2351 * sched-deps.c (init_deps): New parameter lazy_reg_last. Don't
2352 allocate reg_last when in case lazy_reg_last is true.
2353 (init_deps_reg_last): New.
2354 (free_deps): When max_reg is 0, this context is already freed.
2355 * sched-int.h (init_deps_reg_last): Export.
2356 (init_deps): Update prototype.
2357 * sched-ebb.c (schedule_ebb): Update the call to init_deps.
2358 * sched-rgn.c (sched_rgn_compute_dependencies): Likewise.
2359 * ddg.c (build_intra_loop_deps): Likewise.
2360 * sel-sched-ir.c (copy_deps_context, create_deps_context,
2361 reset_deps_context, deps_init_id): Likewise.
2362 (init_first_time_insn_data): Lazy allocate INSN_DEPS_CONTEXT.
2363 (free_data_for_scheduled_insn): New, break down from ...
2364 (free_first_time_insn_data): ... here.
2365 (has_dependence_p): Allocate reg_last now, when it is needed.
2366 (extend_insn_data): When maximal LUID is big enough, allocate
2367 per-insn data in smaller chunks.
2368 * sel-sched-ir.h (free_data_for_scheduled_insn): Export.
2369 * sel-sched.c (update_seqnos_and_stage): Free INSN_DEPS_CONTEXT
2372 2009-11-13 Uros Bizjak <ubizjak@gmail.com>
2374 * config/i386/i386.md (call_value): Fix comment.
2375 (sibcall_value): Ditto.
2377 2009-11-13 Eric Botcazou <ebotcazou@adacore.com>
2379 * config/i386/linux-unwind.h (x86_frob_update_context): New function.
2380 (MD_FROB_UPDATE_CONTEXT): Define.
2382 2009-11-12 Eric Botcazou <ebotcazou@adacore.com>
2383 Laurent GUERBY <laurent@guerby.net>
2385 * config/sparc/linux-unwind.h (sparc64_fallback_frame_state): Tidy.
2386 Do not schedule an %sp restore. Compensate for RETURN_ADDR_OFFSET.
2387 (sparc_fallback_frame_state): Tidy. Compensate for RETURN_ADDR_OFFSET.
2389 2009-11-12 Jan Hubicka <jh@suse.cz>
2391 * ipa.c (function_and_variable_visibility): Fix my accidentail commit
2392 and clear DECL_COMMON on localized declarations.
2394 2009-11-12 Bernd Schmidt <bernd.schmidt@analog.com>
2397 * regrename.c (struct du_head): New structure; some elements moved
2399 (struct du_chain): ... this one.
2400 (open_chains, closed_chains): Now of type struct du_head *.
2401 (do_replace): Accept du_head argument, not du_chain. All callers
2402 changed. Modified code to match new data structures.
2403 (build_def_use): Return a list of du_head structures. Modified code
2404 to match new data structures.
2405 (dump_def_use_chain): Accept du_head argument, not du_chain. All
2406 callers changed. Modified code to match new data structures.
2407 (merge_overlapping_regs): Accept du_head argument, not du_chain. All
2408 callers changed. Modified code to match new data structures.
2409 (scan_rtx_reg): Change type of this_regno and this_nregs to unsigned.
2410 Allocate a du_head structure as well as a du_chain when creating a
2411 new chain. Modified other code to match new data structures.
2413 2009-11-12 Jan Hubicka <jh@suse.cz>
2415 * cgraph.h (varpool_node_name): Declare.
2416 * cgraphunit.c (process_function_and_variable_attributes): Set
2417 force_output flag on used variables.
2418 * ipa.c (function_and_variable_visibility): Dump externally visible
2419 and needed variables.
2420 * varpool.c (varpool_node_name): Export.
2421 (decide_is_variable_needed): Check COMDAT for externally visible vars;
2424 2009-11-12 Uros Bizjak <ubizjak@gmail.com>
2427 * simplify-rtx.c (simplify_replace_fn_rtx) <case 'e'>: Skip
2428 processing if XEXP (x, i) is NULL.
2430 2009-11-12 Jan Hubicka <jh@suse.cz>
2432 * ipa.c (function_and_variable_visibility): Verify that WEAK || COMMON
2433 imply PUBLIC || EXTERNAL.
2435 2009-11-11 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
2438 * cfgexpand.c (expand_gimple_basic_block): Append NOP to a fallthru,
2439 single successor block, ending with jump created by RTL expander.
2441 2009-11-11 Jan Hubicka <jh@suse.cz>
2444 * ipa.c (function_and_variable_visibility): Do not privatize COMDAT
2445 and WEAK variables at -fwhole-program.
2448 * ipa.c (whole_program_function_and_variable_visility): COMDAT
2449 functions/variables are not needed even if they are externally visible.
2451 2009-11-11 Jan Hubicka <jh@suse.cz>
2453 (patch by Richard Guenther)
2454 * lto-streamer-out.c (output_function): Output head of argument list
2456 * lto-streamer-in.c (input_function): Re-map arguments into merged
2459 2009-11-11 Jan Hubicka <jh@suse.cz>
2461 * lto-cgraph.c: Include gcov-io.h
2462 (output_profile_summary): New function.
2463 (output_cgraph): Use it.
2464 (input_profile_summary): New function.
2465 (input_cgraph): Use it.
2466 * coverage.c (build_ctr_info_value): Use varpool; initalize
2467 DECL_ASSEMBLER_NAME.
2468 (create_coverage): Likewise.
2469 * tree-profile.c (tree_init_ic_make_global_vars): Likewise.
2470 (tree_init_edge_profiler): Likewise.
2471 * Makefile.in (lto-cgraph.o): Add dependency on gcov-io.h.
2473 2009-11-11 Kai Tietz <kai.tietz@onevision.com>
2475 * config/i386/cygming.h (HANDLE_PRAGMA_PUSH_POP_MACRO): Removed.
2476 * c-pragma.c (def_pragma_macro_value): Likewise.
2477 (def_pragma_macro): Likewise.
2478 (pushed_macro_table): Likewise.
2479 (HANDLE_PRAGMA_PUSH_POP_MACRO): Remove guarded code.
2480 * doc/tm.texi (HANDLE_PRAGMA_PUSH_POP_MACRO): Removed.
2482 2009-11-11 Basile Starynkevitch <basile@starynkevitch.net>
2484 * doc/plugins.texi (Registering custom attributes): section
2485 renamed as (Registering custom attributes or pragmas).
2486 Mentions custom attributes & pragmas, and c_register_pragma, with
2488 * doc/cpp.texi (Pragmas): Mentions that plugins can provide their
2490 * doc/extend.texi (Function Attributes): Mentions that plugin can
2491 provide their attributes.
2493 2009-11-11 Jon Beniston <jon@beniston.com>
2495 * config.gcc: Add lm32 elf and uclinux targets.
2496 * config/lm32: New directory.
2497 * config/lm32/lm32.c: New file.
2498 * config/lm32/lm32.h: New file.
2499 * config/lm32/lm32.md: New file.
2500 * config/lm32/lm32.opt: New file.
2501 * config/lm32/lm32-protos.h: New file.
2502 * config/lm32/constraints.md: New file.
2503 * config/lm32/predicates.md: New file.
2504 * config/lm32/sfp-machine.h: New file.
2505 * config/lm32/t-fprules-softfp: New file.
2506 * config/lm32/uclinux-elf.h: New file.
2507 * doc/invoke.texi: Document lm32 options.
2508 * doc/contrib.texi: Document lm32 porter.
2509 * doc/install.texi: Document lm32 targets.
2511 2009-11-11 Martin Jambor <mjambor@suse.cz>
2514 * ipa-prop.c (ipa_update_after_lto_read): Call
2515 ipa_check_create_node_params and ipa_check_create_edge_args. Also
2516 call ipa_initialize_node_params instead of ipa_populate_param_decls.
2518 2009-11-11 Daniel Jacobowitz <dan@codesourcery.com>
2520 * config/arm/arm.c (neon_vdup_constant, neon_make_constant): New.
2521 (neon_expand_vector_init): Use them. Also handle non-constant
2522 vectors with identical elements and vectors with only one
2523 non-constant element.
2524 (arm_print_operand): Handle 'y' modifier.
2525 * config/arm/arm-protos.h (neon_make_constant): Declare.
2526 * config/arm/neon.md (neon_vdup_n<mode>): Split into two
2527 patterns. Use VX instead of VDQW for the first one. Allow
2528 a VFP alternative and V32 modes for the second one.
2529 * config/arm/neon.ml (shape_elt): Add Alternatives.
2530 (ops): Use Alternatives for vdup lane instructions.
2531 * config/arm/neon-testgen.ml (analyze_shape): Handle Alternatives.
2532 * config/arm/vec-common.md (mov<mode>): Use neon_make_constant.
2534 2009-11-11 Daniel Jacobowitz <dan@codesourcery.com>
2536 * config/arm/neon.md (*neon_mov<mode>): Reject two non-register
2538 (movti, mov<mode>): Call force_reg on one operand if required.
2539 * config/arm/vec-common.md (mov<mode>): Likewise.
2541 2009-11-11 Daniel Jacobowitz <dan@codesourcery.com>
2543 * config/arm/arm.c (arm_override_options): Enable scheduling for
2546 2009-11-10 Eric Botcazou <ebotcazou@adacore.com>
2550 * expr.h (anti_adjust_stack_and_probe): Declare.
2551 * explow.c (anti_adjust_stack_and_probe): Make global, add ADJUST_BACK
2552 parameter and rewrite head comment.
2553 (allocate_dynamic_stack_space): Adjust call to above function.
2554 * function.c (expand_function_end): Handle STACK_CHECK_MOVING_SP.
2556 * tree.h (dwarf2out_args_size): Delete.
2557 * dwarf2out.c (dwarf2out_args_size): Make static and move around.
2558 (dwarf2out_args_size_adjust): Delete prototype and move around.
2559 (dwarf2out_frame_debug_expr): Do not record arg size adjustments for
2560 ACCUMULATE_OUTGOING_ARGS targets.
2562 2009-11-10 Eric Botcazou <ebotcazou@adacore.com>
2564 * config/sparc/sparc.c (print_operand) <')'>: Test for a non-null
2565 DECL_SIZE of DECL_RESULT before evaluating it.
2567 2009-11-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2569 PR tree-optimization/41987
2570 * fold-const.c (const_binop): Avoid using fold_buildN().
2572 2009-11-10 Martin Jambor <mjambor@suse.cz>
2574 * tree-pass.h (struct ipa_opt_pass_d): Added stmt_fixup field.
2575 (execute_all_ipa_stmt_fixups): Declare.
2576 * ipa-cp.c (pass_ipa_cp): Added stmt_fixup value.
2577 * ipa-inline.c (pass_ipa_inline): Likewise.
2578 * ipa-pure-const.c (pass_ipa_pure_cons): Likewise.
2579 * ipa-reference.c (pass_ipa_reference): Likewise.
2580 * ipa.c (pass_ipa_whole_program_visibility): Likewise.
2581 * lto-streamer-out.c (pass_ipa_lto_gimple_out): Likewise.
2582 (pass_ipa_lto_finish_out): Likewise.
2583 * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Likewise.
2584 * passes.c (execute_ipa_stmt_fixups): New function.
2585 (execute_all_ipa_stmt_fixups): New function.
2586 * lto-streamer-in.c (input_function): Call execute_all_ipa_stmt_fixups.
2588 2009-11-10 Eric Botcazou <ebotcazou@adacore.com>
2591 * explow.c (probe_stack_range): Fix typo.
2592 * config/sparc/sparc.md (probe_stack): New expander.
2594 2009-11-09 Dave Korn <dave.korn.cygwin@gmail.com>
2596 * config/i386/cygwin.h (LINK_SPEC): Add -tsaware flag if !mno-cygwin.
2598 2009-11-09 Jason Merrill <jason@redhat.com>
2600 * gdbinit.in (pgq): New function for printing gimple sequence.
2602 2009-11-09 Paul Brook <paul@codesourcery.com>
2603 Daniel Jacobowitz <dan@codesourcery.com>
2604 Sandra Loosemore <sandra@codesourcery.com>
2606 * doc/extend.texi (Half-Precision): Update wording to reflect
2607 that there are now multiple -mfpu options that enable fp16
2609 * doc/invoke.texi: Update list of ARM -mfpu= options.
2610 * config.gcc: Update ARM --with-fpu option list.
2611 * config/arm/arm.c (all_fpus): Add vfpv3-fp16, vfpv3-d16-fp16,
2612 vfpv3xd and vfpv3xd-fp16.
2613 (use_vfp_abi): New function.
2614 (aapcs_vfp_is_call_or_return_candidate): Avoid double precision regs
2616 (aapcs_vfp_is_return_candidate, aapcs_vfp_is_call_candidate,
2617 aapcs_vfp_allocate_return_reg): Use use_vfp_abi.
2618 (arm_rtx_costs_1, arm_size_rtx_costs, arm_fastmul_rtx_costs,
2619 arm_9e_rtx_costs): Only expect double-precision operations if the FPU
2621 (coproc_secondary_reload_class): Reload HFmode via GENERAL_REGS if no
2623 (arm_print_operand): Handle 'p' modifier.
2624 (arm_hard_regno_mode_ok): : Allow HFmode in VFP registers if
2626 * config/arm/arm.h (TARGET_VFP_SINGLE, TARGET_VFP_DOUBLE): Define.
2627 (TARGET_FP16): Define.
2628 * config/arm/vfp.md: Disable double-precision patterns if the FPU
2629 does not provide them.
2630 (arm_movdi_vfp, thumb2_movdi_vfp): Use fcpys to move
2631 double-precision values on a single-precision FPU.
2632 (movdf_vfp, thumb2_movdf_vfp): Likewise. Use "Dy" for
2633 double-precision constants.
2634 (movhf_vfp_neon): New pattern (was movhf_vfp).
2635 (movhf_vfp): Remove NEON instructions.
2636 * config/arm/constraints.md: Add new "Dy" constraint for
2637 double-precision constants. Update description of "Dv".
2638 * config/arm/arm.md: Disable double-precision patterns if the FPU
2639 does not provide them
2641 2009-11-09 Jakub Jelinek <jakub@redhat.com>
2643 * config/i386/i386.c (print_operand) <case 'D'>: Fix formatting.
2644 (print_operand) <case 'Y'>: Likewise. Fix a pasto in operand lossage
2647 2009-11-08 H.J. Lu <hongjiu.lu@intel.com>
2649 * collect2.c (main): Search PLUGIN_LD for plugin linker.
2651 * configure.ac (--with-plugin-ld): New. Default to ld.
2652 * configure: Regenerated.
2653 * config.in: Likewise.
2655 * exec-tool.in (ORIGINAL_PLUGIN_LD_FOR_TARGET): New.
2656 (collect-ld): Use ORIGINAL_PLUGIN_LD_FOR_TARGET for -plugin.
2658 2009-11-08 Jonathan Gray <jsg@openbsd.org>
2660 * config/openbsd-stdint.h: Change to reflect what
2661 c_common_nodes_and_builtins expects.
2663 2009-11-08 Paolo Carlini <paolo.carlini@oracle.com>
2665 * builtins.c (apply_args_reg_offset): Remove commented out delaration.
2667 2009-11-08 Jakub Jelinek <jakub@redhat.com>
2670 * config/i386/i386.c (get_some_local_dynamic_name): Don't assert
2671 function contains at least one local dynamic name.
2672 (print_operand) <case '&'>: Instead output operand lossage diagnostics
2673 here if that happens.
2675 2009-11-08 Zbigniew Chamski <zbigniew.chamski@gmail.com>
2676 Joern Rennecke <amylaar@spamcop.net>
2678 * cfgrtl.c (pass_free_cfg): Add pass name.
2679 * cgraphbuild.c (pass_build_cgraph_edges): Likewise.
2680 (pass_rebuild_cgraph_edges, pass_remove_cgraph_callee_edges): Likewise.
2681 * dce.c (pass_ud_rtl_dce, pass_fast_rtl_dce): Change pass name.
2682 * df-core.c (pass_df_initialize_no_opt): Likewise.
2683 * except.c (pass_rtl_eh): Likewise.
2684 * function.c (pass_init_function, pass_leaf_regs): Likewise.
2685 * gcse.c (pass_rtl_pre): Change pass name.
2686 * passes.c (pass_postreload): Add pass name.
2687 (make_pass_instance): Don't use duplicate-tracking logic for
2688 names starting with '*'.
2689 (next_pass_1): Assert that pass has a name.
2690 (register_one_dump_file): If there is an space in the name,
2692 * predict.c (pass_strip_predict_hints): Add pass name.
2693 * reg-stack.c (pass_stack_regs): Likewise.
2694 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
2695 * tree-cfg.c (pass_warn_function_return,
2696 pass_warn_function_noreturn): Add pass name.
2697 * tree-dfa.c (pass_referenced_vars): Likewise.
2698 * tree-optimize.c (pass_cleanup_cfg_post_optimizing):
2699 Fix whitespace before comment.
2700 (pass_fixup_cfg): Add pass name, fix whitespace before comment.
2701 (pass_init_datastructures): Add pass name.
2702 * tree-ssa-loop.c (pass_record_bounds): Likewise.
2703 * tree-ssa.c (pass_early_warn_uninitialized,
2704 pass_late_warn_uninitialized): Likewise.
2705 * tree.c (pass_ipa_free_lang_data): Likewise.
2706 * doc/passes.texi (pass manager): Document how to disambiguate
2709 2009-11-08 Paolo Bonzini <bonzini@gnu.org>
2711 * df-problems.c: Fix documentation for forward simulation of LR.
2712 (df_simulate_one_insn_forwards): Use df_simulate_find_defs.
2713 (df_simulate_finalize_forwards): Remove.
2714 * df.h (df_simulate_finalize_forwards): Remove.
2716 2009-11-08 Richard Guenther <rguenther@suse.de>
2718 * tree-ssa-structalias.c (build_succ_graph): Properly make
2719 variables escape if they are stored to anything.
2721 2009-11-08 Richard Guenther <rguenther@suse.de>
2723 PR rtl-optimization/41928
2724 * loop-invariant.c (free_loop_data): If we didn't allocate
2725 loop data do not try to free it.
2727 2009-11-07 Jason Merrill <jason@redhat.com>
2729 * tree.c (reconstruct_complex_type): Preserve attributes.
2731 2009-11-07 Richard Guenther <rguenther@suse.de>
2733 * tree-ssa-structalias.c (build_succ_graph): Feed stores
2734 to anything only to variables that can take pointers.
2735 (get_constraint_for_ssa_var): Properly exclude full
2736 variables from expanding.
2737 (first_vi_for_offset): Avoid overflow in arithmetic.
2738 (first_or_preceding_vi_for_offset): Likewise.
2739 (count_num_arguments): Fix implementation.
2740 (gate_ipa_pta): Do not run when not optimizing.
2742 2009-11-07 David Binderman <dcb314@hotmail.com>
2744 * builtins.c (apply_args_size, expand_builtin_mathfn, expand_powi,
2745 expand_builtin_expect, maybe_emit_sprintf_chk_warning): Remove some
2746 set but not used variables.
2747 (apply_args_reg_offset): Comment out as unused.
2748 * calls.c (flags_from_decl_or_type): Likewise.
2749 * genautomata.c (check_regexp_units_distribution): Likewise.
2751 2009-11-07 Uros Bizjak <ubizjak@gmail.com>
2753 * config/i386/sse.md (xop_pmacsww, xop_pmacssww, xop_pmacsdd,
2754 xop_pmacssdd, xop_pmacssdql, xop_pmacssdqh, xop_pmacsdql,
2755 *xop_pmacsdql_mem, xop_pmacsdqh, *xop_pmacsdqh_mem, xop_pmacsswd,
2756 xop_pmacswd, xop_pmadcsswd, xop_pmadcswd, xop_pcmov_<mode>,
2757 xop_pcmov_<mode>256, xop_pperm, xop_pperm_pack_v2di_v4si,
2758 xop_pperm_pack_v4si_v8hi, xop_pperm_pack_v8hi_v16qi): Compress
2759 operand alternatives.
2761 2009-11-06 Michael Matz <matz@suse.de>
2764 * tree-ssa-math-opts.c (execute_cse_reciprocals): Check all uses
2765 of a potential reciprocal to really be reciprocals.
2767 2009-11-06 Jakub Jelinek <jakub@redhat.com>
2769 * config/i386/x86intrin.h: Include fma4intrin.h, xopintrin.h and
2770 lwpintrin.h after immintrin.h.
2771 * config/i386/fma4intrin.h (__v8sf, __v4df, __m256, __m256d): Remove
2775 * c-common.c (fold_offsetof_1) <case ARRAY_REF>: Don't crash for VLAs
2776 or non-constant index, allow index one past the last element and
2777 allow exceeding array bound in arrays that might be used as flexible
2780 2009-11-05 Richard Henderson <rth@redhat.com>
2782 * config/i386/ia32intrin.h: Protect CRC32 builtins with __SSE4_2__.
2784 2009-11-05 Paul Brook <paul@codesourcery.com>
2786 * config/arm/arm.c (arm_fp_model, arm_fpu_arch, arm_fpu_tune): Remove.
2787 (arm_fpu_desc): New.
2788 (all_fpus): Add FPU details.
2789 (fp_model_for_fpu): Remove.
2790 (arm_override_options): Set and use arm_fpu_desc and arm_fpu_attr.
2791 (arm_output_epilogue, arm_save_coproc_regs): Use TARGET_FPA_EMU2.
2792 (arm_file_start): Use arm_fpu_desc.
2793 * config/arm/arm.h (TARGET_FPA, TARGET_MAVERICK, TARGET_VFP,
2794 TARGET_VFPD32, TARGET_VFP3, TARGET_NEON_FP16, TARGET_NEON): Use
2796 (TARGET_FPA_EMU2): Define.
2797 (arm_fp_model, fputype, arm_fpu_tune): Remove.
2798 (vfp_reg_type, arm_fpu_desc): New.
2799 * config/arm/arm.md (attr fpu): Simplify.
2800 * config/arm/fpa.md (movxf_fpa): Use TARGET_FPA_EMU2.
2801 * config/arm/linux-elf.h (FPUTYPE_DEFAULT): Use string value.
2802 * config/arm/bpabi.h (FPUTYPE_DEFAULT): Use string value.
2803 * config/arm/netbsd-elf.h (FPUTYPE_DEFAULT): Use string value.
2804 * config/arm/vxworks.h (FPUTYPE_DEFAULT): Use string value.
2806 2009-11-05 Michael Matz <matz@suse.de>
2808 * config/i386/i386.c (ix86_builtin_reciprocal): Remove dependency
2810 * doc/invoke.texi (-mrecip): Clarify that we don't need -mrecip
2813 2009-11-04 Jason Merrill <jason@redhat.com>
2816 * varasm.c (initializer_constant_valid_p): A PLUS_EXPR
2817 or MINUS_EXPR of REAL_TYPE is not a valid constant initializer.
2818 (output_constant): Avoid crash after error.
2820 2009-11-05 Martin Jambor <mjambor@suse.cz>
2822 * tree-sra.c (struct access): Changed comment of next_sibling field.
2823 (analyze_modified_params): Loop over accesses of a group rather than
2824 over all with the ame base, pass a common bitmap to
2826 (unmodified_by_ref_scalar_representative): Build link lists of
2827 accesses of a group.
2828 (splice_param_accesses): Likewise.
2830 2009-11-04 Kenneth Zadeck <zadeck@naturalbridge.com>
2832 * df-scan.c (df-uses-record): Add case zero_extract of mem.
2834 2009-11-04 Eric Botcazou <ebotcazou@adacore.com>
2838 * config/i386/i386.md (probe_stack): New expander.
2839 (logical operation peepholes): Do not split stack checking probes.
2841 2009-11-04 Harsha Jagasia <harsha.jagasia@amd.com>
2842 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
2844 * doc/invoke.texi (-mlwp): Add documentation.
2845 * doc/extend.texi (x86 intrinsics): Add LWP intrinsics.
2846 * config.gcc (i[34567]86-*-*): Include lwpintrin.h.
2847 (x86_64-*-*): Ditto.
2848 * config/i386/lwpintrin.h: New file, provide x86 compiler
2849 intrinisics for LWP.
2850 * config/i386/cpuid.h (bit_LWP): Define LWP bit.
2851 * config/i386/x86intrin.h: Add LWP check and lwpintrin.h.
2852 * config/i386/i386-c.c (ix86_target_macros_internal): Check
2854 * config/i386/i386.h (TARGET_LWP): New macro for LWP.
2855 * config/i386/i386.opt (-mlwp): New switch for LWP support.
2856 * config/i386/i386.c (OPTION_MASK_ISA_LWP_SET): New.
2857 (OPTION_MASK_ISA_LWP_UNSET): New.
2858 (ix86_handle_option): Handle -mlwp.
2859 (isa_opts): Handle -mlwp.
2860 (enum pta_flags): Add PTA_LWP.
2861 (override_options): Add LWP support.
2862 (IX86_BUILTIN_LLWPCB16): New for LWP intrinsic.
2863 (IX86_BUILTIN_LLWPCB32): Ditto.
2864 (IX86_BUILTIN_LLWPCB64): Ditto.
2865 (IX86_BUILTIN_SLWPCB16): Ditto.
2866 (IX86_BUILTIN_SLWPCB32): Ditto.
2867 (IX86_BUILTIN_SLWPCB64): Ditto.
2868 (IX86_BUILTIN_LWPVAL16): Ditto.
2869 (IX86_BUILTIN_LWPVAL32): Ditto.
2870 (IX86_BUILTIN_LWPVAL64): Ditto.
2871 (IX86_BUILTIN_LWPINS16): Ditto.
2872 (IX86_BUILTIN_LWPINS32): Ditto.
2873 (IX86_BUILTIN_LWPINS64): Ditto.
2874 (enum ix86_special_builtin_type): Add LWP intrinsic support.
2875 (builtin_description): Ditto.
2876 (ix86_init_mmx_sse_builtins): Ditto.
2877 (ix86_expand_special_args_builtin): Ditto.
2878 * config/i386/i386.md (UNSPEC_LLWP_INTRINSIC): Add new UNSPEC for
2880 (UNSPEC_SLWP_INTRINSIC): Ditto.
2881 (UNSPECV_LWPVAL_INTRINSIC): Ditto.
2882 (UNSPECV_LWPINS_INTRINSIC): Ditto.
2883 (lwp_llwpcbhi1): New lwp pattern.
2884 (lwp_llwpcbsi1): Ditto.
2885 (lwp_llwpcbdi1): Ditto.
2886 (lwp_slwpcbhi1): Ditto.
2887 (lwp_slwpcbsi1): Ditto.
2888 (lwp_slwpcbdi1): Ditto.
2889 (lwp_lwpvalhi3): Ditto.
2890 (lwp_lwpvalsi3): Ditto.
2891 (lwp_lwpvaldi3): Ditto.
2892 (lwp_lwpinshi3): Ditto.
2893 (lwp_lwpinssi3): Ditto.
2894 (lwp_lwpinsdi3): Ditto.
2896 2009-11-04 Andrew Pinski <andrew_pinski@playstation.sony.com>
2897 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
2900 * simplify-rtx.c (simplify_binary_operation_1): Simplify vec_select of
2903 2009-11-04 Richard Guenther <rguenther@suse.de>
2904 Rafael Avila de Espindola <espindola@google.com>
2906 * gcc.c (process_command): Handle arguments name@offset.
2908 2009-11-04 Harsha Jagasia <harsha.jagasia@amd.com>
2909 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
2911 * config.gcc (i[34567]86-*-*): Include xopintrin.h.
2912 (x86_64-*-*): Ditto.
2913 * config/i386/xopintrin.h: New file, provide common x86 compiler
2914 intrinisics for XOP.
2915 * config/i386/cpuid.h (bit_XOP): Define XOP bit.
2916 * config/i386/x86intrin.h: Add XOP check and xopintrin.h.
2917 * config/i386/i386-c.c(ix86_target_macros_internal): Check
2919 * config/i386/i386.h(TARGET_XOP): New macro for XOP.
2920 * config/i386/i386.opt (-mxop): New switch for XOP support.
2921 * config/i386/i386.md (UNSPEC_XOP_UNSIGNED_CMP)
2922 (UNSPEC_XOP_TRUEFALSE)
2923 (UNSPEC_XOP_PERMUTE)
2924 (UNSPEC_FRCZ): Add new UNSPEC for XOP support.
2925 (PPERM_*): New constants for vpperm instruction.
2926 (xop_pcmov_<mode>): Add XOP conditional mov instructions.
2927 * config/i386/i386.c (OPTION_MASK_ISA_XOP_SET): New.
2928 (OPTION_MASK_ISA_XOP_UNSET): New.
2929 (OPTION_MASK_ISA_XOP_UNSET): Change definition to depend on XOP.
2930 (ix86_handle_option): Handle -mxop.
2931 (isa_opts): Handle -mxop.
2932 (enum pta_flags): Add PTA_XOP.
2933 (override_options): Add XOP support.
2934 (print_operand): Add code for XOP compare instructions.
2935 (ix86_expand_sse_movcc): Extend for XOP conditional move instruction.
2936 (ix86_expand_int_vcond): Extend for XOP compare instruction.
2938 (IX86_BUILTIN_VPCMOV): New for XOP intrinsic.
2939 (IX86_BUILTIN_VPCMOV_V2DI): Ditto.
2940 (IX86_BUILTIN_VPCMOV_V4SI): Ditto.
2941 (IX86_BUILTIN_VPCMOV_V8HI): Ditto.
2942 (IX86_BUILTIN_VPCMOV_V16QI): Ditto.
2943 (IX86_BUILTIN_VPCMOV_V4SF): Ditto.
2944 (IX86_BUILTIN_VPCMOV_V2DF): Ditto.
2946 (IX86_BUILTIN_VPCMOV256): Ditto.
2947 (IX86_BUILTIN_VPCMOV_V4DI256): Ditto.
2948 (IX86_BUILTIN_VPCMOV_V8SI256): Ditto.
2949 (IX86_BUILTIN_VPCMOV_V16HI256): Ditto.
2950 (IX86_BUILTIN_VPCMOV_V32QI256): Ditto.
2951 (IX86_BUILTIN_VPCMOV_V8SF256): Ditto.
2952 (IX86_BUILTIN_VPCMOV_V4DF256): Ditto.
2954 (IX86_BUILTIN_VPPERM): Ditto.
2956 (IX86_BUILTIN_VPMACSSWW): Ditto.
2957 (IX86_BUILTIN_VPMACSWW): Ditto.
2958 (IX86_BUILTIN_VPMACSSWD): Ditto.
2959 (IX86_BUILTIN_VPMACSWD): Ditto.
2960 (IX86_BUILTIN_VPMACSSDD): Ditto.
2961 (IX86_BUILTIN_VPMACSDD): Ditto.
2962 (IX86_BUILTIN_VPMACSSDQL): Ditto.
2963 (IX86_BUILTIN_VPMACSSDQH): Ditto.
2964 (IX86_BUILTIN_VPMACSDQL): Ditto.
2965 (IX86_BUILTIN_VPMACSDQH): Ditto.
2966 (IX86_BUILTIN_VPMADCSSWD): Ditto.
2967 (IX86_BUILTIN_VPMADCSWD): Ditto.
2969 (IX86_BUILTIN_VPHADDBW): Ditto.
2970 (IX86_BUILTIN_VPHADDBD): Ditto.
2971 (IX86_BUILTIN_VPHADDBQ): Ditto.
2972 (IX86_BUILTIN_VPHADDWD): Ditto.
2973 (IX86_BUILTIN_VPHADDWQ): Ditto.
2974 (IX86_BUILTIN_VPHADDDQ): Ditto.
2975 (IX86_BUILTIN_VPHADDUBW): Ditto.
2976 (IX86_BUILTIN_VPHADDUBD): Ditto.
2977 (IX86_BUILTIN_VPHADDUBQ): Ditto.
2978 (IX86_BUILTIN_VPHADDUWD): Ditto.
2979 (IX86_BUILTIN_VPHADDUWQ): Ditto.
2980 (IX86_BUILTIN_VPHADDUDQ): Ditto.
2981 (IX86_BUILTIN_VPHSUBBW): Ditto.
2982 (IX86_BUILTIN_VPHSUBWD): Ditto.
2983 (IX86_BUILTIN_VPHSUBDQ): Ditto.
2985 (IX86_BUILTIN_VPROTB): Ditto.
2986 (IX86_BUILTIN_VPROTW): Ditto.
2987 (IX86_BUILTIN_VPROTD): Ditto.
2988 (IX86_BUILTIN_VPROTQ): Ditto.
2989 (IX86_BUILTIN_VPROTB_IMM): Ditto.
2990 (IX86_BUILTIN_VPROTW_IMM): Ditto.
2991 (IX86_BUILTIN_VPROTD_IMM): Ditto.
2992 (IX86_BUILTIN_VPROTQ_IMM): Ditto.
2994 (IX86_BUILTIN_VPSHLB): Ditto.
2995 (IX86_BUILTIN_VPSHLW): Ditto.
2996 (IX86_BUILTIN_VPSHLD): Ditto.
2997 (IX86_BUILTIN_VPSHLQ): Ditto.
2998 (IX86_BUILTIN_VPSHAB): Ditto.
2999 (IX86_BUILTIN_VPSHAW): Ditto.
3000 (IX86_BUILTIN_VPSHAD): Ditto.
3001 (IX86_BUILTIN_VPSHAQ): Ditto.
3003 (IX86_BUILTIN_VFRCZSS): Ditto.
3004 (IX86_BUILTIN_VFRCZSD): Ditto.
3005 (IX86_BUILTIN_VFRCZPS): Ditto.
3006 (IX86_BUILTIN_VFRCZPD): Ditto.
3007 (IX86_BUILTIN_VFRCZPS256): Ditto.
3008 (IX86_BUILTIN_VFRCZPD256): Ditto.
3010 (IX86_BUILTIN_VPCOMEQUB): Ditto.
3011 (IX86_BUILTIN_VPCOMNEUB): Ditto.
3012 (IX86_BUILTIN_VPCOMLTUB): Ditto.
3013 (IX86_BUILTIN_VPCOMLEUB): Ditto.
3014 (IX86_BUILTIN_VPCOMGTUB): Ditto.
3015 (IX86_BUILTIN_VPCOMGEUB): Ditto.
3016 (IX86_BUILTIN_VPCOMFALSEUB): Ditto.
3017 (IX86_BUILTIN_VPCOMTRUEUB): Ditto.
3019 (IX86_BUILTIN_VPCOMEQUW): Ditto.
3020 (IX86_BUILTIN_VPCOMNEUW): Ditto.
3021 (IX86_BUILTIN_VPCOMLTUW): Ditto.
3022 (IX86_BUILTIN_VPCOMLEUW): Ditto.
3023 (IX86_BUILTIN_VPCOMGTUW): Ditto.
3024 (IX86_BUILTIN_VPCOMGEUW): Ditto.
3025 (IX86_BUILTIN_VPCOMFALSEUW): Ditto.
3026 (IX86_BUILTIN_VPCOMTRUEUW): Ditto.
3028 (IX86_BUILTIN_VPCOMEQUD): Ditto.
3029 (IX86_BUILTIN_VPCOMNEUD): Ditto.
3030 (IX86_BUILTIN_VPCOMLTUD): Ditto.
3031 (IX86_BUILTIN_VPCOMLEUD): Ditto.
3032 (IX86_BUILTIN_VPCOMGTUD): Ditto.
3033 (IX86_BUILTIN_VPCOMGEUD): Ditto.
3034 (IX86_BUILTIN_VPCOMFALSEUD): Ditto.
3035 (IX86_BUILTIN_VPCOMTRUEUD): Ditto.
3037 (IX86_BUILTIN_VPCOMEQUQ): Ditto.
3038 (IX86_BUILTIN_VPCOMNEUQ): Ditto.
3039 (IX86_BUILTIN_VPCOMLTUQ): Ditto.
3040 (IX86_BUILTIN_VPCOMLEUQ): Ditto.
3041 (IX86_BUILTIN_VPCOMGTUQ): Ditto.
3042 (IX86_BUILTIN_VPCOMGEUQ): Ditto.
3043 (IX86_BUILTIN_VPCOMFALSEUQ): Ditto.
3044 (IX86_BUILTIN_VPCOMTRUEUQ): Ditto.
3046 (IX86_BUILTIN_VPCOMEQB): Ditto.
3047 (IX86_BUILTIN_VPCOMNEB): Ditto.
3048 (IX86_BUILTIN_VPCOMLTB): Ditto.
3049 (IX86_BUILTIN_VPCOMLEB): Ditto.
3050 (IX86_BUILTIN_VPCOMGTB): Ditto.
3051 (IX86_BUILTIN_VPCOMGEB): Ditto.
3052 (IX86_BUILTIN_VPCOMFALSEB): Ditto.
3053 (IX86_BUILTIN_VPCOMTRUEB): Ditto.
3055 (IX86_BUILTIN_VPCOMEQW): Ditto.
3056 (IX86_BUILTIN_VPCOMNEW): Ditto.
3057 (IX86_BUILTIN_VPCOMLTW): Ditto.
3058 (IX86_BUILTIN_VPCOMLEW): Ditto.
3059 (IX86_BUILTIN_VPCOMGTW): Ditto.
3060 (IX86_BUILTIN_VPCOMGEW): Ditto.
3061 (IX86_BUILTIN_VPCOMFALSEW): Ditto.
3062 (IX86_BUILTIN_VPCOMTRUEW): Ditto.
3064 (IX86_BUILTIN_VPCOMEQD): Ditto.
3065 (IX86_BUILTIN_VPCOMNED): Ditto.
3066 (IX86_BUILTIN_VPCOMLTD): Ditto.
3067 (IX86_BUILTIN_VPCOMLED): Ditto.
3068 (IX86_BUILTIN_VPCOMGTD): Ditto.
3069 (IX86_BUILTIN_VPCOMGED): Ditto.
3070 (IX86_BUILTIN_VPCOMFALSED): Ditto.
3071 (IX86_BUILTIN_VPCOMTRUED): Ditto.
3073 (IX86_BUILTIN_VPCOMEQQ): Ditto.
3074 (IX86_BUILTIN_VPCOMNEQ): Ditto.
3075 (IX86_BUILTIN_VPCOMLTQ): Ditto.
3076 (IX86_BUILTIN_VPCOMLEQ): Ditto.
3077 (IX86_BUILTIN_VPCOMGTQ): Ditto.
3078 (IX86_BUILTIN_VPCOMGEQ): Ditto.
3079 (IX86_BUILTIN_VPCOMFALSEQ): Ditto.
3080 (IX86_BUILTIN_VPCOMTRUEQ): Ditto.
3082 (enum multi_arg_type): New enum for describing the various XOP
3083 intrinsic argument types.
3084 (bdesc_multi_arg): New table for XOP intrinsics.
3085 (ix86_init_mmx_sse_builtins): Add XOP intrinsic support.
3086 (ix86_expand_multi_arg_builtin): New function for creating XOP
3089 * config/i386/sse.md (sserotatemax): New mode attribute for XOP.
3090 (xop_pmacsww): Ditto.
3091 (xop_pmacssww): Ditto.
3092 (xop_pmacsdd): Ditto.
3093 (xop_pmacssdd): Ditto.
3094 (xop_pmacssdql): Ditto.
3095 (xop_pmacssdqh): Ditto.
3096 (xop_pmacsdql): Ditto.
3097 (xop_pmacsdql_mem): Ditto.
3098 (xop_mulv2div2di3_low): Ditto.
3099 (xop_pmacsdqh): Ditto.
3100 (xop_pmacsdqh_mem): Ditto.
3101 (xop_mulv2div2di3_high): Ditto.
3102 (xop_pmacsswd): Ditto.
3103 (xop_pmacswd): Ditto.
3104 (xop_pmadcsswd): Ditto.
3105 (xop_pmadcswd): Ditto.
3106 (xop_pcmov_<mode>): Ditto.
3107 (xop_pcmov_<mode>256): Ditto.
3108 (xop_phaddbw): Ditto.
3109 (xop_phaddbd): Ditto.
3110 (xop_phaddbq): Ditto.
3111 (xop_phaddwd): Ditto.
3112 (xop_phaddwq): Ditto.
3113 (xop_phadddq): Ditto.
3114 (xop_phaddubw): Ditto.
3115 (xop_phaddubd): Ditto.
3116 (xop_phaddubq): Ditto.
3117 (xop_phadduwd): Ditto.
3118 (xop_phadduwq): Ditto.
3119 (xop_phaddudq): Ditto.
3120 (xop_phsubbw): Ditto.
3121 (xop_phsubwd): Ditto.
3122 (xop_phsubdq): Ditto.
3124 (rotl<mode>3): Ditto.
3125 (rotr<mode>3): Ditto.
3126 (xop_rotl<mode>3): Ditto.
3127 (xop_rotr<mode>3): Ditto.
3128 (vrotr<mode>3): Ditto.
3129 (vrotl<mode>3): Ditto.
3130 (xop_vrotl<mode>3): Ditto.
3131 (vlshr<mode>3): Ditto.
3132 (vashr<mode>3): Ditto.
3134 (xop_ashl<mode>3): Ditto.
3135 (xop_lshl<mode>3): Ditto.
3136 (ashlv16qi3): Ditto.
3137 (lshlv16qi3): Ditto.
3138 (ashrv16qi3): Ditto.
3140 (xop_frcz<mode>2): Ditto.
3141 (xop_vmfrcz<mode>2): Ditto.
3142 (xop_frcz<mode>2256): Ditto.
3143 (xop_maskcmp<mode>3): Ditto.
3144 (xop_maskcmp_uns<mode>3): Ditto.
3145 (xop_maskcmp_uns2<mode>3): Ditto.
3146 (xop_pcom_tf<mode>3): Ditto.
3148 * doc/invoke.texi (-mxop): Add documentation.
3149 * doc/extend.texi (x86 intrinsics): Add XOP intrinsics.
3151 2009-11-03 Mark Mitchell <mark@codesourcery.com>
3154 * gcc.c (SWITCHES_NEED_SPACES): Define to "o".
3155 * config/alpha/osf.h (SWITCHES_NEED_SPACES): Remove here.
3156 * config/mips/iris.h (SWITCHES_NEED_SPACES): Remove here.
3158 2009-11-04 Richard Earnshaw <rearnsha@arm.com>
3161 * arm.md (peephole2 patterns for move and compare): New.
3163 2009-11-04 Nick Clifton <nickc@redhat.com>
3165 * defaults.h (CONSTANT_ADDRESS_P): Provide a default definition.
3166 Make sure that it does not allow CONST_DOUBLEs.
3167 * doc/tm.texi (CONSTANT_ADDRESS_P): Update description.
3168 * config/avr/avr.h (CONSTANT_ADDRESS_P): Delete.
3169 * config/bfin/bfin.h (CONSTANT_ADDRESS_P): Delete.
3170 * config/cris/cris.h (CONSTANT_ADDRESS_P): Delete.
3171 * config/fr30/fr30.h (CONSTANT_ADDRESS_P): Delete.
3172 * config/frv/frv.h (CONSTANT_ADDRESS_P): Delete.
3173 * config/m32c/m32c.h (CONSTANT_ADDRESS_P): Delete.
3174 * config/m68hc11/m68hc11.h (CONSTANT_ADDRESS_P): Delete.
3175 * config/mep/mep.h (CONSTANT_ADDRESS_P): Delete.
3176 * config/mn10300/mn10300.h (CONSTANT_ADDRESS_P): Delete.
3177 * config/moxie/moxie.h (CONSTANT_ADDRESS_P): Delete.
3178 * config/pdp11/pdp11.h (CONSTANT_ADDRESS_P): Delete.
3179 * config/picochip/picochip.h (CONSTANT_ADDRESS_P): Delete.
3180 * config/score/score.h (CONSTANT_ADDRESS_P): Delete.
3181 * config/stormy16/stormy16.h (CONSTANT_ADDRESS_P): Delete.
3183 2009-11-04 Richard Guenther <rguenther@suse.de>
3185 PR tree-optimization/41919
3186 * tree-vrp.c (test_for_singularity): Properly compare values.
3188 2009-11-04 Revital Eres <eres@il.ibm.com>
3190 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
3191 Consider peeling for alignment only for stores and remove
3192 redundant assignment.
3194 2009-11-04 Maxim Kuvyrkov <maxim@codesourcery.com>
3197 * config/m68k/m68k.c (m68k_reg_present_p): New static function.
3198 (m68k_ok_for_sibcall_p): Handle different result return locations.
3200 2009-11-04 Richard Guenther <rguenther@suse.de>
3202 * c-opts.c (c_common_post_options): Move LTO option processing
3204 * opts.c (decode_options): ... here.
3206 2009-11-04 Jakub Jelinek <jakub@redhat.com>
3208 * c-common.c (fold_offsetof_1): Use %wd instead of
3209 HOST_WIDE_INT_PRINT_DEC.
3211 2009-11-04 Maciej W. Rozycki <macro@linux-mips.org>
3213 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Don't define
3216 2009-11-04 Maciej W. Rozycki <macro@linux-mips.org>
3218 * config.gcc (vax-*-linux*): Keep the original contents of
3219 tmake_file while adding vax/t-linux.
3221 2009-11-03 Eric Botcazou <ebotcazou@adacore.com>
3225 * expr.h (STACK_CHECK_PROBE_INTERVAL): Delete.
3226 (STACK_CHECK_PROBE_INTERVAL_EXP): New macro.
3227 (STACK_CHECK_MOVING_SP): Likewise.
3228 * system.h (STACK_CHECK_PROBE_INTERVAL): Poison it.
3229 * doc/tm.texi (Stack Checking): Delete STACK_CHECK_PROBE_INTERVAL.
3230 Document STACK_CHECK_PROBE_INTERVAL_EXP and STACK_CHECK_MOVING_SP.
3231 * doc/md.texi (Standard Pattern Names): Tweak entry of CHECK_STACK.
3232 Document PROBE_STACK.
3233 * explow.c (anti_adjust_stack_and_probe): New function.
3234 (allocate_dynamic_stack_space): Do not directly allocate space if
3235 STACK_CHECK_MOVING_SP, instead invoke above function.
3236 (emit_stack_probe): Handle probe_stack insn.
3237 (PROBE_INTERVAL): New macro.
3238 (STACK_GROW_OPTAB): Likewise.
3239 (STACK_GROW_OFF): Likewise.
3240 (probe_stack_range): Use Pmode and memory_address consistently. Fix
3241 loop condition in the small constant case. Rewrite in the general
3242 case to be immune to wraparounds. Make sure the address of probes
3243 is valid. Try to use [base + disp] addressing mode if possible.
3244 * ira.c (setup_eliminable_regset): Set frame_pointer_needed if stack
3245 checking is enabled and STACK_CHECK_MOVING_SP.
3246 * rtlanal.c (may_trap_p_1) <MEM>: If stack checking is enabled,
3247 return 1 for volatile references to the stack pointer.
3248 * tree.c (build_common_builtin_nodes): Do not set ECF_NOTHROW on
3249 __builtin_alloca if stack checking is enabled.
3250 * unwind-dw2.c (uw_identify_context): Take into account whether the
3251 context is that of a signal frame or not.
3252 * config/i386/linux.h (STACK_CHECK_MOVING_SP): Define to 1.
3253 * config/i386/linux64.h (STACK_CHECK_MOVING_SP): Likewise.
3255 2009-11-03 Jakub Jelinek <jakub@redhat.com>
3257 PR rtl-optimization/41917
3258 * rtlanal.c (num_sign_bit_copies1) <case UMOD>: If sign bit of second
3259 operand isn't known to be 0, return 1.
3261 2009-11-03 Richard Sandiford <rdsandiford@googlemail.com>
3263 * config/mips/mips.md: Fix typos.
3265 2009-11-03 Richard Sandiford <rdsandiford@googlemail.com>
3267 * doc/invoke.texi: Fix typo.
3269 2009-11-03 Paul Brook <paul@codesourcery.com>
3271 * config/arm/neon.ml (vectype): Add T_floatSF.
3272 (string_of_vectype): Ditto.
3273 * config/arm/neon-gen.ml (signed_ctype): Add T_floatSF.
3274 (deftypes): Use float for float32_t.
3275 * config/arm/arm_neon.h: Regenerate.
3277 2009-11-03 Nick Clifton <nickc@redhat.com>
3278 Kevin Buettner <kevinb@redhat.com>
3280 * config/rx/predicates.md (rx_store_multiple_vector): Reverse
3281 order of expected registers.
3282 (rx_load_multiple_vector): Likewise.
3283 (rx_rtsd_vector): Likewise.
3284 * config/rx/rx.c (rx_cpu_type): New variable.
3285 (rx_print_operand): Fix bug printing 64-bit constant values.
3286 (rx_emit_stack_pushm): Reverse order of pushed registers.
3287 (gen_rx_store_vector): Likewise.
3288 (is_fast_interrupt_func): Only accept "fast_interrupt" as the
3290 (is_exception_func): Rename to is_interrupt_func and only accept
3291 "interrupt" as the attribute name.
3292 (rx_get_stack_layout): Use new function name.
3293 (rx_func_attr_inlinable): Likewise.
3294 (rx_attribute_table): Remove "exception".
3295 (rx_expand_prologue): If necessary push the accumulator register
3296 in the prologue of interrupt functions.
3297 (rx_expand_epilogue): If necessary pop the accumulator.
3298 (rx_builtins): Add RX_BUILTIN_MVTIPL.
3299 (rx_expand_builtin_stz): Remove.
3300 (rx_expand_builtin_mvtipl): New function.
3301 (rx_init_builtins): Handle RX_BUILTIN_MVTIPL.
3302 (rx_expand_builtin): Likewise.
3303 (rx_enable_fpu): New variable.
3304 (rx_handle_option): Handle -fpu, -nofpu, -mcpu and -patch.
3305 * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Assert machine based
3306 on rx_cpu_type. Define __RX_FPU_INSNS__ if FPU insns are allowed.
3307 (enum rx_cpu_types): Define.
3308 (ASM_SPEC): Pass -m32bit-doubles on to assembler.
3309 (INCOMING_FRAME_SP_OFFSET): Define.
3310 (ARG_POINTER_CFA_OFFSET): Define.
3311 (FRAME_POINTER_CFA_OFFSET): Define.
3312 (OVERRIDE_OPTIONS): Enable fast math if RX FPU insns are enabled.
3313 (ALLOW_RX_FPU_INSNS): Define.
3314 * config/rx/rx.md: Test ALLOW_RX_FPU_INSNS instead of
3315 fast_math_flags_set_p.
3316 (UNSPEC_BUILTIN_MVTIPL): Define.
3317 (revl): Rename to bswapsi2.
3318 (bswaphi2): New pattern.
3319 (mvtachi): Mark as volatile because it uses a register unknown to GCC.
3320 (mvtaclo): Likewise.
3322 (mvtc): Remove clobber of cc0.
3325 * config/rx/rx.opt (mieee): Remove.
3330 (msave-acc-in-interrupts): Add.
3331 * config/rx/t-rx (MULTILIB_OPTIONS): Change default to 64bit doubles.
3332 (MULTILIB_DIRS): Likewise.
3333 (MULTILIB_MATCHES): Treat -fpu as an alias for -m32bit-doubles.
3334 * doc/extend.texi: Remove description of "exception" function
3336 * doc/invoke.texi: Document -fpu, -nofpu, -mcpu=, -patch= and
3337 -msave-acc-in-interrupts options.
3339 2009-11-03 Richard Guenther <rguenther@suse.de>
3341 * c-common.c (fold_offsetof_1): Use HOST_WIDE_INT_PRINT_DEC.
3343 2009-11-03 Dodji Seketeli <dodji@redhat.com>
3346 * c-common.c (fold_offsetof_1): Issue errors when the member
3347 designator of the offsetof expression is not legitimate.
3349 2009-11-03 Uros Bizjak <ubizjak@gmail.com>
3351 * config/i386/i386.md (*call_value_1_rex64_ms_sysv): Use register
3352 names instead of numerical constants.
3353 (sse_prologue_save): Ditto.
3354 (*sse_prologue_save_insn): Ditto.
3356 2009-11-03 Uros Bizjak <ubizjak@gmail.com>
3359 * config/i386/i386.h (ix86_arch_indices) <X86_ARCH_CALL_ESP>: New.
3360 (TARGET_CALL_ESP): New define.
3361 * config/i386/i386.c (initial_ix86_tune_features): Initialize
3363 * config/i386/i386.md (*call_pop_1_esp, *call_1_esp,
3364 *call_value_pop_1_esp, *call_value_1_esp): Rename from *call_pop_1,
3365 *call_1, *call_value_pop_1 and *call_value_1. Depend on
3367 (*call_pop_1, *call_1, *call_value_pop_1, *call_value_1):
3368 New patterns, use "lsm" as operand 1 constraint.
3369 * config/i386/predicates.md (call_insn_operand): Depend on
3370 index_register_operand for !TARGET_CALL_ESP to avoid %esp register.
3372 2009-11-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3374 PR tree-optimization/41857
3375 * tree-flow.h (rewrite_use_address): Add BASE_HINT argument.
3376 * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass base hint
3378 * tree-ssa-address.c (move_hint_to_base): New function.
3379 (most_expensive_mult_to_index): Add TYPE argument. Use mode and
3380 address space associated with TYPE.
3381 (addr_to_parts): Add TYPE and BASE_HINT arguments. Pass TYPE to
3382 most_expensive_mult_to_index. Call move_hint_to_base.
3383 (create_mem_ref): Add BASE_HINT argument. Pass BASE_HINT and
3384 TYPE to addr_to_parts.
3386 2009-11-02 Martin Jambor <mjambor@suse.cz>
3388 PR tree-optimization/41750
3389 * tree-sra.c (analyze_modified_params): Loop over all
3390 representatives of components of a parameter.
3392 2009-11-02 Jakub Jelinek <jakub@redhat.com>
3394 PR tree-optimization/41841
3395 * ipa-struct-reorg.c (build_data_structure): Don't attempt to look at
3396 local variables of not yet materialized clones.
3399 * cfgexpand.c (expand_debug_expr): Don't attempt to create DECL_RTL
3400 for a VOIDmode variable.
3403 * c-pragma.c (visstack): Change into vector of ints rather than
3404 enum symbol_visibility.
3405 (push_visibility): Add kind argument, push default_visibility together
3407 (pop_visibility): Add kind argument, return true if successful, fail
3408 if visibility stack is empty or if stack top is of different kind.
3409 (handle_pragma_visibility): Don't check length of visstack, instead
3410 call pop_visibility and issue diagnostics if it failed. Pass 0
3411 as last argument to push_visibility and pop_visibility.
3412 * c-pragma.h (push_visibility): Add kind argument.
3413 (pop_visibility): Likewise. Return bool instead of void.
3415 2009-11-01 Eric Botcazou <ebotcazou@adacore.com>
3417 * tree.def (TARGET_MEM_REF): Update comment.
3418 * alias.c (get_alias_set): Retrieve the original memory reference for
3419 a TARGET_MEM_REF before proceeding.
3421 2009-10-31 Anatoly Sokolov <aesok@post.ru>
3423 * config/frv/frv.c (frv_function_value, frv_libcall_value,
3424 frv_function_value_regno_p): New functions.
3425 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
3426 * config/frv/frv.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove.
3427 (FUNCTION_VALUE_REGNO_P): Redefine, use frv_function_value_regno_p.
3428 * config/frv/frv-protos.h (frv_function_value_regno_p): Declare.
3430 2009-10-31 Anatoly Sokolov <aesok@post.ru>
3432 * config/mn10300/mn10300.c (mn10300_function_value): Make static, add
3433 new 'outgoing' argument.
3434 (mn10300_libcall_value, mn10300_function_value_regno_p): New functions.
3435 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
3436 * config/mn10300/mn10300.h (FUNCTION_VALUE,&nbs