OSDN Git Service

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