OSDN Git Service

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