1 2009-12-30 Dave Korn <dave.korn.cygwin@gmail.com>
4 * lto-streamer-out.c (produce_asm): Skip any leading asterisk when
5 using DECL_ASSEMBLER_NAME to generate a section name.
6 (copy_function): Likewise.
8 2009-12-30 Andreas Schwab <schwab@linux-m68k.org>
11 * config/m68k/m68k.md (rotlsi_16): New insn.
13 2009-12-30 Joseph Myers <joseph@codesourcery.com>
16 * c-decl.c (check_bitfield_type_and_width): Only pedwarn if
17 pedantic for bit-field width not an integer constant expression
20 2009-12-30 Ira Rosen <irar@il.ibm.com>
22 PR tree-optimization/41956
23 * tree-vect-slp.c (vect_supported_load_permutation_p): Add check that
24 the load indices differ.
26 2009-12-30 Uros Bizjak <ubizjak@gmail.com>
29 * config/i386/mmx.md (*mmx_subv2sf3): Fix insn operand number for
32 2009-12-30 Robert Millan <rmh.gcc@aybabtu.com>
35 * errors.c: Fix typo in comment.
36 * graphite-sese-to-poly.c: Likewise.
37 * profile.c (is_inconsistent): Fix typo in string.
39 2009-12-29 Ian Lance Taylor <iant@google.com>
42 * expmed.c (expand_divmod): Don't shift HOST_WIDE_INT value more
43 than HOST_BITS_PER_WIDE_INT.
45 2009-12-29 H.J. Lu <hongjiu.lu@intel.com>
47 * config/i386/i386.c (ix86_expand_int_vcond): Reformat.
49 2009-12-29 Dave Korn <dave.korn.cygwin@gmail.com>
50 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
52 PR objective-c++/41595
53 * config/darwin.c (darwin_label_is_anonymous_local_objc_name):
54 New function to recognize objective c/c++ internal symbols,
55 including mangled ones.
56 * config/darwin.h (ASM_OUTPUT_LABELREF): Use
57 darwin_label_is_anonymous_local_objc_name to detect both
58 mangled and clear ObjC internal symbols.
60 2009-12-28 H.J. Lu <hongjiu.lu@intel.com>
63 * omp-low.c (diagnose_sb_2): Handle GIMPLE_COND.
65 2009-12-24 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
68 * config/avr/avr.c (avr_extra_arch_macro): Remove static.
69 (avr_cpu_cpp_builtins): Remove.
70 * config/avr/avr.h (avr_extra_arch_macro): Add prototype.
71 * config/avr/avr-c.c: New File.
72 (avr_cpu_cpp_builtins) : Add.
73 * config/avr/t-avr: Add make information for avr-c.
74 * config.gcc (avr-*-*): Include avr-c.o as c and cpp object.
76 2009-12-24 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
78 PR target/35013, 27192
79 * config/avr/avr.c (print_operand_address): Print correct program
81 Add warning for large device offset addresses.
82 (avr_assemble_integer): Ditto.
83 (print_operand): Add warnings for incorrect addressing.
84 (out_movqi_r_mr): Tag assembler with new address codes.
85 (out_movhi_r_mr): Ditto.
86 (out_movsi_r_mr): Ditto.
87 (out_movqi_mr_r): Ditto.
88 (out_movhi_mr_r): Ditto.
89 (out_movsi_mr_r): Ditto.
90 * config/avr/predicates.md (text_segment_operand): New predicate.
91 * config/avr/avr.md (jump): Tag assembler with new address codes.
93 (call_value_insn): Ditto.
94 (*tablejump_lib): Ditto.
97 (indirect_jump): New define_expand.
98 (jcindirect_jump): New pattern for constant expression jump.
99 (njcindirect_jump): Renamed old indirect_jump.
101 2009-12-24 Steven Bosscher <steven@gcc.gnu.org>
103 * store-motion.c (build_store_vectors): Clear regs_set_in_block at
104 the start of a loop over basic blocks.
106 2009-12-24 Julian Brown <julian@codesourcery.com>
107 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
110 * config/arm/arm.c (output_call_mem): Remove armv5 support.
111 * config/arm/arm.md (*call_mem): Disable for armv5. Add note.
112 (*call_value_mem): Likewise.
114 2009-12-23 Jakub Jelinek <jakub@redhat.com>
116 PR rtl-optimization/42475
117 * combine.c (make_compound_operation) <case SUBREG>: Use mode of
118 SUBREG_REG (x) instead of tem's mode.
120 2009-12-23 Jakub Jelinek <jakub@redhat.com>
121 Cary Coutant <ccoutant@google.com>
124 * dwarf2out.c (add_ranges_by_labels): Conditionally Add DW_AT_ranges
126 (dwarf2out_finish): Change calls to add_ranges_by_labels.
128 2009-12-23 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
131 * config/arm/arm.h (CASE_VECTOR_PC_RELATIVE): Fix macro usage
133 (CASE_VECTOR_SHORTEN_MODE): Allow signed offsets
134 only for TARGET_THUMB1.
136 2009-12-23 Ramana Radhakrishnan <ramrad01@arm.com>
139 * config/arm/arm.md: Split for Thumb1 as well.
141 2009-12-22 Cary Coutant <ccoutant@google.com>
144 * dwarf2out.c (dwarf2out_finish): Don't output range for .text
145 section unless .text section was used. Likewise for cold.
147 2009-12-22 Brian Hackett <bhackett1024@gmail.com>
149 * doc/plugins.texi: Rename pre-genericize event.
151 2009-12-22 Paolo Carlini <paolo.carlini@oracle.com>
154 * params.def ([PARAM_PREDICTABLE_BRANCH_OUTCOME]): Fix typo in
157 * doc/invoke.texi: Fix typo.
159 2009-12-22 Paul Brook <paul@codesourcery.com>
161 * doc/tm.texi (ARG_POINTER_CFA_OFFSET): Document new default.
162 * defaults.h (ARG_POINTER_CFA_OFFSET): Add pretend_args_size.
163 * config/spu/spu.h (ARG_POINTER_CFA_OFFSET): Add pretend_args_size.
165 2009-12-21 Brian Hackett <bhackett1024@gmail.com>
167 * plugin.def: Rename pre-genericize event.
168 * plugin.c (register_callback, invoke_plugin_callbacks): Same.
169 * c-decl.c (finish_function): Invoke callbacks on above event.
171 2009-12-21 Jakub Jelinek <jakub@redhat.com>
173 PR rtl-optimization/42429
174 * reload.c (find_reloads_subreg_address): When adjusting mode of
175 MEM, update also MEM_SIZE if it is set.
177 2009-12-21 H.J. Lu <hongjiu.lu@intel.com>
180 * acinclude.m4 (gcc_GAS_FLAGS): New.
181 (gcc_GAS_CHECK_FEATURE): Use gcc_GAS_FLAGS.
182 * configure: Regenerated.
184 2009-12-20 Michael Matz <matz@suse.de>
186 PR tree-optimization/42027
187 * cfgexpand.c (expand_gimple_cond): Use jumpy sequence for &, &&, |
188 and || if jumps are cheap.
190 2009-12-19 Richard Guenther <rguenther@suse.de>
193 * lto-streamer-out.c (tree_is_indexable): Local statics are indexable.
194 (lto_output_tree_ref): Adjust assert.
196 2009-12-19 Richard Guenther <rguenther@suse.de>
198 PR tree-optimization/42108
199 * tree-ssa-sccvn.c (last_vuse_ptr): New variable.
200 (vn_reference_lookup_2): Update last seen VUSE.
201 (vn_reference_lookup_3): Avoid updating last seen VUSE after
203 (visit_reference_op_load): Use last seen VUSE from the first
204 lookup when entering into the table.
206 2009-12-19 Joern Rennecke <amylaar@spamcop.net>
208 * Makefile.in (PLUGIN_HEADERS): Add more headers.
210 * tree-pass.h (GCC_PASS_LISTS): Define.
211 (PASS_LIST_NO_all_lowering_passes): New enumeration value.
212 (PASS_LIST_NO_all_small_ipa_passes): Likewise.
213 (PASS_LIST_NO_all_regular_ipa_passes): Likewise.
214 (PASS_LIST_NO_all_lto_gen_passes): Likewise.
215 (PASS_LIST_NO_all_passes): Likewise.
216 (PASS_LIST_NUM): Likewise.
217 (gcc_pass_lists): Declare.
218 * passes.c (gcc_pass_lists): Define.
220 2009-12-18 Richard Guenther <rguenther@suse.de>
222 * tree-ssa-sccvn.c (copy_nary): New function.
223 (copy_phis): Likewise.
224 (copy_references): Likewise.
225 (process_scc): Avoid last iteration by copying the
226 optimistic table to the valid table.
228 2009-12-17 Jakub Jelinek <jakub@redhat.com>
230 * dwarf2out.c (loc_descriptor): For SYMBOL_REFs and LABEL_REFs
231 use DW_OP_addr+DW_OP_stack_value instead of DW_OP_implicit_value.
232 (add_const_value_attribute): For CONST_STRING, SYMBOL_REFs and
233 LABEL_REFs use DW_OP_addr+DW_OP_stack_value DW_AT_location instead of
236 2009-12-17 Alexandre Oliva <aoliva@redhat.com>
239 * var-tracking.c (count_uses): Count MO_VAL_USE of original
240 MO_VAL_SET value for COND_EXEC.
241 (add_stores): Handle conditional stores.
244 * var-tracking.c (use_type): Remove indirection from loc.
245 (count_uses): Dereference incoming loc early.
246 (add_uses): Dereference incoming loc early.
249 * var-tracking.c (add_stores): Avoid value mode mismatch for
250 promoted declarations.
252 2009-12-17 Jakub Jelinek <jakub@redhat.com>
255 * ipa.c (function_and_variable_visibility): Clear same_comdat_group
256 links of DECL_EXTERNAL nodes.
258 2009-12-17 Sandra Loosemore <sandra@codesourcery.com>
260 * doc/rtl.texi (Vector Operations): Clarify vec_select result mode.
262 2009-12-17 Julian Brown <julian@codesourcery.com>
264 * config/arm/bpabi-v6m.S (test_div_by_zero): New macro.
265 (aeabi_ldivmod, aeabi_uldivmod): Use above macro.
266 * config/arm/bpabi.S (test_div_by_zero): New macro.
267 (aeabi_ldivmod, aeabi_uldivmod): Use above macro.
268 * config/arm/lib1funcs.asm (ARM_LDIV0): Tail-call int div-by-zero
269 handler for EABI. Add signed/unsigned argument, pass correct value
271 (THUMB_LDIV0): Same, for Thumb.
272 (DIV_FUNC_END): Add signed argument.
273 (WEAK): New macro (for EABI).
274 (__udivsi3, __umodsi3): Add unsigned argument to DIV_FUNC_END. For
275 __udivsi3, add entry point which skips division-by-zero test.
276 (__divsi3, __modsi3): Add signed argument to DIV_FUNC_END.
277 (__aeabi_uidivmod, __aeabi_idivmod): Check for division by zero.
278 Call __udivsi3 or __divsi3 via entry points which skip
279 division-by-zero tests.
280 (__div0): Rename to __aeabi_idiv0, __aeabi_ldiv0 for EABI, and
281 declare those names weak.
283 2009-12-17 Richard Guenther <rguenther@suse.de>
286 * builtins.c (get_object_alignment): Properly deal with
288 * expr.c (emit_block_move_hints): Assert the alignment makes sense.
290 2009-12-17 Uros Bizjak <ubizjak@gmail.com>
293 * config/i386/i386-modes.def (V1TI): New vector mode.
294 * config/i386/i386.h (VALID_SSE_REG_MODE): Add V1TImode.
295 (SSE_REG_MODE_P): Ditto.
296 * config/i386/sse.md (SSEMODE16): New mode iterator.
298 (avxvecmode): Handle V1TI mode.
299 (*avx_mov<mode>_internal): Use AVXMODE16 instead of AVXMODE.
300 (mov<mode>): Use SSEMODE16 instead of SSEMODE.
301 (*mov<mode>_internal): Ditto.
302 (push<mode>1): Ditto.
303 (movmisalign<mode>): Ditto.
304 (sse2_ashlv1ti): Rename from sse2_ashlti.
305 (sse2_lshrv1ti): Rename from sse2_lshrti.
306 (*avx_ashlv1ti): Rename from *avx_ashlti and move from i386.md.
307 (*avx_lshrv1ti): Rename from *avx_lshrti and move from i386.md.
308 (vec_shl_<mode>): Convert operands to V1TImode and use V1TI shift.
309 (vec_shr_<mode>): Ditto.
310 (*sse2_mulv4si3): Update for renamed sse2_ashlv1ti3.
311 (udot_prodv4si): Ditto.
312 * config/i386/i386.c (classify_argument): Handle V1TImode.
313 (function_arg_advance_32): Ditto.
314 (function_arg_32): Ditto.
315 (ix86_expand_sse4_unpack): Convert operands to V1TImode and update
316 for renamed gen_sse2_lshrv1ti3.
317 (ix86_expand_args_builtin) <V2DI_FTYPE_V2DI_INT_CONVERT>: Set rmode
319 (struct builtin_description) <__builtin_ia32_pslldqi128>: Update
320 for renamed sse2_ashlv1ti3.
321 <__builtin_ia32_psrldqi128>: Update for renamed sse2_lshrv1ti3.
324 2007-06-11 Uros Bizjak <ubizjak@gmail.com>
327 * config/i386/sse.md ("sse2_ashlti", "sse2_lshrti3"): Move ...
328 * config/i386/i386.md ("sse2_ashlti", "sse2_lshrti3"): ... to here.
330 2009-12-17 Richard Earnshaw <rearnsha@arm.com>
333 * arm.md (pic_add_dot_plus_eight): Change output constraint from
336 2009-12-17 Shujing Zhao <pearly.zhao@oracle.com>
338 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
339 Update build_indirect_ref calls.
341 2009-12-17 Uros Bizjak <ubizjak@gmail.com>
343 * config/i386/sync.md (IMODE): Remove mode iterator.
344 (modesuffix): Remove mode attribute.
345 (modeconstraint): Ditto.
346 (immconstraint): Ditto.
347 (*sync_compare_and_swap<mode>): Use SWI mode iterator instead of
348 IMODE mode iterator, imodesuffix mode attribute instead of modesuffix,
349 <r> mode attribute instead of modeconstraint and <i> mode attribute
350 instead of immconstraint.
351 (sync_double_compare_and_swap<mode>): Ditto.
352 (sync_old_add<mode>): Ditto.
353 (sync_lock_test_and_set<mode>): Ditto.
354 (sync_add<mode>): Ditto.
355 (sync_sub<mode>): Ditto.
356 (sync_and<mode>): Ditto.
357 (sync_ior<mode>): Ditto.
358 (sync_xor<mode>): Ditto.
359 (sync_<code><mode>): Macroize insn pattern from
360 sync_{and,ior,xor}<mode> using any_logic code iterator.
362 2009-12-17 Shujing Zhao <pearly.zhao@oracle.com>
365 * c-common.h (ref_operator): New type.
366 (build_indirect_ref): Adjust prototype with new argument.
367 * c-typeck.c (build_indirect_ref): Accept ref_operator as argument and
368 emit the diagnostics for easy translation.
369 (build_array_ref): Update calls to build_indirect_ref.
370 * c-omp.c (c_finish_omp_atomic): Likewise.
371 * c-parser.c (c_parser_unary_expression,
372 c_parser_postfix_expression_after_primary): Likewise.
374 2009-12-16 Richard Guenther <rguenther@suse.de>
377 * langhooks.c (lhd_begin_section): Make sure to switch back
378 to the text section, not some random one.
380 2009-12-16 Jakub Jelinek <jakub@redhat.com>
382 * tree-chrec.c (chrec_convert_1): Only fold (T2)(t +- x) to
383 (T2)t +- (T2)x if only integer types are involved.
385 2009-12-16 Ben Elliston <bje@au.ibm.com>
387 * tree-data-ref.h (dot_rdg): Remove prototype.
388 * tree-data-ref.c (dog_rdg_1, dot_rdg): Remove.
390 2009-12-16 Kazu Hirata <kazu@codesourcery.com>
392 * doc/invoke.texi, doc/options.texi, doc/plugins.texi,
393 doc/tm.texi: Fix typos.
395 2009-12-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
397 * doc/extend.texi (Function Attributes, Extended Asm):
398 Replace TABs with spaces.
399 * doc/md.texi (Standard Names): Likewise.
400 * doc/plugins.texi (Plugins): Likewise.
402 * doc/c-tree.texi (Expression trees): Use @itemx for all but
403 the first item for merged items.
404 * doc/extend.texi (Variable Attributes): Likewise.
405 * doc/install.texi (Configuration): Likewise.
406 * doc/invoke.texi (RS/6000 and PowerPC Options, RX Options):
409 2009-12-15 Richard Guenther <rguenther@suse.de>
411 * tree.c (free_lang_data_in_binfo): Do not free BINFO_OFFSET
412 and BINFO_VPTR_FIELD.
413 (free_lang_data_in_type): Do not free TYPE_STUB_DECL if we
414 generate debug information.
415 (free_lang_data_in_decl): Do not free DECL_SIZE_UNIT,
416 DECL_SIZE, DECL_FIELD_OFFSET and DECL_FCONTEXT.
417 (free_lang_data): Do not disable debuginfo.
418 * lto-streamer-out.c (write_symbol_vec): Deal with
419 non-constant DECL_SIZE.
420 (pack_ts_base_value_fields): Write types with false
422 (lto_output_ts_type_tree_pointers): Stream TYPE_STUB_DECL.
423 * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Stream
425 * dwarf2out.c (add_pure_or_virtual_attribute): Check for
427 (gen_type_die_for_member): Test for TYPE_STUB_DECL.
428 * opts.c (decode_options): Do not disable var-tracking for lto.
429 * doc/invoke.texi (-flto): Document -flto vs. -g experimental
431 (-fwhopr): Document experimental status.
433 2009-12-15 Aldy Hernandez <aldyh@redhat.com>
436 * graphite-sese-to-poly.c (is_reduction_operation_p): Assert that
437 we are a GIMPLE_ASSIGN. Do not calculate rhs code twice.
438 (follow_ssa_with_commutative_ops): Return NULL on non assignment.
440 2009-12-15 Eric Botcazou <ebotcazou@adacore.com>
442 * config/rs6000/rs6000.md (probe_stack): Use an enclosing SET.
444 2009-12-15 Richard Guenther <rguenther@suse.de>
446 * gimple.h (compare_field_offset): Declare.
447 * gimple.c (compare_field_offset): Export.
448 * lto-streamer-in.c (input_gimple_stmt): Use compare_field_offset.
450 2009-12-15 Richard Guenther <rguenther@suse.de>
452 * lto-cgraph.c (lto_output_node): Also stream the alias
454 (input_node): Likewise.
456 2009-12-15 Paolo Bonzini <bonzini@gnu.org>
457 Shujing Zhao <pearly.zhao@oracle.com>
459 * intl.c (get_spaces): New.
460 * intl.h (get_spaces): New.
462 2009-12-14 Jakub Jelinek <jakub@redhat.com>
465 * config/i386/i386.c (ix86_expand_special_args_builtin): Avoid
466 using switch with CODE_FOR_lwp_lwp* cases.
468 * config/i386/i386-builtin-types.def (PVOID_FTYPE_VOID): Use
469 DEF_FUNCTION_TYPE (PVOID) instead of DEF_FUNCTION_TYPE (PVOID, VOID).
471 2009-12-14 Eric Botcazou <ebotcazou@adacore.com>
473 * cfgexpand.c (expand_debug_expr) <INDIRECT_REF>: Remove overzealous
474 assertion and useless code.
475 <TARGET_MEM_REF>: Likewise.
477 2009-12-14 Alexandre Oliva <aoliva@redhat.com>
480 * dwarf2out.c (AT_loc_list_ptr): New.
481 (resolve_addr): Remove unresolved attributes and loc_list entries.
484 * dwarf2out.c (add_var_loc_to_decl): Don't drop initial empty
486 (new_loc_list): Drop gensym arg. Move generation of ll_symbol...
487 (gen_llsym): ... here. New function.
488 (add_loc_descr_to_loc_list): Removed.
489 (loc_descriptor): Infer mode from CONST_DOUBLEs and CONST_VECTORs.
490 (single_element_loc_list): Removed.
491 (dw_loc_list): Don't create entries without a location. Don't
492 special-case the first node of the list, only single nodes.
493 (single_element_loc_list_p): Simplify.
494 (loc_list_from_tree): Don't use DECL_RTL if loc_list is nonempty.
495 (add_location_or_const_value_attribute): Test var loc for NULL.
496 (convert_cfa_to_fb_loc_list): Adjust calls to new new_loc_list,
497 call gen_llsym if needed.
499 2009-12-14 Jakub Jelinek <jakub@redhat.com>
501 * cgraph.h (cgraph_set_nothrow_flag, cgraph_set_readonly_flag,
502 cgraph_set_pure_flag, cgraph_set_looping_const_or_pure_flag): New
504 * cgraph.c (cgraph_set_nothrow_flag, cgraph_set_readonly_flag,
505 cgraph_set_pure_flag, cgraph_set_looping_const_or_pure_flag): New
507 * except.h (set_nothrow_function_flags): Remove prototype.
508 * except.c (set_nothrow_function_flags): Use cgraph_set_nothrow_flag.
510 * ipa-pure-const.c (propagate): Use cgraph_set_nothrow_flag,
511 cgraph_set_readonly_flag, cgraph_set_pure_flag
512 and cgraph_set_looping_const_or_pure_flag.
513 (local_pure_const): Likewise.
515 2009-12-14 Jakub Jelinek <jakub@redhat.com>
516 Sebastian Pop <sebastian.pop@amd.com>
518 * config/i386/i386-builtin-types.def (PVOID): Declared.
519 (VOID_FTYPE_PVOID): Declared.
520 (PVOID_FTYPE_VOID): Declared.
521 (UCHAR_FTYPE_USHORT_UINT_USHORT): Removed.
522 (VOID_FTYPE_USHORT_UINT_USHORT): Removed.
523 * config/i386/i386.c (IX86_BUILTIN_LLWPCB16, IX86_BUILTIN_LLWPCB32,
524 IX86_BUILTIN_LLWPCB64, IX86_BUILTIN_SLWPCB16, IX86_BUILTIN_SLWPCB32,
525 IX86_BUILTIN_SLWPCB64, IX86_BUILTIN_LWPVAL16, IX86_BUILTIN_LWPINS16):
527 (IX86_BUILTIN_LLWPCB, IX86_BUILTIN_SLWPCB): New.
528 (bdesc_special_args): Adjust declaration of __builtin_ia32_llwpcb,
529 __builtin_ia32_slwpcb, __builtin_ia32_lwpval32,
530 __builtin_ia32_lwpval64, __builtin_ia32_lwpins32, and
531 __builtin_ia32_lwpins64.
532 (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PVOID.
533 Do not handle VOID_FTYPE_USHORT_UINT_USHORT and
534 UCHAR_FTYPE_USHORT_UINT_USHORT. Warn when the third operand is
535 not an immediate. Also handle builtin functions with 3 arguments.
536 (ix86_expand_builtin): Handle IX86_BUILTIN_LLWPCB and
538 * config/i386/i386.md (UNSPEC_LLWP_INTRINSIC, UNSPEC_SLWP_INTRINSIC):
539 Renamed UNSPECV_LLWP_INTRINSIC and UNSPECV_SLWP_INTRINSIC.
540 (memory attribute): Handle lwp.
541 (lwp*): Rewrite all the insn patterns for LWP.
542 * config/i386/lwpintrin.h (__llwpcb16, __llwpcb32, __llwpcb64,
543 __slwpcb16, __slwpcb32, __slwpcb64, __lwpval16, __lwpins16): Removed.
544 (__llwpcb, __slwpcb): New.
546 2009-12-14 Dmitry Gorbachev <d.g.gorbachev@gmail.com>
548 * dominance.c (set_immediate_dominator): Don't mark as inline.
550 2009-12-14 Eric Botcazou <ebotcazou@adacore.com>
552 * doc/tm.texi (STACK_CHECK_PROTECT): Document alternate default.
553 * doc/md.texi (check_stack): Clarify.
554 (probe_stack): Likewise.
555 * config/rs6000/rs6000.md (UNSPEC_PROBE_STACK): New constant.
556 (probe_stack): New insn.
558 2009-12-14 Ben Elliston <bje@au.ibm.com>
560 * lto-streamer-in.c (lto_get_builtin_tree): fclass can only be a
561 BUILT_IN_NORMAL or BUILT_IN_MD.
563 2009-12-13 Eric Botcazou <ebotcazou@adacore.com>
565 * doc/tm.texi (STACK_CHECK_PROBE_LOAD): Delete.
566 * expr.h (STACK_CHECK_PROBE_LOAD): Likewise.
567 * explow.c (emit_stack_probe): Do not test STACK_CHECK_PROBE_LOAD.
568 * system.h (STACK_CHECK_PROBE_LOAD): Poison.
570 2009-12-13 Michael Matz <matz@suse.de>
572 PR tree-optimization/42027
573 * dojump.c (do_jump <TRUTH_AND_EXPR, TRUTH_OR_EXPR>): Go to
574 TRUTH_ANDIF_EXPR resp. TRUTH_ORIF_EXPR expander, instead of
577 2009-12-13 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
580 * config/avr/predicates.md (pseudo_register_operand): New predicate
582 * config/avr/avr.md (divmodqi4): Replace with define_insn_and_split
583 to allow div/mod optimization.
590 2009-12-13 Richard Guenther <rguenther@suse.de>
592 PR tree-optimization/42357
593 * tree-sra.c (sra_modify_assign): Do not tear apart struct copies.
595 2009-12-12 Richard Guenther <rguenther@suse.de>
597 * tree.c (need_assembler_name_p): Abstract decls do not need
599 * dwarf2out.c (dwarf2out_abstract_function): Preserve
600 DECL_ABSTRACT properly.
602 2009-12-11 Richard Guenther <rguenther@suse.de>
604 * lto-streamer-in.c (lto_input_tree_ref): Do not register
605 DEBUG_EXPR_DECLs with the varpool.
607 2009-12-11 Eric Botcazou <ebotcazou@adacore.com>
609 * config/sparc/linux-unwind.h (MD_FROB_UPDATE_CONTEXT, 64-bit): Define.
610 (sparc64_frob_update_context): New function.
612 2009-12-11 Richard Guenther <rguenther@suse.de>
616 * lto-streamer-out.c (write_global_stream): Do not make decls
617 weak but resort to TREE_ASM_WRITTEN to avoid multiple definitions.
618 Make sure to mark all decls that we have written.
620 2009-12-11 Sebastian Andrzej Siewior <bigeasy@linutronix.de>
624 * config/m68k/linux.h: Remove LABELNO from the mcount statement. It is
625 not used by glibc/uclibc and does not work with large binaries.
627 2009-12-11 Richard Guenther <rguenther@suse.de>
630 * lto-streamer-in.c (lto_init_eh): Move eh_initialized_p
632 (input_eh_regions): Adjust.
633 (lto_input_ts_function_decl_tree_pointers): Initialize EH
634 if a non-NULL DECL_FUNCTION_PERSONALITY was read in.
636 2009-12-11 Duncan Sands <baldrick@free.fr>
638 * passes.c (make_pass_instance): Allocate and copy the right amount of
639 memory for ipa passes, which are not the same size as other passes.
641 2009-12-11 Joern Rennecke <amylaar@spamcop.net>
643 * plugin.c (get_named_event_id): Fix hash table rebuild to include
644 dynamically allocated events.
646 2009-12-11 Richard Guenther <rguenther@suse.de>
649 * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Properly
650 detect non-prevailing decls.
652 2009-12-10 Jakub Jelinek <jakub@redhat.com>
655 * cgraph.h (struct cgraph_node): Add same_comdat_group field.
656 * cgraph.c (cgraph_remove_node): Unchain node from same_comdat_group
658 (cgraph_node_can_be_local_p): Return false for DECL_COMDAT with
659 node->same_comdat_group.
660 * ipa.c (cgraph_remove_unreachable_nodes): For any reachable node
661 mark all its same_comdat_group nodes as also reachable.
662 (cgraph_externally_visible_p): Return true even if any of
663 same_comdat_group nodes has address taken.
664 * lto-cgraph.c (lto_output_node): Stream out same_comdat_group.
665 (output_cgraph): Ensure other same_comdat_group nodes are also
667 (input_node): Stream in same_comdat_group.
668 (input_cgraph_1): Fix up same_comdat_group fields from references
670 * cgraphunit.c (cgraph_analyze_functions): Mark all other
671 same_comdat_group nodes as reachable.
672 (cgraph_mark_functions_to_output): For each node->process process
673 also other same_comdat_group nodes.
674 * ipa-inline.c (cgraph_clone_inlined_nodes): Don't reuse nodes
675 with same_comdat_group non-NULL.
676 (cgraph_mark_inline_edge): Likewise.
678 2009-12-10 Jan Hubicka <jh@suse.cz>
682 * cgraph.c (cgraph_create_edge_including_clones): Add old_stmt
683 parameter; update edge if it already exists.
684 (cgraph_remove_node): Handle correctly cases where we are removing
686 * cgraph.h (cgraph_create_edge_including_clones): Declare.
687 (verify_cgraph_node): Add missing error_found = true code.
688 (cgraph_materialize_all_clones): Remove call edges of dead nodes.
689 * ipa.c (cgraph_remove_unreachable_nodes): Correctly look for master
690 clone; fix double linked list removal.
691 * tree-inline.c (copy_bb): Update cgraph_create_edge_including_clones
692 call; fix frequency of newly created edge.
694 2009-12-10 Bernd Schmidt <bernd.schmidt@analog.com>
697 * regrename.c: Error out if MAX_RECOG_OPERANDS is larger than
698 HOST_BITS_PER_WIDE_INT.
699 (verify_reg_in_set): New function, broken out of verify_reg_tracked.
700 (verify_reg_tracked): Use it.
701 (scan_rtx_reg): When seeing a use involving a superset of the
702 registers in an existing chain, enlarge that chain. Otherwise,
703 allow subsets and set fail_current_block for all other kinds of
705 (hide_operands): New argument UNTRACKED_OPERANDS; callers changed.
706 Do not modify operands when the bit with the corresponding number
707 is set in that bitmap.
708 (build_def_use): When we see matching operands with different
709 modes, don't set fail_current_block, but keep track of such
710 operands in a bitmap if their registers aren't already tracked
711 in an open chain. Pass this bitmap to all hide_operands calls.
713 2009-12-10 Richard Guenther <rguenther@suse.de>
715 PR tree-optimization/42337
716 * tree-ssa-pre.c (seen_during_translate): Remove.
717 (phi_translate_1): Collapse into ...
718 (phi_translate): ... this. Remove seen parameter and
719 adjust recursive calls.
721 2009-12-10 Richard Guenther <rguenther@suse.de>
722 Allan Sandfeld Jensen <linux@carewolf.com>
724 * tree-vectorizer.c (vectorize_loops): Properly guard
725 vectorizer verboseness.
727 2009-12-10 Ben Elliston <bje@au.ibm.com>
729 * fwprop.c (free_load_extend): Initialise `use'.
731 2009-12-09 David Edelsohn <edelsohn@gnu.org>
733 * builtins.c (do_mpc_ckconv): Pass the component type to
736 2009-12-09 Xinliang David Li <davidxl@google.com>
738 PR tree-optimization/42337
739 * tree-ssa-pre.c (phi_translate_1): Push and Pop SEEN set.
741 2009-12-09 Nathan Froyd <froydnj@codesourcery.com>
743 * config/rs6000/vector.md (absv2sf2, negv2sf2, addv2sf3, subv2sf3,
744 mulv2sf3, divv2sf3): New expanders.
745 * config/rs6000/spe.md (spe_evabs, spe_evand, spe_evaddw, spe_evsubfw,
746 spe_evdivws): Rename to use standard GCC names.
747 * config/rs6000/paired.md (negv2sf, absv2sf2, addv2sf3, subv2sf3,
748 mulv2sf3, divv2sf3): Rename to avoid conflict with the new expanders.
749 * config/rs6000/rs6000.c (bdesc_2arg, bdesc_1arg): Use new CODE_FOR_
750 names for renamed patterns.
752 2009-12-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
754 * config/s390/s390.md ("copysign<mode>3"): Pattern removed.
756 2009-12-09 Jakub Jelinek <jakub@redhat.com>
758 * configure.ac: Compute ld_ver, ld_vers, ld_date, ld_vers_major,
759 ld_vers_minor and ld_vers_path always, not just when gcc_cv_ld_hidden
761 * configure: Regenerated.
763 2009-12-08 Richard Henderson <rth@redhat.com>
765 * combine.c (setup_incoming_promotions): Fix sign-extend of
766 zero-extend case; tidy conditions.
768 2009-12-08 Michael Matz <matz@suse.de>
771 * function.c (free_temp_slots): Only walk the temp slot
772 addresses and combine slots if we actually changes something.
773 (pop_temp_slots): Ditto.
775 2009-12-08 Olga Golovanevsky <olga@il.ibm.com>
778 * ipa-struct-reorg.c (compare_fields): New function.
779 (find_field_in_struct_1): Use compare_fields function.
780 (is_equal_types): Likewise.
782 2009-12-07 DJ Delorie <dj@redhat.com>
785 * config/mep/mep.c (mep_expand_prologue): Set
786 really_need_stack_frame after frame_size is set.
788 2009-12-07 Richard Henderson <rth@redhat.com>
791 * combine.c (setup_incoming_promotions): Improve the conditions
792 under which we respect the promotions applied.
794 2009-12-07 Eric Botcazou <ebotcazou@adacore.com>
796 * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch.
797 * config/sparc/linux64.h (ASM_SPEC): Likewise.
799 2009-12-07 Richard Henderson <rth@redhat.com>
803 * tree-ssa.c (insert_debug_temp_for_var_def): Skip propagation
804 for ssa names already registered for update.
806 2009-12-07 Jakub Jelinek <jakub@redhat.com>
809 * ddg.c (add_inter_loop_mem_dep): Use ANTI_DEP if from or to
812 2009-12-07 Sebastian Pop <sebastian.pop@amd.com>
814 * config/i386/driver-i386.c (host_detect_local_cpu): Add -mlwp to the
815 options when bit_LWP is set.
817 2009-12-07 Sebastian Pop <sebastian.pop@amd.com>
819 * config/i386/cpuid.h (bit_ABM): New.
820 * config/i386/driver-i386.c (host_detect_local_cpu): Add -mabm to the
821 options when bit_ABM is set.
823 2009-12-07 Jakub Jelinek <jakub@redhat.com>
825 * config/i386/i386.c (bdesc_special_args): Move __builtin_clzs from
827 (bdesc_args): ... here.
828 * config.gcc (i[34567]86-*-*): Include abmintrin.h.
829 (x86_64-*-*): Likewise.
831 2009-12-07 Sebastian Pop <sebastian.pop@amd.com>
833 * config.gcc (i[34567]86-*-*, x86_64-*-*): Add popcntintrin.h.
834 * config/i386/abmintrin.h (_mm_popcnt_u32, _mm_popcnt_u64): Moved...
835 * config/i386/i386-c.c (__POPCNT__): Defined.
836 * config/i386/popcntintrin.h: ...here. New file.
837 * config/i386/smmintrin.h (_mm_popcnt_u32, _mm_popcnt_u64): Moved...
838 Include popcntintrin.h.
839 * config/i386/x86intrin.h: Include popcntintrin.h when __POPCNT__
842 2009-12-07 Sebastian Pop <sebastian.pop@amd.com>
844 * config/i386/i386-protos.h (ix86_expand_fma4_multiple_memory):
846 * config/i386/i386.c (ix86_expand_fma4_multiple_memory): Removed.
847 * config/i386/sse.md: Remove all XOP splitters.
848 Allow the second and fourth operands of XOP multiply-add insns
851 2009-12-07 Sebastian Pop <sebastian.pop@amd.com>
853 * config/i386/sse.md: Remove all FMA4 splitters.
854 Allow the second operand of FMA4 insns to be a nonimmediate.
855 Fix comments punctuation.
857 2009-12-07 Julian Brown <julian@codesourcery.com>
859 * config/arm/constraints.md (Ps, Pt): New constraint letters.
860 * config/arm/thumb2.md (*thumb2_addsi_short): Tighten constraints.
862 2009-12-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
865 * configure.ac (HAVE_mpc): Don't define.
866 * config.in, configure: Regenerate.
869 * builtins.c: Remove HAVE_mpc* checks throughout.
870 * fold-const.c: Likewise.
872 * toplev.c: Likewise.
874 2009-12-07 Edmar Wienskoski <edmar@freescale.com>
876 * config.gcc (cpu_is_64bit): Add new core e500mc64.
877 (powerpc*-*-*): Add new core e500mc64.
878 * config/rs6000/e500mc64.md: New file.
879 * config/rs6000/rs6000.c (processor_costs): Add new costs for
881 (rs6000_override_options): Add e500mc64 case to
882 processor_target_table. Altivec and Spe options not allowed with
883 e500mc64. Disable string instructions for e500mc64. Enable branch
884 targets alignment for both e500mc and e500mc64. Initialize
885 rs6000_cost for e500mc64.
886 (rs6000_emit_sISEL): New function.
887 (rs6000_emit_sCOND): Call rs6000_emit_sISEL for isel targets.
888 (rs6000_emit_int_cmove): Fix mode of 64 bit isel pattern
890 (rs6000_issue_rate): Set issue rate for e500mc64.
891 (rs6000_rtx_costs): Set more accurate cost for mfcr instruction
892 on architectures with isel.
893 * config/rs6000/rs6000-protos.h (rs6000_emit_sISEL): Declare.
894 * config/rs6000/rs6000.h (processor_type): Add
895 PROCESSOR_PPCE500MC64.
896 (ASM_CPU_SPEC): Add e500mc64.
897 * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc64.
899 (abssi2_isel): Expand pattern to handle DImode.
900 (nabs<mode>2_isel): New pattern.
901 (absdi2): Change pattern to handle 64 bit isel targets.
902 (absdi2_internal): Exclude ISEL targets.
903 (nabsdi2): Exclude ISEL targets.
904 * doc/invoke.texi: Add e500mc64 to list of cpus.
906 2009-12-07 Uros Bizjak <ubizjak@gmail.com>
908 * config/i386/i386.md (any_or): New code iterator.
909 (any_logic): Rename from plogic code iterator.
910 (logicprefix): Rename from plogicprefix code attribute.
911 (<code><mode>3): Macroize expander from {ior,xor}<mode>3 using
912 any_or code iterator.
913 (*<code><mode>_1): Macroize insn from *{ior,xor}<mode>_1 using
914 any_or code iterator.
915 (*<code><mode>_2): Ditto from *{ior,xor}<mode>_2.
916 (*<code><mode>_3): Ditto from *{ior,xor}<mode>_3.
917 (ior and xor splitters): Ditto.
918 * config/i386/mmx.md: Updated for rename.
919 * config/i386/sse.md: Ditto.
921 2009-12-07 Uros Bizjak <ubizjak@gmail.com>
923 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
924 Remove quotes around condition logic code.
926 2009-12-06 Richard Henderson <rth@redhat.com>
929 * tree-ssa-dom.c (degenerate_phi_result): Check for NULL phi
932 2009-12-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
934 * doc/install.texi: Document MPC is required.
936 2009-12-06 Uros Bizjak <ubizjak@gmail.com>
938 * config/i386/i386.md (g): Add HImode and QImode.
939 (general_szext_operand): New mode attribute.
940 (*test<mode>_1): Macroize insn from *test{qi,hi,si}_1 using
941 SWI124 mode iterator.
942 (and<mode>3): Macroize expander from and{qi,hi,si,di}3 using
944 (*and<mode>_2): Macroize insn from *and{qi,hi,si}_2 using
945 SWI124 mode iterator.
946 (ior<mode>3): Macroize expander from ior{qi,hi,si,di}3 using
948 (*ior<mode>_1): Macroize insn from *ior{hi,si,di}_1 using
949 SWI248 mode iterator.
950 (*ior<mode>_2): Macroize insn from *ior{qi,hi,si,di}_2 using
952 (*ior<mode>_3): Macroize insn from *ior{qi,hi,si,di}_3 using
954 (xor<mode>3): Macroize expander from xor{qi,hi,si,di}3 using
956 (*xor<mode>_1): Macroize insn from *xor{hi,si,di}_1 using
957 SWI248 mode iterator.
958 (*xor<mode>_2): Macroize insn from *xor{qi,hi,si,di}_2 using
960 (*xor<mode>_3): Macroize insn from *xor{qi,hi,si,di}_3 using
963 2009-12-05 Sebastian Pop <sebastian.pop@amd.com>
965 * config/i386/i386.c (TARGET_DEFAULT_TARGET_FLAGS): Add
967 * config/i386/i386.h (CC1_CPU_SPEC_1): Remove
968 "'-mfused-madd' was removed".
969 * config/i386/i386.opt (mfused-madd): New.
970 * config/i386/sse.md: Add TARGET_FUSED_MADD to FMA4 insns.
971 * doc/invoke.texi (-mfused-madd, -mno-fused-madd): Document.
973 2009-12-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
975 * pa64-hpux.h (LIB_SPEC): Handle -rdynamic.
976 * pa-hpux10.h (LIB_SPEC): Likewise.
977 * pa-hpux11.h (LIB_SPEC): Likewise.
980 * pa/linux-unwind.h (pa32_fallback_frame_state): Set fs->signal_frame
982 * pa/hpux-unwind.h (pa32_fallback_frame_state): Likewise.
984 2009-12-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
986 * configure: Regenerate.
988 2009-12-05 Richard Earnshaw <rearnsha@arm.com>
990 * arm/thumb2.md (thumb2_mulsi_short_compare0): Use a low-register
993 2009-12-04 David Daney <ddaney@caviumnetworks.com>
995 PR rtl-optimization/42164
996 * combine.c (combine_simplify_rtx): Handle truncation of integer
999 2009-12-04 Richard Guenther <rguenther@suse.de>
1001 * lto-streamer-out.c (pack_ts_decl_common_value_fields):
1002 Revert previous change.
1003 (lto_output_ts_decl_common_tree_pointers): Stream DECL_VALUE_EXPR.
1004 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
1007 2009-12-04 Richard Guenther <rguenther@suse.de>
1009 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
1011 (call_may_clobber_ref_p_1): Likewise.
1013 2009-12-04 Matthias Klose <doko@ubuntu.com>
1014 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1017 * config.gcc (hppa*-*-linux*): Use config/t-slibgcc-libgcc.
1018 * config/pa/pa-linux.h (LIB_SPEC): Remove.
1020 2009-12-03 Sebastian Pop <sebastian.pop@amd.com>
1021 Richard Henderson <rth@redhat.com>
1023 * config/i386/i386-protos.h (ix86_fma4_valid_op_p): Remove.
1024 * config/i386/i386.c (ix86_fma4_valid_op_p): Remove.
1025 * config/i386/i386.md: Do not use ix86_fma4_valid_op_p.
1026 * config/i386/sse.md (fma4_*): Remove alternative with operand 1
1027 matching a memory access. Do not use ix86_fma4_valid_op_p.
1029 Do not use ix86_fma4_valid_op_p in FMA4 and XOP splitters.
1031 2009-12-03 Richard Henderson <rth@redhat.com>
1033 * config/i386/i386.c (ix86_fixup_binary_operands): For FMA4, force
1034 all operands into registers.
1036 2009-12-03 Sebastian Pop <sebastian.pop@amd.com>
1038 * config/i386/i386.c (ix86_expand_fma4_multiple_memory): Remove unused
1040 * config/i386/i386-protos.h (ix86_expand_fma4_multiple_memory): Same.
1041 * config/i386/sse.md: Same.
1043 2009-12-03 Richard Guenther <rguenther@suse.de>
1045 * cgraphunit.c (assemble_thunk): Use DECL_ASSEMBLER_NAME
1046 instead of DECL_NAME for the entry point.
1048 2009-12-03 Richard Earnshaw <rearnsha@arm.com>
1050 * arm/linux-atomic.c (SYNC_LOCK_RELEASE): Place memory barrier
1051 before the lock release.
1053 2009-12-03 Michael Matz <matz@suse.de>
1056 * cfgexpand.c (struct stack_var): Add conflicts member.
1057 (stack_vars_conflict, stack_vars_conflict_alloc,
1058 n_stack_vars_conflict): Remove.
1059 (add_stack_var): Initialize conflicts member.
1060 (triangular_index, resize_stack_vars_conflict): Remove.
1061 (add_stack_var_conflict, stack_var_conflict_p): Rewrite in
1062 terms of new member.
1063 (union_stack_vars): Only run over the conflicts.
1064 (partition_stack_vars): Remove special case.
1065 (expand_used_vars_for_block): Don't call resize_stack_vars_conflict,
1066 don't create self-conflicts.
1067 (account_used_vars_for_block): Don't create any conflicts.
1068 (fini_vars_expansion): Free bitmaps, don't free or clear removed
1071 2009-12-03 Bernd Schmidt <bernd.schmidt@analog.com>
1074 * regrename.c (live_in_chains): New variable.
1075 (verify_reg_tracked): New static function.
1076 (scan_rtx_reg): Update live_in_chains.
1077 (scan_rtx): Only promote sets in COND_EXEC to OP_INOUT if
1078 we're already tracking the reg.
1079 (build_def_use): Likewise. Initialize live_in_chains.
1081 2009-12-03 Ken Werner <ken.werner@de.ibm.com>
1083 * config/spu/spu-elf.h (STARTFILE_SPEC): Add support for gprof
1085 * config/spu/spu-protos.h (spu_function_profiler): Add prototype.
1086 * config/spu/spu.c (spu_function_profiler): New function.
1087 * config/spu/spu.h (FUNCTION_PROFILER): Invoke
1088 spu_function_profiler.
1089 (NO_PROFILE_COUNTERS): Define.
1090 (PROFILE_BEFORE_PROLOGUE): Likewise.
1092 2009-12-03 Dave Korn <dave.korn.cygwin@gmail.com>
1094 * ggc-page.c (struct free_object): Pull definition out ...
1095 (struct globals): .. from here.
1097 2009-12-02 Richard Guenther <rguenther@suse.de>
1099 * fold-const.c (div_if_zero_remainder): Honor that sizetypes
1100 are sign-extending. Simplify.
1102 2009-12-02 Richard Henderson <rth@redhat.com>
1105 * tree-loop-distribution.c (build_size_arg_loc): Tidy.
1106 (generate_memset_zero): Convert to sizetype properly. Tidy.
1108 2009-12-02 Richard Guenther <rguenther@suse.de>
1110 * lto-streamer-out.c (pack_ts_decl_common_value_fields):
1111 Do not pretend we have value exprs.
1113 2009-12-02 Richard Guenther <rguenther@suse.de>
1116 * fold-const.c (try_move_mult_to_index): Do not leak
1117 domain types into the IL.
1119 2009-12-02 Richard Guenther <rguenther@suse.de>
1122 * tree.c (free_lang_data): Disable if not using LTO.
1124 2009-12-02 Richard Guenther <rguenther@suse.de>
1127 * cfgloopmanip.c (remove_path): Avoid cancelling loops twice.
1129 2009-12-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1132 * tree.h (int_or_pointer_precision): Remove.
1133 * tree.c (int_or_pointer_precision): Remove.
1134 (integer_pow2p): Use TYPE_PRECISION instead.
1135 (tree_log2): Likewise.
1136 (tree_floor_log2): Likewise.
1137 (signed_or_unsigned_type_for): Likewise.
1138 * fold-const.c (fit_double_type): Likewise.
1139 * varasm.c (initializer_constant_valid_p): Likewise.
1141 2009-12-02 Ira Rosen <irar@il.ibm.com>
1143 * doc/invoke.texi (-fdump-tree-slp): Document.
1144 (-ftree-vectorizer-verbose): Update.
1145 (-ftree-slp-vectorize): Document.
1147 2009-12-02 Nick Clifton <nickc@redhat.com>
1149 * config/rx/rx.c (rx_conditional_register_usage): Do not warn if
1150 no fixed registers are available for interrupt handlers. Do not
1151 fix normal registers.
1152 (MUST_SAVE_ACC_REGISTER): New macro.
1153 (rx_get_stack_layout): Create a stack frame for fast interrupt
1154 handlers, if necessary. Push extra registers if needed in order
1155 to save the accumulator.
1156 (rx_expand_prologue): Create a stack frame for fast interrupt
1157 handlers, if necessary.
1158 (rx_expand_builtin_mvfc): Handle the case where there is no target.
1160 2009-12-01 Sebastian Pop <sebastian.pop@amd.com>
1162 * config/i386/abmintrin.h (__lzcnt16): New.
1165 * config/i386/i386-builtin-types.def (UINT16_FTYPE_UINT16): New.
1166 * config/i386/i386.c (IX86_BUILTIN_CLZS): New.
1167 (bdesc_special_args): Add __builtin_clzs.
1168 (ix86_expand_args_builtin): Handle UINT16_FTYPE_UINT16.
1170 2009-12-01 Sebastian Pop <sebastian.pop@amd.com>
1172 * config/i386/abmintrin.h (_mm_popcnt_u32): New.
1173 (_mm_popcnt_u64): New.
1175 2009-12-01 Sebastian Pop <sebastian.pop@amd.com>
1177 * config/i386/abmintrin.h: New.
1178 * config/i386/i386-c.c (ix86_target_macros_internal): Defined __ABM__.
1179 * config/i386/x86intrin.h: Include abmintrin.h when __ABM__ is defined.
1181 2009-12-01 Uros Bizjak <ubizjak@gmail.com>
1183 * config/i386/i386.md (SWI124): Rename from CRC32MODE.
1184 (crc32modesuffix): Remove.
1185 (crc32modeconstraint): Ditto.
1186 (sse4_2_crc32<mode>): Update for renamed mode iterator. Use
1187 imodesuffix instead of crc32modesuffix and <r>m instead of
1188 crc32modeconstraint.
1190 2009-12-01 Jakub Jelinek <jakub@redhat.com>
1193 * tree-cfgcleanup.c (cleanup_omp_return): Don't ICE if control_bb
1194 contains no statements.
1196 2009-12-01 Grigori Fursin <grigori.fursin@inria.fr>
1197 Joern Rennecke <amylaar@spamcop.net>
1199 * cgraphunit.c (plugin.h): Include.
1200 (ipa_passes): Invoke PLUGIN_ALL_IPA_PASSES_START /
1201 PLUGIN_ALL_IPA_PASSES_END at start / end of processing.
1202 * gcc-plugin.h (highlev-plugin-common.h, hashtab.h): Include.
1203 (enum plugin_event): Define by including plugin.def.
1204 Last enumerator is now called PLUGIN_EVENT_FIRST_DYNAMIC.
1205 (plugin_event_name): Change type to const char **.
1206 (get_event_last, get_named_event_id, unregister_callback): Declare.
1207 (register_callback): Change type of event argument to int.
1208 (highlev-plugin-common.h): New file.
1209 * Makefile.in (GCC_PLUGIN_H): Add highlev-plugin-common.h and
1211 (tree-optimize.o passes.o): Depend on $(PLUGIN_H).
1212 (PLUGIN_HEADERS): Add opts.h, $(PARAMS_H) and plugin.def.
1213 (s-header-vars): New rule.
1214 (install-plugin): Depend on s-header-vars. Install b-header-vars.
1215 * params.c (get_num_compiler_params): New function.
1216 * params.h (get_num_compiler_params): Declare.
1217 * passes.c (plugin.h): Include.
1218 (make_pass_instance): Invoke PLUGIN_NEW_PASS.
1219 (do_per_function_toporder, pass_init_dump_file): No longer static.
1220 (pass_fini_dump_file): Likewise.
1221 (execute_one_pass): Likewise. Invoke PLUGIN_OVERRIDE_GATE and
1222 PLUGIN_PASS_EXECUTION.
1223 (execute_ipa_pass_list): Invoke PLUGIN_EARLY_GIMPLE_PASSES_START and
1224 PLUGIN_EARLY_GIMPLE_PASSES_END.
1225 * plugin.c (plugin_event_name_init): New array, defined by
1226 including plugin.def.
1227 (FMT_FOR_PLUGIN_EVENT): Update.
1228 (plugin_event_name): Change type to const char ** and initialize
1229 to plugin_event_name_init.
1230 (event_tab, event_last, event_horizon): New variable.
1231 (get_event_last): New function.
1232 (plugin_callbacks_init): New array.
1233 (plugin_callbacks: Change type to struct callback_info **.
1234 Initialize to plugin_callbacks_init.
1235 (htab_event_eq, get_named_event_id, unregister_callback): New function.
1236 (invoke_plugin_va_callbacks): Likewise.
1237 (register_callback): Change type of event argument to int.
1238 Handle new events. Allow dynamic events.
1239 (invoke_plugin_callbacks): Likewise. Return success status.
1240 (plugins_active_p): Allow dynamic callbacks.
1241 * plugin.def: New file.
1242 * plugin.h (invoke_plugin_callbacks): Update prototype.
1243 (invoke_plugin_va_callbacks): Declare.
1244 * tree-optimize.c (plugin.h): Include.
1245 (tree_rest_of_compilation): Invoke PLUGIN_ALL_PASSES_START and
1246 PLUGIN_ALL_PASSES_END.
1247 * tree-pass.h (execute_one_pass, pass_init_dump_file): Declare.
1248 (pass_fini_dump_file, do_per_function_toporder): Likewise.
1249 * doc/plugin.texi: Document new event types.
1251 2009-12-01 Martin Jambor <mjambor@suse.cz>
1253 PR tree-optimization/42237
1254 * tree-sra.c (sra_ipa_modify_assign): Split gimple_reg_type assignments
1255 in between references into two.
1257 2009-12-01 Richard Guenther <rguenther@suse.de>
1259 * tree-inline.c (copy_tree_body_r): Do not set TREE_BLOCK
1260 to the block of the call when remapping a type.
1262 2009-12-01 Martin Jambor <mjambor@suse.cz>
1264 * cgraph.h (struct cgraph_edge): Reorder fields. Make loop_nest
1266 * ipa-prop.h (struct ipa_param_call_note): Likewise.
1267 * ipa-prop.c (ipa_note_param_call): Initialize note->loop_nest.
1269 2009-12-01 Richard Guenther <rguenther@suse.de>
1271 * final.c (rest_of_clean_state): If -fcompare-debug is
1272 given dump final insns without UIDs.
1273 * tree-ssa-live.c (remove_unused_scope_block_p): Remove
1274 after_inlining checks.
1276 2009-11-30 Chao-ying Fu <fu@mips.com>
1278 * config/mips/mips-dsp.md (mips_lhx_<mode>): Use sign_extend.
1280 2009-11-30 Dave Korn <dave.korn.cygwin@gmail.com>
1282 * configure.ac (USE_CYGWIN_LIBSTDCXX_WRAPPERS): Define to reflect
1283 status of AC_CHECK_FUNC for Cygwin DLL libstdc++ support wrappers.
1284 * configure: Regenerate.
1285 * config.in: Regenerate.
1287 * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Define list of --wrap
1288 options for Cygwin DLL libstdc++ support wrappers.
1289 (CXX_WRAP_SPEC_OPT): Define spec to use wrappers or not by default
1290 according to defined value of USE_CYGWIN_LIBSTDCXX_WRAPPERS.
1291 (CXX_WRAP_SPEC): Define entire wrapper spec in or out according to
1292 whether USE_CYGWIN_LIBSTDCXX_WRAPPERS is even defined or not.
1293 (LINK_SPEC): Include CXX_WRAP_SPEC.
1294 * gcc/config/i386/winnt.c (wrapper_strcmp): New qsort helper function.
1295 (i386_find_on_wrapper_list): Check if a function is found on the list
1296 of libstdc++ wrapper options.
1297 (i386_pe_file_end): If we are importing a wrapped function, also emit
1298 an external declaration for the real version.
1299 * config/i386/cygming.opt (muse-libstdc-wrappers): New option for
1300 Cygwin targets. Update copyright year.
1302 2009-11-30 Steve Ellcey <sje@cup.hp.com>
1303 Jakub Jelinek <jakub@redhat.com>
1305 * function.c (instantiate_virtual_regs_in_insn): Copy to new reg
1306 before forcing mode.
1308 2009-11-30 Anatoly Sokolov <aesok@post.ru>
1310 * config/sh/sh.c (sh_promote_prototypes): Make static.
1311 (sh_function_value, sh_libcall_value, sh_function_value_regno_p): New
1313 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
1314 * config/sh/sh.h (FUNCTION_VALUE_REGNO_P): Redefine, use
1315 sh_function_value_regno_p.
1316 (FUNCTION_VALUE, LIBCALL_VALUE): Remove.
1317 * config/sh/sh-protos.h (sh_function_value_regno_p): Declare.
1318 (sh_promote_prototypes) : Remove.
1320 2009-11-30 Julian Brown <julian@codesourcery.com>
1322 * config/arm/arm.h (PREFERRED_RELOAD_CLASS): Don't restrict Thumb-2
1325 2009-11-30 Richard Henderson <rth@redhat.com>
1327 * config/i386/i386.c (ix86_vec_interleave_v2df_operator_ok): New.
1328 (bdesc_special_args): Update insn codes.
1329 (avx_vpermilp_parallel): Correct range check.
1330 (ix86_rtx_costs): Handle vector permutation rtx codes.
1331 (struct expand_vec_perm_d): Move earlier.
1332 (get_mode_wider_vector): New.
1333 (expand_vec_perm_broadcast_1): New.
1334 (ix86_expand_vector_init_duplicate): Use it. Tidy AVX modes.
1335 (expand_vec_perm_broadcast): New.
1336 (ix86_expand_vec_perm_builtin_1): Use it.
1337 * config/i386/i386-protos.h: Update.
1338 * config/i386/predicates.md (avx_vbroadcast_operand): New.
1339 * config/i386/sse.md (AVX256MODE24P): New.
1340 (ssescalarmodesuffix2s): New.
1341 (avxhalfvecmode, avxscalarmode): Fill out to all modes.
1342 (avxmodesuffixf2c): Add V8SI, V4DI.
1343 (vec_dupv4sf): New expander.
1344 (*vec_dupv4sf_avx): Add vbroadcastss alternative.
1345 (*vec_set<mode>_0_avx, **vec_set<mode>_0_sse4_1): Macro-ize for
1346 V4SF and V4SI. Move C alternatives to front. Add insertps and
1347 pinsrd alternatives.
1348 (*vec_set<mode>_0_sse2): Split out from ...
1349 (vec_set<mode>_0): Macro-ize for V4SF and V4SI.
1350 (vec_interleave_highv2df, vec_interleave_lowv2df): Require register
1351 destination; use ix86_vec_interleave_v2df_operator_ok, instead of
1352 ix86_fixup_binary_operands.
1353 (*avx_interleave_highv2df, avx_interleave_lowv2df): Add movddup.
1354 (*sse3_interleave_highv2df, sse3_interleave_lowv2df): New.
1355 (*avx_movddup, *sse3_movddup): Remove. New splitter from
1356 vec_select form to vec_duplicate form.
1357 (*sse2_interleave_highv2df, sse2_interleave_lowv2df): Use
1358 ix86_vec_interleave_v2df_operator_ok.
1359 (avx_movddup256, avx_unpcklpd256): Change to expanders, merge into ...
1360 (*avx_unpcklpd256): ... here.
1361 (*vec_dupv4si_avx): New.
1362 (*vec_dupv2di_avx): Add movddup alternative.
1363 (*vec_dupv2di_sse3): New.
1364 (vec_dup<AVX256MODE24P>): Replace avx_vbroadcasts<AVXMODEF4P> and
1365 avx_vbroadcastss256; represent with vec_duplicate instead of
1366 nested vec_concat operations.
1367 (avx_vbroadcastf128_<mode>): Rename from
1368 avx_vbroadcastf128_p<avxmodesuffixf2c>256.
1369 (*avx_vperm_broadcast_v4sf): New.
1370 (*avx_vperm_broadcast_<AVX256MODEF2P>): New.
1372 2009-11-30 Martin Jambor <mjambor@suse.cz>
1375 * tree-sra.c (struct access): New field grp_different_types.
1376 (dump_access): Dump grp_different_types.
1377 (compare_access_positions): Prefer scalars and vectors over other
1379 (sort_and_splice_var_accesses): Set grp_different_types if appropriate.
1380 (sra_modify_expr): Use the original also when dealing with a complex
1381 or vector group accessed as multiple types.
1383 2009-11-30 Richard Henderson <rth@redhat.com>
1385 * config/i386/i386.c (avx_vperm2f128_parallel): New.
1386 * config/i386/i386-protos.h: Declare it.
1387 * config/i386/predicates.md (avx_vperm2f128_v8sf_operand,
1388 avx_vperm2f128_v8si_operand, avx_vperm2f128_v4df_operand): New.
1389 * config/i386/sse.md (avx_vperm2f128<mode>3): Change to expander.
1390 (*avx_vperm2f128<mode>_full): Renamed from avx_vperm2f128<mode>3.
1391 (*avx_vperm2f128<mode>_nozero): New.
1393 2009-11-30 Richard Henderson <rth@redhat.com>
1395 * config/i386/i386-builtin-types.def (V4DF_FTYPE_V4DF_V4DF_V4DI): New.
1396 (V8SF_FTYPE_V8SF_V8SF_V8SI): New.
1397 * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Support
1398 V4DF and V8SF for AVX; relax constraint on V4SF to SSE1 from SSE2.
1399 (IX86_BUILTIN_VEC_PERM_V4DF, IX86_BUILTIN_VEC_PERM_V8SF): New.
1400 (bdesc_args): Add them.
1401 (ix86_expand_builtin): Expand them.
1402 (expand_vec_perm_pshufb2): Only operate on 16-byte vectors.
1404 2009-11-30 Martin Jambor <mjambor@suse.cz>
1407 * ipa-prop.c (ipa_write_node_info): Initialize note_count to zero.
1409 2009-11-30 Jakub Jelinek <jakub@redhat.com>
1411 * ipa-reference.c (propagate): Only dump bitmaps if computed.
1413 2009-11-30 Olga Golovanevsky <olga@il.ibm.com>
1416 * ipa-struct-reorg.c (new_var_eq): Use DECL_UID to hash new variables.
1417 (new_var_hash): Likewise.
1418 (is_in_new_vars_htab): Likewise.
1419 (add_to_new_vars_htab): Likewise.
1421 2009-11-30 Ira Rosen <irar@il.ibm.com>
1423 * tree-vect-stmts.c (vectorizable_assignment): Support
1426 2009-11-30 Richard Guenther <rguenther@suse.de>
1428 * doc/contrib.texi (Contributors): Add myself.
1430 2009-11-30 Richard Guenther <rguenther@suse.de>
1432 * tree.c (free_lang_data): Do not set debug_info_level to
1435 2009-11-30 Richard Guenther <rguenther@suse.de>
1439 * expr.c (expand_expr_addr_expr_1): Properly expand the initializer
1442 2009-11-30 Richard Guenther <rguenther@suse.de>
1444 * tree-into-ssa.c (insert_phi_nodes): Add PHI nodes in
1447 2009-11-30 Richard Guenther <rguenther@suse.de>
1449 * tree-dump.c (dump_option_value_in): Add TDF_NOUID.
1450 * tree-pass.h (TDF_NOUID): Likewise.
1451 * print-rtl.c: Include tree-pass.h.
1452 (print_mem_expr): Pass dump_flags.
1453 (print_rtx): Likewise.
1454 * print-tree.c: Include tree-pass.h.
1455 (print_node_brief): Handle TDF_NOUID.
1456 (print_node): Likewise.
1457 * tree-pretty-print.c (dump_decl_name): Likewise.
1458 (dump_generic_node): Likewise.
1459 * Makefile.in (print-rtl.o, print-tree.o): Add $(TREE_PASS_H)
1462 2009-11-30 Nick Clifton <nickc@redhat.com>
1464 * config/stormy16/stormy16-lib2-count-leading-zeros.c: Delete.
1465 * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Remove
1466 stormy16-lib2-count-leading-zeros.c.
1467 * config/stormy16/stormy16-lib2.c (__clzhi2): Move code from
1468 __stormy16_count_leading_zeros() into this function.
1469 (__ctzhi2): Use __builtin_clz.
1470 (__ffshi2): Likewise.
1472 2009-11-30 Eric Botcazou <ebotcazou@adacore.com>
1474 * config/sparc/sparc.c (DF_MODES): Simplify.
1475 (TF_ONLY_MODES, OF_ONLY_MODES): Delete.
1476 (TF_MODES, OF_MODES): Adjust for above change.
1477 (TF_MODES_NO_S, OF_MODES_NO_S): Likewise.
1478 * config/sparc/sparc.h (REGNO_REG_CLASS): Move around.
1480 2009-11-30 Paolo Bonzini <bonzini@gnu.org>
1482 PR rtl-optimization/41812
1483 * fwprop.c (local_md, local_lr): New globals.
1484 (process_defs, process_uses): Remove local_md argument. Never
1485 consider dead pseudos to have singleton def-use chains.
1486 (single_def_use_enter_block): Perform LR simulation.
1487 (build_single_def_use_links): Remove local_md local variable.
1488 Add DF_NOTE. Allocate local_lr.
1489 (fwprop_done): Do not remove DF_CHAIN, we do not use it anymore.
1490 * df-problems.c (df_md_scratch): New.
1491 (df_md_alloc, df_md_free): Allocate/free it.
1492 (df_md_local_compute): Only include live registers in init.
1493 (df_md_transfer_function): Prune the in-set computed by
1494 the confluence function, and the gen-set too.
1496 2009-11-30 Hans-Peter Nilsson <hp@axis.com>
1498 PR rtl-optimization/40086
1499 * reorg.c (relax_delay_slots): When looking for redundant insn at
1500 the branch target, use next_real_insn, not next_active_insn.
1502 2009-11-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1504 * doc/install.texi: Update minimum MPC version to 0.8.
1506 2009-09-09 Segher Boessenkool <segher@kernel.crashing.org>
1508 * config/rs6000/rs6000.md (fnmaddsf4_powerpc_1): Remove
1509 HONOR_SIGNED_ZEROS final condition.
1510 (fnmsubsf4_powerpc_1): Same.
1511 (fnmadddf4_fpr_1): Same.
1512 (fnmsubdf4_fpr_1): Same.
1514 2009-11-29 Ira Rosen <irar@il.ibm.com>
1516 PR tree-optimization/42193
1517 * tree-vect-stmts.c (vectorizable_operation): Set vectorization factor
1518 to 1 in case of basic block SLP.
1519 (vectorizable_load): Likewise.
1521 2009-11-28 Jan Hubicka <jh@suse.cz>
1523 * cgraph.c (same_body_alias_1): Break out of
1524 (same_body_alias): ... here; remove comdat check; it is handled
1526 (cgraph_add_thunk): New.
1527 (dump_cgraph_node): Dump aliases and thunks.
1528 * cgraph.h (cgraph_thunk_info): New structure.
1529 (struct cgraph_node): Add thunk info.
1530 (cgraph_add_thunk): New.
1531 * cgraphunit.c (cgraph_emit_thunks): Remove.
1532 (cgraph_finalize_compilation_unit): Do not call cgraph_emit_thunks.
1533 (assemble_thunk): New function.
1534 (cgraph_expand_function): Handle thunks.
1535 (thunk_adjust): New.
1536 (init_lowered_empty_function): New.
1537 * cp-objcp-common.h (LANG_HOOKS_CALLGRAPH_EMIT_ASSOCIATED_THUNKS):
1539 * lto-cgraph.c (lto_output_node): Stream thunk info.
1540 (input_node): Likewise.
1541 * langhooks.h (lang_hooks_for_callgraph): Remove emit_associated_thunks.
1542 * langhooks-def.h (LANG_HOOKS_CALLGRAPH_EMIT_ASSOCIATED_THUNKS): Remove.
1543 (LANG_HOOKS_CALLGRAPH_INITIALIZER): Update.
1544 * i386.c (x86_output_mi_thunk): Make output prettier.
1546 2009-11-28 Richard Guenther <rguenther@suse.de>
1548 PR tree-optimization/42183
1549 * tree-nrv.c (tree_nrv): Bail out if the RESULT_DECL has its
1550 address taken. Merge the addressable state of the NRV
1551 variable and the result instead of copying it.
1553 2009-11-28 Jakub Jelinek <jakub@redhat.com>
1555 * matrix-reorg.c (analyze_matrix_allocation_site): Remove unused
1556 malloc_fname variable.
1557 (check_allocation_function): Remove unused gsi and bb_level_0
1559 (transform_access_sites): Remove unused d_type_size and d_type_size_k
1561 * omega.c (resurrect_subs): Remove unused n variable.
1562 (omega_solve_geq): Remove unused neweqns variable.
1563 * lto-streamer-in.c (lto_read_tree): Remove unused end_marker variable.
1564 * tree-inline.c (declare_return_variable): Remove USE_P argument,
1565 return use instead of var.
1566 (remap_decl, remap_block): Remove unused fn variable.
1567 (expand_call_inline): Remove unused retvar variable, adjust
1568 declare_return_variable caller.
1569 (optimize_inline_calls): Remove unused prev_fn variable.
1570 * tree-vect-slp.c (vect_analyze_slp_instance): Remove unused ncopies
1572 (vect_create_mask_and_perm): Remove unused group_size and dr_chain_size
1574 * tree-ssa-loop-niter.c (split_to_var_and_offset): Handle MINUS_EXPR
1576 * tree-vect-loop.c (vect_analyze_loop_form): Remove unused backedge
1578 (vect_create_epilog_for_reduction): Remove unused bytesize variable.
1579 * omp-low.c (workshare_safe_to_combine_p): Remove par_entry_bb
1580 parameter. Remove unused par_stmt variable.
1581 (determine_parallel_type): Adjust workshare_safe_to_combine_p caller.
1582 (expand_omp_sections): Remove unused l1 variable.
1583 (lower_omp_for): Remove unused ilist variable.
1584 * tree-loop-distribution.c (mark_nodes_having_upstream_mem_writes):
1585 Remove unused has_upstream_mem_write_p variable.
1586 * recog.c (decode_asm_operands): Remove unused noperands variable.
1587 * tree-ssa-alias.c (refs_may_alias_p_1): Remove unused size1 and
1589 * libgcov.c (__gcov_merge_delta): Remove unused last variable.
1590 * tree-call-cdce.c (gen_conditions_for_pow_int_base): Remove unused
1592 (gen_conditions_for_pow): Remove unused ec variable.
1593 * tree-ssa-sccvn.c (vn_reference_lookup_3): Remove unused size
1595 * ipa-struct-reorg.c (program_redefines_malloc_p): Remove unused
1597 * tree-ssa-sink.c (statement_sink_location): Remove unused code
1599 * regmove.c (copy_src_to_dest): Remove unused insn_uid and move_uid
1601 * tree-complex.c (create_one_component_var): Remove unused inner_type
1603 * calls.c (emit_call_1): Don't GEN_INT (struct_value_size)
1604 unnecessarily when GEN_*CALL omits that argument.
1605 * regrename.c (regrename_optimize): Remove unused regs_seen variable.
1606 (build_def_use): Remove unused icode variable.
1607 * ipa-pure-const.c (check_call): Remove unused callee and avail
1609 * tree-dfa.c (add_referenced_var): Remove unused v_ann variable.
1610 * tree-vect-patterns.c (vect_recog_pow_pattern): Remove unused type
1612 (vect_pattern_recog): Remove unused stmt variable.
1613 * sel-sched-ir.c (make_regions_from_the_rest): Remove unused
1614 new_regions variable.
1615 * postreload.c (reload_cse_simplify_operands): Remove unused mode
1617 * tree-parloops.c (create_call_for_reduction_1): Remove unused
1619 (create_parallel_loop): Remove unused res variable.
1620 (gen_parallel_loop): Remove unused nloop variable.
1621 * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
1622 * value-prof.c (gimple_mod_subtract_transform,
1623 gimple_stringops_transform): Remove unused value variable.
1624 (gimple_stringops_values_to_profile): Remove unused fcode variable.
1625 * tree-vrp.c (register_new_assert_for): Remove unused found variable.
1626 (vrp_visit_switch_stmt): Remove unused n variable.
1627 * tree-vect-stmts.c (vectorizable_conversion): Remove unused expr
1629 (vectorizable_operation): Remove unused shift_p variable.
1630 (vectorizable_store): Remove unused first_stmt_vinfo variable.
1631 * tree-ssa-operands.c (add_stmt_operand): Remove unused v_ann variable.
1632 * tree-vect-data-refs.c (vect_analyze_data_refs): Remove unused bb
1634 (vect_permute_store_chain): Remove unused scalar_dest variable.
1635 (vect_supportable_dr_alignment): Remove unused invariant_in_outerloop
1637 * tree-ssa-threadupdate.c (thread_single_edge): Remove unused
1638 local_info variable.
1639 * tree-optimize.c (tree_rest_of_compilation): Remove unused node
1641 * optabs.c (expand_binop): Remove unused equiv_value variable.
1642 (emit_libcall_block): Remove unused prev variable.
1643 (init_optabs): Remove unused int_mode variable.
1644 * tree-ssa-structalias.c (scc_visit): Remove unused have_ref_node
1646 (do_structure_copy): Remove unused lhsbase and rhsbase variables.
1647 (find_func_aliases): Remove unused rhstype variable.
1648 (ipa_pta_execute): Remove unused varid variable.
1650 2009-11-28 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
1652 * config/avr/avr.h (ASM_OUTPUT_EXTERNAL): Add.
1654 2009-11-28 David Binderman <dcb314@hotmail.com>
1656 * ira-color.c (put_allocno_into_bucket): Remove set but not used
1657 local variable hard_regs_num.
1658 * ira-lives.c (process_single_reg_class_operands): Remove cover_class.
1659 * loop-unswitch.c (unswitch_loop): Remove zero_bitmap.
1660 * lower-subreg.c (decompose_multiword_subregs): Remove next.
1662 2009-11-27 Martin Jambor <mjambor@suse.cz>
1665 * tree-sra.c (get_replaced_param_substitute): Call create_tmp_var
1666 instead of create_tmp_var. Set DECL_GIMPLE_REG_P to one manually
1667 for vector and complex types.
1668 (get_adjustment_for_base): Describe return value in the comment.
1670 2009-11-27 Nick Clifton <nickc@redhat.com>
1672 * longlong.h (count_leading_zeros): Define macro for stormy16 target.
1673 (COUNT_LEADING_ZEROS_0): Likewise.
1674 * config/stormy16/stormy16-lib2.c: Arrange for separate
1675 compilation of each function.
1676 (__ffshi2): New function.
1677 (__stormy16_count_leading_zeros): New function.
1678 * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Use stub files to
1679 compile each function into its own object file.
1680 (stormy16-lib2-ashlsi3.c): New stub file.
1681 (stormy16-lib2-ashrsi3.c): New stub file.
1682 (stormy16-lib2-clzhi2.c): New stub file.
1683 (stormy16-lib2-count-leading-zeros.c): New stub file.
1684 (stormy16-lib2-ctzhi2.c): New stub file.
1685 (stormy16-lib2-divsi3.c): New stub file.
1686 (stormy16-lib2-ffshi2.c): New stub file.
1687 (stormy16-lib2-lshrsi3.c): New stub file.
1688 (stormy16-lib2-modsi3.c): New stub file.
1689 (stormy16-lib2-parityhi2.c): New stub file.
1690 (stormy16-lib2-popcounthi2.c): New stub file.
1691 (stormy16-lib2-udivmodsi4.c): New stub file.
1692 (stormy16-lib2-udivsi3.c): New stub file.
1693 (stormy16-lib2-umodsi3.c): New stub file.
1695 2009-11-27 Richard Henderson <rth@redhat.com>
1697 * config/i386/sse.md (vec_interleave_highv16qi,
1698 vec_interleave_lowv16qi, vec_interleave_highv8hi,
1699 vec_interleave_lowv8hi, vec_interleave_highv4si,
1700 vec_interleave_lowv4si, vec_interleave_highv2di,
1701 vec_interleave_lowv2di, vec_interleave_highv4sf,
1702 vec_interleave_lowv4sf, vec_interleave_highv2df,
1703 vec_interleave_lowv2df): Remove expanders.
1704 (sse_unpcklps, sse_unpckhps, sse2_unpckhpd_exp, sse2_unpcklpd_exp,
1705 sse2_punpckhqdq, sse2_punpcklqdq, sse2_punpckhbw, sse2_punpcklbw,
1706 sse2_punpckhwd, sse2_punpcklwd, sse2_punpckhdq, sse2_punpckldq):
1707 Rename to their proper vec_interleave equivalent. Update all users
1709 * config/i386/i386.c, config/i386/i386.md: Update all users.
1711 2009-11-27 Michael Matz <matz@suse.de>
1713 PR rtl-optimization/42084
1714 * cfgexpand.c (maybe_cleanup_end_of_block): Add new parameter,
1715 use it to stop walking.
1716 (expand_gimple_cond): Adjust call to above.
1718 2009-11-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1721 * gthr-solaris.h (__gthread_mutex_destroy): Remove UNUSED.
1722 [SUPPORTS_WEAK && GTHREAD_USE_WEAK] (__gthread_active_p): Use
1723 __extension__ to allow cast from function pointer to object
1725 * doc/install.texi (--enable-threads): Clarify use of Solaris threads.
1727 2009-11-27 Steven Bosscher <steven@gcc.gnu.org>
1729 * config/ia64/itanium1.md: Remove.
1730 * config/ia64/ia64.md: Do not include it.
1731 * config/ia64/ia64.c (ia64_handle_option): Remove "itanium",
1732 "itanium1", and "merced" from the processor alias table.
1733 (clocks, add_cycles): Remove global variables.
1734 (ia64_sched_reorder2): Don't set/use them.
1735 (ia64_dfa_new_cycle, ia64_h_i_d_extended, ia64_reorg): Likewise.
1736 (bundling): Likewise. Remove extra pass for MMMUL/MMSHF.
1738 2009-11-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1740 * config/s390/s390.c (last_scheduled_insn): New variable.
1741 (s390_fpload_toreg, s390_z10_prevent_earlyload_conflicts): New
1743 (s390_sched_reorder, s390_sched_variable_issue): New functions.
1744 (TARGET_SCHED_VARIABLE_ISSUE, TARGET_SCHED_REORDER): Target hooks
1747 2009-11-27 Michael Matz <matz@suse.de>
1750 * tree-eh.c (lower_catch): Stop after expanding a catch-all.
1752 2009-11-27 Richard Guenther <rguenther@suse.de>
1754 * timevar.def (TV_LOOP_MOVE_INVARIANTS, TV_LOOP_UNSWITCH,
1755 TV_LOOP_UNROLL, TV_LOOP_DOLOOP): New timevars.
1756 * loop-init.c (pass_rtl_move_loop_invariants): Use
1757 TV_LOOP_MOVE_INVARIANTS.
1758 (pass_rtl_unswitch): Use TV_LOOP_UNSWITCH.
1759 (pass_rtl_unroll_and_peel): Use TV_LOOP_UNROLL.
1760 (pass_rtl_doloop): Use TV_LOOP_DOLOOP.
1762 2009-11-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1764 * emit-rtl.c (next_active_insn, prev_active_insn): Correct comment.
1766 2009-11-27 Jakub Jelinek <jakub@redhat.com>
1768 * config/i386/i386.c (ix86_emit_restore_sse_regs_using_mov): Remove
1769 unused insn variable.
1770 * genemit.c (output_peephole2_scratches): Only declare and initialize
1771 _regs_allocated if it will be ever used.
1772 * cfgloopmanip.c (create_empty_if_region_on_edge): Remove unused
1774 (create_empty_loop_on_edge): Remove unused freq and cnt variables.
1775 * unwind-c.c (PERSONALITY_FUNCTION): Remove unused action_record
1778 * opts.c (decode_options): If optimize is bigger than 255,
1781 2009-11-26 Richard Henderson <rth@redhat.com>
1783 * config/i386/sse.md (mulv16qi3): Change back from an expander
1784 to an insn-and-split.
1785 (mulv4si): Mention AVX not XOP for AVX exception.
1786 (*sse2_mulv4si3): Likewise.
1787 (mulv2di3): Use vmulld not vpmacsdd for XOP expansion. Tidy.
1789 2009-11-26 Bernd Schmidt <bernd.schmidt@analog.com>
1791 * cfgexpand (n_stack_vars_conflict): New static variable.
1792 (triangular_index): Reduce likelyhood of overflow by performing
1793 the division before the multiplication.
1794 (resize_stack_vars_conflict): Call fatal_error if overflow
1795 occurred in triangular_index. Update n_stack_vars_conflict.
1798 * regrename.c (struct du_chain): Remove member earlyclobber.
1799 (scan_rtx_reg): Don't set it. Remove argument earlyclobber,
1800 all callers changed.
1801 (scan_rtx): Remove argument earlyclobber, all callers changed.
1802 (hide_operands, restore_operands, record_out_operands): New functions,
1803 broken out of build_def_use.
1804 (build_def_use): Call them as necessary.
1806 * regrename.c (struct du_head): New members id, conflicts,
1807 hard_conflicts and cannot_rename.
1808 (enum scan_actions): Remove terminate_all_read and
1809 terminate_overlapping_read; add mark_all_read.
1810 (scan_actions_name): Likewise.
1811 (du_head_p): New typedef. Define a vector type for it.
1812 (id_to_chain): New static variable.
1813 (note_sets, clear_dead_regs): Delete functions.
1814 (free_chain_data): New function.
1815 (merge_overlapping_regs): Simply walk the conflicts bitmap.
1816 Remove argument B, all callers changed.
1817 (regrename_optimize): Allocate id_to_chain. Ignore chains that have
1818 the cannot_rename bit set. Update regno and nregs of a renamed chain.
1819 Call free_chain_data when done.
1820 (do_replace): Remove death notes when the renamed reg is set in the
1821 last insn; add them if not.
1822 (mark_conflict, note_sets_clobbers): New static function.
1823 (fail_current_block, current_id, open_chains_set, live_hard_regs): New
1825 (scan_rtx_reg): Keep track of conflicts between chains, and between
1826 chains and hard regs. Don't terminate chains when we find a read we
1827 can't handle, mark it unrenameable instead. For terminate_write,
1828 terminate chains that are written with an exact match or a superset
1829 of registers. Set fail_current_block if multi-word lifetimes are too
1831 (scan_rtx_address): Use mark_all_read instead of terminate_all_read.
1832 (build_def_use): Initialize current_id, live_chains and live_hard_regs;
1833 free memory for them when done.
1834 Rearrange the steps so that earlyclobbers are noted before reads
1835 are processed. Add new steps to keep track of hard register lifetimes
1836 outside insn operands.
1838 2009-11-26 Richard Guenther <rguenther@suse.de>
1840 * tree-ssa-dce.c (nr_walks): New variable.
1841 (mark_aliased_reaching_defs_necessary): Adjust oracle cut-off.
1842 (perform_tree_ssa_dce): Init nr_walks.
1844 2009-11-26 Michael Matz <matz@suse.de>
1846 PR tree-optimization/41905
1847 * tree-eh.c (lower_eh_constructs_2): Don't add assignments
1848 below statements that can't fall thru.
1850 2009-11-26 Michael Matz <matz@suse.de>
1852 * builtins.c (expand_builtin_printf, expand_builtin_fprintf,
1853 expand_builtin_sprintf): Remove.
1854 (expand_builtin): Don't call them.
1856 2009-11-26 Richard Guenther <rguenther@suse.de>
1858 * tree-ssa-dce.c (perform_tree_ssa_dce): Allocate visited bitmap.
1860 2009-11-26 Nick Clifton <nickc@redhat.com>
1862 * config/rx/rx.c (rx_expand_epilogue): Add checks for sibcalls
1863 being used incorrectly.
1864 (rx_function_ok_for_sibcall): New function. Do not allow indirect
1865 sibcalls, or sibcalls from interrupt functions.
1866 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define.
1867 * config/rx/rx.md (sibcall): Convert to a define_expand. Check
1868 for a MEM inside a MEM.
1869 (sibcall_value): Likewise.
1870 (sibcall_internal): New pattern containing old sibcall pattern.
1871 (sibcall_value_internal): Likewise.
1873 2009-11-25 Richard Henderson <rth@redhat.com>
1875 * config/i386/i386-builtin-types.awk (DEF_VECTOR_TYPE): Allow an
1876 optional 3rd argument to define the mode.
1877 * config/i386/i386-builtin-types.def (UQI, UHI, USI, UDI): New.
1878 (V2UDI, V4USI, V8UHI, V16UQI): New.
1879 (V4SF_FTYPE_V4SF_V4SF_V4SI, V2UDI_FTYPE_V2UDI_V2UDI_V2UDI,
1880 V4USI_FTYPE_V4USI_V4USI_V4USI, V8UHI_FTYPE_V8UHI_V8UHI_V8UHI,
1881 V16UQI_FTYPE_V16UQI_V16UQI_V16UQI): New.
1882 * config/i386/i386-modes.def: Rearrange for double-wide AVX.
1883 * config/i386/i386-protos.h (ix86_expand_vec_extract_even_odd): New.
1884 * config/i386/i386.c (IX86_BUILTIN_VEC_PERM_*): New.
1885 (bdesc_args): Add the builtin definitions to match.
1886 (ix86_expand_builtin): Expand them.
1887 (ix86_builtin_vectorization_cost): Rename from
1888 x86_builtin_vectorization_cost.
1889 (ix86_vectorize_builtin_vec_perm, struct expand_vec_perm_d,
1890 doublesize_vector_mode, expand_vselect, expand_vselect_vconcat,
1891 expand_vec_perm_blend, expand_vec_perm_vpermil,
1892 expand_vec_perm_pshufb, expand_vec_perm_1,
1893 expand_vec_perm_pshuflw_pshufhw, expand_vec_perm_palignr,
1894 expand_vec_perm_interleave2, expand_vec_perm_pshufb2,
1895 expand_vec_perm_even_odd_1, expand_vec_perm_even_odd,
1896 ix86_expand_vec_perm_builtin_1, extract_vec_perm_cst,
1897 ix86_expand_vec_perm_builtin, ix86_vectorize_builtin_vec_perm_ok,
1898 ix86_expand_vec_extract_even_odd, TARGET_VECTORIZE_BUILTIN_VEC_PERM,
1899 TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): New.
1900 * sse.md (SSEMODE_EO): New.
1901 (vec_extract_even<mode>): Use SSEMODE_EO and
1902 ix86_expand_vec_extract_even_odd.
1903 (vec_extract_odd<mode>): Likewise.
1904 (mulv16qi3, vec_pack_trunc_v8hi, vec_pack_trunc_v4si,
1905 vec_pack_trunc_v2di): Use ix86_expand_vec_extract_even_odd.
1907 2009-11-25 Richard Henderson <rth@redhat.com>
1909 * target.h (targetm.vectorize.builtin_vec_perm_ok): New.
1910 * target-def.h (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): New.
1911 * hooks.h, hooks.c (hook_bool_tree_tree_true): New.
1912 * tree-vect-slp.c (vect_create_mask_and_perm): Don't create
1913 the vector constant here...
1914 (vect_transform_slp_perm_load): ... do it here instead. Validate
1915 that the permutation vector is implementable by the target.
1917 2009-11-25 Jakub Jelinek <jakub@redhat.com>
1919 * config/rs6000/sysv4.opt (mregnames): Change Var to rs6000_regnames.
1920 * config/rs6000/sysv4.h (TARGET_REGNAMES): Define.
1922 * print-rtl.c (print_rtx): When printing newline, append
1923 print_rtx_head and indentation after the newline.
1926 * config/i386/i386.c (print_operand): For 32-byte memory use
1927 YMMWORD in -masm=intel mode. Use TBYTE instead of XWORD.
1928 * config/i386/i386.md (crc32modesuffix): Expand to nothing
1929 in -masm=intel mode.
1930 (sse4_2_crc32di): Print just crc32 instead of crc32q in
1932 * config/i386/mmx.md (*mmx_pinsrw): Print correct size of
1933 memory operand in -masm=intel mode.
1934 * config/i386/sse.md (*avx_pinsr<ssevecsize>, *sse4_1_pinsrb,
1935 *sse2_pinsrw): Likewise.
1936 (sse_cvtss2siq, sse_cvtss2siq_2, sse_cvttss2siq): Don't print
1937 q suffix in -masm=intel mode.
1939 2009-11-25 Eric Botcazou <ebotcazou@adacore.com>
1944 * dwarf2out.c (dwarf2out_args_size_adjust): Rename to...
1945 (dwarf2out_stack_adjust): ...this. Do not adjust the arg size for
1946 ACCUMULATE_OUTGOING_ARGS targets. Rename former version to...
1947 (dwarf2out_notice_stack_adjust): ...this. Adjust for above renaming.
1948 (dwarf2out_frame_debug_expr): Revert previous change and adjust for
1950 (dwarf2out_frame_debug): Add ??? comment. Adjust for above renaming.
1952 2009-11-25 Uros Bizjak <ubizjak@gmail.com>
1954 * config/i386/predicates.md (emms_operation): New predicate.
1955 (vzeroupper_operation): Ditto.
1956 (vzeroall_operation): Improve pattern recognition.
1957 * config/i386/sse.md (avx_vzeroupper_rex64): Remove insn pattern.
1958 (avx_vzeroupper): Change insn pattern to expander.
1959 (*avx_vzeroupper): New insn pattern. Use vzeroupper_operation
1961 (*avx_vzeroall): Remove operands 1 and 2.
1962 * config/i386/mmx.md (mmx_emms): Change insn pattern to expander.
1964 (*mmx_emms): New insn pattern. Use emms_operation predicate.
1965 (*mmx_femms): Ditto.
1966 * config/i386/i386.c (enum ix86_builtins)
1967 <IX86_BUILTIN_VZEROUPPER_REX64>: Remove.
1968 (struct builtin_description) <CODE_FOR_avx_vzeroupper_rex64>:
1969 Remove initailization.
1970 <CODE_FOR_avx_vzeroupper>: Unconditionally initialize here.
1972 2009-11-25 Paul Brook <paul@codesourcery.com>
1974 * config/arm/arm.md (consttable_4): Handle (high ...).
1976 2009-11-25 Robert Nelson <robert.nelson@digikey.com>
1977 Richard Earnshaw <rearnsha@arm.com>
1979 * arm.h (enum vfp_reg_type): Add VFP_NONE.
1980 * arm.c (all_fpus): Use it for floating point units that aren't based
1981 on the VFP architecture.
1982 (aapcs_vfp_is_call_or_return_candidate): Make base_mode a pointer to
1985 2009-11-25 H.J. Lu <hongjiu.lu@intel.com>
1987 * alias.c: Remove trailing white spaces.
1988 * alloc-pool.c: Likewise.
1989 * alloc-pool.h: Likewise.
1990 * attribs.c: Likewise.
1991 * auto-inc-dec.c: Likewise.
1992 * basic-block.h: Likewise.
1993 * bb-reorder.c: Likewise.
1994 * bt-load.c: Likewise.
1995 * builtins.c: Likewise.
1996 * builtins.def: Likewise.
1997 * c-common.c: Likewise.
1998 * c-common.h: Likewise.
1999 * c-cppbuiltin.c: Likewise.
2000 * c-decl.c: Likewise.
2001 * c-format.c: Likewise.
2002 * c-lex.c: Likewise.
2003 * c-omp.c: Likewise.
2004 * c-opts.c: Likewise.
2005 * c-parser.c: Likewise.
2006 * c-pretty-print.c: Likewise.
2007 * c-tree.h: Likewise.
2008 * c-typeck.c: Likewise.
2009 * caller-save.c: Likewise.
2010 * calls.c: Likewise.
2012 * cfganal.c: Likewise.
2013 * cfgexpand.c: Likewise.
2014 * cfghooks.c: Likewise.
2015 * cfghooks.h: Likewise.
2016 * cfglayout.c: Likewise.
2017 * cfgloop.c: Likewise.
2018 * cfgloop.h: Likewise.
2019 * cfgloopmanip.c: Likewise.
2020 * cfgrtl.c: Likewise.
2021 * cgraph.c: Likewise.
2022 * cgraph.h: Likewise.
2023 * cgraphbuild.c: Likewise.
2024 * cgraphunit.c: Likewise.
2025 * cif-code.def: Likewise.
2026 * collect2.c: Likewise.
2027 * combine.c: Likewise.
2028 * convert.c: Likewise.
2029 * coverage.c: Likewise.
2030 * crtstuff.c: Likewise.
2032 * cselib.c: Likewise.
2033 * dbgcnt.c: Likewise.
2034 * dbgcnt.def: Likewise.
2035 * dbgcnt.h: Likewise.
2036 * dbxout.c: Likewise.
2040 * defaults.h: Likewise.
2041 * df-byte-scan.c: Likewise.
2042 * df-core.c: Likewise.
2043 * df-problems.c: Likewise.
2044 * df-scan.c: Likewise.
2047 * diagnostic.c: Likewise.
2048 * diagnostic.h: Likewise.
2049 * dominance.c: Likewise.
2050 * domwalk.c: Likewise.
2051 * double-int.c: Likewise.
2052 * double-int.h: Likewise.
2054 * dwarf2asm.c: Likewise.
2055 * dwarf2asm.h: Likewise.
2056 * dwarf2out.c: Likewise.
2057 * ebitmap.c: Likewise.
2058 * ebitmap.h: Likewise.
2059 * emit-rtl.c: Likewise.
2060 * et-forest.c: Likewise.
2061 * except.c: Likewise.
2062 * except.h: Likewise.
2063 * expmed.c: Likewise.
2066 * final.c: Likewise.
2067 * flags.h: Likewise.
2068 * fold-const.c: Likewise.
2069 * function.c: Likewise.
2070 * function.h: Likewise.
2071 * fwprop.c: Likewise.
2073 * gcov-dump.c: Likewise.
2074 * gcov-io.c: Likewise.
2075 * gcov-io.h: Likewise.
2078 * genattr.c: Likewise.
2079 * genattrtab.c: Likewise.
2080 * genautomata.c: Likewise.
2081 * genchecksum.c: Likewise.
2082 * genconfig.c: Likewise.
2083 * genflags.c: Likewise.
2084 * gengtype-parse.c: Likewise.
2085 * gengtype.c: Likewise.
2086 * gengtype.h: Likewise.
2087 * genmddeps.c: Likewise.
2088 * genmodes.c: Likewise.
2089 * genopinit.c: Likewise.
2090 * genpreds.c: Likewise.
2091 * gensupport.c: Likewise.
2092 * ggc-common.c: Likewise.
2093 * ggc-page.c: Likewise.
2094 * ggc-zone.c: Likewise.
2096 * gimple-iterator.c: Likewise.
2097 * gimple-low.c: Likewise.
2098 * gimple-pretty-print.c: Likewise.
2099 * gimple.c: Likewise.
2100 * gimple.def: Likewise.
2101 * gimple.h: Likewise.
2102 * gimplify.c: Likewise.
2103 * graphds.c: Likewise.
2104 * graphite-clast-to-gimple.c: Likewise.
2105 * gthr-nks.h: Likewise.
2106 * gthr-posix.c: Likewise.
2107 * gthr-posix.h: Likewise.
2108 * gthr-posix95.h: Likewise.
2109 * gthr-single.h: Likewise.
2110 * gthr-tpf.h: Likewise.
2111 * gthr-vxworks.h: Likewise.
2113 * haifa-sched.c: Likewise.
2114 * hard-reg-set.h: Likewise.
2115 * hooks.c: Likewise.
2116 * hooks.h: Likewise.
2117 * hosthooks.h: Likewise.
2118 * hwint.h: Likewise.
2119 * ifcvt.c: Likewise.
2120 * incpath.c: Likewise.
2121 * init-regs.c: Likewise.
2122 * integrate.c: Likewise.
2123 * ipa-cp.c: Likewise.
2124 * ipa-inline.c: Likewise.
2125 * ipa-prop.c: Likewise.
2126 * ipa-pure-const.c: Likewise.
2127 * ipa-reference.c: Likewise.
2128 * ipa-struct-reorg.c: Likewise.
2129 * ipa-struct-reorg.h: Likewise.
2130 * ipa-type-escape.c: Likewise.
2131 * ipa-type-escape.h: Likewise.
2132 * ipa-utils.c: Likewise.
2133 * ipa-utils.h: Likewise.
2135 * ira-build.c: Likewise.
2136 * ira-color.c: Likewise.
2137 * ira-conflicts.c: Likewise.
2138 * ira-costs.c: Likewise.
2139 * ira-emit.c: Likewise.
2140 * ira-int.h: Likewise.
2141 * ira-lives.c: Likewise.
2144 * lambda-code.c: Likewise.
2145 * lambda-mat.c: Likewise.
2146 * lambda-trans.c: Likewise.
2147 * lambda.h: Likewise.
2148 * langhooks.c: Likewise.
2150 * libgcov.c: Likewise.
2151 * lists.c: Likewise.
2152 * loop-doloop.c: Likewise.
2153 * loop-init.c: Likewise.
2154 * loop-invariant.c: Likewise.
2155 * loop-iv.c: Likewise.
2156 * loop-unroll.c: Likewise.
2157 * lower-subreg.c: Likewise.
2158 * lto-cgraph.c: Likewise.
2159 * lto-compress.c: Likewise.
2160 * lto-opts.c: Likewise.
2161 * lto-section-in.c: Likewise.
2162 * lto-section-out.c: Likewise.
2163 * lto-streamer-in.c: Likewise.
2164 * lto-streamer-out.c: Likewise.
2165 * lto-streamer.c: Likewise.
2166 * lto-streamer.h: Likewise.
2167 * lto-symtab.c: Likewise.
2168 * lto-wpa-fixup.c: Likewise.
2169 * matrix-reorg.c: Likewise.
2171 * mode-switching.c: Likewise.
2172 * modulo-sched.c: Likewise.
2173 * omega.c: Likewise.
2174 * omega.h: Likewise.
2175 * omp-low.c: Likewise.
2176 * optabs.c: Likewise.
2177 * optabs.h: Likewise.
2178 * opts-common.c: Likewise.
2180 * params.def: Likewise.
2181 * params.h: Likewise.
2182 * passes.c: Likewise.
2183 * plugin.c: Likewise.
2184 * postreload-gcse.c: Likewise.
2185 * postreload.c: Likewise.
2186 * predict.c: Likewise.
2187 * predict.def: Likewise.
2188 * pretty-print.c: Likewise.
2189 * pretty-print.h: Likewise.
2190 * print-rtl.c: Likewise.
2191 * print-tree.c: Likewise.
2192 * profile.c: Likewise.
2193 * read-rtl.c: Likewise.
2195 * recog.c: Likewise.
2196 * reg-stack.c: Likewise.
2197 * regcprop.c: Likewise.
2198 * reginfo.c: Likewise.
2199 * regmove.c: Likewise.
2200 * regrename.c: Likewise.
2202 * regstat.c: Likewise.
2203 * reload.c: Likewise.
2204 * reload1.c: Likewise.
2205 * resource.c: Likewise.
2207 * rtl.def: Likewise.
2209 * rtlanal.c: Likewise.
2210 * sbitmap.c: Likewise.
2211 * sched-deps.c: Likewise.
2212 * sched-ebb.c: Likewise.
2213 * sched-int.h: Likewise.
2214 * sched-rgn.c: Likewise.
2215 * sched-vis.c: Likewise.
2216 * sdbout.c: Likewise.
2217 * sel-sched-dump.c: Likewise.
2218 * sel-sched-dump.h: Likewise.
2219 * sel-sched-ir.c: Likewise.
2220 * sel-sched-ir.h: Likewise.
2221 * sel-sched.c: Likewise.
2222 * sel-sched.h: Likewise.
2225 * simplify-rtx.c: Likewise.
2226 * stack-ptr-mod.c: Likewise.
2228 * stor-layout.c: Likewise.
2229 * store-motion.c: Likewise.
2230 * stringpool.c: Likewise.
2231 * stub-objc.c: Likewise.
2232 * sync-builtins.def: Likewise.
2233 * target-def.h: Likewise.
2234 * target.h: Likewise.
2235 * targhooks.c: Likewise.
2236 * targhooks.h: Likewise.
2237 * timevar.c: Likewise.
2238 * tlink.c: Likewise.
2239 * toplev.c: Likewise.
2240 * toplev.h: Likewise.
2241 * tracer.c: Likewise.
2242 * tree-affine.c: Likewise.
2243 * tree-affine.h: Likewise.
2244 * tree-browser.def: Likewise.
2245 * tree-call-cdce.c: Likewise.
2246 * tree-cfg.c: Likewise.
2247 * tree-cfgcleanup.c: Likewise.
2248 * tree-chrec.c: Likewise.
2249 * tree-chrec.h: Likewise.
2250 * tree-complex.c: Likewise.
2251 * tree-data-ref.c: Likewise.
2252 * tree-data-ref.h: Likewise.
2253 * tree-dfa.c: Likewise.
2254 * tree-dump.c: Likewise.
2255 * tree-dump.h: Likewise.
2256 * tree-eh.c: Likewise.
2257 * tree-flow-inline.h: Likewise.
2258 * tree-flow.h: Likewise.
2259 * tree-if-conv.c: Likewise.
2260 * tree-inline.c: Likewise.
2261 * tree-into-ssa.c: Likewise.
2262 * tree-loop-distribution.c: Likewise.
2263 * tree-loop-linear.c: Likewise.
2264 * tree-mudflap.c: Likewise.
2265 * tree-nested.c: Likewise.
2266 * tree-nomudflap.c: Likewise.
2267 * tree-nrv.c: Likewise.
2268 * tree-object-size.c: Likewise.
2269 * tree-optimize.c: Likewise.
2270 * tree-outof-ssa.c: Likewise.
2271 * tree-parloops.c: Likewise.
2272 * tree-pass.h: Likewise.
2273 * tree-phinodes.c: Likewise.
2274 * tree-predcom.c: Likewise.
2275 * tree-pretty-print.c: Likewise.
2276 * tree-profile.c: Likewise.
2277 * tree-scalar-evolution.c: Likewise.
2278 * tree-ssa-address.c: Likewise.
2279 * tree-ssa-alias.c: Likewise.
2280 * tree-ssa-ccp.c: Likewise.
2281 * tree-ssa-coalesce.c: Likewise.
2282 * tree-ssa-copy.c: Likewise.
2283 * tree-ssa-copyrename.c: Likewise.
2284 * tree-ssa-dce.c: Likewise.
2285 * tree-ssa-dom.c: Likewise.
2286 * tree-ssa-dse.c: Likewise.
2287 * tree-ssa-forwprop.c: Likewise.
2288 * tree-ssa-ifcombine.c: Likewise.
2289 * tree-ssa-live.c: Likewise.
2290 * tree-ssa-live.h: Likewise.
2291 * tree-ssa-loop-ch.c: Likewise.
2292 * tree-ssa-loop-im.c: Likewise.
2293 * tree-ssa-loop-ivcanon.c: Likewise.
2294 * tree-ssa-loop-ivopts.c: Likewise.
2295 * tree-ssa-loop-manip.c: Likewise.
2296 * tree-ssa-loop-niter.c: Likewise.
2297 * tree-ssa-loop-prefetch.c: Likewise.
2298 * tree-ssa-loop-unswitch.c: Likewise.
2299 * tree-ssa-loop.c: Likewise.
2300 * tree-ssa-math-opts.c: Likewise.
2301 * tree-ssa-operands.c: Likewise.
2302 * tree-ssa-operands.h: Likewise.
2303 * tree-ssa-phiopt.c: Likewise.
2304 * tree-ssa-phiprop.c: Likewise.
2305 * tree-ssa-pre.c: Likewise.
2306 * tree-ssa-propagate.c: Likewise.
2307 * tree-ssa-reassoc.c: Likewise.
2308 * tree-ssa-sccvn.c: Likewise.
2309 * tree-ssa-sink.c: Likewise.
2310 * tree-ssa-structalias.c: Likewise.
2311 * tree-ssa-ter.c: Likewise.
2312 * tree-ssa-threadedge.c: Likewise.
2313 * tree-ssa-threadupdate.c: Likewise.
2314 * tree-ssa-uncprop.c: Likewise.
2315 * tree-ssa.c: Likewise.
2316 * tree-ssanames.c: Likewise.
2317 * tree-switch-conversion.c: Likewise.
2318 * tree-tailcall.c: Likewise.
2319 * tree-vect-data-refs.c: Likewise.
2320 * tree-vect-generic.c: Likewise.
2321 * tree-vect-loop-manip.c: Likewise.
2322 * tree-vect-loop.c: Likewise.
2323 * tree-vect-patterns.c: Likewise.
2324 * tree-vect-slp.c: Likewise.
2325 * tree-vect-stmts.c: Likewise.
2326 * tree-vectorizer.c: Likewise.
2327 * tree-vectorizer.h: Likewise.
2328 * tree-vrp.c: Likewise.
2330 * tree.def: Likewise.
2332 * treestruct.def: Likewise.
2333 * unwind-compat.c: Likewise.
2334 * unwind-dw2-fde-glibc.c: Likewise.
2335 * unwind-dw2.c: Likewise.
2336 * value-prof.c: Likewise.
2337 * value-prof.h: Likewise.
2338 * var-tracking.c: Likewise.
2339 * varasm.c: Likewise.
2340 * varpool.c: Likewise.
2343 * vmsdbgout.c: Likewise.
2345 * xcoffout.c: Likewise.
2347 2009-11-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2349 * pa.c (output_call): Only use sr4 for long interspace calls if
2350 call binds local and generating non PIC code.
2351 (attr_length_call): Adjust length calculation for above.
2353 2009-11-25 Uros Bizjak <ubizjak@gmail.com>
2355 * config/i386/i386.md (plusminus_carry_mnemonic): New code attribute.
2356 (add<mode>3_carry): Change operand order of plus RTX.
2357 (*add<mode>3_carry): Ditto.
2358 (*addsi3_carry_zext): Ditto.
2359 (*add<dwi>3_doubleword): Update for changed operand order.
2360 (*negti2_1 splitter): Ditto.
2361 (*negdi2_1 splitter): Ditto.
2362 (<plusminus_insn><mode>3_carry): Macroize expander from
2363 {add,sub}<mode>3_carry patterns using plusminus code iterator.
2364 (*<plusminus_insn><mode>3_carry): Macroize insn from
2365 *{add,sub}<mode>3_carry patetrns using plusminus code iterator.
2366 (neg<mode>2): Macroize expander from neg{qi,hi,si,di,ti}2
2367 patterns using SDWIM mode iterator.
2368 (*neg<dwi>2_doubleword): New insn_and_split pattern. Macroize
2369 pattern from *neg{di,ti}2_1 patterns and corresponding splitters
2370 using DWIH mode iterator.
2371 (*neg<mode>2_1): Macroize insn from neg{qi,hi,si,di}2_1 patterns
2372 using SWI mode iterator.
2373 (*neg<mode>2_cmpz): Ditto from neg{qi,hi,si,di}2_cmpz patterns.
2374 (one_cmpl<mode>2): Macroize expander from one_cmpl{qi,hi,si,di}2
2375 patterns using SWIM mode iterator.
2376 (*one_cmpl<mode>2_1): Macroize insn from one_cmpl{hi,si,di}2_1
2377 patterns using SWI248 mode iterator.
2378 (*one_cmpl<mode>2_2): Macroize insn from one_cmpl{qi,hi,si,di}2_2
2379 patterns using SWI mode iterator.
2380 (*one_cmpl<mode>2_2 splitter): Macroize splitter from
2381 one_cmpl{qi,hi,si,di}2_2 splitter patterns using SWI mode iterator.
2383 2009-11-24 Michael Matz <matz@suse.de>
2385 * expr.c (set_storage_via_libcall): Fix build_call_expr call.
2387 2009-11-24 David Binderman <dcb314@hotmail.com>
2389 * expr.c (store_field): Remove set but not used local variable
2391 (expand_expr_real_2): Remove treeop2.
2392 * gcse.c (update_ld_motion_stores): Remove new_rtx.
2393 * haifa-sched.c (max_issue): Remove points.
2394 (sched_create_recovery_edges): Remove e.
2395 * ira-costs.c (setup_allocno_cover_class_and_costs): Remove mode.
2397 2009-11-24 Nick Clifton <nickc@redhat.com>
2399 * config/v850/v850.c (function_arg): Fix handling of zero-length
2402 2009-11-24 Michael Matz <matz@suse.de>
2404 * tree.h (union tree_ann_d): Don't declare.
2405 (tree_base): Remove ann field.
2406 (struct var_ann_d): Declare forward.
2407 (tree_result_decl, tree_parm_decl, tree_var_decl): Add ann field.
2408 (DECL_VAR_ANN_PTR): New macro.
2409 * tree-dfa.c (create_var_ann): Rewrite in terms of above macro,
2410 accept only VAR, PARM or RESULT decls.
2411 (create_tree_common_ann): Remove.
2412 (remove_referenced_var): Use DECL_VAR_ANN_PTR.
2413 * tree-eh.c (lookup_expr_eh_lp): Remove.
2414 * tree-flow-inline.h (var_ann, get_var_ann): Rewrite in terms of
2416 (ann_type, tree_common_ann, get_tree_common_ann): Remove.
2417 * tree-flow.h (enum tree_ann_type): Remove.
2418 (struct tree_ann_common_d): Remove.
2419 (struct var_ann_d): Remove common field.
2420 (union tree_ann_d): Remove.
2421 (tree_ann_t, tree_ann_common_t): Remove typedefs.
2422 (tree_common_ann, get_tree_common_ann, ann_type,
2423 create_tree_common_ann, lookup_expr_eh_lp): Don't declare.
2424 * tree-ssa.c (delete_tree_ssa): Use DECL_VAR_ANN_PTR.
2425 * tree.c (copy_node_stat): Use DECL_VAR_ANN_PTR.
2426 * builtins.c (expand_builtin_memcpy): Use
2427 currently_expanding_gimple_stmt instead of tree annotation.
2428 (expand_builtin_memset_args): Ditto.
2429 * cfgexpand.c (currently_expanding_gimple_stmt): Add global variable.
2430 (expand_call_stmt): Don't set tree annotation.
2431 (expand_gimple_basic_block): Set currently_expanding_gimple_stmt.
2432 * expr.c (expand_expr_real): Don't call lookup_expr_eh_lp.
2433 * gimple.h (currently_expanding_gimple_stmt): Declare.
2435 2009-11-24 Paolo Carlini <paolo.carlini@oracle.com>
2437 * dwarf2out.c (add_location_or_const_value_attribute): Remove
2438 useless NOTE_VAR_LOCATION_STATUS call.
2439 * cfgrtl.c (commit_one_edge_insertion): Remove useless loop, tidy.
2441 2009-11-24 Rafael Avila de Espindola <espindola@google.com>
2443 * lto-wrapper.c (lto_wrapper_exit): Don't try to delete files if
2444 being called recursively.
2446 2009-11-24 Basile Starynkevitch <basile@starynkevitch.net>
2448 * Makefile.in (PLUGIN_HEADERS): Added files: cppdefault.h flags.h
2449 $(MD5_H) params.def params.h prefix.h tree-inline.h.
2451 2009-11-24 Paul Brook <paul@codesourcery.com>
2453 * gcc/config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Fix comment
2456 2009-11-24 Julian Brown <julian@codesourcery.com>
2457 Paul Brook <paul@codesourcery.com>
2459 * config/arm/arm.c (TARGET_DWARF_REGISTER_SPAN): Define.
2460 (arm_dwarf_register_span): New function.
2461 (arm_dbx_register_number): Add VFPv3 dwarf numbering.
2463 2009-11-24 David Binderman <dcb314@hotmail.com>
2465 * cfgrtl.c (commit_one_edge_insertion): Remove set but not used
2466 local variable bb_note.
2467 * dominance.c (get_dominated_by): Likewise local var n.
2468 (output_file_names): Likewise local var idx.
2469 (add_location_or_const_value_attribute): Likewise local var status.
2470 * dwarf2out.c (gen_variable_die): Likewise local var field.
2471 * emit-rtl.c (no_line_numbers): Remove.
2472 (init_emit_once): Remove line_numbers parameter.
2473 * rtl.h (init_emit_once): Adjust prototype.
2474 * toplev.c (backend_init): Adjust init_emit_once call.
2476 2009-11-24 Richard Guenther <rguenther@suse.de>
2478 PR tree-optimization/42142
2479 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
2480 Handle iv-dependent (non-)kills properly.
2481 (mark_aliased_reaching_defs_necessary): Pass the basic-block
2482 of the reference statement to mark_aliased_reaching_defs_necessary_1.
2484 2009-11-24 Martin Jambor <mjambor@suse.cz>
2486 PR tree-optimization/42154
2487 * tree-sra.c (struct access): Added comments.
2488 (sra_modify_expr): Build references to the old aggregate with
2489 build_ref_for_offset instead of reusing access->expr.
2490 (load_assign_lhs_subreplacements): Likewise.
2492 2009-11-24 Uros Bizjak <ubizjak@gmail.com>
2494 * config/i386/i386.md (add<mode>3_carry): Change insn pattern
2496 (sub<mode>3_carry): Ditto.
2497 (x86_mov<mode>cc_0_m1): Ditto.
2498 (*add<mode>3_carry): New insn pattern. Use VOIDmode match_operator
2499 for ix86_carry_flag_operator operator predicate.
2500 (*sub<mode>3_carry): Ditto.
2501 (*x86_mov<mode>cc_0_m1): Ditto.
2502 (*addsi3_carry_zext): Use VOIDmode match_operator for
2503 ix86_carry_flag_operator operator predicate.
2504 (*subsi3_carry_zext): Ditto.
2505 (*x86_mov<mode>cc_0_m1_s): Ditto.
2506 (*x86_mov<mode>cc_0_m1_neg): Ditto.
2507 * config/i386/predocates.md (ix86_carry_flag_operator): Do not
2508 check operator sub-expressions for FLAGS_REG and const0_rtx.
2509 * config/i386/i386.c (*ix86_gen_sub3_carry): Update prototype.
2510 (ix86_expand_int_movcc): Update calls to gen_x86_mov{si,di}cc_0_m1.
2511 (ix86_expand_int_addcc): Update calls to
2512 gen_{add,sub}{qi,hi,si,di}3_carry. Do not set mode of compare_op.
2513 (ix86_expand_strlensi_unroll_1): Update calls to ix86_gen_sub3_carry.
2514 Do not set mode of compare operation.
2516 2009-11-23 Jan Hubicka <jh@suse.cz>
2519 * ipa-inline.c (inline_transform): Avoid ICE when transform is called
2522 2009-11-23 Jan Hubicka <jh@suse.cz>
2524 * ipa-cp.c (ipcp_compute_node_scale): Work around completely
2525 wrong profile updates.
2526 * predict.c (counts_to_freqs): Be expected for ENTRY/EXIT block
2527 having largest frequency.
2528 * ira-live.c (ira_implicitly_set_insn_hard_regs): Silecne
2529 used uninitalized warning.
2530 * tree-optimize.c (execute_fixup_cfg): Rescale entry and exit block
2533 2009-11-23 Uros Bizjak <ubizjak@gmail.com>
2535 * config/alpha/alpha.md (*cmp_sadd_sidi): Use gen_lowpart instead
2536 of gen_rtx_REG to generate operand 5.
2537 (*cmp_ssub_sidi): Ditto.
2539 2009-11-23 Richard Henderson <rth@redhat.com>
2541 * config/i386/i386.c (avx_vpermilp_parallel): Fix sign compare
2544 2009-11-23 Paul Brook <paul@codesourcery.com>
2546 * config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Add special
2547 case for noreturn functions.
2548 (arm_compute_save_reg_mask): Remove special noreturn handling.
2550 2009-11-23 Richard Guenther <rguenther@suse.de>
2552 * tree-dfa.c (get_ref_base_and_extent): Adjust maximum access
2553 size for DECL bases.
2555 2009-11-22 Richard Henderson <rth@redhat.com>
2557 * i386.c (avx_vpermilp_parallel): New function.
2558 * i386-protos.h: Declare it.
2559 * predicates.md (avx_vpermilp_v8sf_operand, avx_vpermilp_v4df_operand,
2560 avx_vpermilp_v4sf_operand, avx_vpermilp_v2df_operand): New.
2561 * sse.md (AVXMODEFDP, AVXMODEFSP): New iterators.
2562 (ssescalarnum, ssedoublesizemode): Add AVX modes.
2563 (vpermilbits): Remove.
2564 (avx_vpermil<mode>): Change insns to expanders.
2565 (*avx_vpermil<mode>): New. Use vec_select.
2567 2009-11-22 Richard Earnshaw <rearnsha@arm.com>
2569 * opts.c (decode_options): Don't enable flag_schedule_insns
2570 when optimizing for size.
2571 * doc/invoke.texi: Document change.
2573 2009-11-22 Uros Bizjak <ubizjak@gmail.com>
2576 * config/alpha/alpha.md (*cmp_sadd_si): Change mode
2577 of scratch register to SImode.
2578 (*cmp_sadd_sidi): Ditto.
2579 (*cmp_ssub_si): Ditto.
2580 (*cmp_ssub_sidi): Ditto.
2582 2009-11-21 Ian Lance Taylor <iant@google.com>
2584 * Makefile.in (HOST_LIBS): Move higher in file.
2585 (LINKER, LINKER_FLAGS): If ENABLE_BUILD_WITH_CXX, but $(HOST_LIBS)
2586 is not empty, set to $(CC) and $(CFLAGS).
2588 2009-11-22 Martin Jambor <mjambor@suse.cz>
2590 * tree-cfg.c (verify_types_in_gimple_reference): Error out on
2591 V_C_E of an SSA_NAME or an invariant if lvalue is required.
2592 (verify_gimple_call): Verify LHS also with with
2593 verify_types_in_gimple_reference.
2595 2009-11-21 Martin Jambor <mjambor@suse.cz>
2598 * tree-sra.c (access_precludes_ipa_sra_p): New function.
2599 (splice_param_accesses): Check all accesses by calling
2600 access_precludes_ipa_sra_p.
2601 (sra_ipa_modify_expr): Rename argument erite to dont_convert and do
2602 not convert types if it is true.
2603 (sra_ipa_modify_assign): Convert types in case of mismatch.
2605 2009-11-21 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
2607 * config/sh/sh.md (cmpeqsi_t-1): Use logical_operand predicate
2610 2009-11-21 Adam Nemet <adambnemet@gmail.com>
2612 * config/mips/mips-protos.h (mulsidi3_gen_fn): New typedef.
2613 (mips_mulsidi3_gen_fn): Declare new function.
2614 * config/mips/mips.c (mips_mulsidi3_gen_fn): New function.
2615 * config/mips/mips.md (<u>mulsidi3): Change condition to use
2616 mips_mulsidi3_gen_fn. Use mips_mulsidi3_gen_fn to generate the insn.
2617 (<u>mulsidi3_64bit): Don't match for ISA_HAS_DMUL3.
2618 (mulsidi3_64bit_dmul): New define_insn.
2620 2009-11-21 Ben Elliston <bje@au.ibm.com>
2622 * gengtype-lex.l: Enable noinput flex option.
2623 (YY_NO_INPUT): Remove define.
2625 2009-11-21 Alexandre Oliva <aoliva@redhat.com>
2627 * tree-ssa.c (find_released_ssa_name): Handle NULL wi.
2628 (insert_debug_temp_for_var_def): Handle degenerate PHI nodes.
2629 (insert_debug_temps_for_defs): Handle PHI nodes.
2630 * tree-ssa-dom.c (degenerate_phi_result): Don't crash on released
2633 2009-11-21 Alexandre Oliva <aoliva@redhat.com>
2635 * tree-ssa-pre.c (remove_dead_inserted_code): Don't release_defs
2636 after remove_phi_node.
2638 2009-11-21 Alexandre Oliva <aoliva@redhat.com>
2640 PR tree-optimization/42078
2641 * gimple.h (gimple_replace_lhs): New declaration.
2642 * gimple.c (gimple_replace_lhs): New function.
2643 * tree-ssa-math-opts.c (execute_cse_reciprocals): Call it before
2646 2009-11-20 Sebastian Pop <sebastian.pop@amd.com>
2648 * config/i386/sse.md (*xop_pmacsdql_mem): Don't call reg_mentioned_p.
2649 (xop_mulv2div2di3_low): Same.
2650 (*xop_pmacsdqh_mem): Same.
2652 2009-11-20 Richard Henderson <rth@redhat.com>
2654 * config/i386/i386-builtin-types.awk: New file.
2655 * config/i386/i386-builtin-types.def: New file.
2656 * config/i386/t-i386: Use them to build i386-builtin-types.inc.
2657 * config/i386/i386.c: Include it.
2658 (ix86_builtin_type_tab, ix86_get_builtin_type): New.
2659 (ix86_builtin_func_type_tab, ix86_get_builtin_func_type): New.
2660 (struct builtin_isa): Remove GTY marker. Replace tree type with
2661 ix86_builtin_func_type; add set_and_not_built_p.
2662 (def_builtin): Change type parameter to tcode; use
2663 ix86_get_builtin_func_type; update all callers. Accept zero mask
2664 to mean the builtin is unconditionally available.
2665 (ix86_add_new_builtins): Use set_and_not_built_p instead of type
2667 (enum ix86_special_builtin_type, enum ix86_builtin_type): Remove.
2668 Update some users to rationalized enumeration codes from new include.
2669 (enum multi_arg_type): Remove. Replace all enumeration values
2670 with defines to new ix86_builtin_func_type.
2671 (ix86_init_mmx_sse_builtins): Don't build any types here. Defer
2672 all type resolution to def_builtin.
2673 (ix86_init_builtin_types): Split out from ...
2674 (ix86_init_builtins): ... here. Use ix86_get_builtin_func_type.
2676 2009-11-20 Michael Meissner <meissner@linux.vnet.ibm.com>
2679 * config/rs6000/rs6000.c (struct machine_function): Revert
2680 2009-10-23 change to set VRSAVE to non-0 if we use VSX.
2681 (rs6000_expand_to_rtl_hook): Ditto.
2682 (rs6000_check_vector_mode): Ditto.
2683 (compute_vrsave_mask): Ditto.
2685 2009-11-20 Paul Brook <paul@codesourcery.com>
2687 * doc/invoke.texi: Document ARM -mcpu=cortex-a5.
2688 * config/arm/arm-cores.def: Add cortex-a5.
2689 * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a5.
2690 * config/arm/arm-tune.md: Regenerate.
2692 2009-11-20 Olga Golovanevsky <olga@il.ibm.com>
2695 * ipa-struct-reorg.c (find_pos_in_stmt): New parameter.
2696 (ref_pos): New field in structure.
2697 (insert_new_var_in_stmt): New function.
2700 2009-11-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2702 * config.gcc (alpha*-dec-osf[45]*): Set use_gcc_stdint.
2703 * config/alpha/osf.h (SIG_ATOMIC_TYPE): Define.
2704 (INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE): Define.
2705 (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
2706 (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
2707 INT_LEAST64_TYPE): Define.
2708 (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
2709 UINT_LEAST64_TYPE): Define.
2710 (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
2711 INT_FAST64_TYPE): Define.
2712 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
2713 UINT_FAST64_TYPE): Define.
2714 (INTPTR_TYPE, UINTPTR_TYPE): Define.
2716 2009-11-20 Julian Brown <julian@codesourcery.com>
2718 * config/arm/arm.h (ASM_OUTPUT_REG_PUSH): Handle STATIC_CHAIN_REGNUM
2719 specially for Thumb-1.
2720 (ASM_OUTPUT_REG_POP): Likewise.
2722 2009-11-19 Jason Merrill <jason@redhat.com>
2724 * dwarf2out.c (get_context_die): Take TYPE_MAIN_VARIANT.
2726 2009-11-19 Basile Starynkevitch <basile@starynkevitch.net>
2727 Rafael Avila de Espindola <espindola@google.com>
2729 * doc/plugins.texi (Plugin initialization): Added advices for
2730 retrieving the version of GCC at plugin compilation and loading times.
2732 2009-11-19 Basile Starynkevitch <basile@starynkevitch.net>
2734 * plugin.c (FMT_FOR_PLUGIN_EVENT): added definition.
2735 (dump_active_plugins): output to file everything. Use
2736 internationalized dump & FMT_FOR_PLUGIN_EVENT.
2738 2009-11-19 Richard Guenther <rguenther@suse.de>
2740 * gimple.c (canonicalize_cond_expr_cond): Strip conversions
2741 around truth-valued expressions.
2742 * tree.c (free_lang_data): Untangle check for LTO frontend.
2744 2009-11-19 Jakub Jelinek <jakub@redhat.com>
2746 * tree.c (need_assembler_name_p): Use cgraph_get_node instead
2747 of cgraph_node_for_decl.
2748 * cgraph.h (cgraph_node_for_decl): Remove prototype.
2749 * cgraph.c (cgraph_node_for_decl): Remove.
2750 (cgraph_get_node): Just return NULL if !cgraph_hash.
2752 2009-11-19 Paul Brook <paul@codesourcery.com>
2754 * config.gcc: Add new ARM --with-fpu options.
2755 * doc/invoke.texi: Docuent ARM -mfpu=fpv4-sp-d16.
2756 * config/arm/arm.c (all_fpus): Add fpv4-sp-d16.
2758 2009-11-18 Richard Guenther <rguenther@suse.de>
2760 * gimple.h (union gimple_statement_d): Add gsmembase member.
2761 (gimple_vuse_op): Use gsmembase for access.
2762 (gimple_vdef_op): Likewise.
2763 (gimple_vuse): Likewise.
2764 (gimple_vdef): Likewise.
2765 (gimple_vuse_ptr): Likewise.
2766 (gimple_vdef_ptr): Likewise.
2767 (gimple_set_vuse): Likewise.
2768 (gimple_set_vdef): Likewise.
2769 * gsstruct.def (GSS_WITH_MEM_OPS_BASE): Add.
2771 2009-11-18 Daniel Jacobowitz <dan@codesourcery.com>
2773 * doc/arm-neon-intrinsics.texi: Regenerated.
2775 2009-11-18 Daniel Jacobowitz <dan@codesourcery.com>
2777 * config/arm/neon-docgen.ml (analyze_shape_elt): Handle alternatives.
2779 2009-11-18 Paul Brook <paul@codesourcery.com>
2780 Daniel Jacobowitz <dan@codesourcery.com>
2782 * config/arm/arm.c (FL_ARCH7EM, FL_FOR_ARCH7EM): Define.
2783 (arm_arch7em): New variable.
2784 (all_architectures): Add armv7e-m.
2785 (arm_override_options): Set arm_arch7em.
2786 * config/arm/arm.h (TARGET_DSP_MULTIPLY, TARGET_INT_SIMD):
2787 Include arm_arch7em.
2788 (arm_arch7em): Declare.
2790 2009-11-18 Richard Guenther <rguenther@suse.de>
2792 * lto-streamer-in.c (input_gimple_stmt): Assert that we find
2793 a valid field decl if checking is enabled.
2795 2009-11-18 Martin Jambor <mjambor@suse.cz>
2797 * ipa-prop.h (struct ipa_param_call_note): New field lto_stmt_uid.
2798 (lto_ipa_fixup_call_notes): Declare.
2799 * ipa-prop.c (ipa_note_param_call): Store gimple uid.
2800 (update_call_notes_after_inlining): Copy call stmt uid to the new
2802 (ipa_write_param_call_note): New function.
2803 (ipa_read_param_call_note): New function
2804 (ipa_write_node_info): Write also param call notes. Removed a bogus
2805 comment, reformatted to fit 80 columns.
2806 (ipa_read_node_info): Read also param call notes. Removed a bogus
2807 comment. Remove ipa_edge_args_vector growth.
2808 (lto_ipa_fixup_call_notes): New function.
2809 * ipa-cp.c (pass_ipa_cp): Add stmt_fixup hook.
2810 * ipa-inline.c (cgraph_mark_inline_edge): Perform indirect
2811 inlining regardless of flag_wpa.
2812 (cgraph_decide_inlining_of_small_functions): Likewise.
2813 (cgraph_decide_inlining): Likewise.
2814 (inline_read_summary): Likewise.
2816 2009-11-18 Jan Hubicka <jh@suse.cz>
2818 * predict.c (compute_function_frequency): Export.
2819 * predict.h (compute_function_frequency): Declare.
2820 * tree-optimize.c (execute_fixup_cfg): Rescale frequencies.
2822 2009-11-18 Martin Jambor <mjambor@suse.cz>
2824 * passes.c (ipa_write_summaries): Call renumber_gimple_stmt_uids
2825 on all nodes we write summaries for.
2827 2009-11-18 Shujing Zhao <pearly.zhao@oracle.com>
2830 * params.def (PARAM_INLINE_UNIT_GROWTH, PARAM_IPCP_UNIT_GROWTH)
2831 (PARAM_EARLY_INLINING_INSNS, PARAM_IRA_MAX_LOOPS_NUM)
2832 (PARAM_IRA_MAX_CONFLICT_TABLE_SIZE)
2833 (PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP)
2834 (PARAM_MIN_INSN_TO_PREFETCH_RATIO)
2835 (PARAM_PREFETCH_MIN_INSN_TO_MEM_RATIO)
2836 (PARAM_IPA_SRA_PTR_GROWTH_FACTOR): Uppercase the first letter of the
2839 2009-11-18 Jakub Jelinek <jakub@redhat.com>
2841 * dwarf2out.c (loc_list_from_tree): Don't call rtl_for_decl_location
2843 (rtl_for_decl_location): Try harder to get a rtl for TREE_STATIC vars.
2846 * cgraph.h (struct cgraph_node): Add same_body and same_body_alias
2848 (cgraph_same_body_alias, cgraph_remove_same_body_alias): New
2850 * cgraphunit.c (cgraph_expand_function, cgraph_emit_thunks,
2851 cgraph_materialize_all_clones): Handle same_body aliases.
2852 * cgraph.c (cgraph_allocate_node): New function.
2853 (cgraph_create_node): Use it.
2854 (cgraph_node_for_decl, cgraph_node, cgraph_get_node,
2855 cgraph_node_for_asm, cgraph_remove_node): Handle same_body aliases.
2856 (cgraph_same_body_alias, cgraph_remove_same_body_alias): New
2858 * lto-cgraph.c (lto_output_node): Stream out same_body aliases.
2859 (input_node): Stream in same_body aliases.
2860 * lto-symtab.c (lto_cgraph_replace_node): Clear node pointers
2861 for same_body aliases.
2862 (lto_symtab_merge_cgraph_nodes_1): Handle same_body aliases.
2864 2009-11-18 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
2867 * config/darwin.h: Use the extension stub libraries to access
2868 current libgcc_s features.
2870 2009-11-18 Alexandre Oliva <aoliva@redhat.com>
2873 * tree-vect-loop.c (vect_loop_kill_debug_uses): New.
2874 (vect_transform_loop): Call it.
2876 2009-11-18 Alexandre Oliva <aoliva@redhat.com>
2878 * tree-ssa.c (insert_debug_temp_for_var_def): Fix handling of
2881 2009-11-18 Alexandre Oliva <aoliva@redhat.com>
2885 * graphite-scop-detection.c (stmt_simple_for_scop_p): Debug stmts
2887 * graphite-sese-to-poly.c (graphite_stmt_p): Likewise.
2888 (try_generate_gimple_bb): Skip debug stmts when finding data refs.
2889 * sese.c (sese_build_liveouts_bb): Skip debug stmts.
2890 (sese_bad_liveouts_use): New.
2891 (sese_reset_debug_liveouts_bb): New.
2892 (sese_build_liveouts): Use it.
2893 (rename_variables_in_stmt): Reset debug stmts rather than creating
2895 (expand_scalar_variable_stmt): Likewise.
2897 2009-11-18 Alexandre Oliva <aoliva@redhat.com>
2899 * df-scan.c (df_ref_create): Don't mark BB as dirty on debug insns.
2900 (df_ref_remove): Likewise.
2902 2009-11-17 Jan Hubicka <jh@suse.cz>
2904 * ipa-struct-reorg.c (update_cgraph_with_malloc_call): Fix profile
2907 2009-11-17 Eric Botcazou <ebotcazou@adacore.com>
2909 * toplev.c (process_options): Remove dead code.
2910 * doc/invoke.texi (-frename-registers): Mention -fpeel-loops.
2912 2009-11-17 Rafael Avila de Espindola <espindola@google.com>
2914 * lto-symtab.c (lto_symtab_resolve_symbols): Always initialize the
2917 2009-11-17 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2919 PR tree-optimization/41857
2920 * tree-ssa-address.c (move_hint_to_base): Use void pointer to
2921 TYPE's address space instead of pointer to TYPE.
2923 2009-11-17 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2925 * reload.c (find_reloads_address): Fix typo.
2927 2009-11-17 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2929 * config/spu/spu.c (get_pic_reg): Use LAST_ARG_REGNUM as PIC
2930 registers in leaf functions if possible.
2932 2009-11-17 Maxim Kuvyrkov <maxim@codesourcery.com>
2934 * config/m68k/m68k-devices.def: Add MCF5441x family.
2936 2009-11-17 Jan Hubicka <jh@suse.cz>
2938 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not access
2940 * cgraphunit.c (verify_cgraph_node): Verify frequencies for match.
2942 2009-11-17 Uros Bizjak <ubizjak@gmail.com>
2944 * config/i386/predicates.md (x86_64_szext_general_operand): Do not
2945 nest ior expressions.
2946 (x86_64_szext_nonmemory_operand): Ditto.
2947 (call_insn_operand): Ditto.
2949 2009-11-16 Alexandre Oliva <aoliva@redhat.com>
2951 * stmt.c (expand_asm_stmt): Get locus from stmt.
2953 2009-11-16 Alexandre Oliva <aoliva@redhat.com>
2955 * tree-cfg.c (gimple_redirect_edge_and_branch) <case GIMPLE_ASM>:
2956 Create the decl label for the new dest block on demand. Require
2957 a fallthrough edge if no asm labels were redirected.
2959 2009-11-16 Uros Bizjak <ubizjak@gmail.com>
2961 * config/i386/i386.md (cbranchsi4): Use nonimmediate_operand for
2962 operand 1 predicate.
2963 (cstoresi4): Ditto for operand 2.
2964 (cbranch<mode>4): Macroize expander from cbranch{qi,hi,si,di,ti}4
2965 patterns using SDWIM mode iterator.
2966 (cstore<mode>4): Macroize expander from cstore{qi,hi,si,di}4 patterns
2967 using SWIM mode iterator.
2968 (cmpdi_1): Rename from cmpdi_1_rex64.
2969 (cmp<mode>_1): Macroize expander from cmp{si,di}_1 patterns using
2970 SWI48 mode iterator.
2971 (*cmp<mode>_1): Macroize insn from *cmp{qi,hi,si,di}_1_insn patterns
2972 using SWI mode iterator.
2973 (*cmp<mode>_ccno_1): Ditto from *cmp{qi,hi,si,di}_ccno_1.
2974 (*cmp<mode>_minus_1): Ditto from *cmp{qi,hi,si,di}_minus_1.
2975 (*cmpqi_ext_3_insn): Make private.
2976 (*cmpqi_ext_3_insn_rex64): Make private.
2977 (cmpstrnsi): Update for renamed cmpdi_1_rex64.
2978 * config/i386/predicates.md (cmpsi_operand): Remove.
2980 2009-11-16 Paul Brook <paul@codesourcery.com>
2982 * doc/invoke.texi: Document ARM VFPv4 based FPUs.
2983 * config/arm/arm.c (all_fpus): Add VFPv4 entries.
2985 2009-11-14 Jan Hubicka <jh@suse.cz>
2987 * cgraphbuild.c (compute_call_stmt_bb_frequency): Use proper
2989 * cgraph.c (cgraph_clone_edge): Avoid freq_scale 0 to completely
2990 zero out all callees.
2991 * cgraphunit.c (verify_cgraph_node): Verify cgraph nodes for
2992 frequency and count match.
2993 * ipa-inline.c (update_noncloned_frequencies): New function.
2994 (cgraph_clone_inlined_nodes): Use it.
2995 * tree-inline.c (copy_bb): Fix frequency scaling; output
2996 diagnostic on frequency mismatches to dump file.
2997 (initialize_cfun): Do not scale frequency; fix count scaling;
2998 initialize entry and exit block frequencies; copy profile info.
2999 (copy_cfg_body): Use frequency_scale as argument; fix count scaling.
3000 (copy_body): Use frequency_scale as argument.
3001 (expand_call_inline): Compute frequency scale and output diagnostic
3003 (delete_unreachable_blocks_update_callgrah): Remove checking that
3004 has to be done after edge redirection.
3005 (tree_function_versioning): Update initialize_cfun and copy_body call.
3007 2009-11-14 Jan Hubicka <jh@suse.cz>
3009 * cgraph.c (cgraph_release_function_body): Update use of
3010 ipa_transforms_to_apply.
3011 (cgraph_remove_node): Remove ipa_transforms_to_apply.
3012 * cgraph.h (struct cgraph_node): Add ipa_transforms_to_apply.
3013 * cgraphunit.c (save_inline_function_body): Clear ipa_transforms for
3015 (cgraph_materialize_clone): Remove original if dead.
3016 * lto-streamer-in.c (lto_read_body): Remove FIXME and
3017 ipa_transforms_to_apply hack.
3018 * function.h (struct function): Add ipa_transforms_to_apply.
3019 * ipa.c (cgraph_remove_unreachable_nodes): Handle dead clone originals.
3020 * tree-inline.c (copy_bb): Update sanity check.
3021 (initialize_cfun): Do not copy ipa_transforms_to_apply.
3022 (expand_call_inline): remove dead clone originals.
3023 (tree_function_versioning): Merge transformation queues.
3024 * passes.c (add_ipa_transform_pass): Remove.
3025 (execute_one_ipa_transform_pass): Update ipa_transforms_to_apply
3027 (execute_all_ipa_transforms): Update.
3028 (execute_one_pass): Update.
3030 2009-11-14 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
3032 PR target/21078, 21080
3033 * config/avr/avr.c (avr_return_addr_rtx): New function for
3034 builtin_return_address.
3035 (expand_prologue): Calculate stack usage.
3036 (avr_asm_function_end_prologue): Output stack size and offset label.
3037 * config/avr/avr.h (RETURN_ADDR_RTX): Replace.
3038 (machine_function): Add stack_usage.
3039 * config/avr/avr-protos.h (avr_return_addr_rtx): New function.
3041 2009-11-14 Anatoly Sokolov <aesok@post.ru>
3043 * config/iq2000/iq2000.c (iq2000_function_value): Make static, add
3044 new 'outgoing' argument.
3045 (iq2000_libcall_value, iq2000_function_value_regno_p): New functions.
3046 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
3047 * config/iq2000/iq2000.h (FUNCTION_VALUE_REGNO_P): Redefine, use
3048 iq2000_function_value_regno_p.
3049 (FUNCTION_VALUE, LIBCALL_VALUE): Remove.
3050 * config/iq2000/iq2000-protos.h (iq2000_function_value_regno_p):
3053 2009-11-14 Richard Earnshaw <rearnsha@arm.com>
3056 * arm.md (adddi_sesidi_di): Place tied contraint first.
3057 (adddi_zesidi_di, subdi_di_zesidi, subdi_di_sesidi): Likewise
3058 (subdi_zesidi_di, subdi_sesidi_di): Likewise.
3059 (mulsi3_compare0, mulsi_compare0_scratch): Likewise.
3060 (mulsi3addsi, mulsi3addsi_compare0): Likewise.
3061 (mulsi3addsi_compare0_scratch, smulsi3_highpart_nov6): Likewise.
3062 (umulsi3_highpart_nov6, anddi_zesidi_di, anddi_sesdi_di): Likewise.
3063 (anddi_notdi_di, iordi_sesidi_di, xordi_sesidi_di): Likewise.
3064 (andsi_iorsi3_notsi, arm_ashldi3_1bit, arm_ashrdi3_1_bit): Likewise.
3065 (arm_lshrdi3_1bit, one_cmpldi2): Likewise.
3067 2009-11-14 Uros Bizjak <ubizjak@gmail.com>
3069 * config/i386/predicates.md (call_register_no_elim_operand):
3070 New predicate. Reject stack register as valid call operand
3072 (call_insn_operand): Use call_register_no_elim_operand.
3074 2009-11-13 Richard Henderson <rth@redhat.com>
3076 * function.c (stack_protect_prologue): Don't bypass expand_expr
3077 for stack_protect_guard and guard_decl.
3078 (stack_protect_epilogue): Likewise.
3080 2009-11-13 Jan Hubicka <jh@suse.cz>
3082 * ipa.c (function_and_variable_visibility): Clear COMDAT on functions
3083 when to PUBLIC is set.
3085 2009-11-13 Jakub Jelinek <jakub@redhat.com>
3088 * gimplify.c (gimplify_omp_atomic): Set DECL_GIMPLE_REG_P on
3091 2009-11-13 Uros Bizjak <ubizjak@gmail.com>
3094 * config/i386/i386.md (*call_pop_1, *call_1, *call_value_pop_1,
3095 *call_value_1): Use "lsm" as operand 1 constraint.
3096 * config/i386/predicates.md (call_insn_operand): Depend on
3097 index_register_operand to avoid %esp register.
3099 2009-11-13 Uros Bizjak <ubizjak@gmail.com>
3102 2009-11-03 Uros Bizjak <ubizjak@gmail.com>
3105 * config/i386/i386.h (ix86_arch_indices) <X86_ARCH_CALL_ESP>: New.
3106 (TARGET_CALL_ESP): New define.
3107 * config/i386/i386.c (initial_ix86_tune_features): Initialize
3109 * config/i386/i386.md (*call_pop_1_esp, *call_1_esp,
3110 *call_value_pop_1_esp, *call_value_1_esp): Rename from *call_pop_1,
3111 *call_1, *call_value_pop_1 and *call_value_1. Depend on
3113 (*call_pop_1, *call_1, *call_value_pop_1, *call_value_1):
3114 New patterns, use "lsm" as operand 1 constraint.
3115 * config/i386/predicates.md (call_insn_operand): Depend on
3116 index_register_operand for !TARGET_CALL_ESP to avoid %esp register.
3118 2009-11-13 Jason Merrill <jason@redhat.com>
3121 * dwarf2out.c (gen_variable_die): Don't worry about DECL_COMDAT.
3122 Don't emit a second declaration at any scope.
3124 2009-11-13 Andrey Belevantsev <abel@ispras.ru>
3126 PR rtl-optimization/41697
3127 * sel-sched-ir.c (fallthru_bb_of_jump): Bail out when a block with
3128 a conditional jump has a single successor.
3130 2009-11-13 Andrey Belevantsev <abel@ispras.ru>
3132 * sched-deps.c (init_deps): New parameter lazy_reg_last. Don't
3133 allocate reg_last when in case lazy_reg_last is true.
3134 (init_deps_reg_last): New.
3135 (free_deps): When max_reg is 0, this context is already freed.
3136 * sched-int.h (init_deps_reg_last): Export.
3137 (init_deps): Update prototype.
3138 * sched-ebb.c (schedule_ebb): Update the call to init_deps.
3139 * sched-rgn.c (sched_rgn_compute_dependencies): Likewise.
3140 * ddg.c (build_intra_loop_deps): Likewise.
3141 * sel-sched-ir.c (copy_deps_context, create_deps_context,
3142 reset_deps_context, deps_init_id): Likewise.
3143 (init_first_time_insn_data): Lazy allocate INSN_DEPS_CONTEXT.
3144 (free_data_for_scheduled_insn): New, break down from ...
3145 (free_first_time_insn_data): ... here.
3146 (has_dependence_p): Allocate reg_last now, when it is needed.
3147 (extend_insn_data): When maximal LUID is big enough, allocate
3148 per-insn data in smaller chunks.
3149 * sel-sched-ir.h (free_data_for_scheduled_insn): Export.
3150 * sel-sched.c (update_seqnos_and_stage): Free INSN_DEPS_CONTEXT
3153 2009-11-13 Uros Bizjak <ubizjak@gmail.com>
3155 * config/i386/i386.md (call_value): Fix comment.
3156 (sibcall_value): Ditto.
3158 2009-11-13 Eric Botcazou <ebotcazou@adacore.com>
3160 * config/i386/linux-unwind.h (x86_frob_update_context): New function.
3161 (MD_FROB_UPDATE_CONTEXT): Define.
3163 2009-11-12 Eric Botcazou <ebotcazou@adacore.com>
3164 Laurent GUERBY <laurent@guerby.net>
3166 * config/sparc/linux-unwind.h (sparc64_fallback_frame_state): Tidy.
3167 Do not schedule an %sp restore. Compensate for RETURN_ADDR_OFFSET.
3168 (sparc_fallback_frame_state): Tidy. Compensate for RETURN_ADDR_OFFSET.
3170 2009-11-12 Jan Hubicka <jh@suse.cz>
3172 * ipa.c (function_and_variable_visibility): Fix my accidentail commit
3173 and clear DECL_COMMON on localized declarations.
3175 2009-11-12 Bernd Schmidt <bernd.schmidt@analog.com>
3178 * regrename.c (struct du_head): New structure; some elements moved
3180 (struct du_chain): ... this one.
3181 (open_chains, closed_chains): Now of type struct du_head *.
3182 (do_replace): Accept du_head argument, not du_chain. All callers
3183 changed. Modified code to match new data structures.
3184 (build_def_use): Return a list of du_head structures. Modified code
3185 to match new data structures.
3186 (dump_def_use_chain): Accept du_head argument, not du_chain. All
3187 callers changed. Modified code to match new data structures.
3188 (merge_overlapping_regs): Accept du_head argument, not du_chain. All
3189 callers changed. Modified code to match new data structures.
3190 (scan_rtx_reg): Change type of this_regno and this_nregs to unsigned.
3191 Allocate a du_head structure as well as a du_chain when creating a
3192 new chain. Modified other code to match new data structures.
3194 2009-11-12 Jan Hubicka <jh@suse.cz>
3196 * cgraph.h (varpool_node_name): Declare.
3197 * cgraphunit.c (process_function_and_variable_attributes): Set
3198 force_output flag on used variables.
3199 * ipa.c (function_and_variable_visibility): Dump externally visible
3200 and needed variables.
3201 * varpool.c (varpool_node_name): Export.
3202 (decide_is_variable_needed): Check COMDAT for externally visible vars;
3205 2009-11-12 Uros Bizjak <ubizjak@gmail.com>
3208 * simplify-rtx.c (simplify_replace_fn_rtx) <case 'e'>: Skip
3209 processing if XEXP (x, i) is NULL.
3211 2009-11-12 Jan Hubicka <jh@suse.cz>
3213 * ipa.c (function_and_variable_visibility): Verify that WEAK || COMMON
3214 imply PUBLIC || EXTERNAL.
3216 2009-11-11 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
3219 * cfgexpand.c (expand_gimple_basic_block): Append NOP to a fallthru,
3220 single successor block, ending with jump created by RTL expander.
3222 2009-11-11 Jan Hubicka <jh@suse.cz>
3225 * ipa.c (function_and_variable_visibility): Do not privatize COMDAT
3226 and WEAK variables at -fwhole-program.
3229 * ipa.c (whole_program_function_and_variable_visility): COMDAT
3230 functions/variables are not needed even if they are externally visible.
3232 2009-11-11 Jan Hubicka <jh@suse.cz>
3234 (patch by Richard Guenther)
3235 * lto-streamer-out.c (output_function): Output head of argument list
3237 * lto-streamer-in.c (input_function): Re-map arguments into merged
3240 2009-11-11 Jan Hubicka <jh@suse.cz>
3242 * lto-cgraph.c: Include gcov-io.h
3243 (output_profile_summary): New function.
3244 (output_cgraph): Use it.
3245 (input_profile_summary): New function.
3246 (input_cgraph): Use it.
3247 * coverage.c (build_ctr_info_value): Use varpool; initalize
3248 DECL_ASSEMBLER_NAME.
3249 (create_coverage): Likewise.
3250 * tree-profile.c (tree_init_ic_make_global_vars): Likewise.
3251 (tree_init_edge_profiler): Likewise.
3252 * Makefile.in (lto-cgraph.o): Add dependency on gcov-io.h.
3254 2009-11-11 Kai Tietz <kai.tietz@onevision.com>
3256 * config/i386/cygming.h (HANDLE_PRAGMA_PUSH_POP_MACRO): Removed.
3257 * c-pragma.c (def_pragma_macro_value): Likewise.
3258 (def_pragma_macro): Likewise.
3259 (pushed_macro_table): Likewise.
3260 (HANDLE_PRAGMA_PUSH_POP_MACRO): Remove guarded code.
3261 * doc/tm.texi (HANDLE_PRAGMA_PUSH_POP_MACRO): Removed.
3263 2009-11-11 Basile Starynkevitch <basile@starynkevitch.net>
3265 * doc/plugins.texi (Registering custom attributes): section
3266 renamed as (Registering custom attributes or pragmas).
3267 Mentions custom attributes & pragmas, and c_register_pragma, with
3269 * doc/cpp.texi (Pragmas): Mentions that plugins can provide their
3271 * doc/extend.texi (Function Attributes): Mentions that plugin can
3272 provide their attributes.
3274 2009-11-11 Jon Beniston <jon@beniston.com>
3276 * config.gcc: Add lm32 elf and uclinux targets.
3277 * config/lm32: New directory.
3278 * config/lm32/lm32.c: New file.
3279 * config/lm32/lm32.h: New file.
3280 * config/lm32/lm32.md: New file.
3281 * config/lm32/lm32.opt: New file.
3282 * config/lm32/lm32-protos.h: New file.
3283 * config/lm32/constraints.md: New file.
3284 * config/lm32/predicates.md: New file.
3285 * config/lm32/sfp-machine.h: New file.
3286 * config/lm32/t-fprules-softfp: New file.
3287 * config/lm32/uclinux-elf.h: New file.
3288 * doc/invoke.texi: Document lm32 options.
3289 * doc/contrib.texi: Document lm32 porter.
3290 * doc/install.texi: Document lm32 targets.
3292 2009-11-11 Martin Jambor <mjambor@suse.cz>
3295 * ipa-prop.c (ipa_update_after_lto_read): Call
3296 ipa_check_create_node_params and ipa_check_create_edge_args. Also
3297 call ipa_initialize_node_params instead of ipa_populate_param_decls.
3299 2009-11-11 Daniel Jacobowitz <dan@codesourcery.com>
3301 * config/arm/arm.c (neon_vdup_constant, neon_make_constant): New.
3302 (neon_expand_vector_init): Use them. Also handle non-constant
3303 vectors with identical elements and vectors with only one
3304 non-constant element.
3305 (arm_print_operand): Handle 'y' modifier.
3306 * config/arm/arm-protos.h (neon_make_constant): Declare.
3307 * config/arm/neon.md (neon_vdup_n<mode>): Split into two
3308 patterns. Use VX instead of VDQW for the first one. Allow
3309 a VFP alternative and V32 modes for the second one.
3310 * config/arm/neon.ml (shape_elt): Add Alternatives.
3311 (ops): Use Alternatives for vdup lane instructions.
3312 * config/arm/neon-testgen.ml (analyze_shape): Handle Alternatives.
3313 * config/arm/vec-common.md (mov<mode>): Use neon_make_constant.
3315 2009-11-11 Daniel Jacobowitz <dan@codesourcery.com>
3317 * config/arm/neon.md (*neon_mov<mode>): Reject two non-register
3319 (movti, mov<mode>): Call force_reg on one operand if required.
3320 * config/arm/vec-common.md (mov<mode>): Likewise.
3322 2009-11-11 Daniel Jacobowitz <dan@codesourcery.com>
3324 * config/arm/arm.c (arm_override_options): Enable scheduling for
3327 2009-11-10 Eric Botcazou <ebotcazou@adacore.com>
3331 * expr.h (anti_adjust_stack_and_probe): Declare.
3332 * explow.c (anti_adjust_stack_and_probe): Make global, add ADJUST_BACK
3333 parameter and rewrite head comment.
3334 (allocate_dynamic_stack_space): Adjust call to above function.
3335 * function.c (expand_function_end): Handle STACK_CHECK_MOVING_SP.
3337 * tree.h (dwarf2out_args_size): Delete.
3338 * dwarf2out.c (dwarf2out_args_size): Make static and move around.
3339 (dwarf2out_args_size_adjust): Delete prototype and move around.
3340 (dwarf2out_frame_debug_expr): Do not record arg size adjustments for
3341 ACCUMULATE_OUTGOING_ARGS targets.
3343 2009-11-10 Eric Botcazou <ebotcazou@adacore.com>
3345 * config/sparc/sparc.c (print_operand) <')'>: Test for a non-null
3346 DECL_SIZE of DECL_RESULT before evaluating it.
3348 2009-11-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3350 PR tree-optimization/41987
3351 * fold-const.c (const_binop): Avoid using fold_buildN().
3353 2009-11-10 Martin Jambor <mjambor@suse.cz>
3355 * tree-pass.h (struct ipa_opt_pass_d): Added stmt_fixup field.
3356 (execute_all_ipa_stmt_fixups): Declare.
3357 * ipa-cp.c (pass_ipa_cp): Added stmt_fixup value.
3358 * ipa-inline.c (pass_ipa_inline): Likewise.
3359 * ipa-pure-const.c (pass_ipa_pure_cons): Likewise.
3360 * ipa-reference.c (pass_ipa_reference): Likewise.
3361 * ipa.c (pass_ipa_whole_program_visibility): Likewise.
3362 * lto-streamer-out.c (pass_ipa_lto_gimple_out): Likewise.
3363 (pass_ipa_lto_finish_out): Likewise.
3364 * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Likewise.
3365 * passes.c (execute_ipa_stmt_fixups): New function.
3366 (execute_all_ipa_stmt_fixups): New function.
3367 * lto-streamer-in.c (input_function): Call execute_all_ipa_stmt_fixups.
3369 2009-11-10 Eric Botcazou <ebotcazou@adacore.com>
3372 * explow.c (probe_stack_range): Fix typo.
3373 * config/sparc/sparc.md (probe_stack): New expander.
3375 2009-11-09 Dave Korn <dave.korn.cygwin@gmail.com>
3377 * config/i386/cygwin.h (LINK_SPEC): Add -tsaware flag if !mno-cygwin.
3379 2009-11-09 Jason Merrill <jason@redhat.com>
3381 * gdbinit.in (pgq): New function for printing gimple sequence.
3383 2009-11-09 Paul Brook <paul@codesourcery.com>
3384 Daniel Jacobowitz <dan@codesourcery.com>
3385 Sandra Loosemore <sandra@codesourcery.com>
3387 * doc/extend.texi (Half-Precision): Update wording to reflect
3388 that there are now multiple -mfpu options that enable fp16
3390 * doc/invoke.texi: Update list of ARM -mfpu= options.
3391 * config.gcc: Update ARM --with-fpu option list.
3392 * config/arm/arm.c (all_fpus): Add vfpv3-fp16, vfpv3-d16-fp16,
3393 vfpv3xd and vfpv3xd-fp16.
3394 (use_vfp_abi): New function.
3395 (aapcs_vfp_is_call_or_return_candidate): Avoid double precision regs
3397 (aapcs_vfp_is_return_candidate, aapcs_vfp_is_call_candidate,
3398 aapcs_vfp_allocate_return_reg): Use use_vfp_abi.
3399 (arm_rtx_costs_1, arm_size_rtx_costs, arm_fastmul_rtx_costs,
3400 arm_9e_rtx_costs): Only expect double-precision operations if the FPU
3402 (coproc_secondary_reload_class): Reload HFmode via GENERAL_REGS if no
3404 (arm_print_operand): Handle 'p' modifier.
3405 (arm_hard_regno_mode_ok): : Allow HFmode in VFP registers if
3407 * config/arm/arm.h (TARGET_VFP_SINGLE, TARGET_VFP_DOUBLE): Define.
3408 (TARGET_FP16): Define.
3409 * config/arm/vfp.md: Disable double-precision patterns if the FPU
3410 does not provide them.
3411 (arm_movdi_vfp, thumb2_movdi_vfp): Use fcpys to move
3412 double-precision values on a single-precision FPU.
3413 (movdf_vfp, thumb2_movdf_vfp): Likewise. Use "Dy" for
3414 double-precision constants.
3415 (movhf_vfp_neon): New pattern (was movhf_vfp).
3416 (movhf_vfp): Remove NEON instructions.
3417 * config/arm/constraints.md: Add new "Dy" constraint for
3418 double-precision constants. Update description of "Dv".
3419 * config/arm/arm.md: Disable double-precision patterns if the FPU
3420 does not provide them
3422 2009-11-09 Jakub Jelinek <jakub@redhat.com>
3424 * config/i386/i386.c (print_operand) <case 'D'>: Fix formatting.
3425 (print_operand) <case 'Y'>: Likewise. Fix a pasto in operand lossage
3428 2009-11-08 H.J. Lu <hongjiu.lu@intel.com>
3430 * collect2.c (main): Search PLUGIN_LD for plugin linker.
3432 * configure.ac (--with-plugin-ld): New. Default to ld.
3433 * configure: Regenerated.
3434 * config.in: Likewise.
3436 * exec-tool.in (ORIGINAL_PLUGIN_LD_FOR_TARGET): New.
3437 (collect-ld): Use ORIGINAL_PLUGIN_LD_FOR_TARGET for -plugin.
3439 2009-11-08 Jonathan Gray <jsg@openbsd.org>
3441 * config/openbsd-stdint.h: Change to reflect what
3442 c_common_nodes_and_builtins expects.
3444 2009-11-08 Paolo Carlini <paolo.carlini@oracle.com>
3446 * builtins.c (apply_args_reg_offset): Remove commented out delaration.
3448 2009-11-08 Jakub Jelinek <jakub@redhat.com>
3451 * config/i386/i386.c (get_some_local_dynamic_name): Don't assert
3452 function contains at least one local dynamic name.
3453 (print_operand) <case '&'>: Instead output operand lossage diagnostics
3454 here if that happens.
3456 2009-11-08 Zbigniew Chamski <zbigniew.chamski@gmail.com>
3457 Joern Rennecke <amylaar@spamcop.net>
3459 * cfgrtl.c (pass_free_cfg): Add pass name.
3460 * cgraphbuild.c (pass_build_cgraph_edges): Likewise.
3461 (pass_rebuild_cgraph_edges, pass_remove_cgraph_callee_edges): Likewise.
3462 * dce.c (pass_ud_rtl_dce, pass_fast_rtl_dce): Change pass name.
3463 * df-core.c (pass_df_initialize_no_opt): Likewise.
3464 * except.c (pass_rtl_eh): Likewise.
3465 * function.c (pass_init_function, pass_leaf_regs): Likewise.
3466 * gcse.c (pass_rtl_pre): Change pass name.
3467 * passes.c (pass_postreload): Add pass name.
3468 (make_pass_instance): Don't use duplicate-tracking logic for
3469 names starting with '*'.
3470 (next_pass_1): Assert that pass has a name.
3471 (register_one_dump_file): If there is an space in the name,
3473 * predict.c (pass_strip_predict_hints): Add pass name.
3474 * reg-stack.c (pass_stack_regs): Likewise.
3475 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
3476 * tree-cfg.c (pass_warn_function_return,
3477 pass_warn_function_noreturn): Add pass name.
3478 * tree-dfa.c (pass_referenced_vars): Likewise.
3479 * tree-optimize.c (pass_cleanup_cfg_post_optimizing):
3480 Fix whitespace before comment.
3481 (pass_fixup_cfg): Add pass name, fix whitespace before comment.
3482 (pass_init_datastructures): Add pass name.
3483 * tree-ssa-loop.c (pass_record_bounds): Likewise.
3484 * tree-ssa.c (pass_early_warn_uninitialized,
3485 pass_late_warn_uninitialized): Likewise.
3486 * tree.c (pass_ipa_free_lang_data): Likewise.
3487 * doc/passes.texi (pass manager): Document how to disambiguate
3490 2009-11-08 Paolo Bonzini <bonzini@gnu.org>
3492 * df-problems.c: Fix documentation for forward simulation of LR.
3493 (df_simulate_one_insn_forwards): Use df_simulate_find_defs.
3494 (df_simulate_finalize_forwards): Remove.
3495 * df.h (df_simulate_finalize_forwards): Remove.
3497 2009-11-08 Richard Guenther <rguenther@suse.de>
3499 * tree-ssa-structalias.c (build_succ_graph): Properly make
3500 variables escape if they are stored to anything.
3502 2009-11-08 Richard Guenther <rguenther@suse.de>
3504 PR rtl-optimization/41928
3505 * loop-invariant.c (free_loop_data): If we didn't allocate
3506 loop data do not try to free it.
3508 2009-11-07 Jason Merrill <jason@redhat.com>
3510 * tree.c (reconstruct_complex_type): Preserve attributes.
3512 2009-11-07 Richard Guenther <rguenther@suse.de>
3514 * tree-ssa-structalias.c (build_succ_graph): Feed stores
3515 to anything only to variables that can take pointers.
3516 (get_constraint_for_ssa_var): Properly exclude full
3517 variables from expanding.
3518 (first_vi_for_offset): Avoid overflow in arithmetic.
3519 (first_or_preceding_vi_for_offset): Likewise.
3520 (count_num_arguments): Fix implementation.
3521 (gate_ipa_pta): Do not run when not optimizing.
3523 2009-11-07 David Binderman <dcb314@hotmail.com>
3525 * builtins.c (apply_args_size, expand_builtin_mathfn, expand_powi,
3526 expand_builtin_expect, maybe_emit_sprintf_chk_warning): Remove some
3527 set but not used variables.
3528 (apply_args_reg_offset): Comment out as unused.
3529 * calls.c (flags_from_decl_or_type): Likewise.
3530 * genautomata.c (check_regexp_units_distribution): Likewise.
3532 2009-11-07 Uros Bizjak <ubizjak@gmail.com>
3534 * config/i386/sse.md (xop_pmacsww, xop_pmacssww, xop_pmacsdd,
3535 xop_pmacssdd, xop_pmacssdql, xop_pmacssdqh, xop_pmacsdql,
3536 *xop_pmacsdql_mem, xop_pmacsdqh, *xop_pmacsdqh_mem, xop_pmacsswd,
3537 xop_pmacswd, xop_pmadcsswd, xop_pmadcswd, xop_pcmov_<mode>,
3538 xop_pcmov_<mode>256, xop_pperm, xop_pperm_pack_v2di_v4si,
3539 xop_pperm_pack_v4si_v8hi, xop_pperm_pack_v8hi_v16qi): Compress
3540 operand alternatives.
3542 2009-11-06 Michael Matz <matz@suse.de>
3545 * tree-ssa-math-opts.c (execute_cse_reciprocals): Check all uses
3546 of a potential reciprocal to really be reciprocals.
3548 2009-11-06 Jakub Jelinek <jakub@redhat.com>
3550 * config/i386/x86intrin.h: Include fma4intrin.h, xopintrin.h and
3551 lwpintrin.h after immintrin.h.
3552 * config/i386/fma4intrin.h (__v8sf, __v4df, __m256, __m256d): Remove
3556 * c-common.c (fold_offsetof_1) <case ARRAY_REF>: Don't crash for VLAs
3557 or non-constant index, allow index one past the last element and
3558 allow exceeding array bound in arrays that might be used as flexible
3561 2009-11-05 Richard Henderson <rth@redhat.com>
3563 * config/i386/ia32intrin.h: Protect CRC32 builtins with __SSE4_2__.
3565 2009-11-05 Paul Brook <paul@codesourcery.com>
3567 * config/arm/arm.c (arm_fp_model, arm_fpu_arch, arm_fpu_tune): Remove.
3568 (arm_fpu_desc): New.
3569 (all_fpus): Add FPU details.
3570 (fp_model_for_fpu): Remove.
3571 (arm_override_options): Set and use arm_fpu_desc and arm_fpu_attr.
3572 (arm_output_epilogue, arm_save_coproc_regs): Use TARGET_FPA_EMU2.
3573 (arm_file_start): Use arm_fpu_desc.
3574 * config/arm/arm.h (TARGET_FPA, TARGET_MAVERICK, TARGET_VFP,
3575 TARGET_VFPD32, TARGET_VFP3, TARGET_NEON_FP16, TARGET_NEON): Use
3577 (TARGET_FPA_EMU2): Define.
3578 (arm_fp_model, fputype, arm_fpu_tune): Remove.
3579 (vfp_reg_type, arm_fpu_desc): New.
3580 * config/arm/arm.md (attr fpu): Simplify.
3581 * config/arm/fpa.md (movxf_fpa): Use TARGET_FPA_EMU2.
3582 * config/arm/linux-elf.h (FPUTYPE_DEFAULT): Use string value.
3583 * config/arm/bpabi.h (FPUTYPE_DEFAULT): Use string value.
3584 * config/arm/netbsd-elf.h (FPUTYPE_DEFAULT): Use string value.
3585 * config/arm/vxworks.h (FPUTYPE_DEFAULT): Use string value.
3587 2009-11-05 Michael Matz <matz@suse.de>
3589 * config/i386/i386.c (ix86_builtin_reciprocal): Remove dependency
3591 * doc/invoke.texi (-mrecip): Clarify that we don't need -mrecip
3594 2009-11-04 Jason Merrill <jason@redhat.com>
3597 * varasm.c (initializer_constant_valid_p): A PLUS_EXPR
3598 or MINUS_EXPR of REAL_TYPE is not a valid constant initializer.
3599 (output_constant): Avoid crash after error.
3601 2009-11-05 Martin Jambor <mjambor@suse.cz>
3603 * tree-sra.c (struct access): Changed comment of next_sibling field.
3604 (analyze_modified_params): Loop over accesses of a group rather than
3605 over all with the ame base, pass a common bitmap to
3607 (unmodified_by_ref_scalar_representative): Build link lists of
3608 accesses of a group.
3609 (splice_param_accesses): Likewise.
3611 2009-11-04 Kenneth Zadeck <zadeck@naturalbridge.com>
3613 * df-scan.c (df-uses-record): Add case zero_extract of mem.
3615 2009-11-04 Eric Botcazou <ebotcazou@adacore.com>
3619 * config/i386/i386.md (probe_stack): New expander.
3620 (logical operation peepholes): Do not split stack checking probes.
3622 2009-11-04 Harsha Jagasia <harsha.jagasia@amd.com>
3623 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
3625 * doc/invoke.texi (-mlwp): Add documentation.
3626 * doc/extend.texi (x86 intrinsics): Add LWP intrinsics.
3627 * config.gcc (i[34567]86-*-*): Include lwpintrin.h.
3628 (x86_64-*-*): Ditto.
3629 * config/i386/lwpintrin.h: New file, provide x86 compiler
3630 intrinisics for LWP.
3631 * config/i386/cpuid.h (bit_LWP): Define LWP bit.
3632 * config/i386/x86intrin.h: Add LWP check and lwpintrin.h.
3633 * config/i386/i386-c.c (ix86_target_macros_internal): Check
3635 * config/i386/i386.h (TARGET_LWP): New macro for LWP.
3636 * config/i386/i386.opt (-mlwp): New switch for LWP support.
3637 * config/i386/i386.c (OPTION_MASK_ISA_LWP_SET): New.
3638 (OPTION_MASK_ISA_LWP_UNSET): New.
3639 (ix86_handle_option): Handle -mlwp.
3640 (isa_opts): Handle -mlwp.
3641 (enum pta_flags): Add PTA_LWP.
3642 (override_options): Add LWP support.
3643 (IX86_BUILTIN_LLWPCB16): New for LWP intrinsic.
3644 (IX86_BUILTIN_LLWPCB32): Ditto.
3645 (IX86_BUILTIN_LLWPCB64): Ditto.
3646 (IX86_BUILTIN_SLWPCB16): Ditto.
3647 (IX86_BUILTIN_SLWPCB32): Ditto.
3648 (IX86_BUILTIN_SLWPCB64): Ditto.
3649 (IX86_BUILTIN_LWPVAL16): Ditto.
3650 (IX86_BUILTIN_LWPVAL32): Ditto.
3651 (IX86_BUILTIN_LWPVAL64): Ditto.
3652 (IX86_BUILTIN_LWPINS16): Ditto.
3653 (IX86_BUILTIN_LWPINS32): Ditto.
3654 (IX86_BUILTIN_LWPINS64): Ditto.
3655 (enum ix86_special_builtin_type): Add LWP intrinsic support.
3656 (builtin_description): Ditto.
3657 (ix86_init_mmx_sse_builtins): Ditto.
3658 (ix86_expand_special_args_builtin): Ditto.
3659 * config/i386/i386.md (UNSPEC_LLWP_INTRINSIC): Add new UNSPEC for
3661 (UNSPEC_SLWP_INTRINSIC): Ditto.
3662 (UNSPECV_LWPVAL_INTRINSIC): Ditto.
3663 (UNSPECV_LWPINS_INTRINSIC): Ditto.
3664 (lwp_llwpcbhi1): New lwp pattern.
3665 (lwp_llwpcbsi1): Ditto.
3666 (lwp_llwpcbdi1): Ditto.
3667 (lwp_slwpcbhi1): Ditto.
3668 (lwp_slwpcbsi1): Ditto.
3669 (lwp_slwpcbdi1): Ditto.
3670 (lwp_lwpvalhi3): Ditto.
3671 (lwp_lwpvalsi3): Ditto.
3672 (lwp_lwpvaldi3): Ditto.
3673 (lwp_lwpinshi3): Ditto.
3674 (lwp_lwpinssi3): Ditto.
3675 (lwp_lwpinsdi3): Ditto.
3677 2009-11-04 Andrew Pinski <andrew_pinski@playstation.sony.com>
3678 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
3681 * simplify-rtx.c (simplify_binary_operation_1): Simplify vec_select of
3684 2009-11-04 Richard Guenther <rguenther@suse.de>
3685 Rafael Avila de Espindola <espindola@google.com>
3687 * gcc.c (process_command): Handle arguments name@offset.
3689 2009-11-04 Harsha Jagasia <harsha.jagasia@amd.com>
3690 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
3692 * config.gcc (i[34567]86-*-*): Include xopintrin.h.
3693 (x86_64-*-*): Ditto.
3694 * config/i386/xopintrin.h: New file, provide common x86 compiler
3695 intrinisics for XOP.
3696 * config/i386/cpuid.h (bit_XOP): Define XOP bit.
3697 * config/i386/x86intrin.h: Add XOP check and xopintrin.h.
3698 * config/i386/i386-c.c(ix86_target_macros_internal): Check
3700 * config/i386/i386.h(TARGET_XOP): New macro for XOP.
3701 * config/i386/i386.opt (-mxop): New switch for XOP support.
3702 * config/i386/i386.md (UNSPEC_XOP_UNSIGNED_CMP)
3703 (UNSPEC_XOP_TRUEFALSE)
3704 (UNSPEC_XOP_PERMUTE)
3705 (UNSPEC_FRCZ): Add new UNSPEC for XOP support.
3706 (PPERM_*): New constants for vpperm instruction.
3707 (xop_pcmov_<mode>): Add XOP conditional mov instructions.
3708 * config/i386/i386.c (OPTION_MASK_ISA_XOP_SET): New.
3709 (OPTION_MASK_ISA_XOP_UNSET): New.
3710 (OPTION_MASK_ISA_XOP_UNSET): Change definition to depend on XOP.
3711 (ix86_handle_option): Handle -mxop.
3712 (isa_opts): Handle -mxop.
3713 (enum pta_flags): Add PTA_XOP.
3714 (override_options): Add XOP support.
3715 (print_operand): Add code for XOP compare instructions.
3716 (ix86_expand_sse_movcc): Extend for XOP conditional move instruction.
3717 (ix86_expand_int_vcond): Extend for XOP compare instruction.
3719 (IX86_BUILTIN_VPCMOV): New for XOP intrinsic.
3720 (IX86_BUILTIN_VPCMOV_V2DI): Ditto.
3721 (IX86_BUILTIN_VPCMOV_V4SI): Ditto.
3722 (IX86_BUILTIN_VPCMOV_V8HI): Ditto.
3723 (IX86_BUILTIN_VPCMOV_V16QI): Ditto.
3724 (IX86_BUILTIN_VPCMOV_V4SF): Ditto.
3725 (IX86_BUILTIN_VPCMOV_V2DF): Ditto.
3727 (IX86_BUILTIN_VPCMOV256): Ditto.
3728 (IX86_BUILTIN_VPCMOV_V4DI256): Ditto.
3729 (IX86_BUILTIN_VPCMOV_V8SI256): Ditto.
3730 (IX86_BUILTIN_VPCMOV_V16HI256): Ditto.
3731 (IX86_BUILTIN_VPCMOV_V32QI256): Ditto.
3732 (IX86_BUILTIN_VPCMOV_V8SF256): Ditto.
3733 (IX86_BUILTIN_VPCMOV_V4DF256): Ditto.
3735 (IX86_BUILTIN_VPPERM): Ditto.
3737 (IX86_BUILTIN_VPMACSSWW): Ditto.
3738 (IX86_BUILTIN_VPMACSWW): Ditto.
3739 (IX86_BUILTIN_VPMACSSWD): Ditto.
3740 (IX86_BUILTIN_VPMACSWD): Ditto.
3741 (IX86_BUILTIN_VPMACSSDD): Ditto.
3742 (IX86_BUILTIN_VPMACSDD): Ditto.
3743 (IX86_BUILTIN_VPMACSSDQL): Ditto.
3744 (IX86_BUILTIN_VPMACSSDQH): Ditto.
3745 (IX86_BUILTIN_VPMACSDQL): Ditto.
3746 (IX86_BUILTIN_VPMACSDQH): Ditto.
3747 (IX86_BUILTIN_VPMADCSSWD): Ditto.
3748 (IX86_BUILTIN_VPMADCSWD): Ditto.
3750 (IX86_BUILTIN_VPHADDBW): Ditto.
3751 (IX86_BUILTIN_VPHADDBD): Ditto.
3752 (IX86_BUILTIN_VPHADDBQ): Ditto.
3753 (IX86_BUILTIN_VPHADDWD): Ditto.
3754 (IX86_BUILTIN_VPHADDWQ): Ditto.
3755 (IX86_BUILTIN_VPHADDDQ): Ditto.
3756 (IX86_BUILTIN_VPHADDUBW): Ditto.
3757 (IX86_BUILTIN_VPHADDUBD): Ditto.
3758 (IX86_BUILTIN_VPHADDUBQ): Ditto.
3759 (IX86_BUILTIN_VPHADDUWD): Ditto.
3760 (IX86_BUILTIN_VPHADDUWQ): Ditto.
3761 (IX86_BUILTIN_VPHADDUDQ): Ditto.
3762 (IX86_BUILTIN_VPHSUBBW): Ditto.
3763 (IX86_BUILTIN_VPHSUBWD): Ditto.
3764 (IX86_BUILTIN_VPHSUBDQ): Ditto.
3766 (IX86_BUILTIN_VPROTB): Ditto.
3767 (IX86_BUILTIN_VPROTW): Ditto.
3768 (IX86_BUILTIN_VPROTD): Ditto.
3769 (IX86_BUILTIN_VPROTQ): Ditto.
3770 (IX86_BUILTIN_VPROTB_IMM): Ditto.
3771 (IX86_BUILTIN_VPROTW_IMM): Ditto.
3772 (IX86_BUILTIN_VPROTD_IMM): Ditto.
3773 (IX86_BUILTIN_VPROTQ_IMM): Ditto.
3775 (IX86_BUILTIN_VPSHLB): Ditto.
3776 (IX86_BUILTIN_VPSHLW): Ditto.
3777 (IX86_BUILTIN_VPSHLD): Ditto.
3778 (IX86_BUILTIN_VPSHLQ): Ditto.
3779 (IX86_BUILTIN_VPSHAB): Ditto.
3780 (IX86_BUILTIN_VPSHAW): Ditto.
3781 (IX86_BUILTIN_VPSHAD): Ditto.
3782 (IX86_BUILTIN_VPSHAQ): Ditto.
3784 (IX86_BUILTIN_VFRCZSS): Ditto.
3785 (IX86_BUILTIN_VFRCZSD): Ditto.
3786 (IX86_BUILTIN_VFRCZPS): Ditto.
3787 (IX86_BUILTIN_VFRCZPD): Ditto.
3788 (IX86_BUILTIN_VFRCZPS256): Ditto.
3789 (IX86_BUILTIN_VFRCZPD256): Ditto.
3791 (IX86_BUILTIN_VPCOMEQUB): Ditto.
3792 (IX86_BUILTIN_VPCOMNEUB): Ditto.
3793 (IX86_BUILTIN_VPCOMLTUB): Ditto.
3794 (IX86_BUILTIN_VPCOMLEUB): Ditto.
3795 (IX86_BUILTIN_VPCOMGTUB): Ditto.
3796 (IX86_BUILTIN_VPCOMGEUB): Ditto.
3797 (IX86_BUILTIN_VPCOMFALSEUB): Ditto.
3798 (IX86_BUILTIN_VPCOMTRUEUB): Ditto.
3800 (IX86_BUILTIN_VPCOMEQUW): Ditto.
3801 (IX86_BUILTIN_VPCOMNEUW): Ditto.
3802 (IX86_BUILTIN_VPCOMLTUW): Ditto.
3803 (IX86_BUILTIN_VPCOMLEUW): Ditto.
3804 (IX86_BUILTIN_VPCOMGTUW): Ditto.
3805 (IX86_BUILTIN_VPCOMGEUW): Ditto.
3806 (IX86_BUILTIN_VPCOMFALSEUW): Ditto.
3807 (IX86_BUILTIN_VPCOMTRUEUW): Ditto.
3809 (IX86_BUILTIN_VPCOMEQUD): Ditto.
3810 (IX86_BUILTIN_VPCOMNEUD): Ditto.
3811 (IX86_BUILTIN_VPCOMLTUD): Ditto.
3812 (IX86_BUILTIN_VPCOMLEUD): Ditto.
3813 (IX86_BUILTIN_VPCOMGTUD): Ditto.
3814 (IX86_BUILTIN_VPCOMGEUD): Ditto.
3815 (IX86_BUILTIN_VPCOMFALSEUD): Ditto.
3816 (IX86_BUILTIN_VPCOMTRUEUD): Ditto.
3818 (IX86_BUILTIN_VPCOMEQUQ): Ditto.
3819 (IX86_BUILTIN_VPCOMNEUQ): Ditto.
3820 (IX86_BUILTIN_VPCOMLTUQ): Ditto.
3821 (IX86_BUILTIN_VPCOMLEUQ): Ditto.
3822 (IX86_BUILTIN_VPCOMGTUQ): Ditto.
3823 (IX86_BUILTIN_VPCOMGEUQ): Ditto.
3824 (IX86_BUILTIN_VPCOMFALSEUQ): Ditto.
3825 (IX86_BUILTIN_VPCOMTRUEUQ): Ditto.
3827 (IX86_BUILTIN_VPCOMEQB): Ditto.
3828 (IX86_BUILTIN_VPCOMNEB): Ditto.
3829 (IX86_BUILTIN_VPCOMLTB): Ditto.
3830 (IX86_BUILTIN_VPCOMLEB): Ditto.
3831 (IX86_BUILTIN_VPCOMGTB): Ditto.
3832 (IX86_BUILTIN_VPCOMGEB): Ditto.
3833 (IX86_BUILTIN_VPCOMFALSEB): Ditto.
3834 (IX86_BUILTIN_VPCOMTRUEB): Ditto.
3836 (IX86_BUILTIN_VPCOMEQW): Ditto.
3837 (IX86_BUILTIN_VPCOMNEW): Ditto.
3838 (IX86_BUILTIN_VPCOMLTW): Ditto.
3839 (IX86_BUILTIN_VPCOMLEW): Ditto.
3840 (IX86_BUILTIN_VPCOMGTW): Ditto.
3841 (IX86_BUILTIN_VPCOMGEW): Ditto.
3842 (IX86_BUILTIN_VPCOMFALSEW): Ditto.
3843 (IX86_BUILTIN_VPCOMTRUEW): Ditto.
3845 (IX86_BUILTIN_VPCOMEQD): Ditto.
3846 (IX86_BUILTIN_VPCOMNED): Ditto.
3847 (IX86_BUILTIN_VPCOMLTD): Ditto.
3848 (IX86_BUILTIN_VPCOMLED): Ditto.
3849 (IX86_BUILTIN_VPCOMGTD): Ditto.
3850 (IX86_BUILTIN_VPCOMGED): Ditto.
3851 (IX86_BUILTIN_VPCOMFALSED): Ditto.
3852 (IX86_BUILTIN_VPCOMTRUED): Ditto.
3854 (IX86_BUILTIN_VPCOMEQQ): Ditto.
3855 (IX86_BUILTIN_VPCOMNEQ): Ditto.
3856 (IX86_BUILTIN_VPCOMLTQ): Ditto.
3857 (IX86_BUILTIN_VPCOMLEQ): Ditto.
3858 (IX86_BUILTIN_VPCOMGTQ): Ditto.
3859 (IX86_BUILTIN_VPCOMGEQ): Ditto.
3860 (IX86_BUILTIN_VPCOMFALSEQ): Ditto.
3861 (IX86_BUILTIN_VPCOMTRUEQ): Ditto.
3863 (enum multi_arg_type): New enum for describing the various XOP
3864 intrinsic argument types.
3865 (bdesc_multi_arg): New table for XOP intrinsics.
3866 (ix86_init_mmx_sse_builtins): Add XOP intrinsic support.
3867 (ix86_expand_multi_arg_builtin): New function for creating XOP
3870 * config/i386/sse.md (sserotatemax): New mode attribute for XOP.
3871 (xop_pmacsww): Ditto.
3872 (xop_pmacssww): Ditto.
3873 (xop_pmacsdd): Ditto.
3874 (xop_pmacssdd): Ditto.
3875 (xop_pmacssdql): Ditto.
3876 (xop_pmacssdqh): Ditto.
3877 (xop_pmacsdql): Ditto.
3878 (xop_pmacsdql_mem): Ditto.
3879 (xop_mulv2div2di3_low): Ditto.
3880 (xop_pmacsdqh): Ditto.
3881 (xop_pmacsdqh_mem): Ditto.
3882 (xop_mulv2div2di3_high): Ditto.
3883 (xop_pmacsswd): Ditto.
3884 (xop_pmacswd): Ditto.
3885 (xop_pmadcsswd): Ditto.
3886 (xop_pmadcswd): Ditto.
3887 (xop_pcmov_<mode>): Ditto.
3888 (xop_pcmov_<mode>256): Ditto.
3889 (xop_phaddbw): Ditto.
3890 (xop_phaddbd): Ditto.
3891 (xop_phaddbq): Ditto.
3892 (xop_phaddwd): Ditto.
3893 (xop_phaddwq): Ditto.
3894 (xop_phadddq): Ditto.
3895 (xop_phaddubw): Ditto.
3896 (xop_phaddubd): Ditto.
3897 (xop_phaddubq): Ditto.
3898 (xop_phadduwd): Ditto.
3899 (xop_phadduwq): Ditto.
3900 (xop_phaddudq): Ditto.
3901 (xop_phsubbw): Ditto.
3902 (xop_phsubwd): Ditto.
3903 (xop_phsubdq): Ditto.
3905 (rotl<mode>3): Ditto.
3906 (rotr<mode>3): Ditto.
3907 (xop_rotl<mode>3): Ditto.
3908 (xop_rotr<mode>3): Ditto.
3909 (vrotr<mode>3): Ditto.
3910 (vrotl<mode>3): Ditto.
3911 (xop_vrotl<mode>3): Ditto.
3912 (vlshr<mode>3): Ditto.
3913 (vashr<mode>3): Ditto.
3915 (xop_ashl<mode>3): Ditto.
3916 (xop_lshl<mode>3): Ditto.
3917 (ashlv16qi3): Ditto.
3918 (lshlv16qi3): Ditto.
3919 (ashrv16qi3): Ditto.
3921 (xop_frcz<mode>2): Ditto.
3922 (xop_vmfrcz<mode>2): Ditto.
3923 (xop_frcz<mode>2256): Ditto.
3924 (xop_maskcmp<mode>3): Ditto.
3925 (xop_maskcmp_uns<mode>3): Ditto.
3926 (xop_maskcmp_uns2<mode>3): Ditto.
3927 (xop_pcom_tf<mode>3): Ditto.
3929 * doc/invoke.texi (-mxop): Add documentation.
3930 * doc/extend.texi (x86 intrinsics): Add XOP intrinsics.
3932 2009-11-03 Mark Mitchell <mark@codesourcery.com>
3935 * gcc.c (SWITCHES_NEED_SPACES): Define to "o".
3936 * config/alpha/osf.h (SWITCHES_NEED_SPACES): Remove here.
3937 * config/mips/iris.h (SWITCHES_NEED_SPACES): Remove here.
3939 2009-11-04 Richard Earnshaw <rearnsha@arm.com>
3942 * arm.md (peephole2 patterns for move and compare): New.
3944 2009-11-04 Nick Clifton <nickc@redhat.com>
3946 * defaults.h (CONSTANT_ADDRESS_P): Provide a default definition.
3947 Make sure that it does not allow CONST_DOUBLEs.
3948 * doc/tm.texi (CONSTANT_ADDRESS_P): Update description.
3949 * config/avr/avr.h (CONSTANT_ADDRESS_P): Delete.
3950 * config/bfin/bfin.h (CONSTANT_ADDRESS_P): Delete.
3951 * config/cris/cris.h (CONSTANT_ADDRESS_P): Delete.
3952 * config/fr30/fr30.h (CONSTANT_ADDRESS_P): Delete.
3953 * config/frv/frv.h (CONSTANT_ADDRESS_P): Delete.
3954 * config/m32c/m32c.h (CONSTANT_ADDRESS_P): Delete.
3955 * config/m68hc11/m68hc11.h (CONSTANT_ADDRESS_P): Delete.
3956 * config/mep/mep.h (CONSTANT_ADDRESS_P): Delete.
3957 * config/mn10300/mn10300.h (CONSTANT_ADDRESS_P): Delete.
3958 * config/moxie/moxie.h (CONSTANT_ADDRESS_P): Delete.
3959 * config/pdp11/pdp11.h (CONSTANT_ADDRESS_P): Delete.
3960 * config/picochip/picochip.h (CONSTANT_ADDRESS_P): Delete.
3961 * config/score/score.h (CONSTANT_ADDRESS_P): Delete.
3962 * config/stormy16/stormy16.h (CONSTANT_ADDRESS_P): Delete.
3964 2009-11-04 Richard Guenther <rguenther@suse.de>
3966 PR tree-optimization/41919
3967 * tree-vrp.c (test_for_singularity): Properly compare values.
3969 2009-11-04 Revital Eres <eres@il.ibm.com>
3971 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
3972 Consider peeling for alignment only for stores and remove
3973 redundant assignment.
3975 2009-11-04 Maxim Kuvyrkov <maxim@codesourcery.com>
3978 * config/m68k/m68k.c (m68k_reg_present_p): New static function.
3979 (m68k_ok_for_sibcall_p): Handle different result return locations.
3981 2009-11-04 Richard Guenther <rguenther@suse.de>
3983 * c-opts.c (c_common_post_options): Move LTO option processing
3985 * opts.c (decode_options): ... here.
3987 2009-11-04 Jakub Jelinek <jakub@redhat.com>
3989 * c-common.c (fold_offsetof_1): Use %wd instead of
3990 HOST_WIDE_INT_PRINT_DEC.
3992 2009-11-04 Maciej W. Rozycki <macro@linux-mips.org>
3994 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Don't define
3997 2009-11-04 Maciej W. Rozycki <macro@linux-mips.org>
3999 * config.gcc (vax-*-linux*): Keep the original contents of
4000 tmake_file while adding vax/t-linux.
4002 2009-11-03 Eric Botcazou <ebotcazou@adacore.com>
4006 * expr.h (STACK_CHECK_PROBE_INTERVAL): Delete.
4007 (STACK_CHECK_PROBE_INTERVAL_EXP): New macro.
4008 (STACK_CHECK_MOVING_SP): Likewise.
4009 * system.h (STACK_CHECK_PROBE_INTERVAL): Poison it.
4010 * doc/tm.texi (Stack Checking): Delete STACK_CHECK_PROBE_INTERVAL.
4011 Document STACK_CHECK_PROBE_INTERVAL_EXP and STACK_CHECK_MOVING_SP.
4012 * doc/md.texi (Standard Pattern Names): Tweak entry of CHECK_STACK.
4013 Document PROBE_STACK.
4014 * explow.c (anti_adjust_stack_and_probe): New function.
4015 (allocate_dynamic_stack_space): Do not directly allocate space if
4016 STACK_CHECK_MOVING_SP, instead invoke above function.
4017 (emit_stack_probe): Handle probe_stack insn.
4018 (PROBE_INTERVAL): New macro.
4019 (STACK_GROW_OPTAB): Likewise.
4020 (STACK_GROW_OFF): Likewise.
4021 (probe_stack_range): Use Pmode and memory_address consistently. Fix
4022 loop condition in the small constant case. Rewrite in the general
4023 case to be immune to wraparounds. Make sure the address of probes
4024 is valid. Try to use [base + disp] addressing mode if possible.
4025 * ira.c (setup_eliminable_regset): Set frame_pointer_needed if stack
4026 checking is enabled and STACK_CHECK_MOVING_SP.
4027 * rtlanal.c (may_trap_p_1) <MEM>: If stack checking is enabled,
4028 return 1 for volatile references to the stack pointer.
4029 * tree.c (build_common_builtin_nodes): Do not set ECF_NOTHROW on
4030 __builtin_alloca if stack checking is enabled.
4031 * unwind-dw2.c (uw_identify_context): Take into account whether the
4032 context is that of a signal frame or not.
4033 * config/i386/linux.h (STACK_CHECK_MOVING_SP): Define to 1.
4034 * config/i386/linux64.h (STACK_CHECK_MOVING_SP): Likewise.
4036 2009-11-03 Jakub Jelinek <jakub@redhat.com>
4038 PR rtl-optimization/41917
4039 * rtlanal.c (num_sign_bit_copies1) <case UMOD>: If sign bit of second