OSDN Git Service

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