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