OSDN Git Service

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