OSDN Git Service

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