1 2009-12-29 Dave Korn <dave.korn.cygwin@gmail.com>
3 2009-10-06 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
6 * config/darwin.c (darwin_label_is_anonymous_local_objc_name):
7 New function to recognize objective c/c++ internal symbols,
8 including mangled ones.
9 * config/darwin.h (ASM_OUTPUT_LABELREF): Use
10 darwin_label_is_anonymous_local_objc_name to detect both
11 mangled and clear ObjC internal symbols.
13 2009-12-28 H.J. Lu <hongjiu.lu@intel.com>
16 * omp-low.c (diagnose_sb_2): Handle GIMPLE_COND.
18 2009-12-24 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
21 * config/avr/avr.c (avr_extra_arch_macro): Remove static.
22 (avr_cpu_cpp_builtins): Remove.
23 * config/avr/avr.h (avr_extra_arch_macro): Add prototype.
24 * config/avr/avr-c.c: New File.
25 (avr_cpu_cpp_builtins) : Add.
26 * config/avr/t-avr: Add make information for avr-c.
27 * config.gcc (avr-*-*): Include avr-c.o as c and cpp object.
29 2009-12-24 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
31 PR target/35013, 27192
32 * config/avr/avr.c (print_operand_address): Print correct program
34 Add warning for large device offset addresses.
35 (avr_assemble_integer): Ditto.
36 (print_operand): Add warnings for incorrect addressing.
37 (out_movqi_r_mr): Tag assembler with new address codes.
38 (out_movhi_r_mr): Ditto.
39 (out_movsi_r_mr): Ditto.
40 (out_movqi_mr_r): Ditto.
41 (out_movhi_mr_r): Ditto.
42 (out_movsi_mr_r): Ditto.
43 * config/avr/predicates.md (text_segment_operand): New predicate.
44 * config/avr/avr.md (jump): Tag assembler with new address codes.
46 (call_value_insn): Ditto.
47 (*tablejump_lib): Ditto.
50 (indirect_jump): New define_expand.
51 (jcindirect_jump): New pattern for constant expression jump.
52 (njcindirect_jump): Renamed old indirect_jump.
54 2009-12-24 Steven Bosscher <steven@gcc.gnu.org>
56 * store-motion.c (build_store_vectors): Clear regs_set_in_block at
57 the start of a loop over basic blocks.
59 2009-12-24 Julian Brown <julian@codesourcery.com>
60 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
63 * config/arm/arm.c (output_call_mem): Remove armv5 support.
64 * config/arm/arm.md (*call_mem): Disable for armv5. Add note.
65 (*call_value_mem): Likewise.
67 2009-12-23 Jakub Jelinek <jakub@redhat.com>
69 PR rtl-optimization/42475
70 * combine.c (make_compound_operation) <case SUBREG>: Use mode of
71 SUBREG_REG (x) instead of tem's mode.
73 2009-12-23 Jakub Jelinek <jakub@redhat.com>
74 Cary Coutant <ccoutant@google.com>
77 * dwarf2out.c (add_ranges_by_labels): Conditionally Add DW_AT_ranges
79 (dwarf2out_finish): Change calls to add_ranges_by_labels.
81 2009-12-23 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
84 * config/arm/arm.h (CASE_VECTOR_PC_RELATIVE): Fix macro usage
86 (CASE_VECTOR_SHORTEN_MODE): Allow signed offsets
87 only for TARGET_THUMB1.
89 2009-12-23 Ramana Radhakrishnan <ramrad01@arm.com>
92 * config/arm/arm.md: Split for Thumb1 as well.
94 2009-12-22 Cary Coutant <ccoutant@google.com>
97 * dwarf2out.c (dwarf2out_finish): Don't output range for .text
98 section unless .text section was used. Likewise for cold.
100 2009-12-22 Brian Hackett <bhackett1024@gmail.com>
102 * doc/plugins.texi: Rename pre-genericize event.
104 2009-12-22 Paolo Carlini <paolo.carlini@oracle.com>
107 * params.def ([PARAM_PREDICTABLE_BRANCH_OUTCOME]): Fix typo in
110 * doc/invoke.texi: Fix typo.
112 2009-12-22 Paul Brook <paul@codesourcery.com>
114 * doc/tm.texi (ARG_POINTER_CFA_OFFSET): Document new default.
115 * defaults.h (ARG_POINTER_CFA_OFFSET): Add pretend_args_size.
116 * config/spu/spu.h (ARG_POINTER_CFA_OFFSET): Add pretend_args_size.
118 2009-12-21 Brian Hackett <bhackett1024@gmail.com>
120 * plugin.def: Rename pre-genericize event.
121 * plugin.c (register_callback, invoke_plugin_callbacks): Same.
122 * c-decl.c (finish_function): Invoke callbacks on above event.
124 2009-12-21 Jakub Jelinek <jakub@redhat.com>
126 PR rtl-optimization/42429
127 * reload.c (find_reloads_subreg_address): When adjusting mode of
128 MEM, update also MEM_SIZE if it is set.
130 2009-12-21 H.J. Lu <hongjiu.lu@intel.com>
133 * acinclude.m4 (gcc_GAS_FLAGS): New.
134 (gcc_GAS_CHECK_FEATURE): Use gcc_GAS_FLAGS.
135 * configure: Regenerated.
137 2009-12-20 Michael Matz <matz@suse.de>
139 PR tree-optimization/42027
140 * cfgexpand.c (expand_gimple_cond): Use jumpy sequence for &, &&, |
141 and || if jumps are cheap.
143 2009-12-19 Richard Guenther <rguenther@suse.de>
146 * lto-streamer-out.c (tree_is_indexable): Local statics
148 (lto_output_tree_ref): Adjust assert.
150 2009-12-19 Richard Guenther <rguenther@suse.de>
152 PR tree-optimization/42108
153 * tree-ssa-sccvn.c (last_vuse_ptr): New variable.
154 (vn_reference_lookup_2): Update last seen VUSE.
155 (vn_reference_lookup_3): Avoid updating last seen VUSE after
157 (visit_reference_op_load): Use last seen VUSE from the first
158 lookup when entering into the table.
160 2009-12-19 Joern Rennecke <amylaar@spamcop.net>
162 * Makefile.in (PLUGIN_HEADERS): Add more headers.
164 * tree-pass.h (GCC_PASS_LISTS): Define.
165 (PASS_LIST_NO_all_lowering_passes): New enumeration value.
166 (PASS_LIST_NO_all_small_ipa_passes): Likewise.
167 (PASS_LIST_NO_all_regular_ipa_passes): Likewise.
168 (PASS_LIST_NO_all_lto_gen_passes): Likewise.
169 (PASS_LIST_NO_all_passes): Likewise.
170 (PASS_LIST_NUM): Likewise.
171 (gcc_pass_lists): Declare.
172 * passes.c (gcc_pass_lists): Define.
174 2009-12-18 Richard Guenther <rguenther@suse.de>
176 * tree-ssa-sccvn.c (copy_nary): New function.
177 (copy_phis): Likewise.
178 (copy_references): Likewise.
179 (process_scc): Avoid last iteration by copying the
180 optimistic table to the valid table.
182 2009-12-17 Jakub Jelinek <jakub@redhat.com>
184 * dwarf2out.c (loc_descriptor): For SYMBOL_REFs and LABEL_REFs
185 use DW_OP_addr+DW_OP_stack_value instead of DW_OP_implicit_value.
186 (add_const_value_attribute): For CONST_STRING, SYMBOL_REFs and
187 LABEL_REFs use DW_OP_addr+DW_OP_stack_value DW_AT_location instead of
190 2009-12-17 Alexandre Oliva <aoliva@redhat.com>
193 * var-tracking.c (count_uses): Count MO_VAL_USE of original
194 MO_VAL_SET value for COND_EXEC.
195 (add_stores): Handle conditional stores.
198 * var-tracking.c (use_type): Remove indirection from loc.
199 (count_uses): Dereference incoming loc early.
200 (add_uses): Dereference incoming loc early.
203 * var-tracking.c (add_stores): Avoid value mode mismatch for
204 promoted declarations.
206 2009-12-17 Jakub Jelinek <jakub@redhat.com>
209 * ipa.c (function_and_variable_visibility): Clear same_comdat_group
210 links of DECL_EXTERNAL nodes.
212 2009-12-17 Sandra Loosemore <sandra@codesourcery.com>
214 * doc/rtl.texi (Vector Operations): Clarify vec_select result mode.
216 2009-12-17 Julian Brown <julian@codesourcery.com>
218 * config/arm/bpabi-v6m.S (test_div_by_zero): New macro.
219 (aeabi_ldivmod, aeabi_uldivmod): Use above macro.
220 * config/arm/bpabi.S (test_div_by_zero): New macro.
221 (aeabi_ldivmod, aeabi_uldivmod): Use above macro.
222 * config/arm/lib1funcs.asm (ARM_LDIV0): Tail-call int div-by-zero
223 handler for EABI. Add signed/unsigned argument, pass correct value
225 (THUMB_LDIV0): Same, for Thumb.
226 (DIV_FUNC_END): Add signed argument.
227 (WEAK): New macro (for EABI).
228 (__udivsi3, __umodsi3): Add unsigned argument to DIV_FUNC_END. For
229 __udivsi3, add entry point which skips division-by-zero test.
230 (__divsi3, __modsi3): Add signed argument to DIV_FUNC_END.
231 (__aeabi_uidivmod, __aeabi_idivmod): Check for division by zero.
232 Call __udivsi3 or __divsi3 via entry points which skip
233 division-by-zero tests.
234 (__div0): Rename to __aeabi_idiv0, __aeabi_ldiv0 for EABI, and
235 declare those names weak.
237 2009-12-17 Richard Guenther <rguenther@suse.de>
240 * builtins.c (get_object_alignment): Properly deal with
242 * expr.c (emit_block_move_hints): Assert the alignment makes
245 2009-12-17 Uros Bizjak <ubizjak@gmail.com>
248 * config/i386/i386-modes.def (V1TI): New vector mode.
249 * config/i386/i386.h (VALID_SSE_REG_MODE): Add V1TImode.
250 (SSE_REG_MODE_P): Ditto.
251 * config/i386/sse.md (SSEMODE16): New mode iterator.
253 (avxvecmode): Handle V1TI mode.
254 (*avx_mov<mode>_internal): Use AVXMODE16 instead of AVXMODE.
255 (mov<mode>): Use SSEMODE16 instead of SSEMODE.
256 (*mov<mode>_internal): Ditto.
257 (push<mode>1): Ditto.
258 (movmisalign<mode>): Ditto.
259 (sse2_ashlv1ti): Rename from sse2_ashlti.
260 (sse2_lshrv1ti): Rename from sse2_lshrti.
261 (*avx_ashlv1ti): Rename from *avx_ashlti and move from i386.md.
262 (*avx_lshrv1ti): Rename from *avx_lshrti and move from i386.md.
263 (vec_shl_<mode>): Convert operands to V1TImode and use V1TI shift.
264 (vec_shr_<mode>): Ditto.
265 (*sse2_mulv4si3): Update for renamed sse2_ashlv1ti3.
266 (udot_prodv4si): Ditto.
267 * config/i386/i386.c (classify_argument): Handle V1TImode.
268 (function_arg_advance_32): Ditto.
269 (function_arg_32): Ditto.
270 (ix86_expand_sse4_unpack): Convert operands to V1TImode and update
271 for renamed gen_sse2_lshrv1ti3.
272 (ix86_expand_args_builtin) <V2DI_FTYPE_V2DI_INT_CONVERT>: Set rmode
274 (struct builtin_description) <__builtin_ia32_pslldqi128>: Update
275 for renamed sse2_ashlv1ti3.
276 <__builtin_ia32_psrldqi128>: Update for renamed sse2_lshrv1ti3.
279 2007-06-11 Uros Bizjak <ubizjak@gmail.com>
282 * config/i386/sse.md ("sse2_ashlti", "sse2_lshrti3"): Move ...
283 * config/i386/i386.md ("sse2_ashlti", "sse2_lshrti3"): ... to here.
285 2009-12-17 Richard Earnshaw <rearnsha@arm.com>
288 * arm.md (pic_add_dot_plus_eight): Change output constraint from
291 2009-12-17 Shujing Zhao <pearly.zhao@oracle.com>
293 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
294 Update build_indirect_ref calls.
296 2009-12-17 Uros Bizjak <ubizjak@gmail.com>
298 * config/i386/sync.md (IMODE): Remove mode iterator.
299 (modesuffix): Remove mode attribute.
300 (modeconstraint): Ditto.
301 (immconstraint): Ditto.
302 (*sync_compare_and_swap<mode>): Use SWI mode iterator instead of
303 IMODE mode iterator, imodesuffix mode attribute instead of modesuffix,
304 <r> mode attribute instead of modeconstraint and <i> mode attribute
305 instead of immconstraint.
306 (sync_double_compare_and_swap<mode>): Ditto.
307 (sync_old_add<mode>): Ditto.
308 (sync_lock_test_and_set<mode>): Ditto.
309 (sync_add<mode>): Ditto.
310 (sync_sub<mode>): Ditto.
311 (sync_and<mode>): Ditto.
312 (sync_ior<mode>): Ditto.
313 (sync_xor<mode>): Ditto.
314 (sync_<code><mode>): Macroize insn pattern from
315 sync_{and,ior,xor}<mode> using any_logic code iterator.
317 2009-12-17 Shujing Zhao <pearly.zhao@oracle.com>
320 * c-common.h (ref_operator): New type.
321 (build_indirect_ref): Adjust prototype with new argument.
322 * c-typeck.c (build_indirect_ref): Accept ref_operator as argument and
323 emit the diagnostics for easy translation.
324 (build_array_ref): Update calls to build_indirect_ref.
325 * c-omp.c (c_finish_omp_atomic): Likewise.
326 * c-parser.c (c_parser_unary_expression,
327 c_parser_postfix_expression_after_primary): Likewise.
329 2009-12-16 Richard Guenther <rguenther@suse.de>
332 * langhooks.c (lhd_begin_section): Make sure to switch back
333 to the text section, not some random one.
335 2009-12-16 Jakub Jelinek <jakub@redhat.com>
337 * tree-chrec.c (chrec_convert_1): Only fold (T2)(t +- x) to
338 (T2)t +- (T2)x if only integer types are involved.
340 2009-12-16 Ben Elliston <bje@au.ibm.com>
342 * tree-data-ref.h (dot_rdg): Remove prototype.
343 * tree-data-ref.c (dog_rdg_1, dot_rdg): Remove.
345 2009-12-16 Kazu Hirata <kazu@codesourcery.com>
347 * doc/invoke.texi, doc/options.texi, doc/plugins.texi,
348 doc/tm.texi: Fix typos.
350 2009-12-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
352 * doc/extend.texi (Function Attributes, Extended Asm):
353 Replace TABs with spaces.
354 * doc/md.texi (Standard Names): Likewise.
355 * doc/plugins.texi (Plugins): Likewise.
357 * doc/c-tree.texi (Expression trees): Use @itemx for all but
358 the first item for merged items.
359 * doc/extend.texi (Variable Attributes): Likewise.
360 * doc/install.texi (Configuration): Likewise.
361 * doc/invoke.texi (RS/6000 and PowerPC Options, RX Options):
364 2009-12-15 Richard Guenther <rguenther@suse.de>
366 * tree.c (free_lang_data_in_binfo): Do not free BINFO_OFFSET
367 and BINFO_VPTR_FIELD.
368 (free_lang_data_in_type): Do not free TYPE_STUB_DECL if we
369 generate debug information.
370 (free_lang_data_in_decl): Do not free DECL_SIZE_UNIT,
371 DECL_SIZE, DECL_FIELD_OFFSET and DECL_FCONTEXT.
372 (free_lang_data): Do not disable debuginfo.
373 * lto-streamer-out.c (write_symbol_vec): Deal with
374 non-constant DECL_SIZE.
375 (pack_ts_base_value_fields): Write types with false
377 (lto_output_ts_type_tree_pointers): Stream TYPE_STUB_DECL.
378 * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Stream
380 * dwarf2out.c (add_pure_or_virtual_attribute): Check for
382 (gen_type_die_for_member): Test for TYPE_STUB_DECL.
383 * opts.c (decode_options): Do not disable var-tracking for lto.
384 * doc/invoke.texi (-flto): Document -flto vs. -g experimental
386 (-fwhopr): Document experimental status.
388 2009-12-15 Aldy Hernandez <aldyh@redhat.com>
391 * graphite-sese-to-poly.c (is_reduction_operation_p): Assert that
392 we are a GIMPLE_ASSIGN. Do not calculate rhs code twice.
393 (follow_ssa_with_commutative_ops): Return NULL on non assignment.
395 2009-12-15 Eric Botcazou <ebotcazou@adacore.com>
397 * config/rs6000/rs6000.md (probe_stack): Use an enclosing SET.
399 2009-12-15 Richard Guenther <rguenther@suse.de>
401 * gimple.h (compare_field_offset): Declare.
402 * gimple.c (compare_field_offset): Export.
403 * lto-streamer-in.c (input_gimple_stmt): Use compare_field_offset.
405 2009-12-15 Richard Guenther <rguenther@suse.de>
407 * lto-cgraph.c (lto_output_node): Also stream the alias
409 (input_node): Likewise.
411 2009-12-15 Paolo Bonzini <bonzini@gnu.org>
412 Shujing Zhao <pearly.zhao@oracle.com>
414 * intl.c (get_spaces): New.
415 * intl.h (get_spaces): New.
417 2009-12-14 Jakub Jelinek <jakub@redhat.com>
420 * config/i386/i386.c (ix86_expand_special_args_builtin): Avoid
421 using switch with CODE_FOR_lwp_lwp* cases.
423 * config/i386/i386-builtin-types.def (PVOID_FTYPE_VOID): Use
424 DEF_FUNCTION_TYPE (PVOID) instead of DEF_FUNCTION_TYPE (PVOID, VOID).
426 2009-12-14 Eric Botcazou <ebotcazou@adacore.com>
428 * cfgexpand.c (expand_debug_expr) <INDIRECT_REF>: Remove overzealous
429 assertion and useless code.
430 <TARGET_MEM_REF>: Likewise.
432 2009-12-14 Alexandre Oliva <aoliva@redhat.com>
435 * dwarf2out.c (AT_loc_list_ptr): New.
436 (resolve_addr): Remove unresolved attributes and loc_list entries.
439 * dwarf2out.c (add_var_loc_to_decl): Don't drop initial empty
441 (new_loc_list): Drop gensym arg. Move generation of ll_symbol...
442 (gen_llsym): ... here. New function.
443 (add_loc_descr_to_loc_list): Removed.
444 (loc_descriptor): Infer mode from CONST_DOUBLEs and CONST_VECTORs.
445 (single_element_loc_list): Removed.
446 (dw_loc_list): Don't create entries without a location. Don't
447 special-case the first node of the list, only single nodes.
448 (single_element_loc_list_p): Simplify.
449 (loc_list_from_tree): Don't use DECL_RTL if loc_list is nonempty.
450 (add_location_or_const_value_attribute): Test var loc for NULL.
451 (convert_cfa_to_fb_loc_list): Adjust calls to new new_loc_list,
452 call gen_llsym if needed.
454 2009-12-14 Jakub Jelinek <jakub@redhat.com>
456 * cgraph.h (cgraph_set_nothrow_flag, cgraph_set_readonly_flag,
457 cgraph_set_pure_flag, cgraph_set_looping_const_or_pure_flag): New
459 * cgraph.c (cgraph_set_nothrow_flag, cgraph_set_readonly_flag,
460 cgraph_set_pure_flag, cgraph_set_looping_const_or_pure_flag): New
462 * except.h (set_nothrow_function_flags): Remove prototype.
463 * except.c (set_nothrow_function_flags): Use cgraph_set_nothrow_flag.
465 * ipa-pure-const.c (propagate): Use cgraph_set_nothrow_flag,
466 cgraph_set_readonly_flag, cgraph_set_pure_flag
467 and cgraph_set_looping_const_or_pure_flag.
468 (local_pure_const): Likewise.
470 2009-12-14 Jakub Jelinek <jakub@redhat.com>
471 Sebastian Pop <sebastian.pop@amd.com>
473 * config/i386/i386-builtin-types.def (PVOID): Declared.
474 (VOID_FTYPE_PVOID): Declared.
475 (PVOID_FTYPE_VOID): Declared.
476 (UCHAR_FTYPE_USHORT_UINT_USHORT): Removed.
477 (VOID_FTYPE_USHORT_UINT_USHORT): Removed.
478 * config/i386/i386.c (IX86_BUILTIN_LLWPCB16, IX86_BUILTIN_LLWPCB32,
479 IX86_BUILTIN_LLWPCB64, IX86_BUILTIN_SLWPCB16, IX86_BUILTIN_SLWPCB32,
480 IX86_BUILTIN_SLWPCB64, IX86_BUILTIN_LWPVAL16, IX86_BUILTIN_LWPINS16):
482 (IX86_BUILTIN_LLWPCB, IX86_BUILTIN_SLWPCB): New.
483 (bdesc_special_args): Adjust declaration of __builtin_ia32_llwpcb,
484 __builtin_ia32_slwpcb, __builtin_ia32_lwpval32,
485 __builtin_ia32_lwpval64, __builtin_ia32_lwpins32, and
486 __builtin_ia32_lwpins64.
487 (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PVOID.
488 Do not handle VOID_FTYPE_USHORT_UINT_USHORT and
489 UCHAR_FTYPE_USHORT_UINT_USHORT. Warn when the third operand is
490 not an immediate. Also handle builtin functions with 3 arguments.
491 (ix86_expand_builtin): Handle IX86_BUILTIN_LLWPCB and
493 * config/i386/i386.md (UNSPEC_LLWP_INTRINSIC, UNSPEC_SLWP_INTRINSIC):
494 Renamed UNSPECV_LLWP_INTRINSIC and UNSPECV_SLWP_INTRINSIC.
495 (memory attribute): Handle lwp.
496 (lwp*): Rewrite all the insn patterns for LWP.
497 * config/i386/lwpintrin.h (__llwpcb16, __llwpcb32, __llwpcb64,
498 __slwpcb16, __slwpcb32, __slwpcb64, __lwpval16, __lwpins16): Removed.
499 (__llwpcb, __slwpcb): New.
501 2009-12-14 Dmitry Gorbachev <d.g.gorbachev@gmail.com>
503 * dominance.c (set_immediate_dominator): Don't mark as inline.
505 2009-12-14 Eric Botcazou <ebotcazou@adacore.com>
507 * doc/tm.texi (STACK_CHECK_PROTECT): Document alternate default.
508 * doc/md.texi (check_stack): Clarify.
509 (probe_stack): Likewise.
510 * config/rs6000/rs6000.md (UNSPEC_PROBE_STACK): New constant.
511 (probe_stack): New insn.
513 2009-12-14 Ben Elliston <bje@au.ibm.com>
515 * lto-streamer-in.c (lto_get_builtin_tree): fclass can only be a
516 BUILT_IN_NORMAL or BUILT_IN_MD.
518 2009-12-13 Eric Botcazou <ebotcazou@adacore.com>
520 * doc/tm.texi (STACK_CHECK_PROBE_LOAD): Delete.
521 * expr.h (STACK_CHECK_PROBE_LOAD): Likewise.
522 * explow.c (emit_stack_probe): Do not test STACK_CHECK_PROBE_LOAD.
523 * system.h (STACK_CHECK_PROBE_LOAD): Poison.
525 2009-12-13 Michael Matz <matz@suse.de>
527 PR tree-optimization/42027
528 * dojump.c (do_jump <TRUTH_AND_EXPR, TRUTH_OR_EXPR>): Go to
529 TRUTH_ANDIF_EXPR resp. TRUTH_ORIF_EXPR expander, instead of
532 2009-12-13 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
535 * config/avr/predicates.md (pseudo_register_operand): New predicate
537 * config/avr/avr.md (divmodqi4): Replace with define_insn_and_split
538 to allow div/mod optimization.
545 2009-12-13 Richard Guenther <rguenther@suse.de>
547 PR tree-optimization/42357
548 * tree-sra.c (sra_modify_assign): Do not tear apart struct copies.
550 2009-12-12 Richard Guenther <rguenther@suse.de>
552 * tree.c (need_assembler_name_p): Abstract decls do not need
554 * dwarf2out.c (dwarf2out_abstract_function): Preserve
555 DECL_ABSTRACT properly.
557 2009-12-11 Richard Guenther <rguenther@suse.de>
559 * lto-streamer-in.c (lto_input_tree_ref): Do not register
560 DEBUG_EXPR_DECLs with the varpool.
562 2009-12-11 Eric Botcazou <ebotcazou@adacore.com>
564 * config/sparc/linux-unwind.h (MD_FROB_UPDATE_CONTEXT, 64-bit): Define.
565 (sparc64_frob_update_context): New function.
567 2009-12-11 Richard Guenther <rguenther@suse.de>
571 * lto-streamer-out.c (write_global_stream): Do not make decls
572 weak but resort to TREE_ASM_WRITTEN to avoid multiple definitions.
573 Make sure to mark all decls that we have written.
575 2009-12-11 Sebastian Andrzej Siewior <bigeasy@linutronix.de>
579 * config/m68k/linux.h: Remove LABELNO from the mcount statement. It is
580 not used by glibc/uclibc and does not work with large binaries.
582 2009-12-11 Richard Guenther <rguenther@suse.de>
585 * lto-streamer-in.c (lto_init_eh): Move eh_initialized_p
587 (input_eh_regions): Adjust.
588 (lto_input_ts_function_decl_tree_pointers): Initialize EH
589 if a non-NULL DECL_FUNCTION_PERSONALITY was read in.
591 2009-12-11 Duncan Sands <baldrick@free.fr>
593 * passes.c (make_pass_instance): Allocate and copy the right amount of
594 memory for ipa passes, which are not the same size as other passes.
596 2009-12-11 Joern Rennecke <amylaar@spamcop.net>
598 * plugin.c (get_named_event_id): Fix hash table rebuild to include
599 dynamically allocated events.
601 2009-12-11 Richard Guenther <rguenther@suse.de>
604 * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Properly
605 detect non-prevailing decls.
607 2009-12-10 Jakub Jelinek <jakub@redhat.com>
610 * cgraph.h (struct cgraph_node): Add same_comdat_group field.
611 * cgraph.c (cgraph_remove_node): Unchain node from same_comdat_group
613 (cgraph_node_can_be_local_p): Return false for DECL_COMDAT with
614 node->same_comdat_group.
615 * ipa.c (cgraph_remove_unreachable_nodes): For any reachable node
616 mark all its same_comdat_group nodes as also reachable.
617 (cgraph_externally_visible_p): Return true even if any of
618 same_comdat_group nodes has address taken.
619 * lto-cgraph.c (lto_output_node): Stream out same_comdat_group.
620 (output_cgraph): Ensure other same_comdat_group nodes are also
622 (input_node): Stream in same_comdat_group.
623 (input_cgraph_1): Fix up same_comdat_group fields from references
625 * cgraphunit.c (cgraph_analyze_functions): Mark all other
626 same_comdat_group nodes as reachable.
627 (cgraph_mark_functions_to_output): For each node->process process
628 also other same_comdat_group nodes.
629 * ipa-inline.c (cgraph_clone_inlined_nodes): Don't reuse nodes
630 with same_comdat_group non-NULL.
631 (cgraph_mark_inline_edge): Likewise.
633 2009-12-10 Jan Hubicka <jh@suse.cz>
637 * cgraph.c (cgraph_create_edge_including_clones): Add old_stmt
638 parameter; update edge if it already exists.
639 (cgraph_remove_node): Handle correctly cases where we are removing
641 * cgraph.h (cgraph_create_edge_including_clones): Declare.
642 (verify_cgraph_node): Add missing error_found = true code.
643 (cgraph_materialize_all_clones): Remove call edges of dead nodes.
644 * ipa.c (cgraph_remove_unreachable_nodes): Correctly look for master
645 clone; fix double linked list removal.
646 * tree-inline.c (copy_bb): Update cgraph_create_edge_including_clones
647 call; fix frequency of newly created edge.
649 2009-12-10 Bernd Schmidt <bernd.schmidt@analog.com>
652 * regrename.c: Error out if MAX_RECOG_OPERANDS is larger than
653 HOST_BITS_PER_WIDE_INT.
654 (verify_reg_in_set): New function, broken out of verify_reg_tracked.
655 (verify_reg_tracked): Use it.
656 (scan_rtx_reg): When seeing a use involving a superset of the
657 registers in an existing chain, enlarge that chain. Otherwise,
658 allow subsets and set fail_current_block for all other kinds of
660 (hide_operands): New argument UNTRACKED_OPERANDS; callers changed.
661 Do not modify operands when the bit with the corresponding number
662 is set in that bitmap.
663 (build_def_use): When we see matching operands with different
664 modes, don't set fail_current_block, but keep track of such
665 operands in a bitmap if their registers aren't already tracked
666 in an open chain. Pass this bitmap to all hide_operands calls.
668 2009-12-10 Richard Guenther <rguenther@suse.de>
670 PR tree-optimization/42337
671 * tree-ssa-pre.c (seen_during_translate): Remove.
672 (phi_translate_1): Collapse into ...
673 (phi_translate): ... this. Remove seen parameter and
674 adjust recursive calls.
676 2009-12-10 Richard Guenther <rguenther@suse.de>
677 Allan Sandfeld Jensen <linux@carewolf.com>
679 * tree-vectorizer.c (vectorize_loops): Properly guard
680 vectorizer verboseness.
682 2009-12-10 Ben Elliston <bje@au.ibm.com>
684 * fwprop.c (free_load_extend): Initialise `use'.
686 2009-12-09 David Edelsohn <edelsohn@gnu.org>
688 * builtins.c (do_mpc_ckconv): Pass the component type to
691 2009-12-09 Xinliang David Li <davidxl@google.com>
693 PR tree-optimization/42337
694 * tree-ssa-pre.c (phi_translate_1): Push and Pop SEEN set.
696 2009-12-09 Nathan Froyd <froydnj@codesourcery.com>
698 * config/rs6000/vector.md (absv2sf2, negv2sf2, addv2sf3, subv2sf3,
699 mulv2sf3, divv2sf3): New expanders.
700 * config/rs6000/spe.md (spe_evabs, spe_evand, spe_evaddw, spe_evsubfw,
701 spe_evdivws): Rename to use standard GCC names.
702 * config/rs6000/paired.md (negv2sf, absv2sf2, addv2sf3, subv2sf3,
703 mulv2sf3, divv2sf3): Rename to avoid conflict with the new expanders.
704 * config/rs6000/rs6000.c (bdesc_2arg, bdesc_1arg): Use new CODE_FOR_
705 names for renamed patterns.
707 2009-12-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
709 * config/s390/s390.md ("copysign<mode>3"): Pattern removed.
711 2009-12-09 Jakub Jelinek <jakub@redhat.com>
713 * configure.ac: Compute ld_ver, ld_vers, ld_date, ld_vers_major,
714 ld_vers_minor and ld_vers_path always, not just when gcc_cv_ld_hidden
716 * configure: Regenerated.
718 2009-12-08 Richard Henderson <rth@redhat.com>
720 * combine.c (setup_incoming_promotions): Fix sign-extend of
721 zero-extend case; tidy conditions.
723 2009-12-08 Michael Matz <matz@suse.de>
726 * function.c (free_temp_slots): Only walk the temp slot
727 addresses and combine slots if we actually changes something.
728 (pop_temp_slots): Ditto.
730 2009-12-08 Olga Golovanevsky <olga@il.ibm.com>
733 * ipa-struct-reorg.c (compare_fields): New function.
734 (find_field_in_struct_1): Use compare_fields function.
735 (is_equal_types): Likewise.
737 2009-12-07 DJ Delorie <dj@redhat.com>
740 * config/mep/mep.c (mep_expand_prologue): Set
741 really_need_stack_frame after frame_size is set.
743 2009-12-07 Richard Henderson <rth@redhat.com>
746 * combine.c (setup_incoming_promotions): Improve the conditions
747 under which we respect the promotions applied.
749 2009-12-07 Eric Botcazou <ebotcazou@adacore.com>
751 * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch.
752 * config/sparc/linux64.h (ASM_SPEC): Likewise.
754 2009-12-07 Richard Henderson <rth@redhat.com>
758 * tree-ssa.c (insert_debug_temp_for_var_def): Skip propagation
759 for ssa names already registered for update.
761 2009-12-07 Jakub Jelinek <jakub@redhat.com>
764 * ddg.c (add_inter_loop_mem_dep): Use ANTI_DEP if from or to
767 2009-12-07 Sebastian Pop <sebastian.pop@amd.com>
769 * config/i386/driver-i386.c (host_detect_local_cpu): Add -mlwp to the
770 options when bit_LWP is set.
772 2009-12-07 Sebastian Pop <sebastian.pop@amd.com>
774 * config/i386/cpuid.h (bit_ABM): New.
775 * config/i386/driver-i386.c (host_detect_local_cpu): Add -mabm to the
776 options when bit_ABM is set.
778 2009-12-07 Jakub Jelinek <jakub@redhat.com>
780 * config/i386/i386.c (bdesc_special_args): Move __builtin_clzs from
782 (bdesc_args): ... here.
783 * config.gcc (i[34567]86-*-*): Include abmintrin.h.
784 (x86_64-*-*): Likewise.
786 2009-12-07 Sebastian Pop <sebastian.pop@amd.com>
788 * config.gcc (i[34567]86-*-*, x86_64-*-*): Add popcntintrin.h.
789 * config/i386/abmintrin.h (_mm_popcnt_u32, _mm_popcnt_u64): Moved...
790 * config/i386/i386-c.c (__POPCNT__): Defined.
791 * config/i386/popcntintrin.h: ...here. New file.
792 * config/i386/smmintrin.h (_mm_popcnt_u32, _mm_popcnt_u64): Moved...
793 Include popcntintrin.h.
794 * config/i386/x86intrin.h: Include popcntintrin.h when __POPCNT__
797 2009-12-07 Sebastian Pop <sebastian.pop@amd.com>
799 * config/i386/i386-protos.h (ix86_expand_fma4_multiple_memory):
801 * config/i386/i386.c (ix86_expand_fma4_multiple_memory): Removed.
802 * config/i386/sse.md: Remove all XOP splitters.
803 Allow the second and fourth operands of XOP multiply-add insns
806 2009-12-07 Sebastian Pop <sebastian.pop@amd.com>
808 * config/i386/sse.md: Remove all FMA4 splitters.
809 Allow the second operand of FMA4 insns to be a nonimmediate.
810 Fix comments punctuation.
812 2009-12-07 Julian Brown <julian@codesourcery.com>
814 * config/arm/constraints.md (Ps, Pt): New constraint letters.
815 * config/arm/thumb2.md (*thumb2_addsi_short): Tighten constraints.
817 2009-12-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
820 * configure.ac (HAVE_mpc): Don't define.
821 * config.in, configure: Regenerate.
824 * builtins.c: Remove HAVE_mpc* checks throughout.
825 * fold-const.c: Likewise.
827 * toplev.c: Likewise.
829 2009-12-07 Edmar Wienskoski <edmar@freescale.com>
831 * config.gcc (cpu_is_64bit): Add new core e500mc64.
832 (powerpc*-*-*): Add new core e500mc64.
833 * config/rs6000/e500mc64.md: New file.
834 * config/rs6000/rs6000.c (processor_costs): Add new costs for
836 (rs6000_override_options): Add e500mc64 case to
837 processor_target_table. Altivec and Spe options not allowed with
838 e500mc64. Disable string instructions for e500mc64. Enable branch
839 targets alignment for both e500mc and e500mc64. Initialize
840 rs6000_cost for e500mc64.
841 (rs6000_emit_sISEL): New function.
842 (rs6000_emit_sCOND): Call rs6000_emit_sISEL for isel targets.
843 (rs6000_emit_int_cmove): Fix mode of 64 bit isel pattern
845 (rs6000_issue_rate): Set issue rate for e500mc64.
846 (rs6000_rtx_costs): Set more accurate cost for mfcr instruction
847 on architectures with isel.
848 * config/rs6000/rs6000-protos.h (rs6000_emit_sISEL): Declare.
849 * config/rs6000/rs6000.h (processor_type): Add
850 PROCESSOR_PPCE500MC64.
851 (ASM_CPU_SPEC): Add e500mc64.
852 * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc64.
854 (abssi2_isel): Expand pattern to handle DImode.
855 (nabs<mode>2_isel): New pattern.
856 (absdi2): Change pattern to handle 64 bit isel targets.
857 (absdi2_internal): Exclude ISEL targets.
858 (nabsdi2): Exclude ISEL targets.
859 * doc/invoke.texi: Add e500mc64 to list of cpus.
861 2009-12-07 Uros Bizjak <ubizjak@gmail.com>
863 * config/i386/i386.md (any_or): New code iterator.
864 (any_logic): Rename from plogic code iterator.
865 (logicprefix): Rename from plogicprefix code attribute.
866 (<code><mode>3): Macroize expander from {ior,xor}<mode>3 using
867 any_or code iterator.
868 (*<code><mode>_1): Macroize insn from *{ior,xor}<mode>_1 using
869 any_or code iterator.
870 (*<code><mode>_2): Ditto from *{ior,xor}<mode>_2.
871 (*<code><mode>_3): Ditto from *{ior,xor}<mode>_3.
872 (ior and xor splitters): Ditto.
873 * config/i386/mmx.md: Updated for rename.
874 * config/i386/sse.md: Ditto.
876 2009-12-07 Uros Bizjak <ubizjak@gmail.com>
878 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
879 Remove quotes around condition logic code.
881 2009-12-06 Richard Henderson <rth@redhat.com>
884 * tree-ssa-dom.c (degenerate_phi_result): Check for NULL phi
887 2009-12-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
889 * doc/install.texi: Document MPC is required.
891 2009-12-06 Uros Bizjak <ubizjak@gmail.com>
893 * config/i386/i386.md (g): Add HImode and QImode.
894 (general_szext_operand): New mode attribute.
895 (*test<mode>_1): Macroize insn from *test{qi,hi,si}_1 using
896 SWI124 mode iterator.
897 (and<mode>3): Macroize expander from and{qi,hi,si,di}3 using
899 (*and<mode>_2): Macroize insn from *and{qi,hi,si}_2 using
900 SWI124 mode iterator.
901 (ior<mode>3): Macroize expander from ior{qi,hi,si,di}3 using
903 (*ior<mode>_1): Macroize insn from *ior{hi,si,di}_1 using
904 SWI248 mode iterator.
905 (*ior<mode>_2): Macroize insn from *ior{qi,hi,si,di}_2 using
907 (*ior<mode>_3): Macroize insn from *ior{qi,hi,si,di}_3 using
909 (xor<mode>3): Macroize expander from xor{qi,hi,si,di}3 using
911 (*xor<mode>_1): Macroize insn from *xor{hi,si,di}_1 using
912 SWI248 mode iterator.
913 (*xor<mode>_2): Macroize insn from *xor{qi,hi,si,di}_2 using
915 (*xor<mode>_3): Macroize insn from *xor{qi,hi,si,di}_3 using
918 2009-12-05 Sebastian Pop <sebastian.pop@amd.com>
920 * config/i386/i386.c (TARGET_DEFAULT_TARGET_FLAGS): Add
922 * config/i386/i386.h (CC1_CPU_SPEC_1): Remove
923 "'-mfused-madd' was removed".
924 * config/i386/i386.opt (mfused-madd): New.
925 * config/i386/sse.md: Add TARGET_FUSED_MADD to FMA4 insns.
926 * doc/invoke.texi (-mfused-madd, -mno-fused-madd): Document.
928 2009-12-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
930 * pa64-hpux.h (LIB_SPEC): Handle -rdynamic.
931 * pa-hpux10.h (LIB_SPEC): Likewise.
932 * pa-hpux11.h (LIB_SPEC): Likewise.
935 * pa/linux-unwind.h (pa32_fallback_frame_state): Set fs->signal_frame
937 * pa/hpux-unwind.h (pa32_fallback_frame_state): Likewise.
939 2009-12-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
941 * configure: Regenerate.
943 2009-12-05 Richard Earnshaw <rearnsha@arm.com>
945 * arm/thumb2.md (thumb2_mulsi_short_compare0): Use a low-register
948 2009-12-04 David Daney <ddaney@caviumnetworks.com>
950 PR rtl-optimization/42164
951 * combine.c (combine_simplify_rtx): Handle truncation of integer
954 2009-12-04 Richard Guenther <rguenther@suse.de>
956 * lto-streamer-out.c (pack_ts_decl_common_value_fields):
957 Revert previous change.
958 (lto_output_ts_decl_common_tree_pointers): Stream DECL_VALUE_EXPR.
959 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
962 2009-12-04 Richard Guenther <rguenther@suse.de>
964 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
966 (call_may_clobber_ref_p_1): Likewise.
968 2009-12-04 Matthias Klose <doko@ubuntu.com>
969 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
972 * config.gcc (hppa*-*-linux*): Use config/t-slibgcc-libgcc.
973 * config/pa/pa-linux.h (LIB_SPEC): Remove.
975 2009-12-03 Sebastian Pop <sebastian.pop@amd.com>
976 Richard Henderson <rth@redhat.com>
978 * config/i386/i386-protos.h (ix86_fma4_valid_op_p): Remove.
979 * config/i386/i386.c (ix86_fma4_valid_op_p): Remove.
980 * config/i386/i386.md: Do not use ix86_fma4_valid_op_p.
981 * config/i386/sse.md (fma4_*): Remove alternative with operand 1
982 matching a memory access. Do not use ix86_fma4_valid_op_p.
984 Do not use ix86_fma4_valid_op_p in FMA4 and XOP splitters.
986 2009-12-03 Richard Henderson <rth@redhat.com>
988 * config/i386/i386.c (ix86_fixup_binary_operands): For FMA4, force
989 all operands into registers.
991 2009-12-03 Sebastian Pop <sebastian.pop@amd.com>
993 * config/i386/i386.c (ix86_expand_fma4_multiple_memory): Remove unused
995 * config/i386/i386-protos.h (ix86_expand_fma4_multiple_memory): Same.
996 * config/i386/sse.md: Same.
998 2009-12-03 Richard Guenther <rguenther@suse.de>
1000 * cgraphunit.c (assemble_thunk): Use DECL_ASSEMBLER_NAME
1001 instead of DECL_NAME for the entry point.
1003 2009-12-03 Richard Earnshaw <rearnsha@arm.com>
1005 * arm/linux-atomic.c (SYNC_LOCK_RELEASE): Place memory barrier
1006 before the lock release.
1008 2009-12-03 Michael Matz <matz@suse.de>
1011 * cfgexpand.c (struct stack_var): Add conflicts member.
1012 (stack_vars_conflict, stack_vars_conflict_alloc,
1013 n_stack_vars_conflict): Remove.
1014 (add_stack_var): Initialize conflicts member.
1015 (triangular_index, resize_stack_vars_conflict): Remove.
1016 (add_stack_var_conflict, stack_var_conflict_p): Rewrite in
1017 terms of new member.
1018 (union_stack_vars): Only run over the conflicts.
1019 (partition_stack_vars): Remove special case.
1020 (expand_used_vars_for_block): Don't call resize_stack_vars_conflict,
1021 don't create self-conflicts.
1022 (account_used_vars_for_block): Don't create any conflicts.
1023 (fini_vars_expansion): Free bitmaps, don't free or clear removed
1026 2009-12-03 Bernd Schmidt <bernd.schmidt@analog.com>
1029 * regrename.c (live_in_chains): New variable.
1030 (verify_reg_tracked): New static function.
1031 (scan_rtx_reg): Update live_in_chains.
1032 (scan_rtx): Only promote sets in COND_EXEC to OP_INOUT if
1033 we're already tracking the reg.
1034 (build_def_use): Likewise. Initialize live_in_chains.
1036 2009-12-03 Ken Werner <ken.werner@de.ibm.com>
1038 * config/spu/spu-elf.h (STARTFILE_SPEC): Add support for gprof
1040 * config/spu/spu-protos.h (spu_function_profiler): Add prototype.
1041 * config/spu/spu.c (spu_function_profiler): New function.
1042 * config/spu/spu.h (FUNCTION_PROFILER): Invoke
1043 spu_function_profiler.
1044 (NO_PROFILE_COUNTERS): Define.
1045 (PROFILE_BEFORE_PROLOGUE): Likewise.
1047 2009-12-03 Dave Korn <dave.korn.cygwin@gmail.com>
1049 * ggc-page.c (struct free_object): Pull definition out ...
1050 (struct globals): .. from here.
1052 2009-12-02 Richard Guenther <rguenther@suse.de>
1054 * fold-const.c (div_if_zero_remainder): Honor that sizetypes
1055 are sign-extending. Simplify.
1057 2009-12-02 Richard Henderson <rth@redhat.com>
1060 * tree-loop-distribution.c (build_size_arg_loc): Tidy.
1061 (generate_memset_zero): Convert to sizetype properly. Tidy.
1063 2009-12-02 Richard Guenther <rguenther@suse.de>
1065 * lto-streamer-out.c (pack_ts_decl_common_value_fields):
1066 Do not pretend we have value exprs.
1068 2009-12-02 Richard Guenther <rguenther@suse.de>
1071 * fold-const.c (try_move_mult_to_index): Do not leak
1072 domain types into the IL.
1074 2009-12-02 Richard Guenther <rguenther@suse.de>
1077 * tree.c (free_lang_data): Disable if not using LTO.
1079 2009-12-02 Richard Guenther <rguenther@suse.de>
1082 * cfgloopmanip.c (remove_path): Avoid cancelling loops twice.
1084 2009-12-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1087 * tree.h (int_or_pointer_precision): Remove.
1088 * tree.c (int_or_pointer_precision): Remove.
1089 (integer_pow2p): Use TYPE_PRECISION instead.
1090 (tree_log2): Likewise.
1091 (tree_floor_log2): Likewise.
1092 (signed_or_unsigned_type_for): Likewise.
1093 * fold-const.c (fit_double_type): Likewise.
1094 * varasm.c (initializer_constant_valid_p): Likewise.
1096 2009-12-02 Ira Rosen <irar@il.ibm.com>
1098 * doc/invoke.texi (-fdump-tree-slp): Document.
1099 (-ftree-vectorizer-verbose): Update.
1100 (-ftree-slp-vectorize): Document.
1102 2009-12-02 Nick Clifton <nickc@redhat.com>
1104 * config/rx/rx.c (rx_conditional_register_usage): Do not warn if
1105 no fixed registers are available for interrupt handlers. Do not
1106 fix normal registers.
1107 (MUST_SAVE_ACC_REGISTER): New macro.
1108 (rx_get_stack_layout): Create a stack frame for fast interrupt
1109 handlers, if necessary. Push extra registers if needed in order
1110 to save the accumulator.
1111 (rx_expand_prologue): Create a stack frame for fast interrupt
1112 handlers, if necessary.
1113 (rx_expand_builtin_mvfc): Handle the case where there is no target.
1115 2009-12-01 Sebastian Pop <sebastian.pop@amd.com>
1117 * config/i386/abmintrin.h (__lzcnt16): New.
1120 * config/i386/i386-builtin-types.def (UINT16_FTYPE_UINT16): New.
1121 * config/i386/i386.c (IX86_BUILTIN_CLZS): New.
1122 (bdesc_special_args): Add __builtin_clzs.
1123 (ix86_expand_args_builtin): Handle UINT16_FTYPE_UINT16.
1125 2009-12-01 Sebastian Pop <sebastian.pop@amd.com>
1127 * config/i386/abmintrin.h (_mm_popcnt_u32): New.
1128 (_mm_popcnt_u64): New.
1130 2009-12-01 Sebastian Pop <sebastian.pop@amd.com>
1132 * config/i386/abmintrin.h: New.
1133 * config/i386/i386-c.c (ix86_target_macros_internal): Defined __ABM__.
1134 * config/i386/x86intrin.h: Include abmintrin.h when __ABM__ is defined.
1136 2009-12-01 Uros Bizjak <ubizjak@gmail.com>
1138 * config/i386/i386.md (SWI124): Rename from CRC32MODE.
1139 (crc32modesuffix): Remove.
1140 (crc32modeconstraint): Ditto.
1141 (sse4_2_crc32<mode>): Update for renamed mode iterator. Use
1142 imodesuffix instead of crc32modesuffix and <r>m instead of
1143 crc32modeconstraint.
1145 2009-12-01 Jakub Jelinek <jakub@redhat.com>
1148 * tree-cfgcleanup.c (cleanup_omp_return): Don't ICE if control_bb
1149 contains no statements.
1151 2009-12-01 Grigori Fursin <grigori.fursin@inria.fr>
1152 Joern Rennecke <amylaar@spamcop.net>
1154 * cgraphunit.c (plugin.h): Include.
1155 (ipa_passes): Invoke PLUGIN_ALL_IPA_PASSES_START /
1156 PLUGIN_ALL_IPA_PASSES_END at start / end of processing.
1157 * gcc-plugin.h (highlev-plugin-common.h, hashtab.h): Include.
1158 (enum plugin_event): Define by including plugin.def.
1159 Last enumerator is now called PLUGIN_EVENT_FIRST_DYNAMIC.
1160 (plugin_event_name): Change type to const char **.
1161 (get_event_last, get_named_event_id, unregister_callback): Declare.
1162 (register_callback): Change type of event argument to int.
1163 (highlev-plugin-common.h): New file.
1164 * Makefile.in (GCC_PLUGIN_H): Add highlev-plugin-common.h and
1166 (tree-optimize.o passes.o): Depend on $(PLUGIN_H).
1167 (PLUGIN_HEADERS): Add opts.h, $(PARAMS_H) and plugin.def.
1168 (s-header-vars): New rule.
1169 (install-plugin): Depend on s-header-vars. Install b-header-vars.
1170 * params.c (get_num_compiler_params): New function.
1171 * params.h (get_num_compiler_params): Declare.
1172 * passes.c (plugin.h): Include.
1173 (make_pass_instance): Invoke PLUGIN_NEW_PASS.
1174 (do_per_function_toporder, pass_init_dump_file): No longer static.
1175 (pass_fini_dump_file): Likewise.
1176 (execute_one_pass): Likewise. Invoke PLUGIN_OVERRIDE_GATE and
1177 PLUGIN_PASS_EXECUTION.
1178 (execute_ipa_pass_list): Invoke PLUGIN_EARLY_GIMPLE_PASSES_START and
1179 PLUGIN_EARLY_GIMPLE_PASSES_END.
1180 * plugin.c (plugin_event_name_init): New array, defined by
1181 including plugin.def.
1182 (FMT_FOR_PLUGIN_EVENT): Update.
1183 (plugin_event_name): Change type to const char ** and initialize
1184 to plugin_event_name_init.
1185 (event_tab, event_last, event_horizon): New variable.
1186 (get_event_last): New function.
1187 (plugin_callbacks_init): New array.
1188 (plugin_callbacks: Change type to struct callback_info **.
1189 Initialize to plugin_callbacks_init.
1190 (htab_event_eq, get_named_event_id, unregister_callback): New function.
1191 (invoke_plugin_va_callbacks): Likewise.
1192 (register_callback): Change type of event argument to int.
1193 Handle new events. Allow dynamic events.
1194 (invoke_plugin_callbacks): Likewise. Return success status.
1195 (plugins_active_p): Allow dynamic callbacks.
1196 * plugin.def: New file.
1197 * plugin.h (invoke_plugin_callbacks): Update prototype.
1198 (invoke_plugin_va_callbacks): Declare.
1199 * tree-optimize.c (plugin.h): Include.
1200 (tree_rest_of_compilation): Invoke PLUGIN_ALL_PASSES_START and
1201 PLUGIN_ALL_PASSES_END.
1202 * tree-pass.h (execute_one_pass, pass_init_dump_file): Declare.
1203 (pass_fini_dump_file, do_per_function_toporder): Likewise.
1204 * doc/plugin.texi: Document new event types.
1206 2009-12-01 Martin Jambor <mjambor@suse.cz>
1208 PR tree-optimization/42237
1209 * tree-sra.c (sra_ipa_modify_assign): Split gimple_reg_type assignments
1210 in between references into two.
1212 2009-12-01 Richard Guenther <rguenther@suse.de>
1214 * tree-inline.c (copy_tree_body_r): Do not set TREE_BLOCK
1215 to the block of the call when remapping a type.
1217 2009-12-01 Martin Jambor <mjambor@suse.cz>
1219 * cgraph.h (struct cgraph_edge): Reorder fields. Make loop_nest
1221 * ipa-prop.h (struct ipa_param_call_note): Likewise.
1222 * ipa-prop.c (ipa_note_param_call): Initialize note->loop_nest.
1224 2009-12-01 Richard Guenther <rguenther@suse.de>
1226 * final.c (rest_of_clean_state): If -fcompare-debug is
1227 given dump final insns without UIDs.
1228 * tree-ssa-live.c (remove_unused_scope_block_p): Remove
1229 after_inlining checks.
1231 2009-11-30 Chao-ying Fu <fu@mips.com>
1233 * config/mips/mips-dsp.md (mips_lhx_<mode>): Use sign_extend.
1235 2009-11-30 Dave Korn <dave.korn.cygwin@gmail.com>
1237 * configure.ac (USE_CYGWIN_LIBSTDCXX_WRAPPERS): Define to reflect
1238 status of AC_CHECK_FUNC for Cygwin DLL libstdc++ support wrappers.
1239 * configure: Regenerate.
1240 * config.in: Regenerate.
1242 * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Define list of --wrap
1243 options for Cygwin DLL libstdc++ support wrappers.
1244 (CXX_WRAP_SPEC_OPT): Define spec to use wrappers or not by default
1245 according to defined value of USE_CYGWIN_LIBSTDCXX_WRAPPERS.
1246 (CXX_WRAP_SPEC): Define entire wrapper spec in or out according to
1247 whether USE_CYGWIN_LIBSTDCXX_WRAPPERS is even defined or not.
1248 (LINK_SPEC): Include CXX_WRAP_SPEC.
1249 * gcc/config/i386/winnt.c (wrapper_strcmp): New qsort helper function.
1250 (i386_find_on_wrapper_list): Check if a function is found on the list
1251 of libstdc++ wrapper options.
1252 (i386_pe_file_end): If we are importing a wrapped function, also emit
1253 an external declaration for the real version.
1254 * config/i386/cygming.opt (muse-libstdc-wrappers): New option for
1255 Cygwin targets. Update copyright year.
1257 2009-11-30 Steve Ellcey <sje@cup.hp.com>
1258 Jakub Jelinek <jakub@redhat.com>
1260 * function.c (instantiate_virtual_regs_in_insn): Copy to new reg
1261 before forcing mode.
1263 2009-11-30 Anatoly Sokolov <aesok@post.ru>
1265 * config/sh/sh.c (sh_promote_prototypes): Make static.
1266 (sh_function_value, sh_libcall_value, sh_function_value_regno_p): New
1268 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
1269 * config/sh/sh.h (FUNCTION_VALUE_REGNO_P): Redefine, use
1270 sh_function_value_regno_p.
1271 (FUNCTION_VALUE, LIBCALL_VALUE): Remove.
1272 * config/sh/sh-protos.h (sh_function_value_regno_p): Declare.
1273 (sh_promote_prototypes) : Remove.
1275 2009-11-30 Julian Brown <julian@codesourcery.com>
1277 * config/arm/arm.h (PREFERRED_RELOAD_CLASS): Don't restrict Thumb-2
1280 2009-11-30 Richard Henderson <rth@redhat.com>
1282 * config/i386/i386.c (ix86_vec_interleave_v2df_operator_ok): New.
1283 (bdesc_special_args): Update insn codes.
1284 (avx_vpermilp_parallel): Correct range check.
1285 (ix86_rtx_costs): Handle vector permutation rtx codes.
1286 (struct expand_vec_perm_d): Move earlier.
1287 (get_mode_wider_vector): New.
1288 (expand_vec_perm_broadcast_1): New.
1289 (ix86_expand_vector_init_duplicate): Use it. Tidy AVX modes.
1290 (expand_vec_perm_broadcast): New.
1291 (ix86_expand_vec_perm_builtin_1): Use it.
1292 * config/i386/i386-protos.h: Update.
1293 * config/i386/predicates.md (avx_vbroadcast_operand): New.
1294 * config/i386/sse.md (AVX256MODE24P): New.
1295 (ssescalarmodesuffix2s): New.
1296 (avxhalfvecmode, avxscalarmode): Fill out to all modes.
1297 (avxmodesuffixf2c): Add V8SI, V4DI.
1298 (vec_dupv4sf): New expander.
1299 (*vec_dupv4sf_avx): Add vbroadcastss alternative.
1300 (*vec_set<mode>_0_avx, **vec_set<mode>_0_sse4_1): Macro-ize for
1301 V4SF and V4SI. Move C alternatives to front. Add insertps and
1302 pinsrd alternatives.
1303 (*vec_set<mode>_0_sse2): Split out from ...
1304 (vec_set<mode>_0): Macro-ize for V4SF and V4SI.
1305 (vec_interleave_highv2df, vec_interleave_lowv2df): Require register
1306 destination; use ix86_vec_interleave_v2df_operator_ok, instead of
1307 ix86_fixup_binary_operands.
1308 (*avx_interleave_highv2df, avx_interleave_lowv2df): Add movddup.
1309 (*sse3_interleave_highv2df, sse3_interleave_lowv2df): New.
1310 (*avx_movddup, *sse3_movddup): Remove. New splitter from
1311 vec_select form to vec_duplicate form.
1312 (*sse2_interleave_highv2df, sse2_interleave_lowv2df): Use
1313 ix86_vec_interleave_v2df_operator_ok.
1314 (avx_movddup256, avx_unpcklpd256): Change to expanders, merge into ...
1315 (*avx_unpcklpd256): ... here.
1316 (*vec_dupv4si_avx): New.
1317 (*vec_dupv2di_avx): Add movddup alternative.
1318 (*vec_dupv2di_sse3): New.
1319 (vec_dup<AVX256MODE24P>): Replace avx_vbroadcasts<AVXMODEF4P> and
1320 avx_vbroadcastss256; represent with vec_duplicate instead of
1321 nested vec_concat operations.
1322 (avx_vbroadcastf128_<mode>): Rename from
1323 avx_vbroadcastf128_p<avxmodesuffixf2c>256.
1324 (*avx_vperm_broadcast_v4sf): New.
1325 (*avx_vperm_broadcast_<AVX256MODEF2P>): New.
1327 2009-11-30 Martin Jambor <mjambor@suse.cz>
1330 * tree-sra.c (struct access): New field grp_different_types.
1331 (dump_access): Dump grp_different_types.
1332 (compare_access_positions): Prefer scalars and vectors over other
1334 (sort_and_splice_var_accesses): Set grp_different_types if appropriate.
1335 (sra_modify_expr): Use the original also when dealing with a complex
1336 or vector group accessed as multiple types.
1338 2009-11-30 Richard Henderson <rth@redhat.com>
1340 * config/i386/i386.c (avx_vperm2f128_parallel): New.
1341 * config/i386/i386-protos.h: Declare it.
1342 * config/i386/predicates.md (avx_vperm2f128_v8sf_operand,
1343 avx_vperm2f128_v8si_operand, avx_vperm2f128_v4df_operand): New.
1344 * config/i386/sse.md (avx_vperm2f128<mode>3): Change to expander.
1345 (*avx_vperm2f128<mode>_full): Renamed from avx_vperm2f128<mode>3.
1346 (*avx_vperm2f128<mode>_nozero): New.
1348 2009-11-30 Richard Henderson <rth@redhat.com>
1350 * config/i386/i386-builtin-types.def (V4DF_FTYPE_V4DF_V4DF_V4DI): New.
1351 (V8SF_FTYPE_V8SF_V8SF_V8SI): New.
1352 * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Support
1353 V4DF and V8SF for AVX; relax constraint on V4SF to SSE1 from SSE2.
1354 (IX86_BUILTIN_VEC_PERM_V4DF, IX86_BUILTIN_VEC_PERM_V8SF): New.
1355 (bdesc_args): Add them.
1356 (ix86_expand_builtin): Expand them.
1357 (expand_vec_perm_pshufb2): Only operate on 16-byte vectors.
1359 2009-11-30 Martin Jambor <mjambor@suse.cz>
1362 * ipa-prop.c (ipa_write_node_info): Initialize note_count to zero.
1364 2009-11-30 Jakub Jelinek <jakub@redhat.com>
1366 * ipa-reference.c (propagate): Only dump bitmaps if computed.
1368 2009-11-30 Olga Golovanevsky <olga@il.ibm.com>
1371 * ipa-struct-reorg.c (new_var_eq): Use DECL_UID to hash new variables.
1372 (new_var_hash): Likewise.
1373 (is_in_new_vars_htab): Likewise.
1374 (add_to_new_vars_htab): Likewise.
1376 2009-11-30 Ira Rosen <irar@il.ibm.com>
1378 * tree-vect-stmts.c (vectorizable_assignment): Support
1381 2009-11-30 Richard Guenther <rguenther@suse.de>
1383 * doc/contrib.texi (Contributors): Add myself.
1385 2009-11-30 Richard Guenther <rguenther@suse.de>
1387 * tree.c (free_lang_data): Do not set debug_info_level to
1390 2009-11-30 Richard Guenther <rguenther@suse.de>
1394 * expr.c (expand_expr_addr_expr_1): Properly expand the initializer
1397 2009-11-30 Richard Guenther <rguenther@suse.de>
1399 * tree-into-ssa.c (insert_phi_nodes): Add PHI nodes in
1402 2009-11-30 Richard Guenther <rguenther@suse.de>
1404 * tree-dump.c (dump_option_value_in): Add TDF_NOUID.
1405 * tree-pass.h (TDF_NOUID): Likewise.
1406 * print-rtl.c: Include tree-pass.h.
1407 (print_mem_expr): Pass dump_flags.
1408 (print_rtx): Likewise.
1409 * print-tree.c: Include tree-pass.h.
1410 (print_node_brief): Handle TDF_NOUID.
1411 (print_node): Likewise.
1412 * tree-pretty-print.c (dump_decl_name): Likewise.
1413 (dump_generic_node): Likewise.
1414 * Makefile.in (print-rtl.o, print-tree.o): Add $(TREE_PASS_H)
1417 2009-11-30 Nick Clifton <nickc@redhat.com>
1419 * config/stormy16/stormy16-lib2-count-leading-zeros.c: Delete.
1420 * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Remove
1421 stormy16-lib2-count-leading-zeros.c.
1422 * config/stormy16/stormy16-lib2.c (__clzhi2): Move code from
1423 __stormy16_count_leading_zeros() into this function.
1424 (__ctzhi2): Use __builtin_clz.
1425 (__ffshi2): Likewise.
1427 2009-11-30 Eric Botcazou <ebotcazou@adacore.com>
1429 * config/sparc/sparc.c (DF_MODES): Simplify.
1430 (TF_ONLY_MODES, OF_ONLY_MODES): Delete.
1431 (TF_MODES, OF_MODES): Adjust for above change.
1432 (TF_MODES_NO_S, OF_MODES_NO_S): Likewise.
1433 * config/sparc/sparc.h (REGNO_REG_CLASS): Move around.
1435 2009-11-30 Paolo Bonzini <bonzini@gnu.org>
1437 PR rtl-optimization/41812
1438 * fwprop.c (local_md, local_lr): New globals.
1439 (process_defs, process_uses): Remove local_md argument. Never
1440 consider dead pseudos to have singleton def-use chains.
1441 (single_def_use_enter_block): Perform LR simulation.
1442 (build_single_def_use_links): Remove local_md local variable.
1443 Add DF_NOTE. Allocate local_lr.
1444 (fwprop_done): Do not remove DF_CHAIN, we do not use it anymore.
1445 * df-problems.c (df_md_scratch): New.
1446 (df_md_alloc, df_md_free): Allocate/free it.
1447 (df_md_local_compute): Only include live registers in init.
1448 (df_md_transfer_function): Prune the in-set computed by
1449 the confluence function, and the gen-set too.
1451 2009-11-30 Hans-Peter Nilsson <hp@axis.com>
1453 PR rtl-optimization/40086
1454 * reorg.c (relax_delay_slots): When looking for redundant insn at
1455 the branch target, use next_real_insn, not next_active_insn.
1457 2009-11-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1459 * doc/install.texi: Update minimum MPC version to 0.8.
1461 2009-09-09 Segher Boessenkool <segher@kernel.crashing.org>
1463 * config/rs6000/rs6000.md (fnmaddsf4_powerpc_1): Remove
1464 HONOR_SIGNED_ZEROS final condition.
1465 (fnmsubsf4_powerpc_1): Same.
1466 (fnmadddf4_fpr_1): Same.
1467 (fnmsubdf4_fpr_1): Same.
1469 2009-11-29 Ira Rosen <irar@il.ibm.com>
1471 PR tree-optimization/42193
1472 * tree-vect-stmts.c (vectorizable_operation): Set vectorization factor
1473 to 1 in case of basic block SLP.
1474 (vectorizable_load): Likewise.
1476 2009-11-28 Jan Hubicka <jh@suse.cz>
1478 * cgraph.c (same_body_alias_1): Break out of
1479 (same_body_alias): ... here; remove comdat check; it is handled
1481 (cgraph_add_thunk): New.
1482 (dump_cgraph_node): Dump aliases and thunks.
1483 * cgraph.h (cgraph_thunk_info): New structure.
1484 (struct cgraph_node): Add thunk info.
1485 (cgraph_add_thunk): New.
1486 * cgraphunit.c (cgraph_emit_thunks): Remove.
1487 (cgraph_finalize_compilation_unit): Do not call cgraph_emit_thunks.
1488 (assemble_thunk): New function.
1489 (cgraph_expand_function): Handle thunks.
1490 (thunk_adjust): New.
1491 (init_lowered_empty_function): New.
1492 * cp-objcp-common.h (LANG_HOOKS_CALLGRAPH_EMIT_ASSOCIATED_THUNKS):
1494 * lto-cgraph.c (lto_output_node): Stream thunk info.
1495 (input_node): Likewise.
1496 * langhooks.h (lang_hooks_for_callgraph): Remove emit_associated_thunks.
1497 * langhooks-def.h (LANG_HOOKS_CALLGRAPH_EMIT_ASSOCIATED_THUNKS): Remove.
1498 (LANG_HOOKS_CALLGRAPH_INITIALIZER): Update.
1499 * i386.c (x86_output_mi_thunk): Make output prettier.
1501 2009-11-28 Richard Guenther <rguenther@suse.de>
1503 PR tree-optimization/42183
1504 * tree-nrv.c (tree_nrv): Bail out if the RESULT_DECL has its
1505 address taken. Merge the addressable state of the NRV
1506 variable and the result instead of copying it.
1508 2009-11-28 Jakub Jelinek <jakub@redhat.com>
1510 * matrix-reorg.c (analyze_matrix_allocation_site): Remove unused
1511 malloc_fname variable.
1512 (check_allocation_function): Remove unused gsi and bb_level_0
1514 (transform_access_sites): Remove unused d_type_size and d_type_size_k
1516 * omega.c (resurrect_subs): Remove unused n variable.
1517 (omega_solve_geq): Remove unused neweqns variable.
1518 * lto-streamer-in.c (lto_read_tree): Remove unused end_marker variable.
1519 * tree-inline.c (declare_return_variable): Remove USE_P argument,
1520 return use instead of var.
1521 (remap_decl, remap_block): Remove unused fn variable.
1522 (expand_call_inline): Remove unused retvar variable, adjust
1523 declare_return_variable caller.
1524 (optimize_inline_calls): Remove unused prev_fn variable.
1525 * tree-vect-slp.c (vect_analyze_slp_instance): Remove unused ncopies
1527 (vect_create_mask_and_perm): Remove unused group_size and dr_chain_size
1529 * tree-ssa-loop-niter.c (split_to_var_and_offset): Handle MINUS_EXPR
1531 * tree-vect-loop.c (vect_analyze_loop_form): Remove unused backedge
1533 (vect_create_epilog_for_reduction): Remove unused bytesize variable.
1534 * omp-low.c (workshare_safe_to_combine_p): Remove par_entry_bb
1535 parameter. Remove unused par_stmt variable.
1536 (determine_parallel_type): Adjust workshare_safe_to_combine_p caller.
1537 (expand_omp_sections): Remove unused l1 variable.
1538 (lower_omp_for): Remove unused ilist variable.
1539 * tree-loop-distribution.c (mark_nodes_having_upstream_mem_writes):
1540 Remove unused has_upstream_mem_write_p variable.
1541 * recog.c (decode_asm_operands): Remove unused noperands variable.
1542 * tree-ssa-alias.c (refs_may_alias_p_1): Remove unused size1 and
1544 * libgcov.c (__gcov_merge_delta): Remove unused last variable.
1545 * tree-call-cdce.c (gen_conditions_for_pow_int_base): Remove unused
1547 (gen_conditions_for_pow): Remove unused ec variable.
1548 * tree-ssa-sccvn.c (vn_reference_lookup_3): Remove unused size
1550 * ipa-struct-reorg.c (program_redefines_malloc_p): Remove unused
1552 * tree-ssa-sink.c (statement_sink_location): Remove unused code
1554 * regmove.c (copy_src_to_dest): Remove unused insn_uid and move_uid
1556 * tree-complex.c (create_one_component_var): Remove unused inner_type
1558 * calls.c (emit_call_1): Don't GEN_INT (struct_value_size)
1559 unnecessarily when GEN_*CALL omits that argument.
1560 * regrename.c (regrename_optimize): Remove unused regs_seen variable.
1561 (build_def_use): Remove unused icode variable.
1562 * ipa-pure-const.c (check_call): Remove unused callee and avail
1564 * tree-dfa.c (add_referenced_var): Remove unused v_ann variable.
1565 * tree-vect-patterns.c (vect_recog_pow_pattern): Remove unused type
1567 (vect_pattern_recog): Remove unused stmt variable.
1568 * sel-sched-ir.c (make_regions_from_the_rest): Remove unused
1569 new_regions variable.
1570 * postreload.c (reload_cse_simplify_operands): Remove unused mode
1572 * tree-parloops.c (create_call_for_reduction_1): Remove unused
1574 (create_parallel_loop): Remove unused res variable.
1575 (gen_parallel_loop): Remove unused nloop variable.
1576 * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
1577 * value-prof.c (gimple_mod_subtract_transform,
1578 gimple_stringops_transform): Remove unused value variable.
1579 (gimple_stringops_values_to_profile): Remove unused fcode variable.
1580 * tree-vrp.c (register_new_assert_for): Remove unused found variable.
1581 (vrp_visit_switch_stmt): Remove unused n variable.
1582 * tree-vect-stmts.c (vectorizable_conversion): Remove unused expr
1584 (vectorizable_operation): Remove unused shift_p variable.
1585 (vectorizable_store): Remove unused first_stmt_vinfo variable.
1586 * tree-ssa-operands.c (add_stmt_operand): Remove unused v_ann variable.
1587 * tree-vect-data-refs.c (vect_analyze_data_refs): Remove unused bb
1589 (vect_permute_store_chain): Remove unused scalar_dest variable.
1590 (vect_supportable_dr_alignment): Remove unused invariant_in_outerloop
1592 * tree-ssa-threadupdate.c (thread_single_edge): Remove unused
1593 local_info variable.
1594 * tree-optimize.c (tree_rest_of_compilation): Remove unused node
1596 * optabs.c (expand_binop): Remove unused equiv_value variable.
1597 (emit_libcall_block): Remove unused prev variable.
1598 (init_optabs): Remove unused int_mode variable.
1599 * tree-ssa-structalias.c (scc_visit): Remove unused have_ref_node
1601 (do_structure_copy): Remove unused lhsbase and rhsbase variables.
1602 (find_func_aliases): Remove unused rhstype variable.
1603 (ipa_pta_execute): Remove unused varid variable.
1605 2009-11-28 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
1607 * config/avr/avr.h (ASM_OUTPUT_EXTERNAL): Add.
1609 2009-11-28 David Binderman <dcb314@hotmail.com>
1611 * ira-color.c (put_allocno_into_bucket): Remove set but not used
1612 local variable hard_regs_num.
1613 * ira-lives.c (process_single_reg_class_operands): Remove cover_class.
1614 * loop-unswitch.c (unswitch_loop): Remove zero_bitmap.
1615 * lower-subreg.c (decompose_multiword_subregs): Remove next.
1617 2009-11-27 Martin Jambor <mjambor@suse.cz>
1620 * tree-sra.c (get_replaced_param_substitute): Call create_tmp_var
1621 instead of create_tmp_var. Set DECL_GIMPLE_REG_P to one manually
1622 for vector and complex types.
1623 (get_adjustment_for_base): Describe return value in the comment.
1625 2009-11-27 Nick Clifton <nickc@redhat.com>
1627 * longlong.h (count_leading_zeros): Define macro for stormy16 target.
1628 (COUNT_LEADING_ZEROS_0): Likewise.
1629 * config/stormy16/stormy16-lib2.c: Arrange for separate
1630 compilation of each function.
1631 (__ffshi2): New function.
1632 (__stormy16_count_leading_zeros): New function.
1633 * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Use stub files to
1634 compile each function into its own object file.
1635 (stormy16-lib2-ashlsi3.c): New stub file.
1636 (stormy16-lib2-ashrsi3.c): New stub file.
1637 (stormy16-lib2-clzhi2.c): New stub file.
1638 (stormy16-lib2-count-leading-zeros.c): New stub file.
1639 (stormy16-lib2-ctzhi2.c): New stub file.
1640 (stormy16-lib2-divsi3.c): New stub file.
1641 (stormy16-lib2-ffshi2.c): New stub file.
1642 (stormy16-lib2-lshrsi3.c): New stub file.
1643 (stormy16-lib2-modsi3.c): New stub file.
1644 (stormy16-lib2-parityhi2.c): New stub file.
1645 (stormy16-lib2-popcounthi2.c): New stub file.
1646 (stormy16-lib2-udivmodsi4.c): New stub file.
1647 (stormy16-lib2-udivsi3.c): New stub file.
1648 (stormy16-lib2-umodsi3.c): New stub file.
1650 2009-11-27 Richard Henderson <rth@redhat.com>
1652 * config/i386/sse.md (vec_interleave_highv16qi,
1653 vec_interleave_lowv16qi, vec_interleave_highv8hi,
1654 vec_interleave_lowv8hi, vec_interleave_highv4si,
1655 vec_interleave_lowv4si, vec_interleave_highv2di,
1656 vec_interleave_lowv2di, vec_interleave_highv4sf,
1657 vec_interleave_lowv4sf, vec_interleave_highv2df,
1658 vec_interleave_lowv2df): Remove expanders.
1659 (sse_unpcklps, sse_unpckhps, sse2_unpckhpd_exp, sse2_unpcklpd_exp,
1660 sse2_punpckhqdq, sse2_punpcklqdq, sse2_punpckhbw, sse2_punpcklbw,
1661 sse2_punpckhwd, sse2_punpcklwd, sse2_punpckhdq, sse2_punpckldq):
1662 Rename to their proper vec_interleave equivalent. Update all users
1664 * config/i386/i386.c, config/i386/i386.md: Update all users.
1666 2009-11-27 Michael Matz <matz@suse.de>
1668 PR rtl-optimization/42084
1669 * cfgexpand.c (maybe_cleanup_end_of_block): Add new parameter,
1670 use it to stop walking.
1671 (expand_gimple_cond): Adjust call to above.
1673 2009-11-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1676 * gthr-solaris.h (__gthread_mutex_destroy): Remove UNUSED.
1677 [SUPPORTS_WEAK && GTHREAD_USE_WEAK] (__gthread_active_p): Use
1678 __extension__ to allow cast from function pointer to object
1680 * doc/install.texi (--enable-threads): Clarify use of Solaris threads.
1682 2009-11-27 Steven Bosscher <steven@gcc.gnu.org>
1684 * config/ia64/itanium1.md: Remove.
1685 * config/ia64/ia64.md: Do not include it.
1686 * config/ia64/ia64.c (ia64_handle_option): Remove "itanium",
1687 "itanium1", and "merced" from the processor alias table.
1688 (clocks, add_cycles): Remove global variables.
1689 (ia64_sched_reorder2): Don't set/use them.
1690 (ia64_dfa_new_cycle, ia64_h_i_d_extended, ia64_reorg): Likewise.
1691 (bundling): Likewise. Remove extra pass for MMMUL/MMSHF.
1693 2009-11-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1695 * config/s390/s390.c (last_scheduled_insn): New variable.
1696 (s390_fpload_toreg, s390_z10_prevent_earlyload_conflicts): New
1698 (s390_sched_reorder, s390_sched_variable_issue): New functions.
1699 (TARGET_SCHED_VARIABLE_ISSUE, TARGET_SCHED_REORDER): Target hooks
1702 2009-11-27 Michael Matz <matz@suse.de>
1705 * tree-eh.c (lower_catch): Stop after expanding a catch-all.
1707 2009-11-27 Richard Guenther <rguenther@suse.de>
1709 * timevar.def (TV_LOOP_MOVE_INVARIANTS, TV_LOOP_UNSWITCH,
1710 TV_LOOP_UNROLL, TV_LOOP_DOLOOP): New timevars.
1711 * loop-init.c (pass_rtl_move_loop_invariants): Use
1712 TV_LOOP_MOVE_INVARIANTS.
1713 (pass_rtl_unswitch): Use TV_LOOP_UNSWITCH.
1714 (pass_rtl_unroll_and_peel): Use TV_LOOP_UNROLL.
1715 (pass_rtl_doloop): Use TV_LOOP_DOLOOP.
1717 2009-11-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1719 * emit-rtl.c (next_active_insn, prev_active_insn): Correct comment.
1721 2009-11-27 Jakub Jelinek <jakub@redhat.com>
1723 * config/i386/i386.c (ix86_emit_restore_sse_regs_using_mov): Remove
1724 unused insn variable.
1725 * genemit.c (output_peephole2_scratches): Only declare and initialize
1726 _regs_allocated if it will be ever used.
1727 * cfgloopmanip.c (create_empty_if_region_on_edge): Remove unused
1729 (create_empty_loop_on_edge): Remove unused freq and cnt variables.
1730 * unwind-c.c (PERSONALITY_FUNCTION): Remove unused action_record
1733 * opts.c (decode_options): If optimize is bigger than 255,
1736 2009-11-26 Richard Henderson <rth@redhat.com>
1738 * config/i386/sse.md (mulv16qi3): Change back from an expander
1739 to an insn-and-split.
1740 (mulv4si): Mention AVX not XOP for AVX exception.
1741 (*sse2_mulv4si3): Likewise.
1742 (mulv2di3): Use vmulld not vpmacsdd for XOP expansion. Tidy.
1744 2009-11-26 Bernd Schmidt <bernd.schmidt@analog.com>
1746 * cfgexpand (n_stack_vars_conflict): New static variable.
1747 (triangular_index): Reduce likelyhood of overflow by performing
1748 the division before the multiplication.
1749 (resize_stack_vars_conflict): Call fatal_error if overflow
1750 occurred in triangular_index. Update n_stack_vars_conflict.
1753 * regrename.c (struct du_chain): Remove member earlyclobber.
1754 (scan_rtx_reg): Don't set it. Remove argument earlyclobber,
1755 all callers changed.
1756 (scan_rtx): Remove argument earlyclobber, all callers changed.
1757 (hide_operands, restore_operands, record_out_operands): New functions,
1758 broken out of build_def_use.
1759 (build_def_use): Call them as necessary.
1761 * regrename.c (struct du_head): New members id, conflicts,
1762 hard_conflicts and cannot_rename.
1763 (enum scan_actions): Remove terminate_all_read and
1764 terminate_overlapping_read; add mark_all_read.
1765 (scan_actions_name): Likewise.
1766 (du_head_p): New typedef. Define a vector type for it.
1767 (id_to_chain): New static variable.
1768 (note_sets, clear_dead_regs): Delete functions.
1769 (free_chain_data): New function.
1770 (merge_overlapping_regs): Simply walk the conflicts bitmap.
1771 Remove argument B, all callers changed.
1772 (regrename_optimize): Allocate id_to_chain. Ignore chains that have
1773 the cannot_rename bit set. Update regno and nregs of a renamed chain.
1774 Call free_chain_data when done.
1775 (do_replace): Remove death notes when the renamed reg is set in the
1776 last insn; add them if not.
1777 (mark_conflict, note_sets_clobbers): New static function.
1778 (fail_current_block, current_id, open_chains_set, live_hard_regs): New
1780 (scan_rtx_reg): Keep track of conflicts between chains, and between
1781 chains and hard regs. Don't terminate chains when we find a read we
1782 can't handle, mark it unrenameable instead. For terminate_write,
1783 terminate chains that are written with an exact match or a superset
1784 of registers. Set fail_current_block if multi-word lifetimes are too
1786 (scan_rtx_address): Use mark_all_read instead of terminate_all_read.
1787 (build_def_use): Initialize current_id, live_chains and live_hard_regs;
1788 free memory for them when done.
1789 Rearrange the steps so that earlyclobbers are noted before reads
1790 are processed. Add new steps to keep track of hard register lifetimes
1791 outside insn operands.
1793 2009-11-26 Richard Guenther <rguenther@suse.de>
1795 * tree-ssa-dce.c (nr_walks): New variable.
1796 (mark_aliased_reaching_defs_necessary): Adjust oracle cut-off.
1797 (perform_tree_ssa_dce): Init nr_walks.
1799 2009-11-26 Michael Matz <matz@suse.de>
1801 PR tree-optimization/41905
1802 * tree-eh.c (lower_eh_constructs_2): Don't add assignments
1803 below statements that can't fall thru.
1805 2009-11-26 Michael Matz <matz@suse.de>
1807 * builtins.c (expand_builtin_printf, expand_builtin_fprintf,
1808 expand_builtin_sprintf): Remove.
1809 (expand_builtin): Don't call them.
1811 2009-11-26 Richard Guenther <rguenther@suse.de>
1813 * tree-ssa-dce.c (perform_tree_ssa_dce): Allocate visited bitmap.
1815 2009-11-26 Nick Clifton <nickc@redhat.com>
1817 * config/rx/rx.c (rx_expand_epilogue): Add checks for sibcalls
1818 being used incorrectly.
1819 (rx_function_ok_for_sibcall): New function. Do not allow indirect
1820 sibcalls, or sibcalls from interrupt functions.
1821 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define.
1822 * config/rx/rx.md (sibcall): Convert to a define_expand. Check
1823 for a MEM inside a MEM.
1824 (sibcall_value): Likewise.
1825 (sibcall_internal): New pattern containing old sibcall pattern.
1826 (sibcall_value_internal): Likewise.
1828 2009-11-25 Richard Henderson <rth@redhat.com>
1830 * config/i386/i386-builtin-types.awk (DEF_VECTOR_TYPE): Allow an
1831 optional 3rd argument to define the mode.
1832 * config/i386/i386-builtin-types.def (UQI, UHI, USI, UDI): New.
1833 (V2UDI, V4USI, V8UHI, V16UQI): New.
1834 (V4SF_FTYPE_V4SF_V4SF_V4SI, V2UDI_FTYPE_V2UDI_V2UDI_V2UDI,
1835 V4USI_FTYPE_V4USI_V4USI_V4USI, V8UHI_FTYPE_V8UHI_V8UHI_V8UHI,
1836 V16UQI_FTYPE_V16UQI_V16UQI_V16UQI): New.
1837 * config/i386/i386-modes.def: Rearrange for double-wide AVX.
1838 * config/i386/i386-protos.h (ix86_expand_vec_extract_even_odd): New.
1839 * config/i386/i386.c (IX86_BUILTIN_VEC_PERM_*): New.
1840 (bdesc_args): Add the builtin definitions to match.
1841 (ix86_expand_builtin): Expand them.
1842 (ix86_builtin_vectorization_cost): Rename from
1843 x86_builtin_vectorization_cost.
1844 (ix86_vectorize_builtin_vec_perm, struct expand_vec_perm_d,
1845 doublesize_vector_mode, expand_vselect, expand_vselect_vconcat,
1846 expand_vec_perm_blend, expand_vec_perm_vpermil,
1847 expand_vec_perm_pshufb, expand_vec_perm_1,
1848 expand_vec_perm_pshuflw_pshufhw, expand_vec_perm_palignr,
1849 expand_vec_perm_interleave2, expand_vec_perm_pshufb2,
1850 expand_vec_perm_even_odd_1, expand_vec_perm_even_odd,
1851 ix86_expand_vec_perm_builtin_1, extract_vec_perm_cst,
1852 ix86_expand_vec_perm_builtin, ix86_vectorize_builtin_vec_perm_ok,
1853 ix86_expand_vec_extract_even_odd, TARGET_VECTORIZE_BUILTIN_VEC_PERM,
1854 TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): New.
1855 * sse.md (SSEMODE_EO): New.
1856 (vec_extract_even<mode>): Use SSEMODE_EO and
1857 ix86_expand_vec_extract_even_odd.
1858 (vec_extract_odd<mode>): Likewise.
1859 (mulv16qi3, vec_pack_trunc_v8hi, vec_pack_trunc_v4si,
1860 vec_pack_trunc_v2di): Use ix86_expand_vec_extract_even_odd.
1862 2009-11-25 Richard Henderson <rth@redhat.com>
1864 * target.h (targetm.vectorize.builtin_vec_perm_ok): New.
1865 * target-def.h (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): New.
1866 * hooks.h, hooks.c (hook_bool_tree_tree_true): New.
1867 * tree-vect-slp.c (vect_create_mask_and_perm): Don't create
1868 the vector constant here...
1869 (vect_transform_slp_perm_load): ... do it here instead. Validate
1870 that the permutation vector is implementable by the target.
1872 2009-11-25 Jakub Jelinek <jakub@redhat.com>
1874 * config/rs6000/sysv4.opt (mregnames): Change Var to rs6000_regnames.
1875 * config/rs6000/sysv4.h (TARGET_REGNAMES): Define.
1877 * print-rtl.c (print_rtx): When printing newline, append
1878 print_rtx_head and indentation after the newline.
1881 * config/i386/i386.c (print_operand): For 32-byte memory use
1882 YMMWORD in -masm=intel mode. Use TBYTE instead of XWORD.
1883 * config/i386/i386.md (crc32modesuffix): Expand to nothing
1884 in -masm=intel mode.
1885 (sse4_2_crc32di): Print just crc32 instead of crc32q in
1887 * config/i386/mmx.md (*mmx_pinsrw): Print correct size of
1888 memory operand in -masm=intel mode.
1889 * config/i386/sse.md (*avx_pinsr<ssevecsize>, *sse4_1_pinsrb,
1890 *sse2_pinsrw): Likewise.
1891 (sse_cvtss2siq, sse_cvtss2siq_2, sse_cvttss2siq): Don't print
1892 q suffix in -masm=intel mode.
1894 2009-11-25 Eric Botcazou <ebotcazou@adacore.com>
1899 * dwarf2out.c (dwarf2out_args_size_adjust): Rename to...
1900 (dwarf2out_stack_adjust): ...this. Do not adjust the arg size for
1901 ACCUMULATE_OUTGOING_ARGS targets. Rename former version to...
1902 (dwarf2out_notice_stack_adjust): ...this. Adjust for above renaming.
1903 (dwarf2out_frame_debug_expr): Revert previous change and adjust for
1905 (dwarf2out_frame_debug): Add ??? comment. Adjust for above renaming.
1907 2009-11-25 Uros Bizjak <ubizjak@gmail.com>
1909 * config/i386/predicates.md (emms_operation): New predicate.
1910 (vzeroupper_operation): Ditto.
1911 (vzeroall_operation): Improve pattern recognition.
1912 * config/i386/sse.md (avx_vzeroupper_rex64): Remove insn pattern.
1913 (avx_vzeroupper): Change insn pattern to expander.
1914 (*avx_vzeroupper): New insn pattern. Use vzeroupper_operation
1916 (*avx_vzeroall): Remove operands 1 and 2.
1917 * config/i386/mmx.md (mmx_emms): Change insn pattern to expander.
1919 (*mmx_emms): New insn pattern. Use emms_operation predicate.
1920 (*mmx_femms): Ditto.
1921 * config/i386/i386.c (enum ix86_builtins)
1922 <IX86_BUILTIN_VZEROUPPER_REX64>: Remove.
1923 (struct builtin_description) <CODE_FOR_avx_vzeroupper_rex64>:
1924 Remove initailization.
1925 <CODE_FOR_avx_vzeroupper>: Unconditionally initialize here.
1927 2009-11-25 Paul Brook <paul@codesourcery.com>
1929 * config/arm/arm.md (consttable_4): Handle (high ...).
1931 2009-11-25 Robert Nelson <robert.nelson@digikey.com>
1932 Richard Earnshaw <rearnsha@arm.com>
1934 * arm.h (enum vfp_reg_type): Add VFP_NONE.
1935 * arm.c (all_fpus): Use it for floating point units that aren't based
1936 on the VFP architecture.
1937 (aapcs_vfp_is_call_or_return_candidate): Make base_mode a pointer to
1940 2009-11-25 H.J. Lu <hongjiu.lu@intel.com>
1942 * alias.c: Remove trailing white spaces.
1943 * alloc-pool.c: Likewise.
1944 * alloc-pool.h: Likewise.
1945 * attribs.c: Likewise.
1946 * auto-inc-dec.c: Likewise.
1947 * basic-block.h: Likewise.
1948 * bb-reorder.c: Likewise.
1949 * bt-load.c: Likewise.
1950 * builtins.c: Likewise.
1951 * builtins.def: Likewise.
1952 * c-common.c: Likewise.
1953 * c-common.h: Likewise.
1954 * c-cppbuiltin.c: Likewise.
1955 * c-decl.c: Likewise.
1956 * c-format.c: Likewise.
1957 * c-lex.c: Likewise.
1958 * c-omp.c: Likewise.
1959 * c-opts.c: Likewise.
1960 * c-parser.c: Likewise.
1961 * c-pretty-print.c: Likewise.
1962 * c-tree.h: Likewise.
1963 * c-typeck.c: Likewise.
1964 * caller-save.c: Likewise.
1965 * calls.c: Likewise.
1967 * cfganal.c: Likewise.
1968 * cfgexpand.c: Likewise.
1969 * cfghooks.c: Likewise.
1970 * cfghooks.h: Likewise.
1971 * cfglayout.c: Likewise.
1972 * cfgloop.c: Likewise.
1973 * cfgloop.h: Likewise.
1974 * cfgloopmanip.c: Likewise.
1975 * cfgrtl.c: Likewise.
1976 * cgraph.c: Likewise.
1977 * cgraph.h: Likewise.
1978 * cgraphbuild.c: Likewise.
1979 * cgraphunit.c: Likewise.
1980 * cif-code.def: Likewise.
1981 * collect2.c: Likewise.
1982 * combine.c: Likewise.
1983 * convert.c: Likewise.
1984 * coverage.c: Likewise.
1985 * crtstuff.c: Likewise.
1987 * cselib.c: Likewise.
1988 * dbgcnt.c: Likewise.
1989 * dbgcnt.def: Likewise.
1990 * dbgcnt.h: Likewise.
1991 * dbxout.c: Likewise.
1995 * defaults.h: Likewise.
1996 * df-byte-scan.c: Likewise.
1997 * df-core.c: Likewise.
1998 * df-problems.c: Likewise.
1999 * df-scan.c: Likewise.
2002 * diagnostic.c: Likewise.
2003 * diagnostic.h: Likewise.
2004 * dominance.c: Likewise.
2005 * domwalk.c: Likewise.
2006 * double-int.c: Likewise.
2007 * double-int.h: Likewise.
2009 * dwarf2asm.c: Likewise.
2010 * dwarf2asm.h: Likewise.
2011 * dwarf2out.c: Likewise.
2012 * ebitmap.c: Likewise.
2013 * ebitmap.h: Likewise.
2014 * emit-rtl.c: Likewise.
2015 * et-forest.c: Likewise.
2016 * except.c: Likewise.
2017 * except.h: Likewise.
2018 * expmed.c: Likewise.
2021 * final.c: Likewise.
2022 * flags.h: Likewise.
2023 * fold-const.c: Likewise.
2024 * function.c: Likewise.
2025 * function.h: Likewise.
2026 * fwprop.c: Likewise.
2028 * gcov-dump.c: Likewise.
2029 * gcov-io.c: Likewise.
2030 * gcov-io.h: Likewise.
2033 * genattr.c: Likewise.
2034 * genattrtab.c: Likewise.
2035 * genautomata.c: Likewise.
2036 * genchecksum.c: Likewise.
2037 * genconfig.c: Likewise.
2038 * genflags.c: Likewise.
2039 * gengtype-parse.c: Likewise.
2040 * gengtype.c: Likewise.
2041 * gengtype.h: Likewise.
2042 * genmddeps.c: Likewise.
2043 * genmodes.c: Likewise.
2044 * genopinit.c: Likewise.
2045 * genpreds.c: Likewise.
2046 * gensupport.c: Likewise.
2047 * ggc-common.c: Likewise.
2048 * ggc-page.c: Likewise.
2049 * ggc-zone.c: Likewise.
2051 * gimple-iterator.c: Likewise.
2052 * gimple-low.c: Likewise.
2053 * gimple-pretty-print.c: Likewise.
2054 * gimple.c: Likewise.
2055 * gimple.def: Likewise.
2056 * gimple.h: Likewise.
2057 * gimplify.c: Likewise.
2058 * graphds.c: Likewise.
2059 * graphite-clast-to-gimple.c: Likewise.
2060 * gthr-nks.h: Likewise.
2061 * gthr-posix.c: Likewise.
2062 * gthr-posix.h: Likewise.
2063 * gthr-posix95.h: Likewise.
2064 * gthr-single.h: Likewise.
2065 * gthr-tpf.h: Likewise.
2066 * gthr-vxworks.h: Likewise.
2068 * haifa-sched.c: Likewise.
2069 * hard-reg-set.h: Likewise.
2070 * hooks.c: Likewise.
2071 * hooks.h: Likewise.
2072 * hosthooks.h: Likewise.
2073 * hwint.h: Likewise.
2074 * ifcvt.c: Likewise.
2075 * incpath.c: Likewise.
2076 * init-regs.c: Likewise.
2077 * integrate.c: Likewise.
2078 * ipa-cp.c: Likewise.
2079 * ipa-inline.c: Likewise.
2080 * ipa-prop.c: Likewise.
2081 * ipa-pure-const.c: Likewise.
2082 * ipa-reference.c: Likewise.
2083 * ipa-struct-reorg.c: Likewise.
2084 * ipa-struct-reorg.h: Likewise.
2085 * ipa-type-escape.c: Likewise.
2086 * ipa-type-escape.h: Likewise.
2087 * ipa-utils.c: Likewise.
2088 * ipa-utils.h: Likewise.
2090 * ira-build.c: Likewise.
2091 * ira-color.c: Likewise.
2092 * ira-conflicts.c: Likewise.
2093 * ira-costs.c: Likewise.
2094 * ira-emit.c: Likewise.
2095 * ira-int.h: Likewise.
2096 * ira-lives.c: Likewise.
2099 * lambda-code.c: Likewise.
2100 * lambda-mat.c: Likewise.
2101 * lambda-trans.c: Likewise.
2102 * lambda.h: Likewise.
2103 * langhooks.c: Likewise.
2105 * libgcov.c: Likewise.
2106 * lists.c: Likewise.
2107 * loop-doloop.c: Likewise.
2108 * loop-init.c: Likewise.
2109 * loop-invariant.c: Likewise.
2110 * loop-iv.c: Likewise.
2111 * loop-unroll.c: Likewise.
2112 * lower-subreg.c: Likewise.
2113 * lto-cgraph.c: Likewise.
2114 * lto-compress.c: Likewise.
2115 * lto-opts.c: Likewise.
2116 * lto-section-in.c: Likewise.
2117 * lto-section-out.c: Likewise.
2118 * lto-streamer-in.c: Likewise.
2119 * lto-streamer-out.c: Likewise.
2120 * lto-streamer.c: Likewise.
2121 * lto-streamer.h: Likewise.
2122 * lto-symtab.c: Likewise.
2123 * lto-wpa-fixup.c: Likewise.
2124 * matrix-reorg.c: Likewise.
2126 * mode-switching.c: Likewise.
2127 * modulo-sched.c: Likewise.
2128 * omega.c: Likewise.
2129 * omega.h: Likewise.
2130 * omp-low.c: Likewise.
2131 * optabs.c: Likewise.
2132 * optabs.h: Likewise.
2133 * opts-common.c: Likewise.
2135 * params.def: Likewise.
2136 * params.h: Likewise.
2137 * passes.c: Likewise.
2138 * plugin.c: Likewise.
2139 * postreload-gcse.c: Likewise.
2140 * postreload.c: Likewise.
2141 * predict.c: Likewise.
2142 * predict.def: Likewise.
2143 * pretty-print.c: Likewise.
2144 * pretty-print.h: Likewise.
2145 * print-rtl.c: Likewise.
2146 * print-tree.c: Likewise.
2147 * profile.c: Likewise.
2148 * read-rtl.c: Likewise.
2150 * recog.c: Likewise.
2151 * reg-stack.c: Likewise.
2152 * regcprop.c: Likewise.
2153 * reginfo.c: Likewise.
2154 * regmove.c: Likewise.
2155 * regrename.c: Likewise.
2157 * regstat.c: Likewise.
2158 * reload.c: Likewise.
2159 * reload1.c: Likewise.
2160 * resource.c: Likewise.
2162 * rtl.def: Likewise.
2164 * rtlanal.c: Likewise.
2165 * sbitmap.c: Likewise.
2166 * sched-deps.c: Likewise.
2167 * sched-ebb.c: Likewise.
2168 * sched-int.h: Likewise.
2169 * sched-rgn.c: Likewise.
2170 * sched-vis.c: Likewise.
2171 * sdbout.c: Likewise.
2172 * sel-sched-dump.c: Likewise.
2173 * sel-sched-dump.h: Likewise.
2174 * sel-sched-ir.c: Likewise.
2175 * sel-sched-ir.h: Likewise.
2176 * sel-sched.c: Likewise.
2177 * sel-sched.h: Likewise.
2180 * simplify-rtx.c: Likewise.
2181 * stack-ptr-mod.c: Likewise.
2183 * stor-layout.c: Likewise.
2184 * store-motion.c: Likewise.
2185 * stringpool.c: Likewise.
2186 * stub-objc.c: Likewise.
2187 * sync-builtins.def: Likewise.
2188 * target-def.h: Likewise.
2189 * target.h: Likewise.
2190 * targhooks.c: Likewise.
2191 * targhooks.h: Likewise.
2192 * timevar.c: Likewise.
2193 * tlink.c: Likewise.
2194 * toplev.c: Likewise.
2195 * toplev.h: Likewise.
2196 * tracer.c: Likewise.
2197 * tree-affine.c: Likewise.
2198 * tree-affine.h: Likewise.
2199 * tree-browser.def: Likewise.
2200 * tree-call-cdce.c: Likewise.
2201 * tree-cfg.c: Likewise.
2202 * tree-cfgcleanup.c: Likewise.
2203 * tree-chrec.c: Likewise.
2204 * tree-chrec.h: Likewise.
2205 * tree-complex.c: Likewise.
2206 * tree-data-ref.c: Likewise.
2207 * tree-data-ref.h: Likewise.
2208 * tree-dfa.c: Likewise.
2209 * tree-dump.c: Likewise.
2210 * tree-dump.h: Likewise.
2211 * tree-eh.c: Likewise.
2212 * tree-flow-inline.h: Likewise.
2213 * tree-flow.h: Likewise.
2214 * tree-if-conv.c: Likewise.
2215 * tree-inline.c: Likewise.
2216 * tree-into-ssa.c: Likewise.
2217 * tree-loop-distribution.c: Likewise.
2218 * tree-loop-linear.c: Likewise.
2219 * tree-mudflap.c: Likewise.
2220 * tree-nested.c: Likewise.
2221 * tree-nomudflap.c: Likewise.
2222 * tree-nrv.c: Likewise.
2223 * tree-object-size.c: Likewise.
2224 * tree-optimize.c: Likewise.
2225 * tree-outof-ssa.c: Likewise.
2226 * tree-parloops.c: Likewise.
2227 * tree-pass.h: Likewise.
2228 * tree-phinodes.c: Likewise.
2229 * tree-predcom.c: Likewise.
2230 * tree-pretty-print.c: Likewise.
2231 * tree-profile.c: Likewise.
2232 * tree-scalar-evolution.c: Likewise.
2233 * tree-ssa-address.c: Likewise.
2234 * tree-ssa-alias.c: Likewise.
2235 * tree-ssa-ccp.c: Likewise.
2236 * tree-ssa-coalesce.c: Likewise.
2237 * tree-ssa-copy.c: Likewise.
2238 * tree-ssa-copyrename.c: Likewise.
2239 * tree-ssa-dce.c: Likewise.
2240 * tree-ssa-dom.c: Likewise.
2241 * tree-ssa-dse.c: Likewise.
2242 * tree-ssa-forwprop.c: Likewise.
2243 * tree-ssa-ifcombine.c: Likewise.
2244 * tree-ssa-live.c: Likewise.
2245 * tree-ssa-live.h: Likewise.
2246 * tree-ssa-loop-ch.c: Likewise.
2247 * tree-ssa-loop-im.c: Likewise.
2248 * tree-ssa-loop-ivcanon.c: Likewise.
2249 * tree-ssa-loop-ivopts.c: Likewise.
2250 * tree-ssa-loop-manip.c: Likewise.
2251 * tree-ssa-loop-niter.c: Likewise.
2252 * tree-ssa-loop-prefetch.c: Likewise.
2253 * tree-ssa-loop-unswitch.c: Likewise.
2254 * tree-ssa-loop.c: Likewise.
2255 * tree-ssa-math-opts.c: Likewise.
2256 * tree-ssa-operands.c: Likewise.
2257 * tree-ssa-operands.h: Likewise.
2258 * tree-ssa-phiopt.c: Likewise.
2259 * tree-ssa-phiprop.c: Likewise.
2260 * tree-ssa-pre.c: Likewise.
2261 * tree-ssa-propagate.c: Likewise.
2262 * tree-ssa-reassoc.c: Likewise.
2263 * tree-ssa-sccvn.c: Likewise.
2264 * tree-ssa-sink.c: Likewise.
2265 * tree-ssa-structalias.c: Likewise.
2266 * tree-ssa-ter.c: Likewise.
2267 * tree-ssa-threadedge.c: Likewise.
2268 * tree-ssa-threadupdate.c: Likewise.
2269 * tree-ssa-uncprop.c: Likewise.
2270 * tree-ssa.c: Likewise.
2271 * tree-ssanames.c: Likewise.
2272 * tree-switch-conversion.c: Likewise.
2273 * tree-tailcall.c: Likewise.
2274 * tree-vect-data-refs.c: Likewise.
2275 * tree-vect-generic.c: Likewise.
2276 * tree-vect-loop-manip.c: Likewise.
2277 * tree-vect-loop.c: Likewise.
2278 * tree-vect-patterns.c: Likewise.
2279 * tree-vect-slp.c: Likewise.
2280 * tree-vect-stmts.c: Likewise.
2281 * tree-vectorizer.c: Likewise.
2282 * tree-vectorizer.h: Likewise.
2283 * tree-vrp.c: Likewise.
2285 * tree.def: Likewise.
2287 * treestruct.def: Likewise.
2288 * unwind-compat.c: Likewise.
2289 * unwind-dw2-fde-glibc.c: Likewise.
2290 * unwind-dw2.c: Likewise.
2291 * value-prof.c: Likewise.
2292 * value-prof.h: Likewise.
2293 * var-tracking.c: Likewise.
2294 * varasm.c: Likewise.
2295 * varpool.c: Likewise.
2298 * vmsdbgout.c: Likewise.
2300 * xcoffout.c: Likewise.
2302 2009-11-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2304 * pa.c (output_call): Only use sr4 for long interspace calls if
2305 call binds local and generating non PIC code.
2306 (attr_length_call): Adjust length calculation for above.
2308 2009-11-25 Uros Bizjak <ubizjak@gmail.com>
2310 * config/i386/i386.md (plusminus_carry_mnemonic): New code attribute.
2311 (add<mode>3_carry): Change operand order of plus RTX.
2312 (*add<mode>3_carry): Ditto.
2313 (*addsi3_carry_zext): Ditto.
2314 (*add<dwi>3_doubleword): Update for changed operand order.
2315 (*negti2_1 splitter): Ditto.
2316 (*negdi2_1 splitter): Ditto.
2317 (<plusminus_insn><mode>3_carry): Macroize expander from
2318 {add,sub}<mode>3_carry patterns using plusminus code iterator.
2319 (*<plusminus_insn><mode>3_carry): Macroize insn from
2320 *{add,sub}<mode>3_carry patetrns using plusminus code iterator.
2321 (neg<mode>2): Macroize expander from neg{qi,hi,si,di,ti}2
2322 patterns using SDWIM mode iterator.
2323 (*neg<dwi>2_doubleword): New insn_and_split pattern. Macroize
2324 pattern from *neg{di,ti}2_1 patterns and corresponding splitters
2325 using DWIH mode iterator.
2326 (*neg<mode>2_1): Macroize insn from neg{qi,hi,si,di}2_1 patterns
2327 using SWI mode iterator.
2328 (*neg<mode>2_cmpz): Ditto from neg{qi,hi,si,di}2_cmpz patterns.
2329 (one_cmpl<mode>2): Macroize expander from one_cmpl{qi,hi,si,di}2
2330 patterns using SWIM mode iterator.
2331 (*one_cmpl<mode>2_1): Macroize insn from one_cmpl{hi,si,di}2_1
2332 patterns using SWI248 mode iterator.
2333 (*one_cmpl<mode>2_2): Macroize insn from one_cmpl{qi,hi,si,di}2_2
2334 patterns using SWI mode iterator.
2335 (*one_cmpl<mode>2_2 splitter): Macroize splitter from
2336 one_cmpl{qi,hi,si,di}2_2 splitter patterns using SWI mode iterator.
2338 2009-11-24 Michael Matz <matz@suse.de>
2340 * expr.c (set_storage_via_libcall): Fix build_call_expr call.
2342 2009-11-24 David Binderman <dcb314@hotmail.com>
2344 * expr.c (store_field): Remove set but not used local variable
2346 (expand_expr_real_2): Remove treeop2.
2347 * gcse.c (update_ld_motion_stores): Remove new_rtx.
2348 * haifa-sched.c (max_issue): Remove points.
2349 (sched_create_recovery_edges): Remove e.
2350 * ira-costs.c (setup_allocno_cover_class_and_costs): Remove mode.
2352 2009-11-24 Nick Clifton <nickc@redhat.com>
2354 * config/v850/v850.c (function_arg): Fix handling of zero-length
2357 2009-11-24 Michael Matz <matz@suse.de>
2359 * tree.h (union tree_ann_d): Don't declare.
2360 (tree_base): Remove ann field.
2361 (struct var_ann_d): Declare forward.
2362 (tree_result_decl, tree_parm_decl, tree_var_decl): Add ann field.
2363 (DECL_VAR_ANN_PTR): New macro.
2364 * tree-dfa.c (create_var_ann): Rewrite in terms of above macro,
2365 accept only VAR, PARM or RESULT decls.
2366 (create_tree_common_ann): Remove.
2367 (remove_referenced_var): Use DECL_VAR_ANN_PTR.
2368 * tree-eh.c (lookup_expr_eh_lp): Remove.
2369 * tree-flow-inline.h (var_ann, get_var_ann): Rewrite in terms of
2371 (ann_type, tree_common_ann, get_tree_common_ann): Remove.
2372 * tree-flow.h (enum tree_ann_type): Remove.
2373 (struct tree_ann_common_d): Remove.
2374 (struct var_ann_d): Remove common field.
2375 (union tree_ann_d): Remove.
2376 (tree_ann_t, tree_ann_common_t): Remove typedefs.
2377 (tree_common_ann, get_tree_common_ann, ann_type,
2378 create_tree_common_ann, lookup_expr_eh_lp): Don't declare.
2379 * tree-ssa.c (delete_tree_ssa): Use DECL_VAR_ANN_PTR.
2380 * tree.c (copy_node_stat): Use DECL_VAR_ANN_PTR.
2381 * builtins.c (expand_builtin_memcpy): Use
2382 currently_expanding_gimple_stmt instead of tree annotation.
2383 (expand_builtin_memset_args): Ditto.
2384 * cfgexpand.c (currently_expanding_gimple_stmt): Add global variable.
2385 (expand_call_stmt): Don't set tree annotation.
2386 (expand_gimple_basic_block): Set currently_expanding_gimple_stmt.
2387 * expr.c (expand_expr_real): Don't call lookup_expr_eh_lp.
2388 * gimple.h (currently_expanding_gimple_stmt): Declare.
2390 2009-11-24 Paolo Carlini <paolo.carlini@oracle.com>
2392 * dwarf2out.c (add_location_or_const_value_attribute): Remove
2393 useless NOTE_VAR_LOCATION_STATUS call.
2394 * cfgrtl.c (commit_one_edge_insertion): Remove useless loop, tidy.
2396 2009-11-24 Rafael Avila de Espindola <espindola@google.com>
2398 * lto-wrapper.c (lto_wrapper_exit): Don't try to delete files if
2399 being called recursively.
2401 2009-11-24 Basile Starynkevitch <basile@starynkevitch.net>
2403 * Makefile.in (PLUGIN_HEADERS): Added files: cppdefault.h flags.h
2404 $(MD5_H) params.def params.h prefix.h tree-inline.h.
2406 2009-11-24 Paul Brook <paul@codesourcery.com>
2408 * gcc/config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Fix comment
2411 2009-11-24 Julian Brown <julian@codesourcery.com>
2412 Paul Brook <paul@codesourcery.com>
2414 * config/arm/arm.c (TARGET_DWARF_REGISTER_SPAN): Define.
2415 (arm_dwarf_register_span): New function.
2416 (arm_dbx_register_number): Add VFPv3 dwarf numbering.
2418 2009-11-24 David Binderman <dcb314@hotmail.com>
2420 * cfgrtl.c (commit_one_edge_insertion): Remove set but not used
2421 local variable bb_note.
2422 * dominance.c (get_dominated_by): Likewise local var n.
2423 (output_file_names): Likewise local var idx.
2424 (add_location_or_const_value_attribute): Likewise local var status.
2425 * dwarf2out.c (gen_variable_die): Likewise local var field.
2426 * emit-rtl.c (no_line_numbers): Remove.
2427 (init_emit_once): Remove line_numbers parameter.
2428 * rtl.h (init_emit_once): Adjust prototype.
2429 * toplev.c (backend_init): Adjust init_emit_once call.
2431 2009-11-24 Richard Guenther <rguenther@suse.de>
2433 PR tree-optimization/42142
2434 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
2435 Handle iv-dependent (non-)kills properly.
2436 (mark_aliased_reaching_defs_necessary): Pass the basic-block
2437 of the reference statement to mark_aliased_reaching_defs_necessary_1.
2439 2009-11-24 Martin Jambor <mjambor@suse.cz>
2441 PR tree-optimization/42154
2442 * tree-sra.c (struct access): Added comments.
2443 (sra_modify_expr): Build references to the old aggregate with
2444 build_ref_for_offset instead of reusing access->expr.
2445 (load_assign_lhs_subreplacements): Likewise.
2447 2009-11-24 Uros Bizjak <ubizjak@gmail.com>
2449 * config/i386/i386.md (add<mode>3_carry): Change insn pattern
2451 (sub<mode>3_carry): Ditto.
2452 (x86_mov<mode>cc_0_m1): Ditto.
2453 (*add<mode>3_carry): New insn pattern. Use VOIDmode match_operator
2454 for ix86_carry_flag_operator operator predicate.
2455 (*sub<mode>3_carry): Ditto.
2456 (*x86_mov<mode>cc_0_m1): Ditto.
2457 (*addsi3_carry_zext): Use VOIDmode match_operator for
2458 ix86_carry_flag_operator operator predicate.
2459 (*subsi3_carry_zext): Ditto.
2460 (*x86_mov<mode>cc_0_m1_s): Ditto.
2461 (*x86_mov<mode>cc_0_m1_neg): Ditto.
2462 * config/i386/predocates.md (ix86_carry_flag_operator): Do not
2463 check operator sub-expressions for FLAGS_REG and const0_rtx.
2464 * config/i386/i386.c (*ix86_gen_sub3_carry): Update prototype.
2465 (ix86_expand_int_movcc): Update calls to gen_x86_mov{si,di}cc_0_m1.
2466 (ix86_expand_int_addcc): Update calls to
2467 gen_{add,sub}{qi,hi,si,di}3_carry. Do not set mode of compare_op.
2468 (ix86_expand_strlensi_unroll_1): Update calls to ix86_gen_sub3_carry.
2469 Do not set mode of compare operation.
2471 2009-11-23 Jan Hubicka <jh@suse.cz>
2474 * ipa-inline.c (inline_transform): Avoid ICE when transform is called
2477 2009-11-23 Jan Hubicka <jh@suse.cz>
2479 * ipa-cp.c (ipcp_compute_node_scale): Work around completely
2480 wrong profile updates.
2481 * predict.c (counts_to_freqs): Be expected for ENTRY/EXIT block
2482 having largest frequency.
2483 * ira-live.c (ira_implicitly_set_insn_hard_regs): Silecne
2484 used uninitalized warning.
2485 * tree-optimize.c (execute_fixup_cfg): Rescale entry and exit block
2488 2009-11-23 Uros Bizjak <ubizjak@gmail.com>
2490 * config/alpha/alpha.md (*cmp_sadd_sidi): Use gen_lowpart instead
2491 of gen_rtx_REG to generate operand 5.
2492 (*cmp_ssub_sidi): Ditto.
2494 2009-11-23 Richard Henderson <rth@redhat.com>
2496 * config/i386/i386.c (avx_vpermilp_parallel): Fix sign compare
2499 2009-11-23 Paul Brook <paul@codesourcery.com>
2501 * config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Add special
2502 case for noreturn functions.
2503 (arm_compute_save_reg_mask): Remove special noreturn handling.
2505 2009-11-23 Richard Guenther <rguenther@suse.de>
2507 * tree-dfa.c (get_ref_base_and_extent): Adjust maximum access
2508 size for DECL bases.
2510 2009-11-22 Richard Henderson <rth@redhat.com>
2512 * i386.c (avx_vpermilp_parallel): New function.
2513 * i386-protos.h: Declare it.
2514 * predicates.md (avx_vpermilp_v8sf_operand, avx_vpermilp_v4df_operand,
2515 avx_vpermilp_v4sf_operand, avx_vpermilp_v2df_operand): New.
2516 * sse.md (AVXMODEFDP, AVXMODEFSP): New iterators.
2517 (ssescalarnum, ssedoublesizemode): Add AVX modes.
2518 (vpermilbits): Remove.
2519 (avx_vpermil<mode>): Change insns to expanders.
2520 (*avx_vpermil<mode>): New. Use vec_select.
2522 2009-11-22 Richard Earnshaw <rearnsha@arm.com>
2524 * opts.c (decode_options): Don't enable flag_schedule_insns
2525 when optimizing for size.
2526 * doc/invoke.texi: Document change.
2528 2009-11-22 Uros Bizjak <ubizjak@gmail.com>
2531 * config/alpha/alpha.md (*cmp_sadd_si): Change mode
2532 of scratch register to SImode.
2533 (*cmp_sadd_sidi): Ditto.
2534 (*cmp_ssub_si): Ditto.
2535 (*cmp_ssub_sidi): Ditto.
2537 2009-11-21 Ian Lance Taylor <iant@google.com>
2539 * Makefile.in (HOST_LIBS): Move higher in file.
2540 (LINKER, LINKER_FLAGS): If ENABLE_BUILD_WITH_CXX, but $(HOST_LIBS)
2541 is not empty, set to $(CC) and $(CFLAGS).
2543 2009-11-22 Martin Jambor <mjambor@suse.cz>
2545 * tree-cfg.c (verify_types_in_gimple_reference): Error out on
2546 V_C_E of an SSA_NAME or an invariant if lvalue is required.
2547 (verify_gimple_call): Verify LHS also with with
2548 verify_types_in_gimple_reference.
2550 2009-11-21 Martin Jambor <mjambor@suse.cz>
2553 * tree-sra.c (access_precludes_ipa_sra_p): New function.
2554 (splice_param_accesses): Check all accesses by calling
2555 access_precludes_ipa_sra_p.
2556 (sra_ipa_modify_expr): Rename argument erite to dont_convert and do
2557 not convert types if it is true.
2558 (sra_ipa_modify_assign): Convert types in case of mismatch.
2560 2009-11-21 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
2562 * config/sh/sh.md (cmpeqsi_t-1): Use logical_operand predicate
2565 2009-11-21 Adam Nemet <adambnemet@gmail.com>
2567 * config/mips/mips-protos.h (mulsidi3_gen_fn): New typedef.
2568 (mips_mulsidi3_gen_fn): Declare new function.
2569 * config/mips/mips.c (mips_mulsidi3_gen_fn): New function.
2570 * config/mips/mips.md (<u>mulsidi3): Change condition to use
2571 mips_mulsidi3_gen_fn. Use mips_mulsidi3_gen_fn to generate the insn.
2572 (<u>mulsidi3_64bit): Don't match for ISA_HAS_DMUL3.
2573 (mulsidi3_64bit_dmul): New define_insn.
2575 2009-11-21 Ben Elliston <bje@au.ibm.com>
2577 * gengtype-lex.l: Enable noinput flex option.
2578 (YY_NO_INPUT): Remove define.
2580 2009-11-21 Alexandre Oliva <aoliva@redhat.com>
2582 * tree-ssa.c (find_released_ssa_name): Handle NULL wi.
2583 (insert_debug_temp_for_var_def): Handle degenerate PHI nodes.
2584 (insert_debug_temps_for_defs): Handle PHI nodes.
2585 * tree-ssa-dom.c (degenerate_phi_result): Don't crash on released
2588 2009-11-21 Alexandre Oliva <aoliva@redhat.com>
2590 * tree-ssa-pre.c (remove_dead_inserted_code): Don't release_defs
2591 after remove_phi_node.
2593 2009-11-21 Alexandre Oliva <aoliva@redhat.com>
2595 PR tree-optimization/42078
2596 * gimple.h (gimple_replace_lhs): New declaration.
2597 * gimple.c (gimple_replace_lhs): New function.
2598 * tree-ssa-math-opts.c (execute_cse_reciprocals): Call it before
2601 2009-11-20 Sebastian Pop <sebastian.pop@amd.com>
2603 * config/i386/sse.md (*xop_pmacsdql_mem): Don't call reg_mentioned_p.
2604 (xop_mulv2div2di3_low): Same.
2605 (*xop_pmacsdqh_mem): Same.
2607 2009-11-20 Richard Henderson <rth@redhat.com>
2609 * config/i386/i386-builtin-types.awk: New file.
2610 * config/i386/i386-builtin-types.def: New file.
2611 * config/i386/t-i386: Use them to build i386-builtin-types.inc.
2612 * config/i386/i386.c: Include it.
2613 (ix86_builtin_type_tab, ix86_get_builtin_type): New.
2614 (ix86_builtin_func_type_tab, ix86_get_builtin_func_type): New.
2615 (struct builtin_isa): Remove GTY marker. Replace tree type with
2616 ix86_builtin_func_type; add set_and_not_built_p.
2617 (def_builtin): Change type parameter to tcode; use
2618 ix86_get_builtin_func_type; update all callers. Accept zero mask
2619 to mean the builtin is unconditionally available.
2620 (ix86_add_new_builtins): Use set_and_not_built_p instead of type
2622 (enum ix86_special_builtin_type, enum ix86_builtin_type): Remove.
2623 Update some users to rationalized enumeration codes from new include.
2624 (enum multi_arg_type): Remove. Replace all enumeration values
2625 with defines to new ix86_builtin_func_type.
2626 (ix86_init_mmx_sse_builtins): Don't build any types here. Defer
2627 all type resolution to def_builtin.
2628 (ix86_init_builtin_types): Split out from ...
2629 (ix86_init_builtins): ... here. Use ix86_get_builtin_func_type.
2631 2009-11-20 Michael Meissner <meissner@linux.vnet.ibm.com>
2634 * config/rs6000/rs6000.c (struct machine_function): Revert
2635 2009-10-23 change to set VRSAVE to non-0 if we use VSX.
2636 (rs6000_expand_to_rtl_hook): Ditto.
2637 (rs6000_check_vector_mode): Ditto.
2638 (compute_vrsave_mask): Ditto.
2640 2009-11-20 Paul Brook <paul@codesourcery.com>
2642 * doc/invoke.texi: Document ARM -mcpu=cortex-a5.
2643 * config/arm/arm-cores.def: Add cortex-a5.
2644 * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a5.
2645 * config/arm/arm-tune.md: Regenerate.
2647 2009-11-20 Olga Golovanevsky <olga@il.ibm.com>
2650 * ipa-struct-reorg.c (find_pos_in_stmt): New parameter.
2651 (ref_pos): New field in structure.
2652 (insert_new_var_in_stmt): New function.
2655 2009-11-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2657 * config.gcc (alpha*-dec-osf[45]*): Set use_gcc_stdint.
2658 * config/alpha/osf.h (SIG_ATOMIC_TYPE): Define.
2659 (INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE): Define.
2660 (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
2661 (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
2662 INT_LEAST64_TYPE): Define.
2663 (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
2664 UINT_LEAST64_TYPE): Define.
2665 (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
2666 INT_FAST64_TYPE): Define.
2667 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
2668 UINT_FAST64_TYPE): Define.
2669 (INTPTR_TYPE, UINTPTR_TYPE): Define.
2671 2009-11-20 Julian Brown <julian@codesourcery.com>
2673 * config/arm/arm.h (ASM_OUTPUT_REG_PUSH): Handle STATIC_CHAIN_REGNUM
2674 specially for Thumb-1.
2675 (ASM_OUTPUT_REG_POP): Likewise.
2677 2009-11-19 Jason Merrill <jason@redhat.com>
2679 * dwarf2out.c (get_context_die): Take TYPE_MAIN_VARIANT.
2681 2009-11-19 Basile Starynkevitch <basile@starynkevitch.net>
2682 Rafael Avila de Espindola <espindola@google.com>
2684 * doc/plugins.texi (Plugin initialization): Added advices for
2685 retrieving the version of GCC at plugin compilation and loading times.
2687 2009-11-19 Basile Starynkevitch <basile@starynkevitch.net>
2689 * plugin.c (FMT_FOR_PLUGIN_EVENT): added definition.
2690 (dump_active_plugins): output to file everything. Use
2691 internationalized dump & FMT_FOR_PLUGIN_EVENT.
2693 2009-11-19 Richard Guenther <rguenther@suse.de>
2695 * gimple.c (canonicalize_cond_expr_cond): Strip conversions
2696 around truth-valued expressions.
2697 * tree.c (free_lang_data): Untangle check for LTO frontend.
2699 2009-11-19 Jakub Jelinek <jakub@redhat.com>
2701 * tree.c (need_assembler_name_p): Use cgraph_get_node instead
2702 of cgraph_node_for_decl.
2703 * cgraph.h (cgraph_node_for_decl): Remove prototype.
2704 * cgraph.c (cgraph_node_for_decl): Remove.
2705 (cgraph_get_node): Just return NULL if !cgraph_hash.
2707 2009-11-19 Paul Brook <paul@codesourcery.com>
2709 * config.gcc: Add new ARM --with-fpu options.
2710 * doc/invoke.texi: Docuent ARM -mfpu=fpv4-sp-d16.
2711 * config/arm/arm.c (all_fpus): Add fpv4-sp-d16.
2713 2009-11-18 Richard Guenther <rguenther@suse.de>
2715 * gimple.h (union gimple_statement_d): Add gsmembase member.
2716 (gimple_vuse_op): Use gsmembase for access.
2717 (gimple_vdef_op): Likewise.
2718 (gimple_vuse): Likewise.
2719 (gimple_vdef): Likewise.
2720 (gimple_vuse_ptr): Likewise.
2721 (gimple_vdef_ptr): Likewise.
2722 (gimple_set_vuse): Likewise.
2723 (gimple_set_vdef): Likewise.
2724 * gsstruct.def (GSS_WITH_MEM_OPS_BASE): Add.
2726 2009-11-18 Daniel Jacobowitz <dan@codesourcery.com>
2728 * doc/arm-neon-intrinsics.texi: Regenerated.
2730 2009-11-18 Daniel Jacobowitz <dan@codesourcery.com>
2732 * config/arm/neon-docgen.ml (analyze_shape_elt): Handle alternatives.
2734 2009-11-18 Paul Brook <paul@codesourcery.com>
2735 Daniel Jacobowitz <dan@codesourcery.com>
2737 * config/arm/arm.c (FL_ARCH7EM, FL_FOR_ARCH7EM): Define.
2738 (arm_arch7em): New variable.
2739 (all_architectures): Add armv7e-m.
2740 (arm_override_options): Set arm_arch7em.
2741 * config/arm/arm.h (TARGET_DSP_MULTIPLY, TARGET_INT_SIMD):
2742 Include arm_arch7em.
2743 (arm_arch7em): Declare.
2745 2009-11-18 Richard Guenther <rguenther@suse.de>
2747 * lto-streamer-in.c (input_gimple_stmt): Assert that we find
2748 a valid field decl if checking is enabled.
2750 2009-11-18 Martin Jambor <mjambor@suse.cz>
2752 * ipa-prop.h (struct ipa_param_call_note): New field lto_stmt_uid.
2753 (lto_ipa_fixup_call_notes): Declare.
2754 * ipa-prop.c (ipa_note_param_call): Store gimple uid.
2755 (update_call_notes_after_inlining): Copy call stmt uid to the new
2757 (ipa_write_param_call_note): New function.
2758 (ipa_read_param_call_note): New function
2759 (ipa_write_node_info): Write also param call notes. Removed a bogus
2760 comment, reformatted to fit 80 columns.
2761 (ipa_read_node_info): Read also param call notes. Removed a bogus
2762 comment. Remove ipa_edge_args_vector growth.
2763 (lto_ipa_fixup_call_notes): New function.
2764 * ipa-cp.c (pass_ipa_cp): Add stmt_fixup hook.
2765 * ipa-inline.c (cgraph_mark_inline_edge): Perform indirect
2766 inlining regardless of flag_wpa.
2767 (cgraph_decide_inlining_of_small_functions): Likewise.
2768 (cgraph_decide_inlining): Likewise.
2769 (inline_read_summary): Likewise.
2771 2009-11-18 Jan Hubicka <jh@suse.cz>
2773 * predict.c (compute_function_frequency): Export.
2774 * predict.h (compute_function_frequency): Declare.
2775 * tree-optimize.c (execute_fixup_cfg): Rescale frequencies.
2777 2009-11-18 Martin Jambor <mjambor@suse.cz>
2779 * passes.c (ipa_write_summaries): Call renumber_gimple_stmt_uids
2780 on all nodes we write summaries for.
2782 2009-11-18 Shujing Zhao <pearly.zhao@oracle.com>
2785 * params.def (PARAM_INLINE_UNIT_GROWTH, PARAM_IPCP_UNIT_GROWTH)
2786 (PARAM_EARLY_INLINING_INSNS, PARAM_IRA_MAX_LOOPS_NUM)
2787 (PARAM_IRA_MAX_CONFLICT_TABLE_SIZE)
2788 (PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP)
2789 (PARAM_MIN_INSN_TO_PREFETCH_RATIO)
2790 (PARAM_PREFETCH_MIN_INSN_TO_MEM_RATIO)
2791 (PARAM_IPA_SRA_PTR_GROWTH_FACTOR): Uppercase the first letter of the
2794 2009-11-18 Jakub Jelinek <jakub@redhat.com>
2796 * dwarf2out.c (loc_list_from_tree): Don't call rtl_for_decl_location
2798 (rtl_for_decl_location): Try harder to get a rtl for TREE_STATIC vars.
2801 * cgraph.h (struct cgraph_node): Add same_body and same_body_alias
2803 (cgraph_same_body_alias, cgraph_remove_same_body_alias): New
2805 * cgraphunit.c (cgraph_expand_function, cgraph_emit_thunks,
2806 cgraph_materialize_all_clones): Handle same_body aliases.
2807 * cgraph.c (cgraph_allocate_node): New function.
2808 (cgraph_create_node): Use it.
2809 (cgraph_node_for_decl, cgraph_node, cgraph_get_node,
2810 cgraph_node_for_asm, cgraph_remove_node): Handle same_body aliases.
2811 (cgraph_same_body_alias, cgraph_remove_same_body_alias): New
2813 * lto-cgraph.c (lto_output_node): Stream out same_body aliases.
2814 (input_node): Stream in same_body aliases.
2815 * lto-symtab.c (lto_cgraph_replace_node): Clear node pointers
2816 for same_body aliases.
2817 (lto_symtab_merge_cgraph_nodes_1): Handle same_body aliases.
2819 2009-11-18 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
2822 * config/darwin.h: Use the extension stub libraries to access
2823 current libgcc_s features.
2825 2009-11-18 Alexandre Oliva <aoliva@redhat.com>
2828 * tree-vect-loop.c (vect_loop_kill_debug_uses): New.
2829 (vect_transform_loop): Call it.
2831 2009-11-18 Alexandre Oliva <aoliva@redhat.com>
2833 * tree-ssa.c (insert_debug_temp_for_var_def): Fix handling of
2836 2009-11-18 Alexandre Oliva <aoliva@redhat.com>
2840 * graphite-scop-detection.c (stmt_simple_for_scop_p): Debug stmts
2842 * graphite-sese-to-poly.c (graphite_stmt_p): Likewise.
2843 (try_generate_gimple_bb): Skip debug stmts when finding data refs.
2844 * sese.c (sese_build_liveouts_bb): Skip debug stmts.
2845 (sese_bad_liveouts_use): New.
2846 (sese_reset_debug_liveouts_bb): New.
2847 (sese_build_liveouts): Use it.
2848 (rename_variables_in_stmt): Reset debug stmts rather than creating
2850 (expand_scalar_variable_stmt): Likewise.
2852 2009-11-18 Alexandre Oliva <aoliva@redhat.com>
2854 * df-scan.c (df_ref_create): Don't mark BB as dirty on debug insns.
2855 (df_ref_remove): Likewise.
2857 2009-11-17 Jan Hubicka <jh@suse.cz>
2859 * ipa-struct-reorg.c (update_cgraph_with_malloc_call): Fix profile
2862 2009-11-17 Eric Botcazou <ebotcazou@adacore.com>
2864 * toplev.c (process_options): Remove dead code.
2865 * doc/invoke.texi (-frename-registers): Mention -fpeel-loops.
2867 2009-11-17 Rafael Avila de Espindola <espindola@google.com>
2869 * lto-symtab.c (lto_symtab_resolve_symbols): Always initialize the
2872 2009-11-17 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2874 PR tree-optimization/41857
2875 * tree-ssa-address.c (move_hint_to_base): Use void pointer to
2876 TYPE's address space instead of pointer to TYPE.
2878 2009-11-17 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2880 * reload.c (find_reloads_address): Fix typo.
2882 2009-11-17 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2884 * config/spu/spu.c (get_pic_reg): Use LAST_ARG_REGNUM as PIC
2885 registers in leaf functions if possible.
2887 2009-11-17 Maxim Kuvyrkov <maxim@codesourcery.com>
2889 * config/m68k/m68k-devices.def: Add MCF5441x family.
2891 2009-11-17 Jan Hubicka <jh@suse.cz>
2893 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not access
2895 * cgraphunit.c (verify_cgraph_node): Verify frequencies for match.
2897 2009-11-17 Uros Bizjak <ubizjak@gmail.com>
2899 * config/i386/predicates.md (x86_64_szext_general_operand): Do not
2900 nest ior expressions.
2901 (x86_64_szext_nonmemory_operand): Ditto.
2902 (call_insn_operand): Ditto.
2904 2009-11-16 Alexandre Oliva <aoliva@redhat.com>
2906 * stmt.c (expand_asm_stmt): Get locus from stmt.
2908 2009-11-16 Alexandre Oliva <aoliva@redhat.com>
2910 * tree-cfg.c (gimple_redirect_edge_and_branch) <case GIMPLE_ASM>:
2911 Create the decl label for the new dest block on demand. Require
2912 a fallthrough edge if no asm labels were redirected.
2914 2009-11-16 Uros Bizjak <ubizjak@gmail.com>
2916 * config/i386/i386.md (cbranchsi4): Use nonimmediate_operand for
2917 operand 1 predicate.
2918 (cstoresi4): Ditto for operand 2.
2919 (cbranch<mode>4): Macroize expander from cbranch{qi,hi,si,di,ti}4
2920 patterns using SDWIM mode iterator.
2921 (cstore<mode>4): Macroize expander from cstore{qi,hi,si,di}4 patterns
2922 using SWIM mode iterator.
2923 (cmpdi_1): Rename from cmpdi_1_rex64.
2924 (cmp<mode>_1): Macroize expander from cmp{si,di}_1 patterns using
2925 SWI48 mode iterator.
2926 (*cmp<mode>_1): Macroize insn from *cmp{qi,hi,si,di}_1_insn patterns
2927 using SWI mode iterator.
2928 (*cmp<mode>_ccno_1): Ditto from *cmp{qi,hi,si,di}_ccno_1.
2929 (*cmp<mode>_minus_1): Ditto from *cmp{qi,hi,si,di}_minus_1.
2930 (*cmpqi_ext_3_insn): Make private.
2931 (*cmpqi_ext_3_insn_rex64): Make private.
2932 (cmpstrnsi): Update for renamed cmpdi_1_rex64.
2933 * config/i386/predicates.md (cmpsi_operand): Remove.
2935 2009-11-16 Paul Brook <paul@codesourcery.com>
2937 * doc/invoke.texi: Document ARM VFPv4 based FPUs.
2938 * config/arm/arm.c (all_fpus): Add VFPv4 entries.
2940 2009-11-14 Jan Hubicka <jh@suse.cz>
2942 * cgraphbuild.c (compute_call_stmt_bb_frequency): Use proper
2944 * cgraph.c (cgraph_clone_edge): Avoid freq_scale 0 to completely
2945 zero out all callees.
2946 * cgraphunit.c (verify_cgraph_node): Verify cgraph nodes for
2947 frequency and count match.
2948 * ipa-inline.c (update_noncloned_frequencies): New function.
2949 (cgraph_clone_inlined_nodes): Use it.
2950 * tree-inline.c (copy_bb): Fix frequency scaling; output
2951 diagnostic on frequency mismatches to dump file.
2952 (initialize_cfun): Do not scale frequency; fix count scaling;
2953 initialize entry and exit block frequencies; copy profile info.
2954 (copy_cfg_body): Use frequency_scale as argument; fix count scaling.
2955 (copy_body): Use frequency_scale as argument.
2956 (expand_call_inline): Compute frequency scale and output diagnostic
2958 (delete_unreachable_blocks_update_callgrah): Remove checking that
2959 has to be done after edge redirection.
2960 (tree_function_versioning): Update initialize_cfun and copy_body call.
2962 2009-11-14 Jan Hubicka <jh@suse.cz>
2964 * cgraph.c (cgraph_release_function_body): Update use of
2965 ipa_transforms_to_apply.
2966 (cgraph_remove_node): Remove ipa_transforms_to_apply.
2967 * cgraph.h (struct cgraph_node): Add ipa_transforms_to_apply.
2968 * cgraphunit.c (save_inline_function_body): Clear ipa_transforms for
2970 (cgraph_materialize_clone): Remove original if dead.
2971 * lto-streamer-in.c (lto_read_body): Remove FIXME and
2972 ipa_transforms_to_apply hack.
2973 * function.h (struct function): Add ipa_transforms_to_apply.
2974 * ipa.c (cgraph_remove_unreachable_nodes): Handle dead clone originals.
2975 * tree-inline.c (copy_bb): Update sanity check.
2976 (initialize_cfun): Do not copy ipa_transforms_to_apply.
2977 (expand_call_inline): remove dead clone originals.
2978 (tree_function_versioning): Merge transformation queues.
2979 * passes.c (add_ipa_transform_pass): Remove.
2980 (execute_one_ipa_transform_pass): Update ipa_transforms_to_apply
2982 (execute_all_ipa_transforms): Update.
2983 (execute_one_pass): Update.
2985 2009-11-14 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
2987 PR target/21078, 21080
2988 * config/avr/avr.c (avr_return_addr_rtx): New function for
2989 builtin_return_address.
2990 (expand_prologue): Calculate stack usage.
2991 (avr_asm_function_end_prologue): Output stack size and offset label.
2992 * config/avr/avr.h (RETURN_ADDR_RTX): Replace.
2993 (machine_function): Add stack_usage.
2994 * config/avr/avr-protos.h (avr_return_addr_rtx): New function.
2996 2009-11-14 Anatoly Sokolov <aesok@post.ru>
2998 * config/iq2000/iq2000.c (iq2000_function_value): Make static, add
2999 new 'outgoing' argument.
3000 (iq2000_libcall_value, iq2000_function_value_regno_p): New functions.
3001 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
3002 * config/iq2000/iq2000.h (FUNCTION_VALUE_REGNO_P): Redefine, use
3003 iq2000_function_value_regno_p.
3004 (FUNCTION_VALUE, LIBCALL_VALUE): Remove.
3005 * config/iq2000/iq2000-protos.h (iq2000_function_value_regno_p):
3008 2009-11-14 Richard Earnshaw <rearnsha@arm.com>
3011 * arm.md (adddi_sesidi_di): Place tied contraint first.
3012 (adddi_zesidi_di, subdi_di_zesidi, subdi_di_sesidi): Likewise
3013 (subdi_zesidi_di, subdi_sesidi_di): Likewise.
3014 (mulsi3_compare0, mulsi_compare0_scratch): Likewise.
3015 (mulsi3addsi, mulsi3addsi_compare0): Likewise.
3016 (mulsi3addsi_compare0_scratch, smulsi3_highpart_nov6): Likewise.
3017 (umulsi3_highpart_nov6, anddi_zesidi_di, anddi_sesdi_di): Likewise.
3018 (anddi_notdi_di, iordi_sesidi_di, xordi_sesidi_di): Likewise.
3019 (andsi_iorsi3_notsi, arm_ashldi3_1bit, arm_ashrdi3_1_bit): Likewise.
3020 (arm_lshrdi3_1bit, one_cmpldi2): Likewise.
3022 2009-11-14 Uros Bizjak <ubizjak@gmail.com>
3024 * config/i386/predicates.md (call_register_no_elim_operand):
3025 New predicate. Reject stack register as valid call operand
3027 (call_insn_operand): Use call_register_no_elim_operand.
3029 2009-11-13 Richard Henderson <rth@redhat.com>
3031 * function.c (stack_protect_prologue): Don't bypass expand_expr
3032 for stack_protect_guard and guard_decl.
3033 (stack_protect_epilogue): Likewise.
3035 2009-11-13 Jan Hubicka <jh@suse.cz>
3037 * ipa.c (function_and_variable_visibility): Clear COMDAT on functions
3038 when to PUBLIC is set.
3040 2009-11-13 Jakub Jelinek <jakub@redhat.com>
3043 * gimplify.c (gimplify_omp_atomic): Set DECL_GIMPLE_REG_P on
3046 2009-11-13 Uros Bizjak <ubizjak@gmail.com>
3049 * config/i386/i386.md (*call_pop_1, *call_1, *call_value_pop_1,
3050 *call_value_1): Use "lsm" as operand 1 constraint.
3051 * config/i386/predicates.md (call_insn_operand): Depend on
3052 index_register_operand to avoid %esp register.
3054 2009-11-13 Uros Bizjak <ubizjak@gmail.com>
3057 2009-11-03 Uros Bizjak <ubizjak@gmail.com>
3060 * config/i386/i386.h (ix86_arch_indices) <X86_ARCH_CALL_ESP>: New.
3061 (TARGET_CALL_ESP): New define.
3062 * config/i386/i386.c (initial_ix86_tune_features): Initialize
3064 * config/i386/i386.md (*call_pop_1_esp, *call_1_esp,
3065 *call_value_pop_1_esp, *call_value_1_esp): Rename from *call_pop_1,
3066 *call_1, *call_value_pop_1 and *call_value_1. Depend on
3068 (*call_pop_1, *call_1, *call_value_pop_1, *call_value_1):
3069 New patterns, use "lsm" as operand 1 constraint.
3070 * config/i386/predicates.md (call_insn_operand): Depend on
3071 index_register_operand for !TARGET_CALL_ESP to avoid %esp register.
3073 2009-11-13 Jason Merrill <jason@redhat.com>
3076 * dwarf2out.c (gen_variable_die): Don't worry about DECL_COMDAT.
3077 Don't emit a second declaration at any scope.
3079 2009-11-13 Andrey Belevantsev <abel@ispras.ru>
3081 PR rtl-optimization/41697
3082 * sel-sched-ir.c (fallthru_bb_of_jump): Bail out when a block with
3083 a conditional jump has a single successor.
3085 2009-11-13 Andrey Belevantsev <abel@ispras.ru>
3087 * sched-deps.c (init_deps): New parameter lazy_reg_last. Don't
3088 allocate reg_last when in case lazy_reg_last is true.
3089 (init_deps_reg_last): New.
3090 (free_deps): When max_reg is 0, this context is already freed.
3091 * sched-int.h (init_deps_reg_last): Export.
3092 (init_deps): Update prototype.
3093 * sched-ebb.c (schedule_ebb): Update the call to init_deps.
3094 * sched-rgn.c (sched_rgn_compute_dependencies): Likewise.
3095 * ddg.c (build_intra_loop_deps): Likewise.
3096 * sel-sched-ir.c (copy_deps_context, create_deps_context,
3097 reset_deps_context, deps_init_id): Likewise.
3098 (init_first_time_insn_data): Lazy allocate INSN_DEPS_CONTEXT.
3099 (free_data_for_scheduled_insn): New, break down from ...
3100 (free_first_time_insn_data): ... here.
3101 (has_dependence_p): Allocate reg_last now, when it is needed.
3102 (extend_insn_data): When maximal LUID is big enough, allocate
3103 per-insn data in smaller chunks.
3104 * sel-sched-ir.h (free_data_for_scheduled_insn): Export.
3105 * sel-sched.c (update_seqnos_and_stage): Free INSN_DEPS_CONTEXT
3108 2009-11-13 Uros Bizjak <ubizjak@gmail.com>
3110 * config/i386/i386.md (call_value): Fix comment.
3111 (sibcall_value): Ditto.
3113 2009-11-13 Eric Botcazou <ebotcazou@adacore.com>
3115 * config/i386/linux-unwind.h (x86_frob_update_context): New function.
3116 (MD_FROB_UPDATE_CONTEXT): Define.
3118 2009-11-12 Eric Botcazou <ebotcazou@adacore.com>
3119 Laurent GUERBY <laurent@guerby.net>
3121 * config/sparc/linux-unwind.h (sparc64_fallback_frame_state): Tidy.
3122 Do not schedule an %sp restore. Compensate for RETURN_ADDR_OFFSET.
3123 (sparc_fallback_frame_state): Tidy. Compensate for RETURN_ADDR_OFFSET.
3125 2009-11-12 Jan Hubicka <jh@suse.cz>
3127 * ipa.c (function_and_variable_visibility): Fix my accidentail commit
3128 and clear DECL_COMMON on localized declarations.
3130 2009-11-12 Bernd Schmidt <bernd.schmidt@analog.com>
3133 * regrename.c (struct du_head): New structure; some elements moved
3135 (struct du_chain): ... this one.
3136 (open_chains, closed_chains): Now of type struct du_head *.
3137 (do_replace): Accept du_head argument, not du_chain. All callers
3138 changed. Modified code to match new data structures.
3139 (build_def_use): Return a list of du_head structures. Modified code
3140 to match new data structures.
3141 (dump_def_use_chain): Accept du_head argument, not du_chain. All
3142 callers changed. Modified code to match new data structures.
3143 (merge_overlapping_regs): Accept du_head argument, not du_chain. All
3144 callers changed. Modified code to match new data structures.
3145 (scan_rtx_reg): Change type of this_regno and this_nregs to unsigned.
3146 Allocate a du_head structure as well as a du_chain when creating a
3147 new chain. Modified other code to match new data structures.
3149 2009-11-12 Jan Hubicka <jh@suse.cz>
3151 * cgraph.h (varpool_node_name): Declare.
3152 * cgraphunit.c (process_function_and_variable_attributes): Set
3153 force_output flag on used variables.
3154 * ipa.c (function_and_variable_visibility): Dump externally visible
3155 and needed variables.
3156 * varpool.c (varpool_node_name): Export.
3157 (decide_is_variable_needed): Check COMDAT for externally visible vars;
3160 2009-11-12 Uros Bizjak <ubizjak@gmail.com>
3163 * simplify-rtx.c (simplify_replace_fn_rtx) <case 'e'>: Skip
3164 processing if XEXP (x, i) is NULL.
3166 2009-11-12 Jan Hubicka <jh@suse.cz>
3168 * ipa.c (function_and_variable_visibility): Verify that WEAK || COMMON
3169 imply PUBLIC || EXTERNAL.
3171 2009-11-11 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
3174 * cfgexpand.c (expand_gimple_basic_block): Append NOP to a fallthru,
3175 single successor block, ending with jump created by RTL expander.
3177 2009-11-11 Jan Hubicka <jh@suse.cz>
3180 * ipa.c (function_and_variable_visibility): Do not privatize COMDAT
3181 and WEAK variables at -fwhole-program.
3184 * ipa.c (whole_program_function_and_variable_visility): COMDAT
3185 functions/variables are not needed even if they are externally visible.
3187 2009-11-11 Jan Hubicka <jh@suse.cz>
3189 (patch by Richard Guenther)
3190 * lto-streamer-out.c (output_function): Output head of argument list
3192 * lto-streamer-in.c (input_function): Re-map arguments into merged
3195 2009-11-11 Jan Hubicka <jh@suse.cz>
3197 * lto-cgraph.c: Include gcov-io.h
3198 (output_profile_summary): New function.
3199 (output_cgraph): Use it.
3200 (input_profile_summary): New function.
3201 (input_cgraph): Use it.
3202 * coverage.c (build_ctr_info_value): Use varpool; initalize
3203 DECL_ASSEMBLER_NAME.
3204 (create_coverage): Likewise.
3205 * tree-profile.c (tree_init_ic_make_global_vars): Likewise.
3206 (tree_init_edge_profiler): Likewise.
3207 * Makefile.in (lto-cgraph.o): Add dependency on gcov-io.h.
3209 2009-11-11 Kai Tietz <kai.tietz@onevision.com>
3211 * config/i386/cygming.h (HANDLE_PRAGMA_PUSH_POP_MACRO): Removed.
3212 * c-pragma.c (def_pragma_macro_value): Likewise.
3213 (def_pragma_macro): Likewise.
3214 (pushed_macro_table): Likewise.
3215 (HANDLE_PRAGMA_PUSH_POP_MACRO): Remove guarded code.
3216 * doc/tm.texi (HANDLE_PRAGMA_PUSH_POP_MACRO): Removed.
3218 2009-11-11 Basile Starynkevitch <basile@starynkevitch.net>
3220 * doc/plugins.texi (Registering custom attributes): section
3221 renamed as (Registering custom attributes or pragmas).
3222 Mentions custom attributes & pragmas, and c_register_pragma, with
3224 * doc/cpp.texi (Pragmas): Mentions that plugins can provide their
3226 * doc/extend.texi (Function Attributes): Mentions that plugin can
3227 provide their attributes.
3229 2009-11-11 Jon Beniston <jon@beniston.com>
3231 * config.gcc: Add lm32 elf and uclinux targets.
3232 * config/lm32: New directory.
3233 * config/lm32/lm32.c: New file.
3234 * config/lm32/lm32.h: New file.
3235 * config/lm32/lm32.md: New file.
3236 * config/lm32/lm32.opt: New file.
3237 * config/lm32/lm32-protos.h: New file.
3238 * config/lm32/constraints.md: New file.
3239 * config/lm32/predicates.md: New file.
3240 * config/lm32/sfp-machine.h: New file.
3241 * config/lm32/t-fprules-softfp: New file.
3242 * config/lm32/uclinux-elf.h: New file.
3243 * doc/invoke.texi: Document lm32 options.
3244 * doc/contrib.texi: Document lm32 porter.
3245 * doc/install.texi: Document lm32 targets.
3247 2009-11-11 Martin Jambor <mjambor@suse.cz>
3250 * ipa-prop.c (ipa_update_after_lto_read): Call
3251 ipa_check_create_node_params and ipa_check_create_edge_args. Also
3252 call ipa_initialize_node_params instead of ipa_populate_param_decls.
3254 2009-11-11 Daniel Jacobowitz <dan@codesourcery.com>
3256 * config/arm/arm.c (neon_vdup_constant, neon_make_constant): New.
3257 (neon_expand_vector_init): Use them. Also handle non-constant
3258 vectors with identical elements and vectors with only one
3259 non-constant element.
3260 (arm_print_operand): Handle 'y' modifier.
3261 * config/arm/arm-protos.h (neon_make_constant): Declare.
3262 * config/arm/neon.md (neon_vdup_n<mode>): Split into two
3263 patterns. Use VX instead of VDQW for the first one. Allow
3264 a VFP alternative and V32 modes for the second one.
3265 * config/arm/neon.ml (shape_elt): Add Alternatives.
3266 (ops): Use Alternatives for vdup lane instructions.
3267 * config/arm/neon-testgen.ml (analyze_shape): Handle Alternatives.
3268 * config/arm/vec-common.md (mov<mode>): Use neon_make_constant.
3270 2009-11-11 Daniel Jacobowitz <dan@codesourcery.com>
3272 * config/arm/neon.md (*neon_mov<mode>): Reject two non-register
3274 (movti, mov<mode>): Call force_reg on one operand if required.
3275 * config/arm/vec-common.md (mov<mode>): Likewise.
3277 2009-11-11 Daniel Jacobowitz <dan@codesourcery.com>
3279 * config/arm/arm.c (arm_override_options): Enable scheduling for
3282 2009-11-10 Eric Botcazou <ebotcazou@adacore.com>
3286 * expr.h (anti_adjust_stack_and_probe): Declare.
3287 * explow.c (anti_adjust_stack_and_probe): Make global, add ADJUST_BACK
3288 parameter and rewrite head comment.
3289 (allocate_dynamic_stack_space): Adjust call to above function.
3290 * function.c (expand_function_end): Handle STACK_CHECK_MOVING_SP.
3292 * tree.h (dwarf2out_args_size): Delete.
3293 * dwarf2out.c (dwarf2out_args_size): Make static and move around.
3294 (dwarf2out_args_size_adjust): Delete prototype and move around.
3295 (dwarf2out_frame_debug_expr): Do not record arg size adjustments for
3296 ACCUMULATE_OUTGOING_ARGS targets.
3298 2009-11-10 Eric Botcazou <ebotcazou@adacore.com>
3300 * config/sparc/sparc.c (print_operand) <')'>: Test for a non-null
3301 DECL_SIZE of DECL_RESULT before evaluating it.
3303 2009-11-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3305 PR tree-optimization/41987
3306 * fold-const.c (const_binop): Avoid using fold_buildN().
3308 2009-11-10 Martin Jambor <mjambor@suse.cz>
3310 * tree-pass.h (struct ipa_opt_pass_d): Added stmt_fixup field.
3311 (execute_all_ipa_stmt_fixups): Declare.
3312 * ipa-cp.c (pass_ipa_cp): Added stmt_fixup value.
3313 * ipa-inline.c (pass_ipa_inline): Likewise.
3314 * ipa-pure-const.c (pass_ipa_pure_cons): Likewise.
3315 * ipa-reference.c (pass_ipa_reference): Likewise.
3316 * ipa.c (pass_ipa_whole_program_visibility): Likewise.
3317 * lto-streamer-out.c (pass_ipa_lto_gimple_out): Likewise.
3318 (pass_ipa_lto_finish_out): Likewise.
3319 * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Likewise.
3320 * passes.c (execute_ipa_stmt_fixups): New function.
3321 (execute_all_ipa_stmt_fixups): New function.
3322 * lto-streamer-in.c (input_function): Call execute_all_ipa_stmt_fixups.
3324 2009-11-10 Eric Botcazou <ebotcazou@adacore.com>
3327 * explow.c (probe_stack_range): Fix typo.
3328 * config/sparc/sparc.md (probe_stack): New expander.
3330 2009-11-09 Dave Korn <dave.korn.cygwin@gmail.com>
3332 * config/i386/cygwin.h (LINK_SPEC): Add -tsaware flag if !mno-cygwin.
3334 2009-11-09 Jason Merrill <jason@redhat.com>
3336 * gdbinit.in (pgq): New function for printing gimple sequence.
3338 2009-11-09 Paul Brook <paul@codesourcery.com>
3339 Daniel Jacobowitz <dan@codesourcery.com>
3340 Sandra Loosemore <sandra@codesourcery.com>
3342 * doc/extend.texi (Half-Precision): Update wording to reflect
3343 that there are now multiple -mfpu options that enable fp16
3345 * doc/invoke.texi: Update list of ARM -mfpu= options.
3346 * config.gcc: Update ARM --with-fpu option list.
3347 * config/arm/arm.c (all_fpus): Add vfpv3-fp16, vfpv3-d16-fp16,
3348 vfpv3xd and vfpv3xd-fp16.
3349 (use_vfp_abi): New function.
3350 (aapcs_vfp_is_call_or_return_candidate): Avoid double precision regs
3352 (aapcs_vfp_is_return_candidate, aapcs_vfp_is_call_candidate,
3353 aapcs_vfp_allocate_return_reg): Use use_vfp_abi.
3354 (arm_rtx_costs_1, arm_size_rtx_costs, arm_fastmul_rtx_costs,
3355 arm_9e_rtx_costs): Only expect double-precision operations if the FPU
3357 (coproc_secondary_reload_class): Reload HFmode via GENERAL_REGS if no
3359 (arm_print_operand): Handle 'p' modifier.
3360 (arm_hard_regno_mode_ok): : Allow HFmode in VFP registers if
3362 * config/arm/arm.h (TARGET_VFP_SINGLE, TARGET_VFP_DOUBLE): Define.
3363 (TARGET_FP16): Define.
3364 * config/arm/vfp.md: Disable double-precision patterns if the FPU
3365 does not provide them.
3366 (arm_movdi_vfp, thumb2_movdi_vfp): Use fcpys to move
3367 double-precision values on a single-precision FPU.
3368 (movdf_vfp, thumb2_movdf_vfp): Likewise. Use "Dy" for
3369 double-precision constants.
3370 (movhf_vfp_neon): New pattern (was movhf_vfp).
3371 (movhf_vfp): Remove NEON instructions.
3372 * config/arm/constraints.md: Add new "Dy" constraint for
3373 double-precision constants. Update description of "Dv".
3374 * config/arm/arm.md: Disable double-precision patterns if the FPU
3375 does not provide them
3377 2009-11-09 Jakub Jelinek <jakub@redhat.com>
3379 * config/i386/i386.c (print_operand) <case 'D'>: Fix formatting.
3380 (print_operand) <case 'Y'>: Likewise. Fix a pasto in operand lossage
3383 2009-11-08 H.J. Lu <hongjiu.lu@intel.com>
3385 * collect2.c (main): Search PLUGIN_LD for plugin linker.
3387 * configure.ac (--with-plugin-ld): New. Default to ld.
3388 * configure: Regenerated.
3389 * config.in: Likewise.
3391 * exec-tool.in (ORIGINAL_PLUGIN_LD_FOR_TARGET): New.
3392 (collect-ld): Use ORIGINAL_PLUGIN_LD_FOR_TARGET for -plugin.
3394 2009-11-08 Jonathan Gray <jsg@openbsd.org>
3396 * config/openbsd-stdint.h: Change to reflect what
3397 c_common_nodes_and_builtins expects.
3399 2009-11-08 Paolo Carlini <paolo.carlini@oracle.com>
3401 * builtins.c (apply_args_reg_offset): Remove commented out delaration.
3403 2009-11-08 Jakub Jelinek <jakub@redhat.com>
3406 * config/i386/i386.c (get_some_local_dynamic_name): Don't assert
3407 function contains at least one local dynamic name.
3408 (print_operand) <case '&'>: Instead output operand lossage diagnostics
3409 here if that happens.
3411 2009-11-08 Zbigniew Chamski <zbigniew.chamski@gmail.com>
3412 Joern Rennecke <amylaar@spamcop.net>
3414 * cfgrtl.c (pass_free_cfg): Add pass name.
3415 * cgraphbuild.c (pass_build_cgraph_edges): Likewise.
3416 (pass_rebuild_cgraph_edges, pass_remove_cgraph_callee_edges): Likewise.
3417 * dce.c (pass_ud_rtl_dce, pass_fast_rtl_dce): Change pass name.
3418 * df-core.c (pass_df_initialize_no_opt): Likewise.
3419 * except.c (pass_rtl_eh): Likewise.
3420 * function.c (pass_init_function, pass_leaf_regs): Likewise.
3421 * gcse.c (pass_rtl_pre): Change pass name.
3422 * passes.c (pass_postreload): Add pass name.
3423 (make_pass_instance): Don't use duplicate-tracking logic for
3424 names starting with '*'.
3425 (next_pass_1): Assert that pass has a name.
3426 (register_one_dump_file): If there is an space in the name,
3428 * predict.c (pass_strip_predict_hints): Add pass name.
3429 * reg-stack.c (pass_stack_regs): Likewise.
3430 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
3431 * tree-cfg.c (pass_warn_function_return,
3432 pass_warn_function_noreturn): Add pass name.
3433 * tree-dfa.c (pass_referenced_vars): Likewise.
3434 * tree-optimize.c (pass_cleanup_cfg_post_optimizing):
3435 Fix whitespace before comment.
3436 (pass_fixup_cfg): Add pass name, fix whitespace before comment.
3437 (pass_init_datastructures): Add pass name.
3438 * tree-ssa-loop.c (pass_record_bounds): Likewise.
3439 * tree-ssa.c (pass_early_warn_uninitialized,
3440 pass_late_warn_uninitialized): Likewise.
3441 * tree.c (pass_ipa_free_lang_data): Likewise.
3442 * doc/passes.texi (pass manager): Document how to disambiguate