OSDN Git Service

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