OSDN Git Service

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