1 2009-12-13 Eric Botcazou <ebotcazou@adacore.com>
3 * doc/tm.texi (STACK_CHECK_PROBE_LOAD): Delete.
4 * expr.h (STACK_CHECK_PROBE_LOAD): Likewise.
5 * explow.c (emit_stack_probe): Do not test STACK_CHECK_PROBE_LOAD.
6 * system.h (STACK_CHECK_PROBE_LOAD): Poison.
8 2009-12-13 Michael Matz <matz@suse.de>
10 PR tree-optimization/42027
11 * dojump.c (do_jump <TRUTH_AND_EXPR, TRUTH_OR_EXPR>): Go to
12 TRUTH_ANDIF_EXPR resp. TRUTH_ORIF_EXPR expander, instead of
15 2009-12-13 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
18 * config/avr/predicates.md (pseudo_register_operand): New predicate
20 * config/avr/avr.md (divmodqi4): Replace with define_insn_and_split
21 to allow div/mod optimization.
28 2009-12-13 Richard Guenther <rguenther@suse.de>
30 PR tree-optimization/42357
31 * tree-sra.c (sra_modify_assign): Do not tear apart struct copies.
33 2009-12-12 Richard Guenther <rguenther@suse.de>
35 * tree.c (need_assembler_name_p): Abstract decls do not need
37 * dwarf2out.c (dwarf2out_abstract_function): Preserve
38 DECL_ABSTRACT properly.
40 2009-12-11 Richard Guenther <rguenther@suse.de>
42 * lto-streamer-in.c (lto_input_tree_ref): Do not register
43 DEBUG_EXPR_DECLs with the varpool.
45 2009-12-11 Eric Botcazou <ebotcazou@adacore.com>
47 * config/sparc/linux-unwind.h (MD_FROB_UPDATE_CONTEXT, 64-bit): Define.
48 (sparc64_frob_update_context): New function.
50 2009-12-11 Richard Guenther <rguenther@suse.de>
54 * lto-streamer-out.c (write_global_stream): Do not make decls
55 weak but resort to TREE_ASM_WRITTEN to avoid multiple definitions.
56 Make sure to mark all decls that we have written.
58 2009-12-11 Sebastian Andrzej Siewior <bigeasy@linutronix.de>
62 * config/m68k/linux.h: Remove LABELNO from the mcount statement. It is
63 not used by glibc/uclibc and does not work with large binaries.
65 2009-12-11 Richard Guenther <rguenther@suse.de>
68 * lto-streamer-in.c (lto_init_eh): Move eh_initialized_p
70 (input_eh_regions): Adjust.
71 (lto_input_ts_function_decl_tree_pointers): Initialize EH
72 if a non-NULL DECL_FUNCTION_PERSONALITY was read in.
74 2009-12-11 Duncan Sands <baldrick@free.fr>
76 * passes.c (make_pass_instance): Allocate and copy the right amount of
77 memory for ipa passes, which are not the same size as other passes.
79 2009-12-11 Joern Rennecke <amylaar@spamcop.net>
81 * plugin.c (get_named_event_id): Fix hash table rebuild to include
82 dynamically allocated events.
84 2009-12-11 Richard Guenther <rguenther@suse.de>
87 * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Properly
88 detect non-prevailing decls.
90 2009-12-10 Jakub Jelinek <jakub@redhat.com>
93 * cgraph.h (struct cgraph_node): Add same_comdat_group field.
94 * cgraph.c (cgraph_remove_node): Unchain node from same_comdat_group
96 (cgraph_node_can_be_local_p): Return false for DECL_COMDAT with
97 node->same_comdat_group.
98 * ipa.c (cgraph_remove_unreachable_nodes): For any reachable node
99 mark all its same_comdat_group nodes as also reachable.
100 (cgraph_externally_visible_p): Return true even if any of
101 same_comdat_group nodes has address taken.
102 * lto-cgraph.c (lto_output_node): Stream out same_comdat_group.
103 (output_cgraph): Ensure other same_comdat_group nodes are also
105 (input_node): Stream in same_comdat_group.
106 (input_cgraph_1): Fix up same_comdat_group fields from references
108 * cgraphunit.c (cgraph_analyze_functions): Mark all other
109 same_comdat_group nodes as reachable.
110 (cgraph_mark_functions_to_output): For each node->process process
111 also other same_comdat_group nodes.
112 * ipa-inline.c (cgraph_clone_inlined_nodes): Don't reuse nodes
113 with same_comdat_group non-NULL.
114 (cgraph_mark_inline_edge): Likewise.
116 2009-12-10 Jan Hubicka <jh@suse.cz>
120 * cgraph.c (cgraph_create_edge_including_clones): Add old_stmt
121 parameter; update edge if it already exists.
122 (cgraph_remove_node): Handle correctly cases where we are removing
124 * cgraph.h (cgraph_create_edge_including_clones): Declare.
125 (verify_cgraph_node): Add missing error_found = true code.
126 (cgraph_materialize_all_clones): Remove call edges of dead nodes.
127 * ipa.c (cgraph_remove_unreachable_nodes): Correctly look for master
128 clone; fix double linked list removal.
129 * tree-inline.c (copy_bb): Update cgraph_create_edge_including_clones
130 call; fix frequency of newly created edge.
132 2009-12-10 Bernd Schmidt <bernd.schmidt@analog.com>
135 * regrename.c: Error out if MAX_RECOG_OPERANDS is larger than
136 HOST_BITS_PER_WIDE_INT.
137 (verify_reg_in_set): New function, broken out of verify_reg_tracked.
138 (verify_reg_tracked): Use it.
139 (scan_rtx_reg): When seeing a use involving a superset of the
140 registers in an existing chain, enlarge that chain. Otherwise,
141 allow subsets and set fail_current_block for all other kinds of
143 (hide_operands): New argument UNTRACKED_OPERANDS; callers changed.
144 Do not modify operands when the bit with the corresponding number
145 is set in that bitmap.
146 (build_def_use): When we see matching operands with different
147 modes, don't set fail_current_block, but keep track of such
148 operands in a bitmap if their registers aren't already tracked
149 in an open chain. Pass this bitmap to all hide_operands calls.
151 2009-12-10 Richard Guenther <rguenther@suse.de>
153 PR tree-optimization/42337
154 * tree-ssa-pre.c (seen_during_translate): Remove.
155 (phi_translate_1): Collapse into ...
156 (phi_translate): ... this. Remove seen parameter and
157 adjust recursive calls.
159 2009-12-10 Richard Guenther <rguenther@suse.de>
160 Allan Sandfeld Jensen <linux@carewolf.com>
162 * tree-vectorizer.c (vectorize_loops): Properly guard
163 vectorizer verboseness.
165 2009-12-10 Ben Elliston <bje@au.ibm.com>
167 * fwprop.c (free_load_extend): Initialise `use'.
169 2009-12-09 David Edelsohn <edelsohn@gnu.org>
171 * builtins.c (do_mpc_ckconv): Pass the component type to
174 2009-12-09 Xinliang David Li <davidxl@google.com>
176 PR tree-optimization/42337
177 * tree-ssa-pre.c (phi_translate_1): Push and Pop SEEN set.
179 2009-12-09 Nathan Froyd <froydnj@codesourcery.com>
181 * config/rs6000/vector.md (absv2sf2, negv2sf2, addv2sf3, subv2sf3,
182 mulv2sf3, divv2sf3): New expanders.
183 * config/rs6000/spe.md (spe_evabs, spe_evand, spe_evaddw, spe_evsubfw,
184 spe_evdivws): Rename to use standard GCC names.
185 * config/rs6000/paired.md (negv2sf, absv2sf2, addv2sf3, subv2sf3,
186 mulv2sf3, divv2sf3): Rename to avoid conflict with the new expanders.
187 * config/rs6000/rs6000.c (bdesc_2arg, bdesc_1arg): Use new CODE_FOR_
188 names for renamed patterns.
190 2009-12-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
192 * config/s390/s390.md ("copysign<mode>3"): Pattern removed.
194 2009-12-09 Jakub Jelinek <jakub@redhat.com>
196 * configure.ac: Compute ld_ver, ld_vers, ld_date, ld_vers_major,
197 ld_vers_minor and ld_vers_path always, not just when gcc_cv_ld_hidden
199 * configure: Regenerated.
201 2009-12-08 Richard Henderson <rth@redhat.com>
203 * combine.c (setup_incoming_promotions): Fix sign-extend of
204 zero-extend case; tidy conditions.
206 2009-12-08 Michael Matz <matz@suse.de>
209 * function.c (free_temp_slots): Only walk the temp slot
210 addresses and combine slots if we actually changes something.
211 (pop_temp_slots): Ditto.
213 2009-12-08 Olga Golovanevsky <olga@il.ibm.com>
216 * ipa-struct-reorg.c (compare_fields): New function.
217 (find_field_in_struct_1): Use compare_fields function.
218 (is_equal_types): Likewise.
220 2009-12-07 DJ Delorie <dj@redhat.com>
223 * config/mep/mep.c (mep_expand_prologue): Set
224 really_need_stack_frame after frame_size is set.
226 2009-12-07 Richard Henderson <rth@redhat.com>
229 * combine.c (setup_incoming_promotions): Improve the conditions
230 under which we respect the promotions applied.
232 2009-12-07 Eric Botcazou <ebotcazou@adacore.com>
234 * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch.
235 * config/sparc/linux64.h (ASM_SPEC): Likewise.
237 2009-12-07 Richard Henderson <rth@redhat.com>
241 * tree-ssa.c (insert_debug_temp_for_var_def): Skip propagation
242 for ssa names already registered for update.
244 2009-12-07 Jakub Jelinek <jakub@redhat.com>
247 * ddg.c (add_inter_loop_mem_dep): Use ANTI_DEP if from or to
250 2009-12-07 Sebastian Pop <sebastian.pop@amd.com>
252 * config/i386/driver-i386.c (host_detect_local_cpu): Add -mlwp to the
253 options when bit_LWP is set.
255 2009-12-07 Sebastian Pop <sebastian.pop@amd.com>
257 * config/i386/cpuid.h (bit_ABM): New.
258 * config/i386/driver-i386.c (host_detect_local_cpu): Add -mabm to the
259 options when bit_ABM is set.
261 2009-12-07 Jakub Jelinek <jakub@redhat.com>
263 * config/i386/i386.c (bdesc_special_args): Move __builtin_clzs from
265 (bdesc_args): ... here.
266 * config.gcc (i[34567]86-*-*): Include abmintrin.h.
267 (x86_64-*-*): Likewise.
269 2009-12-07 Sebastian Pop <sebastian.pop@amd.com>
271 * config.gcc (i[34567]86-*-*, x86_64-*-*): Add popcntintrin.h.
272 * config/i386/abmintrin.h (_mm_popcnt_u32, _mm_popcnt_u64): Moved...
273 * config/i386/i386-c.c (__POPCNT__): Defined.
274 * config/i386/popcntintrin.h: ...here. New file.
275 * config/i386/smmintrin.h (_mm_popcnt_u32, _mm_popcnt_u64): Moved...
276 Include popcntintrin.h.
277 * config/i386/x86intrin.h: Include popcntintrin.h when __POPCNT__
280 2009-12-07 Sebastian Pop <sebastian.pop@amd.com>
282 * config/i386/i386-protos.h (ix86_expand_fma4_multiple_memory):
284 * config/i386/i386.c (ix86_expand_fma4_multiple_memory): Removed.
285 * config/i386/sse.md: Remove all XOP splitters.
286 Allow the second and fourth operands of XOP multiply-add insns
289 2009-12-07 Sebastian Pop <sebastian.pop@amd.com>
291 * config/i386/sse.md: Remove all FMA4 splitters.
292 Allow the second operand of FMA4 insns to be a nonimmediate.
293 Fix comments punctuation.
295 2009-12-07 Julian Brown <julian@codesourcery.com>
297 * config/arm/constraints.md (Ps, Pt): New constraint letters.
298 * config/arm/thumb2.md (*thumb2_addsi_short): Tighten constraints.
300 2009-12-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
303 * configure.ac (HAVE_mpc): Don't define.
304 * config.in, configure: Regenerate.
307 * builtins.c: Remove HAVE_mpc* checks throughout.
308 * fold-const.c: Likewise.
310 * toplev.c: Likewise.
312 2009-12-07 Edmar Wienskoski <edmar@freescale.com>
314 * config.gcc (cpu_is_64bit): Add new core e500mc64.
315 (powerpc*-*-*): Add new core e500mc64.
316 * config/rs6000/e500mc64.md: New file.
317 * config/rs6000/rs6000.c (processor_costs): Add new costs for
319 (rs6000_override_options): Add e500mc64 case to
320 processor_target_table. Altivec and Spe options not allowed with
321 e500mc64. Disable string instructions for e500mc64. Enable branch
322 targets alignment for both e500mc and e500mc64. Initialize
323 rs6000_cost for e500mc64.
324 (rs6000_emit_sISEL): New function.
325 (rs6000_emit_sCOND): Call rs6000_emit_sISEL for isel targets.
326 (rs6000_emit_int_cmove): Fix mode of 64 bit isel pattern
328 (rs6000_issue_rate): Set issue rate for e500mc64.
329 (rs6000_rtx_costs): Set more accurate cost for mfcr instruction
330 on architectures with isel.
331 * config/rs6000/rs6000-protos.h (rs6000_emit_sISEL): Declare.
332 * config/rs6000/rs6000.h (processor_type): Add
333 PROCESSOR_PPCE500MC64.
334 (ASM_CPU_SPEC): Add e500mc64.
335 * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc64.
337 (abssi2_isel): Expand pattern to handle DImode.
338 (nabs<mode>2_isel): New pattern.
339 (absdi2): Change pattern to handle 64 bit isel targets.
340 (absdi2_internal): Exclude ISEL targets.
341 (nabsdi2): Exclude ISEL targets.
342 * doc/invoke.texi: Add e500mc64 to list of cpus.
344 2009-12-07 Uros Bizjak <ubizjak@gmail.com>
346 * config/i386/i386.md (any_or): New code iterator.
347 (any_logic): Rename from plogic code iterator.
348 (logicprefix): Rename from plogicprefix code attribute.
349 (<code><mode>3): Macroize expander from {ior,xor}<mode>3 using
350 any_or code iterator.
351 (*<code><mode>_1): Macroize insn from *{ior,xor}<mode>_1 using
352 any_or code iterator.
353 (*<code><mode>_2): Ditto from *{ior,xor}<mode>_2.
354 (*<code><mode>_3): Ditto from *{ior,xor}<mode>_3.
355 (ior and xor splitters): Ditto.
356 * config/i386/mmx.md: Updated for rename.
357 * config/i386/sse.md: Ditto.
359 2009-12-07 Uros Bizjak <ubizjak@gmail.com>
361 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
362 Remove quotes around condition logic code.
364 2009-12-06 Richard Henderson <rth@redhat.com>
367 * tree-ssa-dom.c (degenerate_phi_result): Check for NULL phi
370 2009-12-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
372 * doc/install.texi: Document MPC is required.
374 2009-12-06 Uros Bizjak <ubizjak@gmail.com>
376 * config/i386/i386.md (g): Add HImode and QImode.
377 (general_szext_operand): New mode attribute.
378 (*test<mode>_1): Macroize insn from *test{qi,hi,si}_1 using
379 SWI124 mode iterator.
380 (and<mode>3): Macroize expander from and{qi,hi,si,di}3 using
382 (*and<mode>_2): Macroize insn from *and{qi,hi,si}_2 using
383 SWI124 mode iterator.
384 (ior<mode>3): Macroize expander from ior{qi,hi,si,di}3 using
386 (*ior<mode>_1): Macroize insn from *ior{hi,si,di}_1 using
387 SWI248 mode iterator.
388 (*ior<mode>_2): Macroize insn from *ior{qi,hi,si,di}_2 using
390 (*ior<mode>_3): Macroize insn from *ior{qi,hi,si,di}_3 using
392 (xor<mode>3): Macroize expander from xor{qi,hi,si,di}3 using
394 (*xor<mode>_1): Macroize insn from *xor{hi,si,di}_1 using
395 SWI248 mode iterator.
396 (*xor<mode>_2): Macroize insn from *xor{qi,hi,si,di}_2 using
398 (*xor<mode>_3): Macroize insn from *xor{qi,hi,si,di}_3 using
401 2009-12-05 Sebastian Pop <sebastian.pop@amd.com>
403 * config/i386/i386.c (TARGET_DEFAULT_TARGET_FLAGS): Add
405 * config/i386/i386.h (CC1_CPU_SPEC_1): Remove
406 "'-mfused-madd' was removed".
407 * config/i386/i386.opt (mfused-madd): New.
408 * config/i386/sse.md: Add TARGET_FUSED_MADD to FMA4 insns.
409 * doc/invoke.texi (-mfused-madd, -mno-fused-madd): Document.
411 2009-12-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
413 * pa64-hpux.h (LIB_SPEC): Handle -rdynamic.
414 * pa-hpux10.h (LIB_SPEC): Likewise.
415 * pa-hpux11.h (LIB_SPEC): Likewise.
418 * pa/linux-unwind.h (pa32_fallback_frame_state): Set fs->signal_frame
420 * pa/hpux-unwind.h (pa32_fallback_frame_state): Likewise.
422 2009-12-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
424 * configure: Regenerate.
426 2009-12-05 Richard Earnshaw <rearnsha@arm.com>
428 * arm/thumb2.md (thumb2_mulsi_short_compare0): Use a low-register
431 2009-12-04 David Daney <ddaney@caviumnetworks.com>
433 PR rtl-optimization/42164
434 * combine.c (combine_simplify_rtx): Handle truncation of integer
437 2009-12-04 Richard Guenther <rguenther@suse.de>
439 * lto-streamer-out.c (pack_ts_decl_common_value_fields):
440 Revert previous change.
441 (lto_output_ts_decl_common_tree_pointers): Stream DECL_VALUE_EXPR.
442 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
445 2009-12-04 Richard Guenther <rguenther@suse.de>
447 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
449 (call_may_clobber_ref_p_1): Likewise.
451 2009-12-04 Matthias Klose <doko@ubuntu.com>
452 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
455 * config.gcc (hppa*-*-linux*): Use config/t-slibgcc-libgcc.
456 * config/pa/pa-linux.h (LIB_SPEC): Remove.
458 2009-12-03 Sebastian Pop <sebastian.pop@amd.com>
459 Richard Henderson <rth@redhat.com>
461 * config/i386/i386-protos.h (ix86_fma4_valid_op_p): Remove.
462 * config/i386/i386.c (ix86_fma4_valid_op_p): Remove.
463 * config/i386/i386.md: Do not use ix86_fma4_valid_op_p.
464 * config/i386/sse.md (fma4_*): Remove alternative with operand 1
465 matching a memory access. Do not use ix86_fma4_valid_op_p.
467 Do not use ix86_fma4_valid_op_p in FMA4 and XOP splitters.
469 2009-12-03 Richard Henderson <rth@redhat.com>
471 * config/i386/i386.c (ix86_fixup_binary_operands): For FMA4, force
472 all operands into registers.
474 2009-12-03 Sebastian Pop <sebastian.pop@amd.com>
476 * config/i386/i386.c (ix86_expand_fma4_multiple_memory): Remove unused
478 * config/i386/i386-protos.h (ix86_expand_fma4_multiple_memory): Same.
479 * config/i386/sse.md: Same.
481 2009-12-03 Richard Guenther <rguenther@suse.de>
483 * cgraphunit.c (assemble_thunk): Use DECL_ASSEMBLER_NAME
484 instead of DECL_NAME for the entry point.
486 2009-12-03 Richard Earnshaw <rearnsha@arm.com>
488 * arm/linux-atomic.c (SYNC_LOCK_RELEASE): Place memory barrier
489 before the lock release.
491 2009-12-03 Michael Matz <matz@suse.de>
494 * cfgexpand.c (struct stack_var): Add conflicts member.
495 (stack_vars_conflict, stack_vars_conflict_alloc,
496 n_stack_vars_conflict): Remove.
497 (add_stack_var): Initialize conflicts member.
498 (triangular_index, resize_stack_vars_conflict): Remove.
499 (add_stack_var_conflict, stack_var_conflict_p): Rewrite in
501 (union_stack_vars): Only run over the conflicts.
502 (partition_stack_vars): Remove special case.
503 (expand_used_vars_for_block): Don't call resize_stack_vars_conflict,
504 don't create self-conflicts.
505 (account_used_vars_for_block): Don't create any conflicts.
506 (fini_vars_expansion): Free bitmaps, don't free or clear removed
509 2009-12-03 Bernd Schmidt <bernd.schmidt@analog.com>
512 * regrename.c (live_in_chains): New variable.
513 (verify_reg_tracked): New static function.
514 (scan_rtx_reg): Update live_in_chains.
515 (scan_rtx): Only promote sets in COND_EXEC to OP_INOUT if
516 we're already tracking the reg.
517 (build_def_use): Likewise. Initialize live_in_chains.
519 2009-12-03 Ken Werner <ken.werner@de.ibm.com>
521 * config/spu/spu-elf.h (STARTFILE_SPEC): Add support for gprof
523 * config/spu/spu-protos.h (spu_function_profiler): Add prototype.
524 * config/spu/spu.c (spu_function_profiler): New function.
525 * config/spu/spu.h (FUNCTION_PROFILER): Invoke
526 spu_function_profiler.
527 (NO_PROFILE_COUNTERS): Define.
528 (PROFILE_BEFORE_PROLOGUE): Likewise.
530 2009-12-03 Dave Korn <dave.korn.cygwin@gmail.com>
532 * ggc-page.c (struct free_object): Pull definition out ...
533 (struct globals): .. from here.
535 2009-12-02 Richard Guenther <rguenther@suse.de>
537 * fold-const.c (div_if_zero_remainder): Honor that sizetypes
538 are sign-extending. Simplify.
540 2009-12-02 Richard Henderson <rth@redhat.com>
543 * tree-loop-distribution.c (build_size_arg_loc): Tidy.
544 (generate_memset_zero): Convert to sizetype properly. Tidy.
546 2009-12-02 Richard Guenther <rguenther@suse.de>
548 * lto-streamer-out.c (pack_ts_decl_common_value_fields):
549 Do not pretend we have value exprs.
551 2009-12-02 Richard Guenther <rguenther@suse.de>
554 * fold-const.c (try_move_mult_to_index): Do not leak
555 domain types into the IL.
557 2009-12-02 Richard Guenther <rguenther@suse.de>
560 * tree.c (free_lang_data): Disable if not using LTO.
562 2009-12-02 Richard Guenther <rguenther@suse.de>
565 * cfgloopmanip.c (remove_path): Avoid cancelling loops twice.
567 2009-12-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
570 * tree.h (int_or_pointer_precision): Remove.
571 * tree.c (int_or_pointer_precision): Remove.
572 (integer_pow2p): Use TYPE_PRECISION instead.
573 (tree_log2): Likewise.
574 (tree_floor_log2): Likewise.
575 (signed_or_unsigned_type_for): Likewise.
576 * fold-const.c (fit_double_type): Likewise.
577 * varasm.c (initializer_constant_valid_p): Likewise.
579 2009-12-02 Ira Rosen <irar@il.ibm.com>
581 * doc/invoke.texi (-fdump-tree-slp): Document.
582 (-ftree-vectorizer-verbose): Update.
583 (-ftree-slp-vectorize): Document.
585 2009-12-02 Nick Clifton <nickc@redhat.com>
587 * config/rx/rx.c (rx_conditional_register_usage): Do not warn if
588 no fixed registers are available for interrupt handlers. Do not
589 fix normal registers.
590 (MUST_SAVE_ACC_REGISTER): New macro.
591 (rx_get_stack_layout): Create a stack frame for fast interrupt
592 handlers, if necessary. Push extra registers if needed in order
593 to save the accumulator.
594 (rx_expand_prologue): Create a stack frame for fast interrupt
595 handlers, if necessary.
596 (rx_expand_builtin_mvfc): Handle the case where there is no target.
598 2009-12-01 Sebastian Pop <sebastian.pop@amd.com>
600 * config/i386/abmintrin.h (__lzcnt16): New.
603 * config/i386/i386-builtin-types.def (UINT16_FTYPE_UINT16): New.
604 * config/i386/i386.c (IX86_BUILTIN_CLZS): New.
605 (bdesc_special_args): Add __builtin_clzs.
606 (ix86_expand_args_builtin): Handle UINT16_FTYPE_UINT16.
608 2009-12-01 Sebastian Pop <sebastian.pop@amd.com>
610 * config/i386/abmintrin.h (_mm_popcnt_u32): New.
611 (_mm_popcnt_u64): New.
613 2009-12-01 Sebastian Pop <sebastian.pop@amd.com>
615 * config/i386/abmintrin.h: New.
616 * config/i386/i386-c.c (ix86_target_macros_internal): Defined __ABM__.
617 * config/i386/x86intrin.h: Include abmintrin.h when __ABM__ is defined.
619 2009-12-01 Uros Bizjak <ubizjak@gmail.com>
621 * config/i386/i386.md (SWI124): Rename from CRC32MODE.
622 (crc32modesuffix): Remove.
623 (crc32modeconstraint): Ditto.
624 (sse4_2_crc32<mode>): Update for renamed mode iterator. Use
625 imodesuffix instead of crc32modesuffix and <r>m instead of
628 2009-12-01 Jakub Jelinek <jakub@redhat.com>
631 * tree-cfgcleanup.c (cleanup_omp_return): Don't ICE if control_bb
632 contains no statements.
634 2009-12-01 Grigori Fursin <grigori.fursin@inria.fr>
635 Joern Rennecke <amylaar@spamcop.net>
637 * cgraphunit.c (plugin.h): Include.
638 (ipa_passes): Invoke PLUGIN_ALL_IPA_PASSES_START /
639 PLUGIN_ALL_IPA_PASSES_END at start / end of processing.
640 * gcc-plugin.h (highlev-plugin-common.h, hashtab.h): Include.
641 (enum plugin_event): Define by including plugin.def.
642 Last enumerator is now called PLUGIN_EVENT_FIRST_DYNAMIC.
643 (plugin_event_name): Change type to const char **.
644 (get_event_last, get_named_event_id, unregister_callback): Declare.
645 (register_callback): Change type of event argument to int.
646 (highlev-plugin-common.h): New file.
647 * Makefile.in (GCC_PLUGIN_H): Add highlev-plugin-common.h and
649 (tree-optimize.o passes.o): Depend on $(PLUGIN_H).
650 (PLUGIN_HEADERS): Add opts.h, $(PARAMS_H) and plugin.def.
651 (s-header-vars): New rule.
652 (install-plugin): Depend on s-header-vars. Install b-header-vars.
653 * params.c (get_num_compiler_params): New function.
654 * params.h (get_num_compiler_params): Declare.
655 * passes.c (plugin.h): Include.
656 (make_pass_instance): Invoke PLUGIN_NEW_PASS.
657 (do_per_function_toporder, pass_init_dump_file): No longer static.
658 (pass_fini_dump_file): Likewise.
659 (execute_one_pass): Likewise. Invoke PLUGIN_OVERRIDE_GATE and
660 PLUGIN_PASS_EXECUTION.
661 (execute_ipa_pass_list): Invoke PLUGIN_EARLY_GIMPLE_PASSES_START and
662 PLUGIN_EARLY_GIMPLE_PASSES_END.
663 * plugin.c (plugin_event_name_init): New array, defined by
664 including plugin.def.
665 (FMT_FOR_PLUGIN_EVENT): Update.
666 (plugin_event_name): Change type to const char ** and initialize
667 to plugin_event_name_init.
668 (event_tab, event_last, event_horizon): New variable.
669 (get_event_last): New function.
670 (plugin_callbacks_init): New array.
671 (plugin_callbacks: Change type to struct callback_info **.
672 Initialize to plugin_callbacks_init.
673 (htab_event_eq, get_named_event_id, unregister_callback): New function.
674 (invoke_plugin_va_callbacks): Likewise.
675 (register_callback): Change type of event argument to int.
676 Handle new events. Allow dynamic events.
677 (invoke_plugin_callbacks): Likewise. Return success status.
678 (plugins_active_p): Allow dynamic callbacks.
679 * plugin.def: New file.
680 * plugin.h (invoke_plugin_callbacks): Update prototype.
681 (invoke_plugin_va_callbacks): Declare.
682 * tree-optimize.c (plugin.h): Include.
683 (tree_rest_of_compilation): Invoke PLUGIN_ALL_PASSES_START and
684 PLUGIN_ALL_PASSES_END.
685 * tree-pass.h (execute_one_pass, pass_init_dump_file): Declare.
686 (pass_fini_dump_file, do_per_function_toporder): Likewise.
687 * doc/plugin.texi: Document new event types.
689 2009-12-01 Martin Jambor <mjambor@suse.cz>
691 PR tree-optimization/42237
692 * tree-sra.c (sra_ipa_modify_assign): Split gimple_reg_type assignments
693 in between references into two.
695 2009-12-01 Richard Guenther <rguenther@suse.de>
697 * tree-inline.c (copy_tree_body_r): Do not set TREE_BLOCK
698 to the block of the call when remapping a type.
700 2009-12-01 Martin Jambor <mjambor@suse.cz>
702 * cgraph.h (struct cgraph_edge): Reorder fields. Make loop_nest
704 * ipa-prop.h (struct ipa_param_call_note): Likewise.
705 * ipa-prop.c (ipa_note_param_call): Initialize note->loop_nest.
707 2009-12-01 Richard Guenther <rguenther@suse.de>
709 * final.c (rest_of_clean_state): If -fcompare-debug is
710 given dump final insns without UIDs.
711 * tree-ssa-live.c (remove_unused_scope_block_p): Remove
712 after_inlining checks.
714 2009-11-30 Chao-ying Fu <fu@mips.com>
716 * config/mips/mips-dsp.md (mips_lhx_<mode>): Use sign_extend.
718 2009-11-30 Dave Korn <dave.korn.cygwin@gmail.com>
720 * configure.ac (USE_CYGWIN_LIBSTDCXX_WRAPPERS): Define to reflect
721 status of AC_CHECK_FUNC for Cygwin DLL libstdc++ support wrappers.
722 * configure: Regenerate.
723 * config.in: Regenerate.
725 * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Define list of --wrap
726 options for Cygwin DLL libstdc++ support wrappers.
727 (CXX_WRAP_SPEC_OPT): Define spec to use wrappers or not by default
728 according to defined value of USE_CYGWIN_LIBSTDCXX_WRAPPERS.
729 (CXX_WRAP_SPEC): Define entire wrapper spec in or out according to
730 whether USE_CYGWIN_LIBSTDCXX_WRAPPERS is even defined or not.
731 (LINK_SPEC): Include CXX_WRAP_SPEC.
732 * gcc/config/i386/winnt.c (wrapper_strcmp): New qsort helper function.
733 (i386_find_on_wrapper_list): Check if a function is found on the list
734 of libstdc++ wrapper options.
735 (i386_pe_file_end): If we are importing a wrapped function, also emit
736 an external declaration for the real version.
737 * config/i386/cygming.opt (muse-libstdc-wrappers): New option for
738 Cygwin targets. Update copyright year.
740 2009-11-30 Steve Ellcey <sje@cup.hp.com>
741 Jakub Jelinek <jakub@redhat.com>
743 * function.c (instantiate_virtual_regs_in_insn): Copy to new reg
746 2009-11-30 Anatoly Sokolov <aesok@post.ru>
748 * config/sh/sh.c (sh_promote_prototypes): Make static.
749 (sh_function_value, sh_libcall_value, sh_function_value_regno_p): New
751 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
752 * config/sh/sh.h (FUNCTION_VALUE_REGNO_P): Redefine, use
753 sh_function_value_regno_p.
754 (FUNCTION_VALUE, LIBCALL_VALUE): Remove.
755 * config/sh/sh-protos.h (sh_function_value_regno_p): Declare.
756 (sh_promote_prototypes) : Remove.
758 2009-11-30 Julian Brown <julian@codesourcery.com>
760 * config/arm/arm.h (PREFERRED_RELOAD_CLASS): Don't restrict Thumb-2
763 2009-11-30 Richard Henderson <rth@redhat.com>
765 * config/i386/i386.c (ix86_vec_interleave_v2df_operator_ok): New.
766 (bdesc_special_args): Update insn codes.
767 (avx_vpermilp_parallel): Correct range check.
768 (ix86_rtx_costs): Handle vector permutation rtx codes.
769 (struct expand_vec_perm_d): Move earlier.
770 (get_mode_wider_vector): New.
771 (expand_vec_perm_broadcast_1): New.
772 (ix86_expand_vector_init_duplicate): Use it. Tidy AVX modes.
773 (expand_vec_perm_broadcast): New.
774 (ix86_expand_vec_perm_builtin_1): Use it.
775 * config/i386/i386-protos.h: Update.
776 * config/i386/predicates.md (avx_vbroadcast_operand): New.
777 * config/i386/sse.md (AVX256MODE24P): New.
778 (ssescalarmodesuffix2s): New.
779 (avxhalfvecmode, avxscalarmode): Fill out to all modes.
780 (avxmodesuffixf2c): Add V8SI, V4DI.
781 (vec_dupv4sf): New expander.
782 (*vec_dupv4sf_avx): Add vbroadcastss alternative.
783 (*vec_set<mode>_0_avx, **vec_set<mode>_0_sse4_1): Macro-ize for
784 V4SF and V4SI. Move C alternatives to front. Add insertps and
786 (*vec_set<mode>_0_sse2): Split out from ...
787 (vec_set<mode>_0): Macro-ize for V4SF and V4SI.
788 (vec_interleave_highv2df, vec_interleave_lowv2df): Require register
789 destination; use ix86_vec_interleave_v2df_operator_ok, instead of
790 ix86_fixup_binary_operands.
791 (*avx_interleave_highv2df, avx_interleave_lowv2df): Add movddup.
792 (*sse3_interleave_highv2df, sse3_interleave_lowv2df): New.
793 (*avx_movddup, *sse3_movddup): Remove. New splitter from
794 vec_select form to vec_duplicate form.
795 (*sse2_interleave_highv2df, sse2_interleave_lowv2df): Use
796 ix86_vec_interleave_v2df_operator_ok.
797 (avx_movddup256, avx_unpcklpd256): Change to expanders, merge into ...
798 (*avx_unpcklpd256): ... here.
799 (*vec_dupv4si_avx): New.
800 (*vec_dupv2di_avx): Add movddup alternative.
801 (*vec_dupv2di_sse3): New.
802 (vec_dup<AVX256MODE24P>): Replace avx_vbroadcasts<AVXMODEF4P> and
803 avx_vbroadcastss256; represent with vec_duplicate instead of
804 nested vec_concat operations.
805 (avx_vbroadcastf128_<mode>): Rename from
806 avx_vbroadcastf128_p<avxmodesuffixf2c>256.
807 (*avx_vperm_broadcast_v4sf): New.
808 (*avx_vperm_broadcast_<AVX256MODEF2P>): New.
810 2009-11-30 Martin Jambor <mjambor@suse.cz>
813 * tree-sra.c (struct access): New field grp_different_types.
814 (dump_access): Dump grp_different_types.
815 (compare_access_positions): Prefer scalars and vectors over other
817 (sort_and_splice_var_accesses): Set grp_different_types if appropriate.
818 (sra_modify_expr): Use the original also when dealing with a complex
819 or vector group accessed as multiple types.
821 2009-11-30 Richard Henderson <rth@redhat.com>
823 * config/i386/i386.c (avx_vperm2f128_parallel): New.
824 * config/i386/i386-protos.h: Declare it.
825 * config/i386/predicates.md (avx_vperm2f128_v8sf_operand,
826 avx_vperm2f128_v8si_operand, avx_vperm2f128_v4df_operand): New.
827 * config/i386/sse.md (avx_vperm2f128<mode>3): Change to expander.
828 (*avx_vperm2f128<mode>_full): Renamed from avx_vperm2f128<mode>3.
829 (*avx_vperm2f128<mode>_nozero): New.
831 2009-11-30 Richard Henderson <rth@redhat.com>
833 * config/i386/i386-builtin-types.def (V4DF_FTYPE_V4DF_V4DF_V4DI): New.
834 (V8SF_FTYPE_V8SF_V8SF_V8SI): New.
835 * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Support
836 V4DF and V8SF for AVX; relax constraint on V4SF to SSE1 from SSE2.
837 (IX86_BUILTIN_VEC_PERM_V4DF, IX86_BUILTIN_VEC_PERM_V8SF): New.
838 (bdesc_args): Add them.
839 (ix86_expand_builtin): Expand them.
840 (expand_vec_perm_pshufb2): Only operate on 16-byte vectors.
842 2009-11-30 Martin Jambor <mjambor@suse.cz>
845 * ipa-prop.c (ipa_write_node_info): Initialize note_count to zero.
847 2009-11-30 Jakub Jelinek <jakub@redhat.com>
849 * ipa-reference.c (propagate): Only dump bitmaps if computed.
851 2009-11-30 Olga Golovanevsky <olga@il.ibm.com>
854 * ipa-struct-reorg.c (new_var_eq): Use DECL_UID to hash new variables.
855 (new_var_hash): Likewise.
856 (is_in_new_vars_htab): Likewise.
857 (add_to_new_vars_htab): Likewise.
859 2009-11-30 Ira Rosen <irar@il.ibm.com>
861 * tree-vect-stmts.c (vectorizable_assignment): Support
864 2009-11-30 Richard Guenther <rguenther@suse.de>
866 * doc/contrib.texi (Contributors): Add myself.
868 2009-11-30 Richard Guenther <rguenther@suse.de>
870 * tree.c (free_lang_data): Do not set debug_info_level to
873 2009-11-30 Richard Guenther <rguenther@suse.de>
877 * expr.c (expand_expr_addr_expr_1): Properly expand the initializer
880 2009-11-30 Richard Guenther <rguenther@suse.de>
882 * tree-into-ssa.c (insert_phi_nodes): Add PHI nodes in
885 2009-11-30 Richard Guenther <rguenther@suse.de>
887 * tree-dump.c (dump_option_value_in): Add TDF_NOUID.
888 * tree-pass.h (TDF_NOUID): Likewise.
889 * print-rtl.c: Include tree-pass.h.
890 (print_mem_expr): Pass dump_flags.
891 (print_rtx): Likewise.
892 * print-tree.c: Include tree-pass.h.
893 (print_node_brief): Handle TDF_NOUID.
894 (print_node): Likewise.
895 * tree-pretty-print.c (dump_decl_name): Likewise.
896 (dump_generic_node): Likewise.
897 * Makefile.in (print-rtl.o, print-tree.o): Add $(TREE_PASS_H)
900 2009-11-30 Nick Clifton <nickc@redhat.com>
902 * config/stormy16/stormy16-lib2-count-leading-zeros.c: Delete.
903 * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Remove
904 stormy16-lib2-count-leading-zeros.c.
905 * config/stormy16/stormy16-lib2.c (__clzhi2): Move code from
906 __stormy16_count_leading_zeros() into this function.
907 (__ctzhi2): Use __builtin_clz.
908 (__ffshi2): Likewise.
910 2009-11-30 Eric Botcazou <ebotcazou@adacore.com>
912 * config/sparc/sparc.c (DF_MODES): Simplify.
913 (TF_ONLY_MODES, OF_ONLY_MODES): Delete.
914 (TF_MODES, OF_MODES): Adjust for above change.
915 (TF_MODES_NO_S, OF_MODES_NO_S): Likewise.
916 * config/sparc/sparc.h (REGNO_REG_CLASS): Move around.
918 2009-11-30 Paolo Bonzini <bonzini@gnu.org>
920 PR rtl-optimization/41812
921 * fwprop.c (local_md, local_lr): New globals.
922 (process_defs, process_uses): Remove local_md argument. Never
923 consider dead pseudos to have singleton def-use chains.
924 (single_def_use_enter_block): Perform LR simulation.
925 (build_single_def_use_links): Remove local_md local variable.
926 Add DF_NOTE. Allocate local_lr.
927 (fwprop_done): Do not remove DF_CHAIN, we do not use it anymore.
928 * df-problems.c (df_md_scratch): New.
929 (df_md_alloc, df_md_free): Allocate/free it.
930 (df_md_local_compute): Only include live registers in init.
931 (df_md_transfer_function): Prune the in-set computed by
932 the confluence function, and the gen-set too.
934 2009-11-30 Hans-Peter Nilsson <hp@axis.com>
936 PR rtl-optimization/40086
937 * reorg.c (relax_delay_slots): When looking for redundant insn at
938 the branch target, use next_real_insn, not next_active_insn.
940 2009-11-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
942 * doc/install.texi: Update minimum MPC version to 0.8.
944 2009-09-09 Segher Boessenkool <segher@kernel.crashing.org>
946 * config/rs6000/rs6000.md (fnmaddsf4_powerpc_1): Remove
947 HONOR_SIGNED_ZEROS final condition.
948 (fnmsubsf4_powerpc_1): Same.
949 (fnmadddf4_fpr_1): Same.
950 (fnmsubdf4_fpr_1): Same.
952 2009-11-29 Ira Rosen <irar@il.ibm.com>
954 PR tree-optimization/42193
955 * tree-vect-stmts.c (vectorizable_operation): Set vectorization factor
956 to 1 in case of basic block SLP.
957 (vectorizable_load): Likewise.
959 2009-11-28 Jan Hubicka <jh@suse.cz>
961 * cgraph.c (same_body_alias_1): Break out of
962 (same_body_alias): ... here; remove comdat check; it is handled
964 (cgraph_add_thunk): New.
965 (dump_cgraph_node): Dump aliases and thunks.
966 * cgraph.h (cgraph_thunk_info): New structure.
967 (struct cgraph_node): Add thunk info.
968 (cgraph_add_thunk): New.
969 * cgraphunit.c (cgraph_emit_thunks): Remove.
970 (cgraph_finalize_compilation_unit): Do not call cgraph_emit_thunks.
971 (assemble_thunk): New function.
972 (cgraph_expand_function): Handle thunks.
974 (init_lowered_empty_function): New.
975 * cp-objcp-common.h (LANG_HOOKS_CALLGRAPH_EMIT_ASSOCIATED_THUNKS):
977 * lto-cgraph.c (lto_output_node): Stream thunk info.
978 (input_node): Likewise.
979 * langhooks.h (lang_hooks_for_callgraph): Remove emit_associated_thunks.
980 * langhooks-def.h (LANG_HOOKS_CALLGRAPH_EMIT_ASSOCIATED_THUNKS): Remove.
981 (LANG_HOOKS_CALLGRAPH_INITIALIZER): Update.
982 * i386.c (x86_output_mi_thunk): Make output prettier.
984 2009-11-28 Richard Guenther <rguenther@suse.de>
986 PR tree-optimization/42183
987 * tree-nrv.c (tree_nrv): Bail out if the RESULT_DECL has its
988 address taken. Merge the addressable state of the NRV
989 variable and the result instead of copying it.
991 2009-11-28 Jakub Jelinek <jakub@redhat.com>
993 * matrix-reorg.c (analyze_matrix_allocation_site): Remove unused
994 malloc_fname variable.
995 (check_allocation_function): Remove unused gsi and bb_level_0
997 (transform_access_sites): Remove unused d_type_size and d_type_size_k
999 * omega.c (resurrect_subs): Remove unused n variable.
1000 (omega_solve_geq): Remove unused neweqns variable.
1001 * lto-streamer-in.c (lto_read_tree): Remove unused end_marker variable.
1002 * tree-inline.c (declare_return_variable): Remove USE_P argument,
1003 return use instead of var.
1004 (remap_decl, remap_block): Remove unused fn variable.
1005 (expand_call_inline): Remove unused retvar variable, adjust
1006 declare_return_variable caller.
1007 (optimize_inline_calls): Remove unused prev_fn variable.
1008 * tree-vect-slp.c (vect_analyze_slp_instance): Remove unused ncopies
1010 (vect_create_mask_and_perm): Remove unused group_size and dr_chain_size
1012 * tree-ssa-loop-niter.c (split_to_var_and_offset): Handle MINUS_EXPR
1014 * tree-vect-loop.c (vect_analyze_loop_form): Remove unused backedge
1016 (vect_create_epilog_for_reduction): Remove unused bytesize variable.
1017 * omp-low.c (workshare_safe_to_combine_p): Remove par_entry_bb
1018 parameter. Remove unused par_stmt variable.
1019 (determine_parallel_type): Adjust workshare_safe_to_combine_p caller.
1020 (expand_omp_sections): Remove unused l1 variable.
1021 (lower_omp_for): Remove unused ilist variable.
1022 * tree-loop-distribution.c (mark_nodes_having_upstream_mem_writes):
1023 Remove unused has_upstream_mem_write_p variable.
1024 * recog.c (decode_asm_operands): Remove unused noperands variable.
1025 * tree-ssa-alias.c (refs_may_alias_p_1): Remove unused size1 and
1027 * libgcov.c (__gcov_merge_delta): Remove unused last variable.
1028 * tree-call-cdce.c (gen_conditions_for_pow_int_base): Remove unused
1030 (gen_conditions_for_pow): Remove unused ec variable.
1031 * tree-ssa-sccvn.c (vn_reference_lookup_3): Remove unused size
1033 * ipa-struct-reorg.c (program_redefines_malloc_p): Remove unused
1035 * tree-ssa-sink.c (statement_sink_location): Remove unused code
1037 * regmove.c (copy_src_to_dest): Remove unused insn_uid and move_uid
1039 * tree-complex.c (create_one_component_var): Remove unused inner_type
1041 * calls.c (emit_call_1): Don't GEN_INT (struct_value_size)
1042 unnecessarily when GEN_*CALL omits that argument.
1043 * regrename.c (regrename_optimize): Remove unused regs_seen variable.
1044 (build_def_use): Remove unused icode variable.
1045 * ipa-pure-const.c (check_call): Remove unused callee and avail
1047 * tree-dfa.c (add_referenced_var): Remove unused v_ann variable.
1048 * tree-vect-patterns.c (vect_recog_pow_pattern): Remove unused type
1050 (vect_pattern_recog): Remove unused stmt variable.
1051 * sel-sched-ir.c (make_regions_from_the_rest): Remove unused
1052 new_regions variable.
1053 * postreload.c (reload_cse_simplify_operands): Remove unused mode
1055 * tree-parloops.c (create_call_for_reduction_1): Remove unused
1057 (create_parallel_loop): Remove unused res variable.
1058 (gen_parallel_loop): Remove unused nloop variable.
1059 * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
1060 * value-prof.c (gimple_mod_subtract_transform,
1061 gimple_stringops_transform): Remove unused value variable.
1062 (gimple_stringops_values_to_profile): Remove unused fcode variable.
1063 * tree-vrp.c (register_new_assert_for): Remove unused found variable.
1064 (vrp_visit_switch_stmt): Remove unused n variable.
1065 * tree-vect-stmts.c (vectorizable_conversion): Remove unused expr
1067 (vectorizable_operation): Remove unused shift_p variable.
1068 (vectorizable_store): Remove unused first_stmt_vinfo variable.
1069 * tree-ssa-operands.c (add_stmt_operand): Remove unused v_ann variable.
1070 * tree-vect-data-refs.c (vect_analyze_data_refs): Remove unused bb
1072 (vect_permute_store_chain): Remove unused scalar_dest variable.
1073 (vect_supportable_dr_alignment): Remove unused invariant_in_outerloop
1075 * tree-ssa-threadupdate.c (thread_single_edge): Remove unused
1076 local_info variable.
1077 * tree-optimize.c (tree_rest_of_compilation): Remove unused node
1079 * optabs.c (expand_binop): Remove unused equiv_value variable.
1080 (emit_libcall_block): Remove unused prev variable.
1081 (init_optabs): Remove unused int_mode variable.
1082 * tree-ssa-structalias.c (scc_visit): Remove unused have_ref_node
1084 (do_structure_copy): Remove unused lhsbase and rhsbase variables.
1085 (find_func_aliases): Remove unused rhstype variable.
1086 (ipa_pta_execute): Remove unused varid variable.
1088 2009-11-28 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
1090 * config/avr/avr.h (ASM_OUTPUT_EXTERNAL): Add.
1092 2009-11-28 David Binderman <dcb314@hotmail.com>
1094 * ira-color.c (put_allocno_into_bucket): Remove set but not used
1095 local variable hard_regs_num.
1096 * ira-lives.c (process_single_reg_class_operands): Remove cover_class.
1097 * loop-unswitch.c (unswitch_loop): Remove zero_bitmap.
1098 * lower-subreg.c (decompose_multiword_subregs): Remove next.
1100 2009-11-27 Martin Jambor <mjambor@suse.cz>
1103 * tree-sra.c (get_replaced_param_substitute): Call create_tmp_var
1104 instead of create_tmp_var. Set DECL_GIMPLE_REG_P to one manually
1105 for vector and complex types.
1106 (get_adjustment_for_base): Describe return value in the comment.
1108 2009-11-27 Nick Clifton <nickc@redhat.com>
1110 * longlong.h (count_leading_zeros): Define macro for stormy16 target.
1111 (COUNT_LEADING_ZEROS_0): Likewise.
1112 * config/stormy16/stormy16-lib2.c: Arrange for separate
1113 compilation of each function.
1114 (__ffshi2): New function.
1115 (__stormy16_count_leading_zeros): New function.
1116 * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Use stub files to
1117 compile each function into its own object file.
1118 (stormy16-lib2-ashlsi3.c): New stub file.
1119 (stormy16-lib2-ashrsi3.c): New stub file.
1120 (stormy16-lib2-clzhi2.c): New stub file.
1121 (stormy16-lib2-count-leading-zeros.c): New stub file.
1122 (stormy16-lib2-ctzhi2.c): New stub file.
1123 (stormy16-lib2-divsi3.c): New stub file.
1124 (stormy16-lib2-ffshi2.c): New stub file.
1125 (stormy16-lib2-lshrsi3.c): New stub file.
1126 (stormy16-lib2-modsi3.c): New stub file.
1127 (stormy16-lib2-parityhi2.c): New stub file.
1128 (stormy16-lib2-popcounthi2.c): New stub file.
1129 (stormy16-lib2-udivmodsi4.c): New stub file.
1130 (stormy16-lib2-udivsi3.c): New stub file.
1131 (stormy16-lib2-umodsi3.c): New stub file.
1133 2009-11-27 Richard Henderson <rth@redhat.com>
1135 * config/i386/sse.md (vec_interleave_highv16qi,
1136 vec_interleave_lowv16qi, vec_interleave_highv8hi,
1137 vec_interleave_lowv8hi, vec_interleave_highv4si,
1138 vec_interleave_lowv4si, vec_interleave_highv2di,
1139 vec_interleave_lowv2di, vec_interleave_highv4sf,
1140 vec_interleave_lowv4sf, vec_interleave_highv2df,
1141 vec_interleave_lowv2df): Remove expanders.
1142 (sse_unpcklps, sse_unpckhps, sse2_unpckhpd_exp, sse2_unpcklpd_exp,
1143 sse2_punpckhqdq, sse2_punpcklqdq, sse2_punpckhbw, sse2_punpcklbw,
1144 sse2_punpckhwd, sse2_punpcklwd, sse2_punpckhdq, sse2_punpckldq):
1145 Rename to their proper vec_interleave equivalent. Update all users
1147 * config/i386/i386.c, config/i386/i386.md: Update all users.
1149 2009-11-27 Michael Matz <matz@suse.de>
1151 PR rtl-optimization/42084
1152 * cfgexpand.c (maybe_cleanup_end_of_block): Add new parameter,
1153 use it to stop walking.
1154 (expand_gimple_cond): Adjust call to above.
1156 2009-11-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1159 * gthr-solaris.h (__gthread_mutex_destroy): Remove UNUSED.
1160 [SUPPORTS_WEAK && GTHREAD_USE_WEAK] (__gthread_active_p): Use
1161 __extension__ to allow cast from function pointer to object
1163 * doc/install.texi (--enable-threads): Clarify use of Solaris threads.
1165 2009-11-27 Steven Bosscher <steven@gcc.gnu.org>
1167 * config/ia64/itanium1.md: Remove.
1168 * config/ia64/ia64.md: Do not include it.
1169 * config/ia64/ia64.c (ia64_handle_option): Remove "itanium",
1170 "itanium1", and "merced" from the processor alias table.
1171 (clocks, add_cycles): Remove global variables.
1172 (ia64_sched_reorder2): Don't set/use them.
1173 (ia64_dfa_new_cycle, ia64_h_i_d_extended, ia64_reorg): Likewise.
1174 (bundling): Likewise. Remove extra pass for MMMUL/MMSHF.
1176 2009-11-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1178 * config/s390/s390.c (last_scheduled_insn): New variable.
1179 (s390_fpload_toreg, s390_z10_prevent_earlyload_conflicts): New
1181 (s390_sched_reorder, s390_sched_variable_issue): New functions.
1182 (TARGET_SCHED_VARIABLE_ISSUE, TARGET_SCHED_REORDER): Target hooks
1185 2009-11-27 Michael Matz <matz@suse.de>
1188 * tree-eh.c (lower_catch): Stop after expanding a catch-all.
1190 2009-11-27 Richard Guenther <rguenther@suse.de>
1192 * timevar.def (TV_LOOP_MOVE_INVARIANTS, TV_LOOP_UNSWITCH,
1193 TV_LOOP_UNROLL, TV_LOOP_DOLOOP): New timevars.
1194 * loop-init.c (pass_rtl_move_loop_invariants): Use
1195 TV_LOOP_MOVE_INVARIANTS.
1196 (pass_rtl_unswitch): Use TV_LOOP_UNSWITCH.
1197 (pass_rtl_unroll_and_peel): Use TV_LOOP_UNROLL.
1198 (pass_rtl_doloop): Use TV_LOOP_DOLOOP.
1200 2009-11-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1202 * emit-rtl.c (next_active_insn, prev_active_insn): Correct comment.
1204 2009-11-27 Jakub Jelinek <jakub@redhat.com>
1206 * config/i386/i386.c (ix86_emit_restore_sse_regs_using_mov): Remove
1207 unused insn variable.
1208 * genemit.c (output_peephole2_scratches): Only declare and initialize
1209 _regs_allocated if it will be ever used.
1210 * cfgloopmanip.c (create_empty_if_region_on_edge): Remove unused
1212 (create_empty_loop_on_edge): Remove unused freq and cnt variables.
1213 * unwind-c.c (PERSONALITY_FUNCTION): Remove unused action_record
1216 * opts.c (decode_options): If optimize is bigger than 255,
1219 2009-11-26 Richard Henderson <rth@redhat.com>
1221 * config/i386/sse.md (mulv16qi3): Change back from an expander
1222 to an insn-and-split.
1223 (mulv4si): Mention AVX not XOP for AVX exception.
1224 (*sse2_mulv4si3): Likewise.
1225 (mulv2di3): Use vmulld not vpmacsdd for XOP expansion. Tidy.
1227 2009-11-26 Bernd Schmidt <bernd.schmidt@analog.com>
1229 * cfgexpand (n_stack_vars_conflict): New static variable.
1230 (triangular_index): Reduce likelyhood of overflow by performing
1231 the division before the multiplication.
1232 (resize_stack_vars_conflict): Call fatal_error if overflow
1233 occurred in triangular_index. Update n_stack_vars_conflict.
1236 * regrename.c (struct du_chain): Remove member earlyclobber.
1237 (scan_rtx_reg): Don't set it. Remove argument earlyclobber,
1238 all callers changed.
1239 (scan_rtx): Remove argument earlyclobber, all callers changed.
1240 (hide_operands, restore_operands, record_out_operands): New functions,
1241 broken out of build_def_use.
1242 (build_def_use): Call them as necessary.
1244 * regrename.c (struct du_head): New members id, conflicts,
1245 hard_conflicts and cannot_rename.
1246 (enum scan_actions): Remove terminate_all_read and
1247 terminate_overlapping_read; add mark_all_read.
1248 (scan_actions_name): Likewise.
1249 (du_head_p): New typedef. Define a vector type for it.
1250 (id_to_chain): New static variable.
1251 (note_sets, clear_dead_regs): Delete functions.
1252 (free_chain_data): New function.
1253 (merge_overlapping_regs): Simply walk the conflicts bitmap.
1254 Remove argument B, all callers changed.
1255 (regrename_optimize): Allocate id_to_chain. Ignore chains that have
1256 the cannot_rename bit set. Update regno and nregs of a renamed chain.
1257 Call free_chain_data when done.
1258 (do_replace): Remove death notes when the renamed reg is set in the
1259 last insn; add them if not.
1260 (mark_conflict, note_sets_clobbers): New static function.
1261 (fail_current_block, current_id, open_chains_set, live_hard_regs): New
1263 (scan_rtx_reg): Keep track of conflicts between chains, and between
1264 chains and hard regs. Don't terminate chains when we find a read we
1265 can't handle, mark it unrenameable instead. For terminate_write,
1266 terminate chains that are written with an exact match or a superset
1267 of registers. Set fail_current_block if multi-word lifetimes are too
1269 (scan_rtx_address): Use mark_all_read instead of terminate_all_read.
1270 (build_def_use): Initialize current_id, live_chains and live_hard_regs;
1271 free memory for them when done.
1272 Rearrange the steps so that earlyclobbers are noted before reads
1273 are processed. Add new steps to keep track of hard register lifetimes
1274 outside insn operands.
1276 2009-11-26 Richard Guenther <rguenther@suse.de>
1278 * tree-ssa-dce.c (nr_walks): New variable.
1279 (mark_aliased_reaching_defs_necessary): Adjust oracle cut-off.
1280 (perform_tree_ssa_dce): Init nr_walks.
1282 2009-11-26 Michael Matz <matz@suse.de>
1284 PR tree-optimization/41905
1285 * tree-eh.c (lower_eh_constructs_2): Don't add assignments
1286 below statements that can't fall thru.
1288 2009-11-26 Michael Matz <matz@suse.de>
1290 * builtins.c (expand_builtin_printf, expand_builtin_fprintf,
1291 expand_builtin_sprintf): Remove.
1292 (expand_builtin): Don't call them.
1294 2009-11-26 Richard Guenther <rguenther@suse.de>
1296 * tree-ssa-dce.c (perform_tree_ssa_dce): Allocate visited bitmap.
1298 2009-11-26 Nick Clifton <nickc@redhat.com>
1300 * config/rx/rx.c (rx_expand_epilogue): Add checks for sibcalls
1301 being used incorrectly.
1302 (rx_function_ok_for_sibcall): New function. Do not allow indirect
1303 sibcalls, or sibcalls from interrupt functions.
1304 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define.
1305 * config/rx/rx.md (sibcall): Convert to a define_expand. Check
1306 for a MEM inside a MEM.
1307 (sibcall_value): Likewise.
1308 (sibcall_internal): New pattern containing old sibcall pattern.
1309 (sibcall_value_internal): Likewise.
1311 2009-11-25 Richard Henderson <rth@redhat.com>
1313 * config/i386/i386-builtin-types.awk (DEF_VECTOR_TYPE): Allow an
1314 optional 3rd argument to define the mode.
1315 * config/i386/i386-builtin-types.def (UQI, UHI, USI, UDI): New.
1316 (V2UDI, V4USI, V8UHI, V16UQI): New.
1317 (V4SF_FTYPE_V4SF_V4SF_V4SI, V2UDI_FTYPE_V2UDI_V2UDI_V2UDI,
1318 V4USI_FTYPE_V4USI_V4USI_V4USI, V8UHI_FTYPE_V8UHI_V8UHI_V8UHI,
1319 V16UQI_FTYPE_V16UQI_V16UQI_V16UQI): New.
1320 * config/i386/i386-modes.def: Rearrange for double-wide AVX.
1321 * config/i386/i386-protos.h (ix86_expand_vec_extract_even_odd): New.
1322 * config/i386/i386.c (IX86_BUILTIN_VEC_PERM_*): New.
1323 (bdesc_args): Add the builtin definitions to match.
1324 (ix86_expand_builtin): Expand them.
1325 (ix86_builtin_vectorization_cost): Rename from
1326 x86_builtin_vectorization_cost.
1327 (ix86_vectorize_builtin_vec_perm, struct expand_vec_perm_d,
1328 doublesize_vector_mode, expand_vselect, expand_vselect_vconcat,
1329 expand_vec_perm_blend, expand_vec_perm_vpermil,
1330 expand_vec_perm_pshufb, expand_vec_perm_1,
1331 expand_vec_perm_pshuflw_pshufhw, expand_vec_perm_palignr,
1332 expand_vec_perm_interleave2, expand_vec_perm_pshufb2,
1333 expand_vec_perm_even_odd_1, expand_vec_perm_even_odd,
1334 ix86_expand_vec_perm_builtin_1, extract_vec_perm_cst,
1335 ix86_expand_vec_perm_builtin, ix86_vectorize_builtin_vec_perm_ok,
1336 ix86_expand_vec_extract_even_odd, TARGET_VECTORIZE_BUILTIN_VEC_PERM,
1337 TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): New.
1338 * sse.md (SSEMODE_EO): New.
1339 (vec_extract_even<mode>): Use SSEMODE_EO and
1340 ix86_expand_vec_extract_even_odd.
1341 (vec_extract_odd<mode>): Likewise.
1342 (mulv16qi3, vec_pack_trunc_v8hi, vec_pack_trunc_v4si,
1343 vec_pack_trunc_v2di): Use ix86_expand_vec_extract_even_odd.
1345 2009-11-25 Richard Henderson <rth@redhat.com>
1347 * target.h (targetm.vectorize.builtin_vec_perm_ok): New.
1348 * target-def.h (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): New.
1349 * hooks.h, hooks.c (hook_bool_tree_tree_true): New.
1350 * tree-vect-slp.c (vect_create_mask_and_perm): Don't create
1351 the vector constant here...
1352 (vect_transform_slp_perm_load): ... do it here instead. Validate
1353 that the permutation vector is implementable by the target.
1355 2009-11-25 Jakub Jelinek <jakub@redhat.com>
1357 * config/rs6000/sysv4.opt (mregnames): Change Var to rs6000_regnames.
1358 * config/rs6000/sysv4.h (TARGET_REGNAMES): Define.
1360 * print-rtl.c (print_rtx): When printing newline, append
1361 print_rtx_head and indentation after the newline.
1364 * config/i386/i386.c (print_operand): For 32-byte memory use
1365 YMMWORD in -masm=intel mode. Use TBYTE instead of XWORD.
1366 * config/i386/i386.md (crc32modesuffix): Expand to nothing
1367 in -masm=intel mode.
1368 (sse4_2_crc32di): Print just crc32 instead of crc32q in
1370 * config/i386/mmx.md (*mmx_pinsrw): Print correct size of
1371 memory operand in -masm=intel mode.
1372 * config/i386/sse.md (*avx_pinsr<ssevecsize>, *sse4_1_pinsrb,
1373 *sse2_pinsrw): Likewise.
1374 (sse_cvtss2siq, sse_cvtss2siq_2, sse_cvttss2siq): Don't print
1375 q suffix in -masm=intel mode.
1377 2009-11-25 Eric Botcazou <ebotcazou@adacore.com>
1382 * dwarf2out.c (dwarf2out_args_size_adjust): Rename to...
1383 (dwarf2out_stack_adjust): ...this. Do not adjust the arg size for
1384 ACCUMULATE_OUTGOING_ARGS targets. Rename former version to...
1385 (dwarf2out_notice_stack_adjust): ...this. Adjust for above renaming.
1386 (dwarf2out_frame_debug_expr): Revert previous change and adjust for
1388 (dwarf2out_frame_debug): Add ??? comment. Adjust for above renaming.
1390 2009-11-25 Uros Bizjak <ubizjak@gmail.com>
1392 * config/i386/predicates.md (emms_operation): New predicate.
1393 (vzeroupper_operation): Ditto.
1394 (vzeroall_operation): Improve pattern recognition.
1395 * config/i386/sse.md (avx_vzeroupper_rex64): Remove insn pattern.
1396 (avx_vzeroupper): Change insn pattern to expander.
1397 (*avx_vzeroupper): New insn pattern. Use vzeroupper_operation
1399 (*avx_vzeroall): Remove operands 1 and 2.
1400 * config/i386/mmx.md (mmx_emms): Change insn pattern to expander.
1402 (*mmx_emms): New insn pattern. Use emms_operation predicate.
1403 (*mmx_femms): Ditto.
1404 * config/i386/i386.c (enum ix86_builtins)
1405 <IX86_BUILTIN_VZEROUPPER_REX64>: Remove.
1406 (struct builtin_description) <CODE_FOR_avx_vzeroupper_rex64>:
1407 Remove initailization.
1408 <CODE_FOR_avx_vzeroupper>: Unconditionally initialize here.
1410 2009-11-25 Paul Brook <paul@codesourcery.com>
1412 * config/arm/arm.md (consttable_4): Handle (high ...).
1414 2009-11-25 Robert Nelson <robert.nelson@digikey.com>
1415 Richard Earnshaw <rearnsha@arm.com>
1417 * arm.h (enum vfp_reg_type): Add VFP_NONE.
1418 * arm.c (all_fpus): Use it for floating point units that aren't based
1419 on the VFP architecture.
1420 (aapcs_vfp_is_call_or_return_candidate): Make base_mode a pointer to
1423 2009-11-25 H.J. Lu <hongjiu.lu@intel.com>
1425 * alias.c: Remove trailing white spaces.
1426 * alloc-pool.c: Likewise.
1427 * alloc-pool.h: Likewise.
1428 * attribs.c: Likewise.
1429 * auto-inc-dec.c: Likewise.
1430 * basic-block.h: Likewise.
1431 * bb-reorder.c: Likewise.
1432 * bt-load.c: Likewise.
1433 * builtins.c: Likewise.
1434 * builtins.def: Likewise.
1435 * c-common.c: Likewise.
1436 * c-common.h: Likewise.
1437 * c-cppbuiltin.c: Likewise.
1438 * c-decl.c: Likewise.
1439 * c-format.c: Likewise.
1440 * c-lex.c: Likewise.
1441 * c-omp.c: Likewise.
1442 * c-opts.c: Likewise.
1443 * c-parser.c: Likewise.
1444 * c-pretty-print.c: Likewise.
1445 * c-tree.h: Likewise.
1446 * c-typeck.c: Likewise.
1447 * caller-save.c: Likewise.
1448 * calls.c: Likewise.
1450 * cfganal.c: Likewise.
1451 * cfgexpand.c: Likewise.
1452 * cfghooks.c: Likewise.
1453 * cfghooks.h: Likewise.
1454 * cfglayout.c: Likewise.
1455 * cfgloop.c: Likewise.
1456 * cfgloop.h: Likewise.
1457 * cfgloopmanip.c: Likewise.
1458 * cfgrtl.c: Likewise.
1459 * cgraph.c: Likewise.
1460 * cgraph.h: Likewise.
1461 * cgraphbuild.c: Likewise.
1462 * cgraphunit.c: Likewise.
1463 * cif-code.def: Likewise.
1464 * collect2.c: Likewise.
1465 * combine.c: Likewise.
1466 * convert.c: Likewise.
1467 * coverage.c: Likewise.
1468 * crtstuff.c: Likewise.
1470 * cselib.c: Likewise.
1471 * dbgcnt.c: Likewise.
1472 * dbgcnt.def: Likewise.
1473 * dbgcnt.h: Likewise.
1474 * dbxout.c: Likewise.
1478 * defaults.h: Likewise.
1479 * df-byte-scan.c: Likewise.
1480 * df-core.c: Likewise.
1481 * df-problems.c: Likewise.
1482 * df-scan.c: Likewise.
1485 * diagnostic.c: Likewise.
1486 * diagnostic.h: Likewise.
1487 * dominance.c: Likewise.
1488 * domwalk.c: Likewise.
1489 * double-int.c: Likewise.
1490 * double-int.h: Likewise.
1492 * dwarf2asm.c: Likewise.
1493 * dwarf2asm.h: Likewise.
1494 * dwarf2out.c: Likewise.
1495 * ebitmap.c: Likewise.
1496 * ebitmap.h: Likewise.
1497 * emit-rtl.c: Likewise.
1498 * et-forest.c: Likewise.
1499 * except.c: Likewise.
1500 * except.h: Likewise.
1501 * expmed.c: Likewise.
1504 * final.c: Likewise.
1505 * flags.h: Likewise.
1506 * fold-const.c: Likewise.
1507 * function.c: Likewise.
1508 * function.h: Likewise.
1509 * fwprop.c: Likewise.
1511 * gcov-dump.c: Likewise.
1512 * gcov-io.c: Likewise.
1513 * gcov-io.h: Likewise.
1516 * genattr.c: Likewise.
1517 * genattrtab.c: Likewise.
1518 * genautomata.c: Likewise.
1519 * genchecksum.c: Likewise.
1520 * genconfig.c: Likewise.
1521 * genflags.c: Likewise.
1522 * gengtype-parse.c: Likewise.
1523 * gengtype.c: Likewise.
1524 * gengtype.h: Likewise.
1525 * genmddeps.c: Likewise.
1526 * genmodes.c: Likewise.
1527 * genopinit.c: Likewise.
1528 * genpreds.c: Likewise.
1529 * gensupport.c: Likewise.
1530 * ggc-common.c: Likewise.
1531 * ggc-page.c: Likewise.
1532 * ggc-zone.c: Likewise.
1534 * gimple-iterator.c: Likewise.
1535 * gimple-low.c: Likewise.
1536 * gimple-pretty-print.c: Likewise.
1537 * gimple.c: Likewise.
1538 * gimple.def: Likewise.
1539 * gimple.h: Likewise.
1540 * gimplify.c: Likewise.
1541 * graphds.c: Likewise.
1542 * graphite-clast-to-gimple.c: Likewise.
1543 * gthr-nks.h: Likewise.
1544 * gthr-posix.c: Likewise.
1545 * gthr-posix.h: Likewise.
1546 * gthr-posix95.h: Likewise.
1547 * gthr-single.h: Likewise.
1548 * gthr-tpf.h: Likewise.
1549 * gthr-vxworks.h: Likewise.
1551 * haifa-sched.c: Likewise.
1552 * hard-reg-set.h: Likewise.
1553 * hooks.c: Likewise.
1554 * hooks.h: Likewise.
1555 * hosthooks.h: Likewise.
1556 * hwint.h: Likewise.
1557 * ifcvt.c: Likewise.
1558 * incpath.c: Likewise.
1559 * init-regs.c: Likewise.
1560 * integrate.c: Likewise.
1561 * ipa-cp.c: Likewise.
1562 * ipa-inline.c: Likewise.
1563 * ipa-prop.c: Likewise.
1564 * ipa-pure-const.c: Likewise.
1565 * ipa-reference.c: Likewise.
1566 * ipa-struct-reorg.c: Likewise.
1567 * ipa-struct-reorg.h: Likewise.
1568 * ipa-type-escape.c: Likewise.
1569 * ipa-type-escape.h: Likewise.
1570 * ipa-utils.c: Likewise.
1571 * ipa-utils.h: Likewise.
1573 * ira-build.c: Likewise.
1574 * ira-color.c: Likewise.
1575 * ira-conflicts.c: Likewise.
1576 * ira-costs.c: Likewise.
1577 * ira-emit.c: Likewise.
1578 * ira-int.h: Likewise.
1579 * ira-lives.c: Likewise.
1582 * lambda-code.c: Likewise.
1583 * lambda-mat.c: Likewise.
1584 * lambda-trans.c: Likewise.
1585 * lambda.h: Likewise.
1586 * langhooks.c: Likewise.
1588 * libgcov.c: Likewise.
1589 * lists.c: Likewise.
1590 * loop-doloop.c: Likewise.
1591 * loop-init.c: Likewise.
1592 * loop-invariant.c: Likewise.
1593 * loop-iv.c: Likewise.
1594 * loop-unroll.c: Likewise.
1595 * lower-subreg.c: Likewise.
1596 * lto-cgraph.c: Likewise.
1597 * lto-compress.c: Likewise.
1598 * lto-opts.c: Likewise.
1599 * lto-section-in.c: Likewise.
1600 * lto-section-out.c: Likewise.
1601 * lto-streamer-in.c: Likewise.
1602 * lto-streamer-out.c: Likewise.
1603 * lto-streamer.c: Likewise.
1604 * lto-streamer.h: Likewise.
1605 * lto-symtab.c: Likewise.
1606 * lto-wpa-fixup.c: Likewise.
1607 * matrix-reorg.c: Likewise.
1609 * mode-switching.c: Likewise.
1610 * modulo-sched.c: Likewise.
1611 * omega.c: Likewise.
1612 * omega.h: Likewise.
1613 * omp-low.c: Likewise.
1614 * optabs.c: Likewise.
1615 * optabs.h: Likewise.
1616 * opts-common.c: Likewise.
1618 * params.def: Likewise.
1619 * params.h: Likewise.
1620 * passes.c: Likewise.
1621 * plugin.c: Likewise.
1622 * postreload-gcse.c: Likewise.
1623 * postreload.c: Likewise.
1624 * predict.c: Likewise.
1625 * predict.def: Likewise.
1626 * pretty-print.c: Likewise.
1627 * pretty-print.h: Likewise.
1628 * print-rtl.c: Likewise.
1629 * print-tree.c: Likewise.
1630 * profile.c: Likewise.
1631 * read-rtl.c: Likewise.
1633 * recog.c: Likewise.
1634 * reg-stack.c: Likewise.
1635 * regcprop.c: Likewise.
1636 * reginfo.c: Likewise.
1637 * regmove.c: Likewise.
1638 * regrename.c: Likewise.
1640 * regstat.c: Likewise.
1641 * reload.c: Likewise.
1642 * reload1.c: Likewise.
1643 * resource.c: Likewise.
1645 * rtl.def: Likewise.
1647 * rtlanal.c: Likewise.
1648 * sbitmap.c: Likewise.
1649 * sched-deps.c: Likewise.
1650 * sched-ebb.c: Likewise.
1651 * sched-int.h: Likewise.
1652 * sched-rgn.c: Likewise.
1653 * sched-vis.c: Likewise.
1654 * sdbout.c: Likewise.
1655 * sel-sched-dump.c: Likewise.
1656 * sel-sched-dump.h: Likewise.
1657 * sel-sched-ir.c: Likewise.
1658 * sel-sched-ir.h: Likewise.
1659 * sel-sched.c: Likewise.
1660 * sel-sched.h: Likewise.
1663 * simplify-rtx.c: Likewise.
1664 * stack-ptr-mod.c: Likewise.
1666 * stor-layout.c: Likewise.
1667 * store-motion.c: Likewise.
1668 * stringpool.c: Likewise.
1669 * stub-objc.c: Likewise.
1670 * sync-builtins.def: Likewise.
1671 * target-def.h: Likewise.
1672 * target.h: Likewise.
1673 * targhooks.c: Likewise.
1674 * targhooks.h: Likewise.
1675 * timevar.c: Likewise.
1676 * tlink.c: Likewise.
1677 * toplev.c: Likewise.
1678 * toplev.h: Likewise.
1679 * tracer.c: Likewise.
1680 * tree-affine.c: Likewise.
1681 * tree-affine.h: Likewise.
1682 * tree-browser.def: Likewise.
1683 * tree-call-cdce.c: Likewise.
1684 * tree-cfg.c: Likewise.
1685 * tree-cfgcleanup.c: Likewise.
1686 * tree-chrec.c: Likewise.
1687 * tree-chrec.h: Likewise.
1688 * tree-complex.c: Likewise.
1689 * tree-data-ref.c: Likewise.
1690 * tree-data-ref.h: Likewise.
1691 * tree-dfa.c: Likewise.
1692 * tree-dump.c: Likewise.
1693 * tree-dump.h: Likewise.
1694 * tree-eh.c: Likewise.
1695 * tree-flow-inline.h: Likewise.
1696 * tree-flow.h: Likewise.
1697 * tree-if-conv.c: Likewise.
1698 * tree-inline.c: Likewise.
1699 * tree-into-ssa.c: Likewise.
1700 * tree-loop-distribution.c: Likewise.
1701 * tree-loop-linear.c: Likewise.
1702 * tree-mudflap.c: Likewise.
1703 * tree-nested.c: Likewise.
1704 * tree-nomudflap.c: Likewise.
1705 * tree-nrv.c: Likewise.
1706 * tree-object-size.c: Likewise.
1707 * tree-optimize.c: Likewise.
1708 * tree-outof-ssa.c: Likewise.
1709 * tree-parloops.c: Likewise.
1710 * tree-pass.h: Likewise.
1711 * tree-phinodes.c: Likewise.
1712 * tree-predcom.c: Likewise.
1713 * tree-pretty-print.c: Likewise.
1714 * tree-profile.c: Likewise.
1715 * tree-scalar-evolution.c: Likewise.
1716 * tree-ssa-address.c: Likewise.
1717 * tree-ssa-alias.c: Likewise.
1718 * tree-ssa-ccp.c: Likewise.
1719 * tree-ssa-coalesce.c: Likewise.
1720 * tree-ssa-copy.c: Likewise.
1721 * tree-ssa-copyrename.c: Likewise.
1722 * tree-ssa-dce.c: Likewise.
1723 * tree-ssa-dom.c: Likewise.
1724 * tree-ssa-dse.c: Likewise.
1725 * tree-ssa-forwprop.c: Likewise.
1726 * tree-ssa-ifcombine.c: Likewise.
1727 * tree-ssa-live.c: Likewise.
1728 * tree-ssa-live.h: Likewise.
1729 * tree-ssa-loop-ch.c: Likewise.
1730 * tree-ssa-loop-im.c: Likewise.
1731 * tree-ssa-loop-ivcanon.c: Likewise.
1732 * tree-ssa-loop-ivopts.c: Likewise.
1733 * tree-ssa-loop-manip.c: Likewise.
1734 * tree-ssa-loop-niter.c: Likewise.
1735 * tree-ssa-loop-prefetch.c: Likewise.
1736 * tree-ssa-loop-unswitch.c: Likewise.
1737 * tree-ssa-loop.c: Likewise.
1738 * tree-ssa-math-opts.c: Likewise.
1739 * tree-ssa-operands.c: Likewise.
1740 * tree-ssa-operands.h: Likewise.
1741 * tree-ssa-phiopt.c: Likewise.
1742 * tree-ssa-phiprop.c: Likewise.
1743 * tree-ssa-pre.c: Likewise.
1744 * tree-ssa-propagate.c: Likewise.
1745 * tree-ssa-reassoc.c: Likewise.
1746 * tree-ssa-sccvn.c: Likewise.
1747 * tree-ssa-sink.c: Likewise.
1748 * tree-ssa-structalias.c: Likewise.
1749 * tree-ssa-ter.c: Likewise.
1750 * tree-ssa-threadedge.c: Likewise.
1751 * tree-ssa-threadupdate.c: Likewise.
1752 * tree-ssa-uncprop.c: Likewise.
1753 * tree-ssa.c: Likewise.
1754 * tree-ssanames.c: Likewise.
1755 * tree-switch-conversion.c: Likewise.
1756 * tree-tailcall.c: Likewise.
1757 * tree-vect-data-refs.c: Likewise.
1758 * tree-vect-generic.c: Likewise.
1759 * tree-vect-loop-manip.c: Likewise.
1760 * tree-vect-loop.c: Likewise.
1761 * tree-vect-patterns.c: Likewise.
1762 * tree-vect-slp.c: Likewise.
1763 * tree-vect-stmts.c: Likewise.
1764 * tree-vectorizer.c: Likewise.
1765 * tree-vectorizer.h: Likewise.
1766 * tree-vrp.c: Likewise.
1768 * tree.def: Likewise.
1770 * treestruct.def: Likewise.
1771 * unwind-compat.c: Likewise.
1772 * unwind-dw2-fde-glibc.c: Likewise.
1773 * unwind-dw2.c: Likewise.
1774 * value-prof.c: Likewise.
1775 * value-prof.h: Likewise.
1776 * var-tracking.c: Likewise.
1777 * varasm.c: Likewise.
1778 * varpool.c: Likewise.
1781 * vmsdbgout.c: Likewise.
1783 * xcoffout.c: Likewise.
1785 2009-11-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1787 * pa.c (output_call): Only use sr4 for long interspace calls if
1788 call binds local and generating non PIC code.
1789 (attr_length_call): Adjust length calculation for above.
1791 2009-11-25 Uros Bizjak <ubizjak@gmail.com>
1793 * config/i386/i386.md (plusminus_carry_mnemonic): New code attribute.
1794 (add<mode>3_carry): Change operand order of plus RTX.
1795 (*add<mode>3_carry): Ditto.
1796 (*addsi3_carry_zext): Ditto.
1797 (*add<dwi>3_doubleword): Update for changed operand order.
1798 (*negti2_1 splitter): Ditto.
1799 (*negdi2_1 splitter): Ditto.
1800 (<plusminus_insn><mode>3_carry): Macroize expander from
1801 {add,sub}<mode>3_carry patterns using plusminus code iterator.
1802 (*<plusminus_insn><mode>3_carry): Macroize insn from
1803 *{add,sub}<mode>3_carry patetrns using plusminus code iterator.
1804 (neg<mode>2): Macroize expander from neg{qi,hi,si,di,ti}2
1805 patterns using SDWIM mode iterator.
1806 (*neg<dwi>2_doubleword): New insn_and_split pattern. Macroize
1807 pattern from *neg{di,ti}2_1 patterns and corresponding splitters
1808 using DWIH mode iterator.
1809 (*neg<mode>2_1): Macroize insn from neg{qi,hi,si,di}2_1 patterns
1810 using SWI mode iterator.
1811 (*neg<mode>2_cmpz): Ditto from neg{qi,hi,si,di}2_cmpz patterns.
1812 (one_cmpl<mode>2): Macroize expander from one_cmpl{qi,hi,si,di}2
1813 patterns using SWIM mode iterator.
1814 (*one_cmpl<mode>2_1): Macroize insn from one_cmpl{hi,si,di}2_1
1815 patterns using SWI248 mode iterator.
1816 (*one_cmpl<mode>2_2): Macroize insn from one_cmpl{qi,hi,si,di}2_2
1817 patterns using SWI mode iterator.
1818 (*one_cmpl<mode>2_2 splitter): Macroize splitter from
1819 one_cmpl{qi,hi,si,di}2_2 splitter patterns using SWI mode iterator.
1821 2009-11-24 Michael Matz <matz@suse.de>
1823 * expr.c (set_storage_via_libcall): Fix build_call_expr call.
1825 2009-11-24 David Binderman <dcb314@hotmail.com>
1827 * expr.c (store_field): Remove set but not used local variable
1829 (expand_expr_real_2): Remove treeop2.
1830 * gcse.c (update_ld_motion_stores): Remove new_rtx.
1831 * haifa-sched.c (max_issue): Remove points.
1832 (sched_create_recovery_edges): Remove e.
1833 * ira-costs.c (setup_allocno_cover_class_and_costs): Remove mode.
1835 2009-11-24 Nick Clifton <nickc@redhat.com>
1837 * config/v850/v850.c (function_arg): Fix handling of zero-length
1840 2009-11-24 Michael Matz <matz@suse.de>
1842 * tree.h (union tree_ann_d): Don't declare.
1843 (tree_base): Remove ann field.
1844 (struct var_ann_d): Declare forward.
1845 (tree_result_decl, tree_parm_decl, tree_var_decl): Add ann field.
1846 (DECL_VAR_ANN_PTR): New macro.
1847 * tree-dfa.c (create_var_ann): Rewrite in terms of above macro,
1848 accept only VAR, PARM or RESULT decls.
1849 (create_tree_common_ann): Remove.
1850 (remove_referenced_var): Use DECL_VAR_ANN_PTR.
1851 * tree-eh.c (lookup_expr_eh_lp): Remove.
1852 * tree-flow-inline.h (var_ann, get_var_ann): Rewrite in terms of
1854 (ann_type, tree_common_ann, get_tree_common_ann): Remove.
1855 * tree-flow.h (enum tree_ann_type): Remove.
1856 (struct tree_ann_common_d): Remove.
1857 (struct var_ann_d): Remove common field.
1858 (union tree_ann_d): Remove.
1859 (tree_ann_t, tree_ann_common_t): Remove typedefs.
1860 (tree_common_ann, get_tree_common_ann, ann_type,
1861 create_tree_common_ann, lookup_expr_eh_lp): Don't declare.
1862 * tree-ssa.c (delete_tree_ssa): Use DECL_VAR_ANN_PTR.
1863 * tree.c (copy_node_stat): Use DECL_VAR_ANN_PTR.
1864 * builtins.c (expand_builtin_memcpy): Use
1865 currently_expanding_gimple_stmt instead of tree annotation.
1866 (expand_builtin_memset_args): Ditto.
1867 * cfgexpand.c (currently_expanding_gimple_stmt): Add global variable.
1868 (expand_call_stmt): Don't set tree annotation.
1869 (expand_gimple_basic_block): Set currently_expanding_gimple_stmt.
1870 * expr.c (expand_expr_real): Don't call lookup_expr_eh_lp.
1871 * gimple.h (currently_expanding_gimple_stmt): Declare.
1873 2009-11-24 Paolo Carlini <paolo.carlini@oracle.com>
1875 * dwarf2out.c (add_location_or_const_value_attribute): Remove
1876 useless NOTE_VAR_LOCATION_STATUS call.
1877 * cfgrtl.c (commit_one_edge_insertion): Remove useless loop, tidy.
1879 2009-11-24 Rafael Avila de Espindola <espindola@google.com>
1881 * lto-wrapper.c (lto_wrapper_exit): Don't try to delete files if
1882 being called recursively.
1884 2009-11-24 Basile Starynkevitch <basile@starynkevitch.net>
1886 * Makefile.in (PLUGIN_HEADERS): Added files: cppdefault.h flags.h
1887 $(MD5_H) params.def params.h prefix.h tree-inline.h.
1889 2009-11-24 Paul Brook <paul@codesourcery.com>
1891 * gcc/config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Fix comment
1894 2009-11-24 Julian Brown <julian@codesourcery.com>
1895 Paul Brook <paul@codesourcery.com>
1897 * config/arm/arm.c (TARGET_DWARF_REGISTER_SPAN): Define.
1898 (arm_dwarf_register_span): New function.
1899 (arm_dbx_register_number): Add VFPv3 dwarf numbering.
1901 2009-11-24 David Binderman <dcb314@hotmail.com>
1903 * cfgrtl.c (commit_one_edge_insertion): Remove set but not used
1904 local variable bb_note.
1905 * dominance.c (get_dominated_by): Likewise local var n.
1906 (output_file_names): Likewise local var idx.
1907 (add_location_or_const_value_attribute): Likewise local var status.
1908 * dwarf2out.c (gen_variable_die): Likewise local var field.
1909 * emit-rtl.c (no_line_numbers): Remove.
1910 (init_emit_once): Remove line_numbers parameter.
1911 * rtl.h (init_emit_once): Adjust prototype.
1912 * toplev.c (backend_init): Adjust init_emit_once call.
1914 2009-11-24 Richard Guenther <rguenther@suse.de>
1916 PR tree-optimization/42142
1917 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
1918 Handle iv-dependent (non-)kills properly.
1919 (mark_aliased_reaching_defs_necessary): Pass the basic-block
1920 of the reference statement to mark_aliased_reaching_defs_necessary_1.
1922 2009-11-24 Martin Jambor <mjambor@suse.cz>
1924 PR tree-optimization/42154
1925 * tree-sra.c (struct access): Added comments.
1926 (sra_modify_expr): Build references to the old aggregate with
1927 build_ref_for_offset instead of reusing access->expr.
1928 (load_assign_lhs_subreplacements): Likewise.
1930 2009-11-24 Uros Bizjak <ubizjak@gmail.com>
1932 * config/i386/i386.md (add<mode>3_carry): Change insn pattern
1934 (sub<mode>3_carry): Ditto.
1935 (x86_mov<mode>cc_0_m1): Ditto.
1936 (*add<mode>3_carry): New insn pattern. Use VOIDmode match_operator
1937 for ix86_carry_flag_operator operator predicate.
1938 (*sub<mode>3_carry): Ditto.
1939 (*x86_mov<mode>cc_0_m1): Ditto.
1940 (*addsi3_carry_zext): Use VOIDmode match_operator for
1941 ix86_carry_flag_operator operator predicate.
1942 (*subsi3_carry_zext): Ditto.
1943 (*x86_mov<mode>cc_0_m1_s): Ditto.
1944 (*x86_mov<mode>cc_0_m1_neg): Ditto.
1945 * config/i386/predocates.md (ix86_carry_flag_operator): Do not
1946 check operator sub-expressions for FLAGS_REG and const0_rtx.
1947 * config/i386/i386.c (*ix86_gen_sub3_carry): Update prototype.
1948 (ix86_expand_int_movcc): Update calls to gen_x86_mov{si,di}cc_0_m1.
1949 (ix86_expand_int_addcc): Update calls to
1950 gen_{add,sub}{qi,hi,si,di}3_carry. Do not set mode of compare_op.
1951 (ix86_expand_strlensi_unroll_1): Update calls to ix86_gen_sub3_carry.
1952 Do not set mode of compare operation.
1954 2009-11-23 Jan Hubicka <jh@suse.cz>
1957 * ipa-inline.c (inline_transform): Avoid ICE when transform is called
1960 2009-11-23 Jan Hubicka <jh@suse.cz>
1962 * ipa-cp.c (ipcp_compute_node_scale): Work around completely
1963 wrong profile updates.
1964 * predict.c (counts_to_freqs): Be expected for ENTRY/EXIT block
1965 having largest frequency.
1966 * ira-live.c (ira_implicitly_set_insn_hard_regs): Silecne
1967 used uninitalized warning.
1968 * tree-optimize.c (execute_fixup_cfg): Rescale entry and exit block
1971 2009-11-23 Uros Bizjak <ubizjak@gmail.com>
1973 * config/alpha/alpha.md (*cmp_sadd_sidi): Use gen_lowpart instead
1974 of gen_rtx_REG to generate operand 5.
1975 (*cmp_ssub_sidi): Ditto.
1977 2009-11-23 Richard Henderson <rth@redhat.com>
1979 * config/i386/i386.c (avx_vpermilp_parallel): Fix sign compare
1982 2009-11-23 Paul Brook <paul@codesourcery.com>
1984 * config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Add special
1985 case for noreturn functions.
1986 (arm_compute_save_reg_mask): Remove special noreturn handling.
1988 2009-11-23 Richard Guenther <rguenther@suse.de>
1990 * tree-dfa.c (get_ref_base_and_extent): Adjust maximum access
1991 size for DECL bases.
1993 2009-11-22 Richard Henderson <rth@redhat.com>
1995 * i386.c (avx_vpermilp_parallel): New function.
1996 * i386-protos.h: Declare it.
1997 * predicates.md (avx_vpermilp_v8sf_operand, avx_vpermilp_v4df_operand,
1998 avx_vpermilp_v4sf_operand, avx_vpermilp_v2df_operand): New.
1999 * sse.md (AVXMODEFDP, AVXMODEFSP): New iterators.
2000 (ssescalarnum, ssedoublesizemode): Add AVX modes.
2001 (vpermilbits): Remove.
2002 (avx_vpermil<mode>): Change insns to expanders.
2003 (*avx_vpermil<mode>): New. Use vec_select.
2005 2009-11-22 Richard Earnshaw <rearnsha@arm.com>
2007 * opts.c (decode_options): Don't enable flag_schedule_insns
2008 when optimizing for size.
2009 * doc/invoke.texi: Document change.
2011 2009-11-22 Uros Bizjak <ubizjak@gmail.com>
2014 * config/alpha/alpha.md (*cmp_sadd_si): Change mode
2015 of scratch register to SImode.
2016 (*cmp_sadd_sidi): Ditto.
2017 (*cmp_ssub_si): Ditto.
2018 (*cmp_ssub_sidi): Ditto.
2020 2009-11-21 Ian Lance Taylor <iant@google.com>
2022 * Makefile.in (HOST_LIBS): Move higher in file.
2023 (LINKER, LINKER_FLAGS): If ENABLE_BUILD_WITH_CXX, but $(HOST_LIBS)
2024 is not empty, set to $(CC) and $(CFLAGS).
2026 2009-11-22 Martin Jambor <mjambor@suse.cz>
2028 * tree-cfg.c (verify_types_in_gimple_reference): Error out on
2029 V_C_E of an SSA_NAME or an invariant if lvalue is required.
2030 (verify_gimple_call): Verify LHS also with with
2031 verify_types_in_gimple_reference.
2033 2009-11-21 Martin Jambor <mjambor@suse.cz>
2036 * tree-sra.c (access_precludes_ipa_sra_p): New function.
2037 (splice_param_accesses): Check all accesses by calling
2038 access_precludes_ipa_sra_p.
2039 (sra_ipa_modify_expr): Rename argument erite to dont_convert and do
2040 not convert types if it is true.
2041 (sra_ipa_modify_assign): Convert types in case of mismatch.
2043 2009-11-21 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
2045 * config/sh/sh.md (cmpeqsi_t-1): Use logical_operand predicate
2048 2009-11-21 Adam Nemet <adambnemet@gmail.com>
2050 * config/mips/mips-protos.h (mulsidi3_gen_fn): New typedef.
2051 (mips_mulsidi3_gen_fn): Declare new function.
2052 * config/mips/mips.c (mips_mulsidi3_gen_fn): New function.
2053 * config/mips/mips.md (<u>mulsidi3): Change condition to use
2054 mips_mulsidi3_gen_fn. Use mips_mulsidi3_gen_fn to generate the insn.
2055 (<u>mulsidi3_64bit): Don't match for ISA_HAS_DMUL3.
2056 (mulsidi3_64bit_dmul): New define_insn.
2058 2009-11-21 Ben Elliston <bje@au.ibm.com>
2060 * gengtype-lex.l: Enable noinput flex option.
2061 (YY_NO_INPUT): Remove define.
2063 2009-11-21 Alexandre Oliva <aoliva@redhat.com>
2065 * tree-ssa.c (find_released_ssa_name): Handle NULL wi.
2066 (insert_debug_temp_for_var_def): Handle degenerate PHI nodes.
2067 (insert_debug_temps_for_defs): Handle PHI nodes.
2068 * tree-ssa-dom.c (degenerate_phi_result): Don't crash on released
2071 2009-11-21 Alexandre Oliva <aoliva@redhat.com>
2073 * tree-ssa-pre.c (remove_dead_inserted_code): Don't release_defs
2074 after remove_phi_node.
2076 2009-11-21 Alexandre Oliva <aoliva@redhat.com>
2078 PR tree-optimization/42078
2079 * gimple.h (gimple_replace_lhs): New declaration.
2080 * gimple.c (gimple_replace_lhs): New function.
2081 * tree-ssa-math-opts.c (execute_cse_reciprocals): Call it before
2084 2009-11-20 Sebastian Pop <sebastian.pop@amd.com>
2086 * config/i386/sse.md (*xop_pmacsdql_mem): Don't call reg_mentioned_p.
2087 (xop_mulv2div2di3_low): Same.
2088 (*xop_pmacsdqh_mem): Same.
2090 2009-11-20 Richard Henderson <rth@redhat.com>
2092 * config/i386/i386-builtin-types.awk: New file.
2093 * config/i386/i386-builtin-types.def: New file.
2094 * config/i386/t-i386: Use them to build i386-builtin-types.inc.
2095 * config/i386/i386.c: Include it.
2096 (ix86_builtin_type_tab, ix86_get_builtin_type): New.
2097 (ix86_builtin_func_type_tab, ix86_get_builtin_func_type): New.
2098 (struct builtin_isa): Remove GTY marker. Replace tree type with
2099 ix86_builtin_func_type; add set_and_not_built_p.
2100 (def_builtin): Change type parameter to tcode; use
2101 ix86_get_builtin_func_type; update all callers. Accept zero mask
2102 to mean the builtin is unconditionally available.
2103 (ix86_add_new_builtins): Use set_and_not_built_p instead of type
2105 (enum ix86_special_builtin_type, enum ix86_builtin_type): Remove.
2106 Update some users to rationalized enumeration codes from new include.
2107 (enum multi_arg_type): Remove. Replace all enumeration values
2108 with defines to new ix86_builtin_func_type.
2109 (ix86_init_mmx_sse_builtins): Don't build any types here. Defer
2110 all type resolution to def_builtin.
2111 (ix86_init_builtin_types): Split out from ...
2112 (ix86_init_builtins): ... here. Use ix86_get_builtin_func_type.
2114 2009-11-20 Michael Meissner <meissner@linux.vnet.ibm.com>
2117 * config/rs6000/rs6000.c (struct machine_function): Revert
2118 2009-10-23 change to set VRSAVE to non-0 if we use VSX.
2119 (rs6000_expand_to_rtl_hook): Ditto.
2120 (rs6000_check_vector_mode): Ditto.
2121 (compute_vrsave_mask): Ditto.
2123 2009-11-20 Paul Brook <paul@codesourcery.com>
2125 * doc/invoke.texi: Document ARM -mcpu=cortex-a5.
2126 * config/arm/arm-cores.def: Add cortex-a5.
2127 * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a5.
2128 * config/arm/arm-tune.md: Regenerate.
2130 2009-11-20 Olga Golovanevsky <olga@il.ibm.com>
2133 * ipa-struct-reorg.c (find_pos_in_stmt): New parameter.
2134 (ref_pos): New field in structure.
2135 (insert_new_var_in_stmt): New function.
2138 2009-11-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2140 * config.gcc (alpha*-dec-osf[45]*): Set use_gcc_stdint.
2141 * config/alpha/osf.h (SIG_ATOMIC_TYPE): Define.
2142 (INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE): Define.
2143 (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
2144 (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
2145 INT_LEAST64_TYPE): Define.
2146 (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
2147 UINT_LEAST64_TYPE): Define.
2148 (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
2149 INT_FAST64_TYPE): Define.
2150 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
2151 UINT_FAST64_TYPE): Define.
2152 (INTPTR_TYPE, UINTPTR_TYPE): Define.
2154 2009-11-20 Julian Brown <julian@codesourcery.com>
2156 * config/arm/arm.h (ASM_OUTPUT_REG_PUSH): Handle STATIC_CHAIN_REGNUM
2157 specially for Thumb-1.
2158 (ASM_OUTPUT_REG_POP): Likewise.
2160 2009-11-19 Jason Merrill <jason@redhat.com>
2162 * dwarf2out.c (get_context_die): Take TYPE_MAIN_VARIANT.
2164 2009-11-19 Basile Starynkevitch <basile@starynkevitch.net>
2165 Rafael Avila de Espindola <espindola@google.com>
2167 * doc/plugins.texi (Plugin initialization): Added advices for
2168 retrieving the version of GCC at plugin compilation and loading times.
2170 2009-11-19 Basile Starynkevitch <basile@starynkevitch.net>
2172 * plugin.c (FMT_FOR_PLUGIN_EVENT): added definition.
2173 (dump_active_plugins): output to file everything. Use
2174 internationalized dump & FMT_FOR_PLUGIN_EVENT.
2176 2009-11-19 Richard Guenther <rguenther@suse.de>
2178 * gimple.c (canonicalize_cond_expr_cond): Strip conversions
2179 around truth-valued expressions.
2180 * tree.c (free_lang_data): Untangle check for LTO frontend.
2182 2009-11-19 Jakub Jelinek <jakub@redhat.com>
2184 * tree.c (need_assembler_name_p): Use cgraph_get_node instead
2185 of cgraph_node_for_decl.
2186 * cgraph.h (cgraph_node_for_decl): Remove prototype.
2187 * cgraph.c (cgraph_node_for_decl): Remove.
2188 (cgraph_get_node): Just return NULL if !cgraph_hash.
2190 2009-11-19 Paul Brook <paul@codesourcery.com>
2192 * config.gcc: Add new ARM --with-fpu options.
2193 * doc/invoke.texi: Docuent ARM -mfpu=fpv4-sp-d16.
2194 * config/arm/arm.c (all_fpus): Add fpv4-sp-d16.
2196 2009-11-18 Richard Guenther <rguenther@suse.de>
2198 * gimple.h (union gimple_statement_d): Add gsmembase member.
2199 (gimple_vuse_op): Use gsmembase for access.
2200 (gimple_vdef_op): Likewise.
2201 (gimple_vuse): Likewise.
2202 (gimple_vdef): Likewise.
2203 (gimple_vuse_ptr): Likewise.
2204 (gimple_vdef_ptr): Likewise.
2205 (gimple_set_vuse): Likewise.
2206 (gimple_set_vdef): Likewise.
2207 * gsstruct.def (GSS_WITH_MEM_OPS_BASE): Add.
2209 2009-11-18 Daniel Jacobowitz <dan@codesourcery.com>
2211 * doc/arm-neon-intrinsics.texi: Regenerated.
2213 2009-11-18 Daniel Jacobowitz <dan@codesourcery.com>
2215 * config/arm/neon-docgen.ml (analyze_shape_elt): Handle alternatives.
2217 2009-11-18 Paul Brook <paul@codesourcery.com>
2218 Daniel Jacobowitz <dan@codesourcery.com>
2220 * config/arm/arm.c (FL_ARCH7EM, FL_FOR_ARCH7EM): Define.
2221 (arm_arch7em): New variable.
2222 (all_architectures): Add armv7e-m.
2223 (arm_override_options): Set arm_arch7em.
2224 * config/arm/arm.h (TARGET_DSP_MULTIPLY, TARGET_INT_SIMD):
2225 Include arm_arch7em.
2226 (arm_arch7em): Declare.
2228 2009-11-18 Richard Guenther <rguenther@suse.de>
2230 * lto-streamer-in.c (input_gimple_stmt): Assert that we find
2231 a valid field decl if checking is enabled.
2233 2009-11-18 Martin Jambor <mjambor@suse.cz>
2235 * ipa-prop.h (struct ipa_param_call_note): New field lto_stmt_uid.
2236 (lto_ipa_fixup_call_notes): Declare.
2237 * ipa-prop.c (ipa_note_param_call): Store gimple uid.
2238 (update_call_notes_after_inlining): Copy call stmt uid to the new
2240 (ipa_write_param_call_note): New function.
2241 (ipa_read_param_call_note): New function
2242 (ipa_write_node_info): Write also param call notes. Removed a bogus
2243 comment, reformatted to fit 80 columns.
2244 (ipa_read_node_info): Read also param call notes. Removed a bogus
2245 comment. Remove ipa_edge_args_vector growth.
2246 (lto_ipa_fixup_call_notes): New function.
2247 * ipa-cp.c (pass_ipa_cp): Add stmt_fixup hook.
2248 * ipa-inline.c (cgraph_mark_inline_edge): Perform indirect
2249 inlining regardless of flag_wpa.
2250 (cgraph_decide_inlining_of_small_functions): Likewise.
2251 (cgraph_decide_inlining): Likewise.
2252 (inline_read_summary): Likewise.
2254 2009-11-18 Jan Hubicka <jh@suse.cz>
2256 * predict.c (compute_function_frequency): Export.
2257 * predict.h (compute_function_frequency): Declare.
2258 * tree-optimize.c (execute_fixup_cfg): Rescale frequencies.
2260 2009-11-18 Martin Jambor <mjambor@suse.cz>
2262 * passes.c (ipa_write_summaries): Call renumber_gimple_stmt_uids
2263 on all nodes we write summaries for.
2265 2009-11-18 Shujing Zhao <pearly.zhao@oracle.com>
2268 * params.def (PARAM_INLINE_UNIT_GROWTH, PARAM_IPCP_UNIT_GROWTH)
2269 (PARAM_EARLY_INLINING_INSNS, PARAM_IRA_MAX_LOOPS_NUM)
2270 (PARAM_IRA_MAX_CONFLICT_TABLE_SIZE)
2271 (PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP)
2272 (PARAM_MIN_INSN_TO_PREFETCH_RATIO)
2273 (PARAM_PREFETCH_MIN_INSN_TO_MEM_RATIO)
2274 (PARAM_IPA_SRA_PTR_GROWTH_FACTOR): Uppercase the first letter of the
2277 2009-11-18 Jakub Jelinek <jakub@redhat.com>
2279 * dwarf2out.c (loc_list_from_tree): Don't call rtl_for_decl_location
2281 (rtl_for_decl_location): Try harder to get a rtl for TREE_STATIC vars.
2284 * cgraph.h (struct cgraph_node): Add same_body and same_body_alias
2286 (cgraph_same_body_alias, cgraph_remove_same_body_alias): New
2288 * cgraphunit.c (cgraph_expand_function, cgraph_emit_thunks,
2289 cgraph_materialize_all_clones): Handle same_body aliases.
2290 * cgraph.c (cgraph_allocate_node): New function.
2291 (cgraph_create_node): Use it.
2292 (cgraph_node_for_decl, cgraph_node, cgraph_get_node,
2293 cgraph_node_for_asm, cgraph_remove_node): Handle same_body aliases.
2294 (cgraph_same_body_alias, cgraph_remove_same_body_alias): New
2296 * lto-cgraph.c (lto_output_node): Stream out same_body aliases.
2297 (input_node): Stream in same_body aliases.
2298 * lto-symtab.c (lto_cgraph_replace_node): Clear node pointers
2299 for same_body aliases.
2300 (lto_symtab_merge_cgraph_nodes_1): Handle same_body aliases.
2302 2009-11-18 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
2305 * config/darwin.h: Use the extension stub libraries to access
2306 current libgcc_s features.
2308 2009-11-18 Alexandre Oliva <aoliva@redhat.com>
2311 * tree-vect-loop.c (vect_loop_kill_debug_uses): New.
2312 (vect_transform_loop): Call it.
2314 2009-11-18 Alexandre Oliva <aoliva@redhat.com>
2316 * tree-ssa.c (insert_debug_temp_for_var_def): Fix handling of
2319 2009-11-18 Alexandre Oliva <aoliva@redhat.com>
2323 * graphite-scop-detection.c (stmt_simple_for_scop_p): Debug stmts
2325 * graphite-sese-to-poly.c (graphite_stmt_p): Likewise.
2326 (try_generate_gimple_bb): Skip debug stmts when finding data refs.
2327 * sese.c (sese_build_liveouts_bb): Skip debug stmts.
2328 (sese_bad_liveouts_use): New.
2329 (sese_reset_debug_liveouts_bb): New.
2330 (sese_build_liveouts): Use it.
2331 (rename_variables_in_stmt): Reset debug stmts rather than creating
2333 (expand_scalar_variable_stmt): Likewise.
2335 2009-11-18 Alexandre Oliva <aoliva@redhat.com>
2337 * df-scan.c (df_ref_create): Don't mark BB as dirty on debug insns.
2338 (df_ref_remove): Likewise.
2340 2009-11-17 Jan Hubicka <jh@suse.cz>
2342 * ipa-struct-reorg.c (update_cgraph_with_malloc_call): Fix profile
2345 2009-11-17 Eric Botcazou <ebotcazou@adacore.com>
2347 * toplev.c (process_options): Remove dead code.
2348 * doc/invoke.texi (-frename-registers): Mention -fpeel-loops.
2350 2009-11-17 Rafael Avila de Espindola <espindola@google.com>
2352 * lto-symtab.c (lto_symtab_resolve_symbols): Always initialize the
2355 2009-11-17 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2357 PR tree-optimization/41857
2358 * tree-ssa-address.c (move_hint_to_base): Use void pointer to
2359 TYPE's address space instead of pointer to TYPE.
2361 2009-11-17 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2363 * reload.c (find_reloads_address): Fix typo.
2365 2009-11-17 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2367 * config/spu/spu.c (get_pic_reg): Use LAST_ARG_REGNUM as PIC
2368 registers in leaf functions if possible.
2370 2009-11-17 Maxim Kuvyrkov <maxim@codesourcery.com>
2372 * config/m68k/m68k-devices.def: Add MCF5441x family.
2374 2009-11-17 Jan Hubicka <jh@suse.cz>
2376 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not access
2378 * cgraphunit.c (verify_cgraph_node): Verify frequencies for match.
2380 2009-11-17 Uros Bizjak <ubizjak@gmail.com>
2382 * config/i386/predicates.md (x86_64_szext_general_operand): Do not
2383 nest ior expressions.
2384 (x86_64_szext_nonmemory_operand): Ditto.
2385 (call_insn_operand): Ditto.
2387 2009-11-16 Alexandre Oliva <aoliva@redhat.com>
2389 * stmt.c (expand_asm_stmt): Get locus from stmt.
2391 2009-11-16 Alexandre Oliva <aoliva@redhat.com>
2393 * tree-cfg.c (gimple_redirect_edge_and_branch) <case GIMPLE_ASM>:
2394 Create the decl label for the new dest block on demand. Require
2395 a fallthrough edge if no asm labels were redirected.
2397 2009-11-16 Uros Bizjak <ubizjak@gmail.com>
2399 * config/i386/i386.md (cbranchsi4): Use nonimmediate_operand for
2400 operand 1 predicate.
2401 (cstoresi4): Ditto for operand 2.
2402 (cbranch<mode>4): Macroize expander from cbranch{qi,hi,si,di,ti}4
2403 patterns using SDWIM mode iterator.
2404 (cstore<mode>4): Macroize expander from cstore{qi,hi,si,di}4 patterns
2405 using SWIM mode iterator.
2406 (cmpdi_1): Rename from cmpdi_1_rex64.
2407 (cmp<mode>_1): Macroize expander from cmp{si,di}_1 patterns using
2408 SWI48 mode iterator.
2409 (*cmp<mode>_1): Macroize insn from *cmp{qi,hi,si,di}_1_insn patterns
2410 using SWI mode iterator.
2411 (*cmp<mode>_ccno_1): Ditto from *cmp{qi,hi,si,di}_ccno_1.
2412 (*cmp<mode>_minus_1): Ditto from *cmp{qi,hi,si,di}_minus_1.
2413 (*cmpqi_ext_3_insn): Make private.
2414 (*cmpqi_ext_3_insn_rex64): Make private.
2415 (cmpstrnsi): Update for renamed cmpdi_1_rex64.
2416 * config/i386/predicates.md (cmpsi_operand): Remove.
2418 2009-11-16 Paul Brook <paul@codesourcery.com>
2420 * doc/invoke.texi: Document ARM VFPv4 based FPUs.
2421 * config/arm/arm.c (all_fpus): Add VFPv4 entries.
2423 2009-11-14 Jan Hubicka <jh@suse.cz>
2425 * cgraphbuild.c (compute_call_stmt_bb_frequency): Use proper
2427 * cgraph.c (cgraph_clone_edge): Avoid freq_scale 0 to completely
2428 zero out all callees.
2429 * cgraphunit.c (verify_cgraph_node): Verify cgraph nodes for
2430 frequency and count match.
2431 * ipa-inline.c (update_noncloned_frequencies): New function.
2432 (cgraph_clone_inlined_nodes): Use it.
2433 * tree-inline.c (copy_bb): Fix frequency scaling; output
2434 diagnostic on frequency mismatches to dump file.
2435 (initialize_cfun): Do not scale frequency; fix count scaling;
2436 initialize entry and exit block frequencies; copy profile info.
2437 (copy_cfg_body): Use frequency_scale as argument; fix count scaling.
2438 (copy_body): Use frequency_scale as argument.
2439 (expand_call_inline): Compute frequency scale and output diagnostic
2441 (delete_unreachable_blocks_update_callgrah): Remove checking that
2442 has to be done after edge redirection.
2443 (tree_function_versioning): Update initialize_cfun and copy_body call.
2445 2009-11-14 Jan Hubicka <jh@suse.cz>
2447 * cgraph.c (cgraph_release_function_body): Update use of
2448 ipa_transforms_to_apply.
2449 (cgraph_remove_node): Remove ipa_transforms_to_apply.
2450 * cgraph.h (struct cgraph_node): Add ipa_transforms_to_apply.
2451 * cgraphunit.c (save_inline_function_body): Clear ipa_transforms for
2453 (cgraph_materialize_clone): Remove original if dead.
2454 * lto-streamer-in.c (lto_read_body): Remove FIXME and
2455 ipa_transforms_to_apply hack.
2456 * function.h (struct function): Add ipa_transforms_to_apply.
2457 * ipa.c (cgraph_remove_unreachable_nodes): Handle dead clone originals.
2458 * tree-inline.c (copy_bb): Update sanity check.
2459 (initialize_cfun): Do not copy ipa_transforms_to_apply.
2460 (expand_call_inline): remove dead clone originals.
2461 (tree_function_versioning): Merge transformation queues.
2462 * passes.c (add_ipa_transform_pass): Remove.
2463 (execute_one_ipa_transform_pass): Update ipa_transforms_to_apply
2465 (execute_all_ipa_transforms): Update.
2466 (execute_one_pass): Update.
2468 2009-11-14 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
2470 PR target/21078, 21080
2471 * config/avr/avr.c (avr_return_addr_rtx): New function for
2472 builtin_return_address.
2473 (expand_prologue): Calculate stack usage.
2474 (avr_asm_function_end_prologue): Output stack size and offset label.
2475 * config/avr/avr.h (RETURN_ADDR_RTX): Replace.
2476 (machine_function): Add stack_usage.
2477 * config/avr/avr-protos.h (avr_return_addr_rtx): New function.
2479 2009-11-14 Anatoly Sokolov <aesok@post.ru>
2481 * config/iq2000/iq2000.c (iq2000_function_value): Make static, add
2482 new 'outgoing' argument.
2483 (iq2000_libcall_value, iq2000_function_value_regno_p): New functions.
2484 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
2485 * config/iq2000/iq2000.h (FUNCTION_VALUE_REGNO_P): Redefine, use
2486 iq2000_function_value_regno_p.
2487 (FUNCTION_VALUE, LIBCALL_VALUE): Remove.
2488 * config/iq2000/iq2000-protos.h (iq2000_function_value_regno_p):
2491 2009-11-14 Richard Earnshaw <rearnsha@arm.com>
2494 * arm.md (adddi_sesidi_di): Place tied contraint first.
2495 (adddi_zesidi_di, subdi_di_zesidi, subdi_di_sesidi): Likewise
2496 (subdi_zesidi_di, subdi_sesidi_di): Likewise.
2497 (mulsi3_compare0, mulsi_compare0_scratch): Likewise.
2498 (mulsi3addsi, mulsi3addsi_compare0): Likewise.
2499 (mulsi3addsi_compare0_scratch, smulsi3_highpart_nov6): Likewise.
2500 (umulsi3_highpart_nov6, anddi_zesidi_di, anddi_sesdi_di): Likewise.
2501 (anddi_notdi_di, iordi_sesidi_di, xordi_sesidi_di): Likewise.
2502 (andsi_iorsi3_notsi, arm_ashldi3_1bit, arm_ashrdi3_1_bit): Likewise.
2503 (arm_lshrdi3_1bit, one_cmpldi2): Likewise.
2505 2009-11-14 Uros Bizjak <ubizjak@gmail.com>
2507 * config/i386/predicates.md (call_register_no_elim_operand):
2508 New predicate. Reject stack register as valid call operand
2510 (call_insn_operand): Use call_register_no_elim_operand.
2512 2009-11-13 Richard Henderson <rth@redhat.com>
2514 * function.c (stack_protect_prologue): Don't bypass expand_expr
2515 for stack_protect_guard and guard_decl.
2516 (stack_protect_epilogue): Likewise.
2518 2009-11-13 Jan Hubicka <jh@suse.cz>
2520 * ipa.c (function_and_variable_visibility): Clear COMDAT on functions
2521 when to PUBLIC is set.
2523 2009-11-13 Jakub Jelinek <jakub@redhat.com>
2526 * gimplify.c (gimplify_omp_atomic): Set DECL_GIMPLE_REG_P on
2529 2009-11-13 Uros Bizjak <ubizjak@gmail.com>
2532 * config/i386/i386.md (*call_pop_1, *call_1, *call_value_pop_1,
2533 *call_value_1): Use "lsm" as operand 1 constraint.
2534 * config/i386/predicates.md (call_insn_operand): Depend on
2535 index_register_operand to avoid %esp register.
2537 2009-11-13 Uros Bizjak <ubizjak@gmail.com>
2540 2009-11-03 Uros Bizjak <ubizjak@gmail.com>
2543 * config/i386/i386.h (ix86_arch_indices) <X86_ARCH_CALL_ESP>: New.
2544 (TARGET_CALL_ESP): New define.
2545 * config/i386/i386.c (initial_ix86_tune_features): Initialize
2547 * config/i386/i386.md (*call_pop_1_esp, *call_1_esp,
2548 *call_value_pop_1_esp, *call_value_1_esp): Rename from *call_pop_1,
2549 *call_1, *call_value_pop_1 and *call_value_1. Depend on
2551 (*call_pop_1, *call_1, *call_value_pop_1, *call_value_1):
2552 New patterns, use "lsm" as operand 1 constraint.
2553 * config/i386/predicates.md (call_insn_operand): Depend on
2554 index_register_operand for !TARGET_CALL_ESP to avoid %esp register.
2556 2009-11-13 Jason Merrill <jason@redhat.com>
2559 * dwarf2out.c (gen_variable_die): Don't worry about DECL_COMDAT.
2560 Don't emit a second declaration at any scope.
2562 2009-11-13 Andrey Belevantsev <abel@ispras.ru>
2564 PR rtl-optimization/41697
2565 * sel-sched-ir.c (fallthru_bb_of_jump): Bail out when a block with
2566 a conditional jump has a single successor.
2568 2009-11-13 Andrey Belevantsev <abel@ispras.ru>
2570 * sched-deps.c (init_deps): New parameter lazy_reg_last. Don't
2571 allocate reg_last when in case lazy_reg_last is true.
2572 (init_deps_reg_last): New.
2573 (free_deps): When max_reg is 0, this context is already freed.
2574 * sched-int.h (init_deps_reg_last): Export.
2575 (init_deps): Update prototype.
2576 * sched-ebb.c (schedule_ebb): Update the call to init_deps.
2577 * sched-rgn.c (sched_rgn_compute_dependencies): Likewise.
2578 * ddg.c (build_intra_loop_deps): Likewise.
2579 * sel-sched-ir.c (copy_deps_context, create_deps_context,
2580 reset_deps_context, deps_init_id): Likewise.
2581 (init_first_time_insn_data): Lazy allocate INSN_DEPS_CONTEXT.
2582 (free_data_for_scheduled_insn): New, break down from ...
2583 (free_first_time_insn_data): ... here.
2584 (has_dependence_p): Allocate reg_last now, when it is needed.
2585 (extend_insn_data): When maximal LUID is big enough, allocate
2586 per-insn data in smaller chunks.
2587 * sel-sched-ir.h (free_data_for_scheduled_insn): Export.
2588 * sel-sched.c (update_seqnos_and_stage): Free INSN_DEPS_CONTEXT
2591 2009-11-13 Uros Bizjak <ubizjak@gmail.com>
2593 * config/i386/i386.md (call_value): Fix comment.
2594 (sibcall_value): Ditto.
2596 2009-11-13 Eric Botcazou <ebotcazou@adacore.com>
2598 * config/i386/linux-unwind.h (x86_frob_update_context): New function.
2599 (MD_FROB_UPDATE_CONTEXT): Define.
2601 2009-11-12 Eric Botcazou <ebotcazou@adacore.com>
2602 Laurent GUERBY <laurent@guerby.net>
2604 * config/sparc/linux-unwind.h (sparc64_fallback_frame_state): Tidy.
2605 Do not schedule an %sp restore. Compensate for RETURN_ADDR_OFFSET.
2606 (sparc_fallback_frame_state): Tidy. Compensate for RETURN_ADDR_OFFSET.
2608 2009-11-12 Jan Hubicka <jh@suse.cz>
2610 * ipa.c (function_and_variable_visibility): Fix my accidentail commit
2611 and clear DECL_COMMON on localized declarations.
2613 2009-11-12 Bernd Schmidt <bernd.schmidt@analog.com>
2616 * regrename.c (struct du_head): New structure; some elements moved
2618 (struct du_chain): ... this one.
2619 (open_chains, closed_chains): Now of type struct du_head *.
2620 (do_replace): Accept du_head argument, not du_chain. All callers
2621 changed. Modified code to match new data structures.
2622 (build_def_use): Return a list of du_head structures. Modified code
2623 to match new data structures.
2624 (dump_def_use_chain): Accept du_head argument, not du_chain. All
2625 callers changed. Modified code to match new data structures.
2626 (merge_overlapping_regs): Accept du_head argument, not du_chain. All
2627 callers changed. Modified code to match new data structures.
2628 (scan_rtx_reg): Change type of this_regno and this_nregs to unsigned.
2629 Allocate a du_head structure as well as a du_chain when creating a
2630 new chain. Modified other code to match new data structures.
2632 2009-11-12 Jan Hubicka <jh@suse.cz>
2634 * cgraph.h (varpool_node_name): Declare.
2635 * cgraphunit.c (process_function_and_variable_attributes): Set
2636 force_output flag on used variables.
2637 * ipa.c (function_and_variable_visibility): Dump externally visible
2638 and needed variables.
2639 * varpool.c (varpool_node_name): Export.
2640 (decide_is_variable_needed): Check COMDAT for externally visible vars;
2643 2009-11-12 Uros Bizjak <ubizjak@gmail.com>
2646 * simplify-rtx.c (simplify_replace_fn_rtx) <case 'e'>: Skip
2647 processing if XEXP (x, i) is NULL.
2649 2009-11-12 Jan Hubicka <jh@suse.cz>
2651 * ipa.c (function_and_variable_visibility): Verify that WEAK || COMMON
2652 imply PUBLIC || EXTERNAL.
2654 2009-11-11 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
2657 * cfgexpand.c (expand_gimple_basic_block): Append NOP to a fallthru,
2658 single successor block, ending with jump created by RTL expander.
2660 2009-11-11 Jan Hubicka <jh@suse.cz>
2663 * ipa.c (function_and_variable_visibility): Do not privatize COMDAT
2664 and WEAK variables at -fwhole-program.
2667 * ipa.c (whole_program_function_and_variable_visility): COMDAT
2668 functions/variables are not needed even if they are externally visible.
2670 2009-11-11 Jan Hubicka <jh@suse.cz>
2672 (patch by Richard Guenther)
2673 * lto-streamer-out.c (output_function): Output head of argument list
2675 * lto-streamer-in.c (input_function): Re-map arguments into merged
2678 2009-11-11 Jan Hubicka <jh@suse.cz>
2680 * lto-cgraph.c: Include gcov-io.h
2681 (output_profile_summary): New function.
2682 (output_cgraph): Use it.
2683 (input_profile_summary): New function.
2684 (input_cgraph): Use it.
2685 * coverage.c (build_ctr_info_value): Use varpool; initalize
2686 DECL_ASSEMBLER_NAME.
2687 (create_coverage): Likewise.
2688 * tree-profile.c (tree_init_ic_make_global_vars): Likewise.
2689 (tree_init_edge_profiler): Likewise.
2690 * Makefile.in (lto-cgraph.o): Add dependency on gcov-io.h.
2692 2009-11-11 Kai Tietz <kai.tietz@onevision.com>
2694 * config/i386/cygming.h (HANDLE_PRAGMA_PUSH_POP_MACRO): Removed.
2695 * c-pragma.c (def_pragma_macro_value): Likewise.
2696 (def_pragma_macro): Likewise.
2697 (pushed_macro_table): Likewise.
2698 (HANDLE_PRAGMA_PUSH_POP_MACRO): Remove guarded code.
2699 * doc/tm.texi (HANDLE_PRAGMA_PUSH_POP_MACRO): Removed.
2701 2009-11-11 Basile Starynkevitch <basile@starynkevitch.net>
2703 * doc/plugins.texi (Registering custom attributes): section
2704 renamed as (Registering custom attributes or pragmas).
2705 Mentions custom attributes & pragmas, and c_register_pragma, with
2707 * doc/cpp.texi (Pragmas): Mentions that plugins can provide their
2709 * doc/extend.texi (Function Attributes): Mentions that plugin can
2710 provide their attributes.
2712 2009-11-11 Jon Beniston <jon@beniston.com>
2714 * config.gcc: Add lm32 elf and uclinux targets.
2715 * config/lm32: New directory.
2716 * config/lm32/lm32.c: New file.
2717 * config/lm32/lm32.h: New file.
2718 * config/lm32/lm32.md: New file.
2719 * config/lm32/lm32.opt: New file.
2720 * config/lm32/lm32-protos.h: New file.
2721 * config/lm32/constraints.md: New file.
2722 * config/lm32/predicates.md: New file.
2723 * config/lm32/sfp-machine.h: New file.
2724 * config/lm32/t-fprules-softfp: New file.
2725 * config/lm32/uclinux-elf.h: New file.
2726 * doc/invoke.texi: Document lm32 options.
2727 * doc/contrib.texi: Document lm32 porter.
2728 * doc/install.texi: Document lm32 targets.
2730 2009-11-11 Martin Jambor <mjambor@suse.cz>
2733 * ipa-prop.c (ipa_update_after_lto_read): Call
2734 ipa_check_create_node_params and ipa_check_create_edge_args. Also
2735 call ipa_initialize_node_params instead of ipa_populate_param_decls.
2737 2009-11-11 Daniel Jacobowitz <dan@codesourcery.com>
2739 * config/arm/arm.c (neon_vdup_constant, neon_make_constant): New.
2740 (neon_expand_vector_init): Use them. Also handle non-constant
2741 vectors with identical elements and vectors with only one
2742 non-constant element.
2743 (arm_print_operand): Handle 'y' modifier.
2744 * config/arm/arm-protos.h (neon_make_constant): Declare.
2745 * config/arm/neon.md (neon_vdup_n<mode>): Split into two
2746 patterns. Use VX instead of VDQW for the first one. Allow
2747 a VFP alternative and V32 modes for the second one.
2748 * config/arm/neon.ml (shape_elt): Add Alternatives.
2749 (ops): Use Alternatives for vdup lane instructions.
2750 * config/arm/neon-testgen.ml (analyze_shape): Handle Alternatives.
2751 * config/arm/vec-common.md (mov<mode>): Use neon_make_constant.
2753 2009-11-11 Daniel Jacobowitz <dan@codesourcery.com>
2755 * config/arm/neon.md (*neon_mov<mode>): Reject two non-register
2757 (movti, mov<mode>): Call force_reg on one operand if required.
2758 * config/arm/vec-common.md (mov<mode>): Likewise.
2760 2009-11-11 Daniel Jacobowitz <dan@codesourcery.com>
2762 * config/arm/arm.c (arm_override_options): Enable scheduling for
2765 2009-11-10 Eric Botcazou <ebotcazou@adacore.com>
2769 * expr.h (anti_adjust_stack_and_probe): Declare.
2770 * explow.c (anti_adjust_stack_and_probe): Make global, add ADJUST_BACK
2771 parameter and rewrite head comment.
2772 (allocate_dynamic_stack_space): Adjust call to above function.
2773 * function.c (expand_function_end): Handle STACK_CHECK_MOVING_SP.
2775 * tree.h (dwarf2out_args_size): Delete.
2776 * dwarf2out.c (dwarf2out_args_size): Make static and move around.
2777 (dwarf2out_args_size_adjust): Delete prototype and move around.
2778 (dwarf2out_frame_debug_expr): Do not record arg size adjustments for
2779 ACCUMULATE_OUTGOING_ARGS targets.
2781 2009-11-10 Eric Botcazou <ebotcazou@adacore.com>
2783 * config/sparc/sparc.c (print_operand) <')'>: Test for a non-null
2784 DECL_SIZE of DECL_RESULT before evaluating it.
2786 2009-11-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2788 PR tree-optimization/41987
2789 * fold-const.c (const_binop): Avoid using fold_buildN().
2791 2009-11-10 Martin Jambor <mjambor@suse.cz>
2793 * tree-pass.h (struct ipa_opt_pass_d): Added stmt_fixup field.
2794 (execute_all_ipa_stmt_fixups): Declare.
2795 * ipa-cp.c (pass_ipa_cp): Added stmt_fixup value.
2796 * ipa-inline.c (pass_ipa_inline): Likewise.
2797 * ipa-pure-const.c (pass_ipa_pure_cons): Likewise.
2798 * ipa-reference.c (pass_ipa_reference): Likewise.
2799 * ipa.c (pass_ipa_whole_program_visibility): Likewise.
2800 * lto-streamer-out.c (pass_ipa_lto_gimple_out): Likewise.
2801 (pass_ipa_lto_finish_out): Likewise.
2802 * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Likewise.
2803 * passes.c (execute_ipa_stmt_fixups): New function.
2804 (execute_all_ipa_stmt_fixups): New function.
2805 * lto-streamer-in.c (input_function): Call execute_all_ipa_stmt_fixups.
2807 2009-11-10 Eric Botcazou <ebotcazou@adacore.com>
2810 * explow.c (probe_stack_range): Fix typo.
2811 * config/sparc/sparc.md (probe_stack): New expander.
2813 2009-11-09 Dave Korn <dave.korn.cygwin@gmail.com>
2815 * config/i386/cygwin.h (LINK_SPEC): Add -tsaware flag if !mno-cygwin.
2817 2009-11-09 Jason Merrill <jason@redhat.com>
2819 * gdbinit.in (pgq): New function for printing gimple sequence.
2821 2009-11-09 Paul Brook <paul@codesourcery.com>
2822 Daniel Jacobowitz <dan@codesourcery.com>
2823 Sandra Loosemore <sandra@codesourcery.com>
2825 * doc/extend.texi (Half-Precision): Update wording to reflect
2826 that there are now multiple -mfpu options that enable fp16
2828 * doc/invoke.texi: Update list of ARM -mfpu= options.
2829 * config.gcc: Update ARM --with-fpu option list.
2830 * config/arm/arm.c (all_fpus): Add vfpv3-fp16, vfpv3-d16-fp16,
2831 vfpv3xd and vfpv3xd-fp16.
2832 (use_vfp_abi): New function.
2833 (aapcs_vfp_is_call_or_return_candidate): Avoid double precision regs
2835 (aapcs_vfp_is_return_candidate, aapcs_vfp_is_call_candidate,
2836 aapcs_vfp_allocate_return_reg): Use use_vfp_abi.
2837 (arm_rtx_costs_1, arm_size_rtx_costs, arm_fastmul_rtx_costs,
2838 arm_9e_rtx_costs): Only expect double-precision operations if the FPU
2840 (coproc_secondary_reload_class): Reload HFmode via GENERAL_REGS if no
2842 (arm_print_operand): Handle 'p' modifier.
2843 (arm_hard_regno_mode_ok): : Allow HFmode in VFP registers if
2845 * config/arm/arm.h (TARGET_VFP_SINGLE, TARGET_VFP_DOUBLE): Define.
2846 (TARGET_FP16): Define.
2847 * config/arm/vfp.md: Disable double-precision patterns if the FPU
2848 does not provide them.
2849 (arm_movdi_vfp, thumb2_movdi_vfp): Use fcpys to move
2850 double-precision values on a single-precision FPU.
2851 (movdf_vfp, thumb2_movdf_vfp): Likewise. Use "Dy" for
2852 double-precision constants.
2853 (movhf_vfp_neon): New pattern (was movhf_vfp).
2854 (movhf_vfp): Remove NEON instructions.
2855 * config/arm/constraints.md: Add new "Dy" constraint for
2856 double-precision constants. Update description of "Dv".
2857 * config/arm/arm.md: Disable double-precision patterns if the FPU
2858 does not provide them
2860 2009-11-09 Jakub Jelinek <jakub@redhat.com>
2862 * config/i386/i386.c (print_operand) <case 'D'>: Fix formatting.
2863 (print_operand) <case 'Y'>: Likewise. Fix a pasto in operand lossage
2866 2009-11-08 H.J. Lu <hongjiu.lu@intel.com>
2868 * collect2.c (main): Search PLUGIN_LD for plugin linker.
2870 * configure.ac (--with-plugin-ld): New. Default to ld.
2871 * configure: Regenerated.
2872 * config.in: Likewise.
2874 * exec-tool.in (ORIGINAL_PLUGIN_LD_FOR_TARGET): New.
2875 (collect-ld): Use ORIGINAL_PLUGIN_LD_FOR_TARGET for -plugin.
2877 2009-11-08 Jonathan Gray <jsg@openbsd.org>
2879 * config/openbsd-stdint.h: Change to reflect what
2880 c_common_nodes_and_builtins expects.
2882 2009-11-08 Paolo Carlini <paolo.carlini@oracle.com>
2884 * builtins.c (apply_args_reg_offset): Remove commented out delaration.
2886 2009-11-08 Jakub Jelinek <jakub@redhat.com>
2889 * config/i386/i386.c (get_some_local_dynamic_name): Don't assert
2890 function contains at least one local dynamic name.
2891 (print_operand) <case '&'>: Instead output operand lossage diagnostics
2892 here if that happens.
2894 2009-11-08 Zbigniew Chamski <zbigniew.chamski@gmail.com>
2895 Joern Rennecke <amylaar@spamcop.net>
2897 * cfgrtl.c (pass_free_cfg): Add pass name.
2898 * cgraphbuild.c (pass_build_cgraph_edges): Likewise.
2899 (pass_rebuild_cgraph_edges, pass_remove_cgraph_callee_edges): Likewise.
2900 * dce.c (pass_ud_rtl_dce, pass_fast_rtl_dce): Change pass name.
2901 * df-core.c (pass_df_initialize_no_opt): Likewise.
2902 * except.c (pass_rtl_eh): Likewise.
2903 * function.c (pass_init_function, pass_leaf_regs): Likewise.
2904 * gcse.c (pass_rtl_pre): Change pass name.
2905 * passes.c (pass_postreload): Add pass name.
2906 (make_pass_instance): Don't use duplicate-tracking logic for
2907 names starting with '*'.
2908 (next_pass_1): Assert that pass has a name.
2909 (register_one_dump_file): If there is an space in the name,
2911 * predict.c (pass_strip_predict_hints): Add pass name.
2912 * reg-stack.c (pass_stack_regs): Likewise.
2913 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
2914 * tree-cfg.c (pass_warn_function_return,
2915 pass_warn_function_noreturn): Add pass name.
2916 * tree-dfa.c (pass_referenced_vars): Likewise.
2917 * tree-optimize.c (pass_cleanup_cfg_post_optimizing):
2918 Fix whitespace before comment.
2919 (pass_fixup_cfg): Add pass name, fix whitespace before comment.
2920 (pass_init_datastructures): Add pass name.
2921 * tree-ssa-loop.c (pass_record_bounds): Likewise.
2922 * tree-ssa.c (pass_early_warn_uninitialized,
2923 pass_late_warn_uninitialized): Likewise.
2924 * tree.c (pass_ipa_free_lang_data): Likewise.
2925 * doc/passes.texi (pass manager): Document how to disambiguate
2928 2009-11-08 Paolo Bonzini <bonzini@gnu.org>
2930 * df-problems.c: Fix documentation for forward simulation of LR.
2931 (df_simulate_one_insn_forwards): Use df_simulate_find_defs.
2932 (df_simulate_finalize_forwards): Remove.
2933 * df.h (df_simulate_finalize_forwards): Remove.
2935 2009-11-08 Richard Guenther <rguenther@suse.de>
2937 * tree-ssa-structalias.c (build_succ_graph): Properly make
2938 variables escape if they are stored to anything.
2940 2009-11-08 Richard Guenther <rguenther@suse.de>
2942 PR rtl-optimization/41928
2943 * loop-invariant.c (free_loop_data): If we didn't allocate
2944 loop data do not try to free it.
2946 2009-11-07 Jason Merrill <jason@redhat.com>
2948 * tree.c (reconstruct_complex_type): Preserve attributes.
2950 2009-11-07 Richard Guenther <rguenther@suse.de>
2952 * tree-ssa-structalias.c (build_succ_graph): Feed stores
2953 to anything only to variables that can take pointers.
2954 (get_constraint_for_ssa_var): Properly exclude full
2955 variables from expanding.
2956 (first_vi_for_offset): Avoid overflow in arithmetic.
2957 (first_or_preceding_vi_for_offset): Likewise.
2958 (count_num_arguments): Fix implementation.
2959 (gate_ipa_pta): Do not run when not optimizing.
2961 2009-11-07 David Binderman <dcb314@hotmail.com>
2963 * builtins.c (apply_args_size, expand_builtin_mathfn, expand_powi,
2964 expand_builtin_expect, maybe_emit_sprintf_chk_warning): Remove some
2965 set but not used variables.
2966 (apply_args_reg_offset): Comment out as unused.
2967 * calls.c (flags_from_decl_or_type): Likewise.
2968 * genautomata.c (check_regexp_units_distribution): Likewise.
2970 2009-11-07 Uros Bizjak <ubizjak@gmail.com>
2972 * config/i386/sse.md (xop_pmacsww, xop_pmacssww, xop_pmacsdd,
2973 xop_pmacssdd, xop_pmacssdql, xop_pmacssdqh, xop_pmacsdql,
2974 *xop_pmacsdql_mem, xop_pmacsdqh, *xop_pmacsdqh_mem, xop_pmacsswd,
2975 xop_pmacswd, xop_pmadcsswd, xop_pmadcswd, xop_pcmov_<mode>,
2976 xop_pcmov_<mode>256, xop_pperm, xop_pperm_pack_v2di_v4si,
2977 xop_pperm_pack_v4si_v8hi, xop_pperm_pack_v8hi_v16qi): Compress
2978 operand alternatives.
2980 2009-11-06 Michael Matz <matz@suse.de>
2983 * tree-ssa-math-opts.c (execute_cse_reciprocals): Check all uses
2984 of a potential reciprocal to really be reciprocals.
2986 2009-11-06 Jakub Jelinek <jakub@redhat.com>
2988 * config/i386/x86intrin.h: Include fma4intrin.h, xopintrin.h and
2989 lwpintrin.h after immintrin.h.
2990 * config/i386/fma4intrin.h (__v8sf, __v4df, __m256, __m256d): Remove
2994 * c-common.c (fold_offsetof_1) <case ARRAY_REF>: Don't crash for VLAs
2995 or non-constant index, allow index one past the last element and
2996 allow exceeding array bound in arrays that might be used as flexible
2999 2009-11-05 Richard Henderson <rth@redhat.com>
3001 * config/i386/ia32intrin.h: Protect CRC32 builtins with __SSE4_2__.
3003 2009-11-05 Paul Brook <paul@codesourcery.com>
3005 * config/arm/arm.c (arm_fp_model, arm_fpu_arch, arm_fpu_tune): Remove.
3006 (arm_fpu_desc): New.
3007 (all_fpus): Add FPU details.
3008 (fp_model_for_fpu): Remove.
3009 (arm_override_options): Set and use arm_fpu_desc and arm_fpu_attr.
3010 (arm_output_epilogue, arm_save_coproc_regs): Use TARGET_FPA_EMU2.
3011 (arm_file_start): Use arm_fpu_desc.
3012 * config/arm/arm.h (TARGET_FPA, TARGET_MAVERICK, TARGET_VFP,
3013 TARGET_VFPD32, TARGET_VFP3, TARGET_NEON_FP16, TARGET_NEON): Use
3015 (TARGET_FPA_EMU2): Define.
3016 (arm_fp_model, fputype, arm_fpu_tune): Remove.
3017 (vfp_reg_type, arm_fpu_desc): New.
3018 * config/arm/arm.md (attr fpu): Simplify.
3019 * config/arm/fpa.md (movxf_fpa): Use TARGET_FPA_EMU2.
3020 * config/arm/linux-elf.h (FPUTYPE_DEFAULT): Use string value.
3021 * config/arm/bpabi.h (FPUTYPE_DEFAULT): Use string value.
3022 * config/arm/netbsd-elf.h (FPUTYPE_DEFAULT): Use string value.
3023 * config/arm/vxworks.h (FPUTYPE_DEFAULT): Use string value.
3025 2009-11-05 Michael Matz <matz@suse.de>
3027 * config/i386/i386.c (ix86_builtin_reciprocal): Remove dependency
3029 * doc/invoke.texi (-mrecip): Clarify that we don't need -mrecip
3032 2009-11-04 Jason Merrill <jason@redhat.com>
3035 * varasm.c (initializer_constant_valid_p): A PLUS_EXPR
3036 or MINUS_EXPR of REAL_TYPE is not a valid constant initializer.
3037 (output_constant): Avoid crash after error.
3039 2009-11-05 Martin Jambor <mjambor@suse.cz>
3041 * tree-sra.c (struct access): Changed comment of next_sibling field.
3042 (analyze_modified_params): Loop over accesses of a group rather than
3043 over all with the ame base, pass a common bitmap to
3045 (unmodified_by_ref_scalar_representative): Build link lists of
3046 accesses of a group.
3047 (splice_param_accesses): Likewise.
3049 2009-11-04 Kenneth Zadeck <zadeck@naturalbridge.com>
3051 * df-scan.c (df-uses-record): Add case zero_extract of mem.
3053 2009-11-04 Eric Botcazou <ebotcazou@adacore.com>
3057 * config/i386/i386.md (probe_stack): New expander.
3058 (logical operation peepholes): Do not split stack checking probes.
3060 2009-11-04 Harsha Jagasia <harsha.jagasia@amd.com>
3061 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
3063 * doc/invoke.texi (-mlwp): Add documentation.
3064 * doc/extend.texi (x86 intrinsics): Add LWP intrinsics.
3065 * config.gcc (i[34567]86-*-*): Include lwpintrin.h.
3066 (x86_64-*-*): Ditto.
3067 * config/i386/lwpintrin.h: New file, provide x86 compiler
3068 intrinisics for LWP.
3069 * config/i386/cpuid.h (bit_LWP): Define LWP bit.
3070 * config/i386/x86intrin.h: Add LWP check and lwpintrin.h.
3071 * config/i386/i386-c.c (ix86_target_macros_internal): Check
3073 * config/i386/i386.h (TARGET_LWP): New macro for LWP.
3074 * config/i386/i386.opt (-mlwp): New switch for LWP support.
3075 * config/i386/i386.c (OPTION_MASK_ISA_LWP_SET): New.
3076 (OPTION_MASK_ISA_LWP_UNSET): New.
3077 (ix86_handle_option): Handle -mlwp.
3078 (isa_opts): Handle -mlwp.
3079 (enum pta_flags): Add PTA_LWP.
3080 (override_options): Add LWP support.
3081 (IX86_BUILTIN_LLWPCB16): New for LWP intrinsic.
3082 (IX86_BUILTIN_LLWPCB32): Ditto.
3083 (IX86_BUILTIN_LLWPCB64): Ditto.
3084 (IX86_BUILTIN_SLWPCB16): Ditto.
3085 (IX86_BUILTIN_SLWPCB32): Ditto.
3086 (IX86_BUILTIN_SLWPCB64): Ditto.
3087 (IX86_BUILTIN_LWPVAL16): Ditto.
3088 (IX86_BUILTIN_LWPVAL32): Ditto.
3089 (IX86_BUILTIN_LWPVAL64): Ditto.
3090 (IX86_BUILTIN_LWPINS16): Ditto.
3091 (IX86_BUILTIN_LWPINS32): Ditto.
3092 (IX86_BUILTIN_LWPINS64): Ditto.
3093 (enum ix86_special_builtin_type): Add LWP intrinsic support.
3094 (builtin_description): Ditto.
3095 (ix86_init_mmx_sse_builtins): Ditto.
3096 (ix86_expand_special_args_builtin): Ditto.
3097 * config/i386/i386.md (UNSPEC_LLWP_INTRINSIC): Add new UNSPEC for
3099 (UNSPEC_SLWP_INTRINSIC): Ditto.
3100 (UNSPECV_LWPVAL_INTRINSIC): Ditto.
3101 (UNSPECV_LWPINS_INTRINSIC): Ditto.
3102 (lwp_llwpcbhi1): New lwp pattern.
3103 (lwp_llwpcbsi1): Ditto.
3104 (lwp_llwpcbdi1): Ditto.
3105 (lwp_slwpcbhi1): Ditto.
3106 (lwp_slwpcbsi1): Ditto.
3107 (lwp_slwpcbdi1): Ditto.
3108 (lwp_lwpvalhi3): Ditto.
3109 (lwp_lwpvalsi3): Ditto.
3110 (lwp_lwpvaldi3): Ditto.
3111 (lwp_lwpinshi3): Ditto.
3112 (lwp_lwpinssi3): Ditto.
3113 (lwp_lwpinsdi3): Ditto.
3115 2009-11-04 Andrew Pinski <andrew_pinski@playstation.sony.com>
3116 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
3119 * simplify-rtx.c (simplify_binary_operation_1): Simplify vec_select of
3122 2009-11-04 Richard Guenther <rguenther@suse.de>
3123 Rafael Avila de Espindola <espindola@google.com>
3125 * gcc.c (process_command): Handle arguments name@offset.
3127 2009-11-04 Harsha Jagasia <harsha.jagasia@amd.com>
3128 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
3130 * config.gcc (i[34567]86-*-*): Include xopintrin.h.
3131 (x86_64-*-*): Ditto.
3132 * config/i386/xopintrin.h: New file, provide common x86 compiler
3133 intrinisics for XOP.
3134 * config/i386/cpuid.h (bit_XOP): Define XOP bit.
3135 * config/i386/x86intrin.h: Add XOP check and xopintrin.h.
3136 * config/i386/i386-c.c(ix86_target_macros_internal): Check
3138 * config/i386/i386.h(TARGET_XOP): New macro for XOP.
3139 * config/i386/i386.opt (-mxop): New switch for XOP support.
3140 * config/i386/i386.md (UNSPEC_XOP_UNSIGNED_CMP)
3141 (UNSPEC_XOP_TRUEFALSE)
3142 (UNSPEC_XOP_PERMUTE)
3143 (UNSPEC_FRCZ): Add new UNSPEC for XOP support.
3144 (PPERM_*): New constants for vpperm instruction.
3145 (xop_pcmov_<mode>): Add XOP conditional mov instructions.
3146 * config/i386/i386.c (OPTION_MASK_ISA_XOP_SET): New.
3147 (OPTION_MASK_ISA_XOP_UNSET): New.
3148 (OPTION_MASK_ISA_XOP_UNSET): Change definition to depend on XOP.
3149 (ix86_handle_option): Handle -mxop.
3150 (isa_opts): Handle -mxop.
3151 (enum pta_flags): Add PTA_XOP.
3152 (override_options): Add XOP support.
3153 (print_operand): Add code for XOP compare instructions.
3154 (ix86_expand_sse_movcc): Extend for XOP conditional move instruction.
3155 (ix86_expand_int_vcond): Extend for XOP compare instruction.
3157 (IX86_BUILTIN_VPCMOV): New for XOP intrinsic.
3158 (IX86_BUILTIN_VPCMOV_V2DI): Ditto.
3159 (IX86_BUILTIN_VPCMOV_V4SI): Ditto.
3160 (IX86_BUILTIN_VPCMOV_V8HI): Ditto.
3161 (IX86_BUILTIN_VPCMOV_V16QI): Ditto.
3162 (IX86_BUILTIN_VPCMOV_V4SF): Ditto.
3163 (IX86_BUILTIN_VPCMOV_V2DF): Ditto.
3165 (IX86_BUILTIN_VPCMOV256): Ditto.
3166 (IX86_BUILTIN_VPCMOV_V4DI256): Ditto.
3167 (IX86_BUILTIN_VPCMOV_V8SI256): Ditto.
3168 (IX86_BUILTIN_VPCMOV_V16HI256): Ditto.
3169 (IX86_BUILTIN_VPCMOV_V32QI256): Ditto.
3170 (IX86_BUILTIN_VPCMOV_V8SF256): Ditto.
3171 (IX86_BUILTIN_VPCMOV_V4DF256): Ditto.
3173 (IX86_BUILTIN_VPPERM): Ditto.
3175 (IX86_BUILTIN_VPMACSSWW): Ditto.
3176 (IX86_BUILTIN_VPMACSWW): Ditto.
3177 (IX86_BUILTIN_VPMACSSWD): Ditto.
3178 (IX86_BUILTIN_VPMACSWD): Ditto.
3179 (IX86_BUILTIN_VPMACSSDD): Ditto.
3180 (IX86_BUILTIN_VPMACSDD): Ditto.
3181 (IX86_BUILTIN_VPMACSSDQL): Ditto.
3182 (IX86_BUILTIN_VPMACSSDQH): Ditto.
3183 (IX86_BUILTIN_VPMACSDQL): Ditto.
3184 (IX86_BUILTIN_VPMACSDQH): Ditto.
3185 (IX86_BUILTIN_VPMADCSSWD): Ditto.
3186 (IX86_BUILTIN_VPMADCSWD): Ditto.
3188 (IX86_BUILTIN_VPHADDBW): Ditto.
3189 (IX86_BUILTIN_VPHADDBD): Ditto.
3190 (IX86_BUILTIN_VPHADDBQ): Ditto.
3191 (IX86_BUILTIN_VPHADDWD): Ditto.
3192 (IX86_BUILTIN_VPHADDWQ): Ditto.
3193 (IX86_BUILTIN_VPHADDDQ): Ditto.
3194 (IX86_BUILTIN_VPHADDUBW): Ditto.
3195 (IX86_BUILTIN_VPHADDUBD): Ditto.
3196 (IX86_BUILTIN_VPHADDUBQ): Ditto.
3197 (IX86_BUILTIN_VPHADDUWD): Ditto.
3198 (IX86_BUILTIN_VPHADDUWQ): Ditto.
3199 (IX86_BUILTIN_VPHADDUDQ): Ditto.
3200 (IX86_BUILTIN_VPHSUBBW): Ditto.
3201 (IX86_BUILTIN_VPHSUBWD): Ditto.
3202 (IX86_BUILTIN_VPHSUBDQ): Ditto.
3204 (IX86_BUILTIN_VPROTB): Ditto.
3205 (IX86_BUILTIN_VPROTW): Ditto.
3206 (IX86_BUILTIN_VPROTD): Ditto.
3207 (IX86_BUILTIN_VPROTQ): Ditto.
3208 (IX86_BUILTIN_VPROTB_IMM): Ditto.
3209 (IX86_BUILTIN_VPROTW_IMM): Ditto.
3210 (IX86_BUILTIN_VPROTD_IMM): Ditto.
3211 (IX86_BUILTIN_VPROTQ_IMM): Ditto.
3213 (IX86_BUILTIN_VPSHLB): Ditto.
3214 (IX86_BUILTIN_VPSHLW): Ditto.
3215 (IX86_BUILTIN_VPSHLD): Ditto.
3216 (IX86_BUILTIN_VPSHLQ): Ditto.
3217 (IX86_BUILTIN_VPSHAB): Ditto.
3218 (IX86_BUILTIN_VPSHAW): Ditto.
3219 (IX86_BUILTIN_VPSHAD): Ditto.
3220 (IX86_BUILTIN_VPSHAQ): Ditto.
3222 (IX86_BUILTIN_VFRCZSS): Ditto.
3223 (IX86_BUILTIN_VFRCZSD): Ditto.
3224 (IX86_BUILTIN_VFRCZPS): Ditto.
3225 (IX86_BUILTIN_VFRCZPD): Ditto.
3226 (IX86_BUILTIN_VFRCZPS256): Ditto.
3227 (IX86_BUILTIN_VFRCZPD256): Ditto.
3229 (IX86_BUILTIN_VPCOMEQUB): Ditto.
3230 (IX86_BUILTIN_VPCOMNEUB): Ditto.
3231 (IX86_BUILTIN_VPCOMLTUB): Ditto.
3232 (IX86_BUILTIN_VPCOMLEUB): Ditto.
3233 (IX86_BUILTIN_VPCOMGTUB): Ditto.
3234 (IX86_BUILTIN_VPCOMGEUB): Ditto.
3235 (IX86_BUILTIN_VPCOMFALSEUB): Ditto.
3236 (IX86_BUILTIN_VPCOMTRUEUB): Ditto.
3238 (IX86_BUILTIN_VPCOMEQUW): Ditto.
3239 (IX86_BUILTIN_VPCOMNEUW): Ditto.
3240 (IX86_BUILTIN_VPCOMLTUW): Ditto.
3241 (IX86_BUILTIN_VPCOMLEUW): Ditto.
3242 (IX86_BUILTIN_VPCOMGTUW): Ditto.
3243 (IX86_BUILTIN_VPCOMGEUW): Ditto.
3244 (IX86_BUILTIN_VPCOMFALSEUW): Ditto.
3245 (IX86_BUILTIN_VPCOMTRUEUW): Ditto.
3247 (IX86_BUILTIN_VPCOMEQUD): Ditto.
3248 (IX86_BUILTIN_VPCOMNEUD): Ditto.
3249 (IX86_BUILTIN_VPCOMLTUD): Ditto.
3250 (IX86_BUILTIN_VPCOMLEUD): Ditto.
3251 (IX86_BUILTIN_VPCOMGTUD): Ditto.
3252 (IX86_BUILTIN_VPCOMGEUD): Ditto.
3253 (IX86_BUILTIN_VPCOMFALSEUD): Ditto.
3254 (IX86_BUILTIN_VPCOMTRUEUD): Ditto.
3256 (IX86_BUILTIN_VPCOMEQUQ): Ditto.
3257 (IX86_BUILTIN_VPCOMNEUQ): Ditto.
3258 (IX86_BUILTIN_VPCOMLTUQ): Ditto.
3259 (IX86_BUILTIN_VPCOMLEUQ): Ditto.
3260 (IX86_BUILTIN_VPCOMGTUQ): Ditto.
3261 (IX86_BUILTIN_VPCOMGEUQ): Ditto.
3262 (IX86_BUILTIN_VPCOMFALSEUQ): Ditto.
3263 (IX86_BUILTIN_VPCOMTRUEUQ): Ditto.
3265 (IX86_BUILTIN_VPCOMEQB): Ditto.
3266 (IX86_BUILTIN_VPCOMNEB): Ditto.
3267 (IX86_BUILTIN_VPCOMLTB): Ditto.
3268 (IX86_BUILTIN_VPCOMLEB): Ditto.
3269 (IX86_BUILTIN_VPCOMGTB): Ditto.
3270 (IX86_BUILTIN_VPCOMGEB): Ditto.
3271 (IX86_BUILTIN_VPCOMFALSEB): Ditto.
3272 (IX86_BUILTIN_VPCOMTRUEB): Ditto.
3274 (IX86_BUILTIN_VPCOMEQW): Ditto.
3275 (IX86_BUILTIN_VPCOMNEW): Ditto.
3276 (IX86_BUILTIN_VPCOMLTW): Ditto.
3277 (IX86_BUILTIN_VPCOMLEW): Ditto.
3278 (IX86_BUILTIN_VPCOMGTW): Ditto.
3279 (IX86_BUILTIN_VPCOMGEW): Ditto.
3280 (IX86_BUILTIN_VPCOMFALSEW): Ditto.
3281 (IX86_BUILTIN_VPCOMTRUEW): Ditto.
3283 (IX86_BUILTIN_VPCOMEQD): Ditto.
3284 (IX86_BUILTIN_VPCOMNED): Ditto.
3285 (IX86_BUILTIN_VPCOMLTD): Ditto.
3286 (IX86_BUILTIN_VPCOMLED): Ditto.
3287 (IX86_BUILTIN_VPCOMGTD): Ditto.
3288 (IX86_BUILTIN_VPCOMGED): Ditto.
3289 (IX86_BUILTIN_VPCOMFALSED): Ditto.
3290 (IX86_BUILTIN_VPCOMTRUED): Ditto.
3292 (IX86_BUILTIN_VPCOMEQQ): Ditto.
3293 (IX86_BUILTIN_VPCOMNEQ): Ditto.
3294 (IX86_BUILTIN_VPCOMLTQ): Ditto.
3295 (IX86_BUILTIN_VPCOMLEQ): Ditto.
3296 (IX86_BUILTIN_VPCOMGTQ): Ditto.
3297 (IX86_BUILTIN_VPCOMGEQ): Ditto.
3298 (IX86_BUILTIN_VPCOMFALSEQ): Ditto.
3299 (IX86_BUILTIN_VPCOMTRUEQ): Ditto.
3301 (enum multi_arg_type): New enum for describing the various XOP
3302 intrinsic argument types.
3303 (bdesc_multi_arg): New table for XOP intrinsics.
3304 (ix86_init_mmx_sse_builtins): Add XOP intrinsic support.
3305 (ix86_expand_multi_arg_builtin): New function for creating XOP
3308 * config/i386/sse.md (sserotatemax): New mode attribute for XOP.
3309 (xop_pmacsww): Ditto.
3310 (xop_pmacssww): Ditto.
3311 (xop_pmacsdd): Ditto.
3312 (xop_pmacssdd): Ditto.
3313 (xop_pmacssdql): Ditto.
3314 (xop_pmacssdqh): Ditto.
3315 (xop_pmacsdql): Ditto.
3316 (xop_pmacsdql_mem): Ditto.
3317 (xop_mulv2div2di3_low): Ditto.
3318 (xop_pmacsdqh): Ditto.
3319 (xop_pmacsdqh_mem): Ditto.
3320 (xop_mulv2div2di3_high): Ditto.
3321 (xop_pmacsswd): Ditto.
3322 (xop_pmacswd): Ditto.
3323 (xop_pmadcsswd): Ditto.
3324 (xop_pmadcswd): Ditto.
3325 (xop_pcmov_<mode>): Ditto.
3326 (xop_pcmov_<mode>256): Ditto.
3327 (xop_phaddbw): Ditto.
3328 (xop_phaddbd): Ditto.
3329 (xop_phaddbq): Ditto.
3330 (xop_phaddwd): Ditto.
3331 (xop_phaddwq): Ditto.
3332 (xop_phadddq): Ditto.
3333 (xop_phaddubw): Ditto.
3334 (xop_phaddubd): Ditto.
3335 (xop_phaddubq): Ditto.
3336 (xop_phadduwd): Ditto.
3337 (xop_phadduwq): Ditto.
3338 (xop_phaddudq): Ditto.
3339 (xop_phsubbw): Ditto.
3340 (xop_phsubwd): Ditto.
3341 (xop_phsubdq): Ditto.
3343 (rotl<mode>3): Ditto.
3344 (rotr<mode>3): Ditto.
3345 (xop_rotl<mode>3): Ditto.
3346 (xop_rotr<mode>3): Ditto.
3347 (vrotr<mode>3): Ditto.
3348 (vrotl<mode>3): Ditto.
3349 (xop_vrotl<mode>3): Ditto.
3350 (vlshr<mode>3): Ditto.
3351 (vashr<mode>3): Ditto.
3353 (xop_ashl<mode>3): Ditto.
3354 (xop_lshl<mode>3): Ditto.
3355 (ashlv16qi3): Ditto.
3356 (lshlv16qi3): Ditto.
3357 (ashrv16qi3): Ditto.
3359 (xop_frcz<mode>2): Ditto.
3360 (xop_vmfrcz<mode>2): Ditto.
3361 (xop_frcz<mode>2256): Ditto.
3362 (xop_maskcmp<mode>3): Ditto.
3363 (xop_maskcmp_uns<mode>3): Ditto.
3364 (xop_maskcmp_uns2<mode>3): Ditto.
3365 (xop_pcom_tf<mode>3): Ditto.
3367 * doc/invoke.texi (-mxop): Add documentation.
3368 * doc/extend.texi (x86 intrinsics): Add XOP intrinsics.
3370 2009-11-03 Mark Mitchell <mark@codesourcery.com>
3373 * gcc.c (SWITCHES_NEED_SPACES): Define to "o".
3374 * config/alpha/osf.h (SWITCHES_NEED_SPACES): Remove here.
3375 * config/mips/iris.h (SWITCHES_NEED_SPACES): Remove here.
3377 2009-11-04 Richard Earnshaw <rearnsha@arm.com>
3380 * arm.md (peephole2 patterns for move and compare): New.
3382 2009-11-04 Nick Clifton <nickc@redhat.com>
3384 * defaults.h (CONSTANT_ADDRESS_P): Provide a default definition.
3385 Make sure that it does not allow CONST_DOUBLEs.
3386 * doc/tm.texi (CONSTANT_ADDRESS_P): Update description.
3387 * config/avr/avr.h (CONSTANT_ADDRESS_P): Delete.
3388 * config/bfin/bfin.h (CONSTANT_ADDRESS_P): Delete.
3389 * config/cris/cris.h (CONSTANT_ADDRESS_P): Delete.
3390 * config/fr30/fr30.h (CONSTANT_ADDRESS_P): Delete.
3391 * config/frv/frv.h (CONSTANT_ADDRESS_P): Delete.
3392 * config/m32c/m32c.h (CONSTANT_ADDRESS_P): Delete.
3393 * config/m68hc11/m68hc11.h (CONSTANT_ADDRESS_P): Delete.
3394 * config/mep/mep.h (CONSTANT_ADDRESS_P): Delete.
3395 * config/mn10300/mn10300.h (CONSTANT_ADDRESS_P): Delete.
3396 * config/moxie/moxie.h (CONSTANT_ADDRESS_P): Delete.
3397 * config/pdp11/pdp11.h (CONSTANT_ADDRESS_P): Delete.
3398 * config/picochip/picochip.h (CONSTANT_ADDRESS_P): Delete.
3399 * config/score/score.h (CONSTANT_ADDRESS_P): Delete.
3400 * config/stormy16/stormy16.h (CONSTANT_ADDRESS_P): Delete.
3402 2009-11-04 Richard Guenther <rguenther@suse.de>
3404 PR tree-optimization/41919
3405 * tree-vrp.c (test_for_singularity): Properly compare values.
3407 2009-11-04 Revital Eres <eres@il.ibm.com>
3409 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
3410 Consider peeling for alignment only for stores and remove
3411 redundant assignment.
3413 2009-11-04 Maxim Kuvyrkov <maxim@codesourcery.com>
3416 * config/m68k/m68k.c (m68k_reg_present_p): New static function.
3417 (m68k_ok_for_sibcall_p): Handle different result return locations.
3419 2009-11-04 Richard Guenther <rguenther@suse.de>
3421 * c-opts.c (c_common_post_options): Move LTO option processing
3423 * opts.c (decode_options): ... here.
3425 2009-11-04 Jakub Jelinek <jakub@redhat.com>
3427 * c-common.c (fold_offsetof_1): Use %wd instead of
3428 HOST_WIDE_INT_PRINT_DEC.
3430 2009-11-04 Maciej W. Rozycki <macro@linux-mips.org>
3432 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Don't define
3435 2009-11-04 Maciej W. Rozycki <macro@linux-mips.org>
3437 * config.gcc (vax-*-linux*): Keep the original contents of
3438 tmake_file while adding vax/t-linux.
3440 2009-11-03 Eric Botcazou <ebotcazou@adacore.com>
3444 * expr.h (STACK_CHECK_PROBE_INTERVAL): Delete.