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