OSDN Git Service

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