OSDN Git Service

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