OSDN Git Service

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