OSDN Git Service

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