Fix PR # 48435 instead of 4435
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
2
3         PR 48435
4         * ira-color.c (setup_profitable_hard_regs): Add comments.
5         Don't take prohibited hard regs into account.
6         (setup_conflict_profitable_regs): Rename to
7         get_conflict_profitable_regs.
8         (check_hard_reg_p): Check prohibited hard regs.
9
10 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
11
12         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
13         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
14         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
15
16 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17
18         PR target/48366
19         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
20         move from floating point to shift amount register .
21         (emit_move_sequence): Remove secondary reload support for floating
22         point to shift amount amount register copies.
23         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
24         amount register copies.
25         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
26         register, return false if mode isn't a scalar integer mode.
27         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
28
29 2011-04-08  Richard Guenther  <rguenther@suse.de>
30
31         * gimple.c (gimple_call_flags): Remove kludge.
32
33 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
34
35         * sel-sched.c (sel_region_init): Move call to
36         sel_setup_region_sched_flags after setup_current_loop_nest.
37
38 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
39
40         PR rtl-optimization/48272
41         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
42         init_insn_reg_pressure_info.  Adjust a caller.
43         * sched-int.h (init_insn_reg_pressure_info): Declare.
44         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
45         when sched-pressure is enabled.
46
47 2011-04-08  Richard Guenther  <rguenther@suse.de>
48
49         * gimple.c (gimple_set_modified): Do not queue calls to
50         MODIFIED_NORETURN_CALLS here ...
51         * tree-ssa-operands.c (update_stmt_operands): ... but here.
52
53 2011-04-08  Richard Guenther  <rguenther@suse.de>
54
55         PR lto/48467
56         * toplev.c (lang_dependent_init): Do not open asm_out_file
57         in WPA mode, nor perform debug machinery initialization.
58         (finalize): Do not unlink asm_out_file in WPA mode.
59
60 2011-04-08  Richard Guenther  <rguenther@suse.de>
61
62         * gimple.h (gimple_call_fntype): New function.
63         (gimple_call_return_type): Use it.
64         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
65         * gimple-low.c (gimple_check_call_args): Likewise.
66         * gimple.c (gimple_call_flags): Likewise.
67         (gimple_call_arg_flags): Likewise.
68         (gimple_call_return_flags): Likewise.
69         * tree-cfg.c (verify_gimple_call): Likewise.
70         (do_warn_unused_result): Likewise.
71         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
72         * value-prof.c (gimple_ic_transform): Fix fndecl check.
73
74 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
75
76         PR rtl-optimization/48235
77         * sel-sched.c (code_motion_process_successors): Recompute the last
78         insn in basic block if control flow changed.
79         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
80         Update condition for ilist_remove.
81
82 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
83
84         PR rtl-optimization/48302
85         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
86         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
87         it to record added preheader blocks.
88         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
89         on to sel_add_loop_preheaders.
90         (sel_region_init): Move call to setup_current_loop_nest after
91         sel_init_bbs.
92
93 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
94
95         PR target/48273
96         * cfgloop.h (loop_has_exit_edges): New helper.
97         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
98         non-clonable.
99         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
100         that have no exit edges.
101
102 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
103
104         PR rtl-optimization/48442
105         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
106         all callers.  Adjust assert.
107
108 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
109
110         PR tree-optimization/48377
111         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
112         is_packed to true even for types with smaller TYPE_ALIGN than
113         TYPE_SIZE.
114
115 2011-04-08  Richard Guenther  <rguenther@suse.de>
116
117         PR bootstrap/48513
118         * doc/tm.texi: Re-generate.
119
120 2011-04-08  Wei Guozhi  <carrot@google.com>
121
122         PR target/47855
123         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
124         * config/arm/arm.c (arm_attr_length_push_multi): New function.
125         * config/arm/arm.md (*push_multi): Change the length computation to
126         call a C function.
127
128 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
129
130         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
131         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
132         * doc/tm.texi: Regenerate.
133         * system.h (ASM_OUTPUT_BSS): Poison.
134         * varasm.c (asm_output_bss): Remove function.
135         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
136         
137         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
138         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
139         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
140         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
141         Likewise.
142         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
143         Likewise.
144         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
145         Likewise.
146         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
147
148 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
149
150         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
151         EnumValue lines.
152
153 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
154
155         * config/m68k/m68k.c (m68k_handle_option): Don't handle
156         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
157         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
158         OPT_mcpu32.
159         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
160         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
161         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
162         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
163         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
164         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
165         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
166         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
167         options.  Don't map other m68k options manually.  Don't handle
168         old-style options as canonical.
169         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
170         * doc/install.texi (m68k-*-*): Document binutils version
171         requirement.
172
173 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
174
175         * basic-block.h (force_nonfallthru): Move to...
176         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
177         (force_nonfallthru): ...here.
178         * cfghooks.c (force_nonfallthru): New function.
179         * cfgrtl.c (force_nonfallthru): Rename into...
180         (rtl_force_nonfallthru): ...this.
181         (commit_one_edge_insertion): Do not set AUX field.
182         (commit_edge_insertions): Do not discover new basic blocks.
183         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
184         (cfg_layout_rtl_cfg_hooks): Likewise.
185         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
186         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
187         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
188
189 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
190
191         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
192         Remove macros.
193
194 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
195
196         * config/i386/sse.md: Update copyright year.
197         (avxcvtvecmode): Remove.
198         (sse_movhlps): Merge with *avx_movhlps.
199         (sse_movlhps): Merge with *avx_movlhps.
200         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
201         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
202         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
203         (sse_loadhps): Merge with *avx_loadhps.
204         (sse_storelps): Merge with *avx_storelps.
205         (sse_loadlps): Merge with *avx_loadlps.
206         (sse_movss): Merge with *avx_movss.
207         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
208         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
209         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
210         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
211         (vec_set<mode>_0): Ditto.
212         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
213         (sse4_1_insertps): Merge with *avx_insertps.
214         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
215         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
216         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
217         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
218         (sse2_storehpd): Merge with *avx_storehpd.
219         (sse2_loadhpd): Merge with *avx_loadhpd.
220         (sse2_loadlpd): Merge with *avx_loadlpd.
221         (sse2_movsd): Merge with *avx_movsd.
222         (*vec_concatv2df): Merge with *vec_concatv2df.
223
224 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
225
226         PR debug/48343
227         * combine.c (combine_instructions): Add last_combined_insn,
228         update it if insn is after it, pass it to all try_combine calls.
229         (try_combine): Add last_combined_insn parameter, pass it instead of
230         i3 to propagate_for_debug.
231
232 2011-04-07  Nick Clifton  <nickc@redhat.com>
233
234         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
235         to handle MDR <-> data register transfers.
236         (movhi_internal): Likewise.
237
238 2011-04-07  Alan Modra  <amodra@gmail.com>
239
240         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
241         previous stack info.
242
243 2011-04-07  Tom de Vries  <tom@codesourcery.com>
244
245         PR target/43920
246         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
247         flow_find_cross_jump.  Swap variables to implement backward replacement.
248         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
249
250 2011-04-07  Tom de Vries  <tom@codesourcery.com>
251
252         PR target/43920
253         * cfgcleanup.c (walk_to_nondebug_insn): New function.
254         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
255         and bb2.
256         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
257         src1 or src2.  Redirect edges to the last basic block.  Update
258         frequency and count on multiple basic blocks in case of fallthru.
259
260 2011-04-07  Tom de Vries  <tom@codesourcery.com>
261
262         PR target/43920
263         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
264         function.
265         (old_insns_match_p): Change return type.  Replace return false/true
266         with return dir_none/dir_both.  Use can_replace_by.
267         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
268         direction from dir_p.  Register replacement direction in dir, last_dir
269         and afterlast_dir.  Handle new return type of old_insns_match_p using
270         merge_dir.  Return replacement direction in dir_p.
271         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
272         return type of old_insns_match_p.
273         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
274         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
275         flow_find_cross_jump.
276         * basic-block.h (enum replace_direction): New type.
277         (flow_find_cross_jump): Add parameter to declaration.
278
279 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
280
281         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
282         (AVXMODEDCVTPS2DQ): Ditto.
283         (VEC_FLOAT_MODE): Ditto.
284         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
285         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
286         (<any_logic:code><mode>3): Use VF mode iterator.
287         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
288         Use VF mode iterator.
289         (copysign<mode>3): Use VF mode iterator.
290         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
291         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
292         (*<any_logic:code><MODEF:mode>3): Merge with
293         *avx_<any_logic:code><MODEF:mode>3.
294         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
295         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
296         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
297         (avx_cvtdq2ps<avxmodesuffix>): Remove.
298         (sse2_cvtdq2ps): Use %v modifier.
299         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
300         (avx_cvtps2dq<avxmodesuffix>): Remove.
301         (sse2_cvtps2dq): Use %v modifier.
302         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
303         (avx_cvttps2dq<avxmodesuffix>): Remove.
304         (sse2_cvttps2dq): Use %v modifier.
305         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
306         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
307         (sse2_cvtsd2siq): Fix insn template.
308         (sse2_cvtsd2siq_2): Ditto.
309         (sse2_cvttsd2siq): Ditto.
310         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
311         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
312
313 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
314
315         * gcov-io.c: Use GCC Runtime Library Exception.
316
317 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
318
319         PR debug/48466
320         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
321         as base_reg whatever register reg has been eliminated to, instead
322         of hardcoding STACK_POINTER_REGNUM.
323
324 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
325
326         * doc/tm.texi.in: Document C target hooks as separate from general
327         target hooks.
328         * doc/tm.texi: Regenerate.
329         * genhooks.c (struct hook_desc): Add docname field.
330         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
331         docname field.
332         (hook_array): Include c-target.def.
333         (emit_documentation): Use docname field in output.
334         (emit_init_macros): Take docname argument.  Only emit definitions
335         for hooks matching docname.
336         (main): Expect additional arguments in all cases.  Pass argument
337         to emit_init_macros.
338         * target.def: Move initial macro definitions and comments to
339         target-hooks-macros.h.
340         (gcc_targetcm): Move to c-family/c-target.def.
341         * target.h (targetcm): Move declaration to c-family/c-target.h.
342         * targhooks.c (default_handle_c_option): Move to
343         c-family/c-opts.c.
344         * targhooks.h (default_handle_c_option): Move declaration to
345         c-family/c-common.h.
346         * target-hooks-macros.h: New file.
347         * config.gcc (target_has_targetcm): Define and use to add to
348         c_target_objs and cxx_target_objs.
349         * config/default-c.c: New file.
350         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
351         of target.h and target-def.h.
352         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
353         (darwin_objc_construct_string, darwin_cfstring_ref_p,
354         darwin_check_cfstring_format_arg): Make static.
355         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
356         TARGET_STRING_OBJECT_REF_TYPE_P,
357         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
358         * config/darwin-protos.h (darwin_objc_construct_string,
359         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
360         declare.
361         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
362         TARGET_STRING_OBJECT_REF_TYPE_P,
363         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
364         * config/t-darwin (darwin-c.o): Update dependencies.
365         * system.h (TARGET_HAS_TARGETCM): Poison.
366         * Makefile.in (TARGET_H): Update.
367         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
368         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
369         (default-c.o): New target.
370         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
371         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
372         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
373         c-target.def.
374         (build/genhooks.o): Update dependencies.
375
376 2011-04-06  Richard Guenther  <rguenther@suse.de>
377
378         * ipa-inline.c (enum inlining_mode): Remove.
379         (cgraph_flatten): Use some other token.
380         (cgraph_edge_early_inlinable_p): New function, split out from ...
381         (cgraph_perform_always_inlining): New function, split out from ...
382         (cgraph_decide_inlining_incrementally): ... here.
383         (cgraph_mark_inline_edge): Adjust.
384         (cgraph_early_inlining): Re-structure.
385         (pass_early_inline): Require SSA form.
386
387 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
388             Julian Brown  <julian@codesourcery.com>
389             Mark Shinwell  <shinwell@codesourcery.com>
390
391         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
392         LO_REGS only for Thumb-1.
393         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
394         be used in short instructions when optimising for size on Thumb-2.
395
396 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
397
398         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
399         associated with user returns to be preserved.
400
401 2011-04-06  Tristan Gingold  <gingold@adacore.com>
402
403         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
404         symbol_queue_size, DBXOUT_DECR_NESTING,
405         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
406         if XCOFF_DEBUGGING_INFO.
407
408 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
409
410         * config/i386/i386.md (attribute isa): New.
411         (attribute enabled): New.
412         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
413         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
414         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
415         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
416         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
417         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
418         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
419         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
420
421         * config/i386/sse.md (VF): New mode iterator.
422         (VF1): Ditto.
423         (VF2): Ditto.
424         (VF_128): Ditto.
425         (SSEMODEF4): Remove.
426         (attribute sse): Handle V8SF and V4DF modes.
427         (<absneg:code><mode>2): Use VF mode iterator.
428         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
429         mode iterator.
430         (<plusminus_insn><mode>3): Use VF mode iterator.
431         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
432         Use VF mode iterator.
433         (<sse>_vm<plusminus_insn><mode>3): Merge with
434         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
435         (mul<mode>3): Use VF mode iterator.
436         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
437         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
438         mode iterator.
439         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
440         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
441         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
442         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
443         mode iterator.
444         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
445         Use VF1 mode iterator.
446         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
447         (sqrt<VF2:mode>2): New expander.
448         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
449         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
450         and sqrtv2df2.  Use VF mode iterator.
451         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
452         mode iterator.
453         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
454         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
455         Use VF1 mode iterator.
456         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
457         (<smaxmin:code><mode>3): Use VF mode iterator.
458         (*<smaxmin:code><mode>3_finite): Merge with
459         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
460         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
461         (<sse>_vm<smaxmin:code><mode>2): Merge with
462         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
463         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
464         mode iterator.
465         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
466         mode iterator.
467         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
468         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
469         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
470         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
471         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
472         VF mode iterator.
473         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
474         Use VF_128 mode iterator.
475         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
476         mode iterator.
477         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
478         VF_128 mode iterator.
479         (vcond<mode>): Use VF mode iterator.
480         * config/i386/predicates.md (sse_comparison_operator): Merge with
481         avx_comparison_float_operator.  Do not declare as special_predicate.
482         * config/i386/i386.c (struct builtin_description): Update for renamed
483         compare patterns.
484         (ix86_expand_args_builtin): Ditto.
485         (ix86_expand_sse_compare_mask): Ditto.
486
487 2011-04-06  Richard Guenther  <rguenther@suse.de>
488
489         * tree-inline.c (estimate_num_insns): For calls simply account
490         for all passed arguments and a used return value.
491
492 2011-04-06  Richard Guenther  <rguenther@suse.de>
493
494         PR tree-optimization/47663
495         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
496         call_stmt_time fields.
497         (cgraph_edge_inlinable_p): Declare.
498         (cgraph_edge_recursive_p): New inline function.
499         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
500         (cgraph_clone_edge): Copy it.
501         * ipa-inline.c (cgraph_estimate_edge_time): New function.
502         Account for call stmt time.
503         (cgraph_estimate_time_after_inlining): Take edge argument.
504         (cgraph_estimate_edge_growth): Account call stmt size.
505         (cgraph_estimate_size_after_inlining): Take edge argument.
506         (cgraph_mark_inline_edge): Adjust.
507         (cgraph_check_inline_limits): Likewise.
508         (cgraph_recursive_inlining_p): Remove.
509         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
510         (cgraph_decide_recursive_inlining): Take edge argument and
511         adjust.
512         (cgraph_decide_inlining_of_small_functions): Do not avoid
513         diags for recursive inlining here.
514         (cgraph_flatten): Adjust.
515         (cgraph_decide_inlining_incrementally): Likewise.
516         (estimate_function_body_sizes): Remove call cost handling.
517         (compute_inline_parameters): Initialize caller edge call costs.
518         (cgraph_estimate_edge_growth): New function.
519         (cgraph_estimate_growth): Use it.
520         (cgraph_edge_badness): Likewise.
521         (cgraph_check_inline_limits): Take an edge argument.
522         (cgraph_decide_inlining_of_small_functions): Adjust.
523         (cgraph_decide_inlining): Likewise.
524         * tree-inline.c (estimate_num_insns): Only account for call
525         return value if it is used.
526         (expand_call_inline): Avoid diagnostics on recursive inline
527         functions here.
528         * lto-cgraph.c (lto_output_edge): Output edge call costs.
529         (input_edge): Input edge call costs.
530
531 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
532
533         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
534
535 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
536
537         * doc/invoke.texi (Spec Files): Fix typo.
538
539 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
540
541         * profile.c (branch_prob): Move declaration of local variable.  Remove
542         obsolete ??? comment.  Expand the location explicitly instead of using
543         the LOCATION_FILE and LOCATION_LINE macros.
544
545 2011-04-06  Wei Guozhi  <carrot@google.com>
546
547         PR target/47855
548         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
549         (arm_cond_branch): Likewise.
550         (arm_cond_branch_reversed): Likewise.
551         (arm_jump): Likewise.
552         (push_multi): Likewise.
553         * config/arm/constraints.md (Py): New constraint.
554
555 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
556
557         PR bootstrap/48471
558         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
559         Move these...
560         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
561         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
562         #ifdef DBX_DEBUGGING_INFO.
563
564 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
565
566         PR bootstrap/48403
567         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
568         if old and new states differ.
569
570 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
571
572         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
573         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
574         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
575         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
576         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
577         mcfv4e): Use Alias.
578         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
579         ColdFire options to -mcpu= options.
580
581 2011-04-05  Jeff Law  <law@redhat.com>
582
583         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
584         check if BB is a successor of LOOP->header and return
585         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
586
587 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
588
589         * cprop.c (struct reg_use): Remove.
590         (reg_use_table): Make an array of RTX.
591         (find_used_regs, constprop_register, local_cprop_pass,
592         bypass_block): Simplify users of reg_use_table.
593         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
594         on one of the uses found by find_used_regs.
595
596 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
597
598         PR bootstrap/48469
599         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
600         declaration.
601
602 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
603
604         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
605         as an rtx.
606         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
607
608 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
609
610         PR middle-end/48441
611         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
612
613 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
614
615         * combine.c: Include obstack.h.
616         (struct insn_link): Define.
617         (uid_log_links): Adjust type.
618         (FOR_EACH_LOG_LINK): New macro.
619         (insn_link_obstack): Declare.
620         (alloc_insn_link): Define.
621         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
622         type of link variables.
623         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
624         (try_combine, record_promoted_values, distribute_notes): Likewise.
625         (distribute_links): Likewise.  Tweak prototype.
626         (clear_log_links): Delete.
627         (adjust_for_new_dest): Call alloc_insn_link.
628         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
629
630 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
631
632         * gcse.c (modify_mem_list): Convert to an array of VECs.
633         (canon_modify_mem_list, compute_transp): Tweak formatting.
634         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
635         (load_killed_in_block_p): Likewise.
636         (record_last_mem_set_info): Likewise.
637         (clear_modify_mem_tables): Likewise.
638
639 2011-04-05  Tom de Vries  <tom@codesourcery.com>
640
641         PR middle-end/48461
642         * function.c (emit_use_return_register_into_block): Only define if
643         HAVE_return.
644
645 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
646
647         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
648
649 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
650
651         * config/rx/rx-opts.h: New.
652         * config/rx/rx.c (rx_cpu_type): Remove.
653         (rx_handle_option): Don't assert that global structures are in
654         use.  Access variables via opts pointer.  Defer most handling of
655         OPT_mint_register_.  Use error_at.
656         (rx_option_override): Handle deferred OPT_mint_register_ here.
657         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
658         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
659         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
660         (rx_cpu_types): New Enum and EnumValue entries.
661         (mint-register=): Use Defer and use Var accordingly.
662
663 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
664
665         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
666         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
667         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
668         Move these...
669         (debug_free_queue, debug_nesting, symbol_queue_index):
670         ...and these...
671         * dbxout.c: ...to here.  Make static.
672
673 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
674
675         * gcse.c (modify_pair): Define.  Define a VEC of it.
676         (canon_modify_mem_list): Convert to an array of VECs.
677         (free_insn_expr_list_list): Delete.
678         (clear_modify_mem_tables): Call VEC_free instead.
679         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
680         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
681         (canon_list_insert, compute_transp): Likewise.
682
683 2011-04-05  Tom de Vries  <tom@codesourcery.com>
684
685         PR target/43920
686         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
687         for size.
688
689 2011-04-05  Tom de Vries  <tom@codesourcery.com>
690
691         PR target/43920
692         * function.c (emit_use_return_register_into_block): New function.
693         (thread_prologue_and_epilogue_insns): Use
694         emit_use_return_register_into_block.
695
696 2011-04-05  Tom de Vries  <tom@codesourcery.com>
697
698         PR target/43920
699         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
700         insn.
701
702 2011-04-05  Tom de Vries  <tom@codesourcery.com>
703
704         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
705
706 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
707
708         * config/arm/arm.md (define_constants for unspec): Replace with
709         define_c_enum.
710         (define_constants for unspecv): Replace with define_c_enum.
711         * config/arm/neon.md (define_constants for unspec): Replace with
712         define_c_enum.
713
714 2011-04-04  Richard Henderson  <rth@redhat.com>
715
716         PR bootstrap/48400
717         * dwarf2out.c (output_line_info): Always emit line info from
718         at least one section.
719         (dwarf2out_init): Create text_section_line_info here ...
720         (set_cur_line_info_table): ... not here.
721
722 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
723
724         PR target/48380
725         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
726         not called.
727
728         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
729
730 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
731
732         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
733         (expr_equiv_p): Remove.
734         (insert_set_in_table): Look at <dest, src> pair instead of expr.
735         (hash_scan_set): Update call to insert_set_in_table.
736         (dump_hash_table): Dump <dest, src> pair.
737         (lookup_set): Simplify.  Lookup <dest, src> pair.
738         (compute_transp): Remove, fold heavily simplified code into...
739         (compute_local_properties): ...here.  Expect COMP and TRANSP
740         unconditionally.
741         (find_avail_set): Take set directly from struct expr.
742         (find_bypass-set): Likewise.
743         (bypass_block): Likewise.
744         (cprop_insn): Likewise.  Remove redundant INSN_P test.
745
746         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
747         checks on form of COND from find_implicit_sets to here.
748         (find_implicit_sets): Cleanup control flow. Split critical edges
749         if it exposes implicit sets.  Allocate/resize implicit_sets as
750         necessary.
751         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
752         changed something.  Run df_analyze after find_implicit_sets if any
753         edges were split.  Do not allocate implicit_sets here.
754
755         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
756         (gcse_obstack): Renamed to cprop_obstack.
757         (GNEW, GNEWVEC, GNEWVAR): Remove.
758         (gmalloc): Remove.
759         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
760         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
761         (gcse_alloc): Likewise, and rename to cprop_alloc.
762         (alloc_gcse_men, free_gcse_mem): Remove.
763         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
764         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
765         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
766
767         * cprop.c (oprs_not_set_p): Remove.
768         (mark_set, mark_clobber): Remove.
769         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
770         (reg_not_set_p): New function.
771         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
772         (cprop_insn): Likewise.
773         (cprop_jump): Use FOR_EACH_EDGE.
774
775 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
776
777         PR bootstrap/48403
778         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
779         (rank_for_schedule): Use scheduled_insns vector instead of
780         last_scheduled_insn.
781         (ok_for_early_queue_removal): Likewise.
782         (queue_to_ready): Search forward in nonscheduled_insns_begin if
783         we have a dbg_cnt.
784         (choose_ready): Likewise.
785         (commit_schedule): Use VEC_iterate.
786         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
787         a dbg_cnt, use it and ensure the first insn is in the ready list.
788         (haifa_sched_init): Allocate scheduled_insns.
789         (sched_extend_ready_list): Don't allocate it; reserve space.
790         (haifa_sched_finish): Free it.
791
792 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
793
794         * optc-gen.awk: Always remove type from Variable entry before
795         recording in var_seen.
796
797 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
798
799         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
800         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
801         call to tidy_fallthru_edges.
802
803 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
804
805         * doc/options.texi (ToLower): Document.
806         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
807         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
808         * opts.h (cl_option): Add cl_tolower field.
809         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
810         arguments with lowercase strings.
811         * config/rx/rx.opt (mcpu=): Add ToLower.
812         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
813         argument.
814
815 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
816
817         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
818
819 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
820
821         * config/vax/vax.c: Include reload.h.
822
823 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
824
825         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
826         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
827         (sparc_preferred_reload_class): New function.
828
829 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
830
831         PR debug/48401
832         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
833         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
834
835 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
836
837         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
838         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
839
840 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
841
842         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
843         (ASM_OUTPUT_ALIGNED_BSS): Define.
844
845 2011-04-03  Michael Matz  <matz@suse.de>
846
847         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
848         and next_slot members.
849         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
850         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
851         (lto_streamer_cache_append): Declare.
852         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
853         unsigned index, remove offset parameter, ensure that we append
854         or update existing entries.
855         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
856         parameter, update next_slot for append.
857         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
858         parameter.
859         (lto_streamer_cache_insert_at): Likewise.
860         (lto_streamer_cache_append): New function.
861         (lto_streamer_cache_lookup): Use unsigned index.
862         (lto_streamer_cache_get): Likewise.
863         (lto_record_common_node): Don't test tree_node_can_be_shared.
864         (preload_common_node): Adjust call to lto_streamer_cache_insert.
865         (lto_streamer_cache_delete): Don't free offsets member.
866         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
867         (lto_output_string_with_length): Use lto_output_data_stream.
868         (lto_output_tree_header): Remove ix parameter, don't write it.
869         (lto_output_builtin_tree): Likewise.
870         (lto_write_tree): Adjust callers to above, don't track and write
871         offset, write unsigned index.
872         (output_unreferenced_globals): Don't emit all global vars.
873         (write_global_references): Use unsigned indices.
874         (lto_output_decl_state_refs): Likewise.
875         (write_symbol): Likewise.
876         * lto-streamer-in.c (lto_input_chain): Move earlier.
877         (input_function): Use unsigned index.
878         (input_alias_pairs): Don't read and then ignore all global vars.
879         (lto_materialize_tree): Remove ix_p parameter, don't read index,
880         don't pass it back, use lto_streamer_cache_append.
881         (lto_register_var_decl_in_symtab): Use unsigned index.
882         (lto_register_function_decl_in_symtab): Likewise.
883         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
884         index.
885         (lto_get_builtin_tree): Don't read index, use
886         lto_streamer_cache_append.
887         (lto_read_tree): Adjust call to lto_materialize_tree.
888
889         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
890         don't use function calls in arguments to MIN.
891
892         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
893         twice.
894
895         * gimple.c (gimple_type_leader_entry): Mark deletable.
896
897 2011-04-03  Alan Modra  <amodra@gmail.com>
898
899         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
900
901 2011-04-03  Michael Matz  <matz@suse.de>
902
903         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
904         an integer.
905         * tree.h (tree_decl_non_common.vindex): Adjust comment.
906
907 2011-04-03  Michael Matz  <matz@suse.de>
908
909         * cgraphbuild.c (record_reference): Canonicalize constructor values.
910         * gimple-fold.c (canonicalize_constructor_val): Accept being called
911         without function context.
912         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
913         current_function_decl and cfun.
914
915 2011-04-03  Michael Matz  <matz@suse.de>
916
917         * tree.c (decl_init_priority_insert): Don't create entry for
918         default priority.
919         (decl_fini_priority_insert): Ditto.
920         (fields_compatible_p, find_compatible_field): Remove.
921         * tree.h (fields_compatible_p, find_compatible_field): Remove.
922         * gimple.c (gimple_compare_field_offset): Adjust block comment.
923
924 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
925
926         * combine.c (try_combine): Remove useless local variable.
927
928 2011-04-03  Richard Guenther  <rguenther@suse.de>
929             Ira Rosen  <ira.rosen@linaro.org>
930
931         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
932         non-variable offsets and compare the remaining bases of the two
933         accesses instead of looking for exact same data-ref.
934
935 2011-04-02  Kai Tietz  <ktietz@redhat.com>
936
937         PR target/48416
938         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
939
940         * i386.c (ix86_is_msabi_thiscall): New helper function.
941         (ix86_is_type_thiscall): New helper function.
942         (ix86_comp_type_attributes): Handle thiscall for method-functions
943         special.
944         (init_cumulative_args): Likewise.
945         (find_drap_reg): Likewise.
946         (ix86_static_chain): Likewise.
947         (x86_this_parameter): Likewise.
948         (x86_output_mi_thunk): Likewise.
949
950 2011-04-01  Olivier Hainque  <hainque@adacore.com>
951             Nicolas Setton  <setton@adacore.com>
952             Eric Botcazou  <ebotcazou@adacore.com>
953
954         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
955         (add_gnat_descriptive_type_attribute): New function.
956         (gen_array_type_die): Call it.
957         (gen_enumeration_type_die): Likewise.
958         (gen_struct_or_union_type_die): Likewise.
959         (modified_type_die): Likewise.
960         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
961         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
962         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
963
964 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
965
966         PR bootstrap/48148
967         * dwarf2out.c (resolve_addr): Don't call force_decl_die
968         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
969
970         Revert:
971         2011-03-17  Richard Guenther  <rguenther@suse.de>
972
973         PR bootstrap/48148
974         * lto-cgraph.c (input_overwrite_node): Clear the abstract
975         origin for decls in other ltrans units.
976         (input_varpool_node): Likewise.
977
978 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
979
980         PR middle-end/48335
981         * expr.c (expand_assignment): Handle all possibilities
982         if TO_RTX is CONCAT.
983         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
984         (store_split_bit_field): If SUBREG_REG (op0) or
985         op0 itself has smaller mode than word, return it
986         for offset 0 and const0_rtx for out-of-bounds stores.
987         If word is const0_rtx, skip it.
988
989 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
990
991         * config/h8300/h8300.c (print_operand_address): Rename to...
992         (h8300_print_operand_address): ...this. Make static. Adjust comments.
993         Call h8300_print_operand and h8300_print_operand_address instead of
994         print_operand and print_operand_address. Declare.
995         (print_operand): Renake to...
996         (h8300_print_operand): ...this. Make static. Adjust comments.
997         Call h8300_print_operand instead of print_operand. Declare.
998         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
999         (h8300_register_move_cost): Likewise.
1000         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
1001         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
1002         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
1003         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
1004         * config/h8300/h8300-protos.h (print_operand): Delete.
1005         (print_operand_address): Delete.
1006
1007 2011-04-01  Richard Henderson  <rth@redhat.com>
1008
1009         PR 48400
1010         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
1011         in strict mode before dwarf4.  Re-order tests to early out
1012         before switching sections.
1013
1014 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
1015
1016         * config/h8300/constraints.md: New file.
1017         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
1018         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
1019         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
1020         * config/h8300/predicates.md (bit_operand): Likewise.
1021         (incdec_operand): Use satisfies_constraint_M and
1022         satisfies_constraint_O.  Don't use C code block.
1023         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
1024         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
1025         (compute_mov_length): Use satisfies_constraint_G.
1026         (fix_bit_operand): Use satisfies_constraint_U.
1027         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
1028         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
1029         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
1030         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
1031         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
1032         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
1033         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
1034         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
1035         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
1036         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
1037         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
1038         (EXTRA_MEMORY_CONSTRAINT): Delete.
1039
1040 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
1041             Michael Meissner  <meissner@linux.vnet.ibm.com>
1042
1043         PR target/48262
1044         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
1045         operands, as per the specifications.
1046
1047         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
1048         (vec_extract_evenv4sf): Ditto.
1049         (vec_extract_evenv8hi): Ditto.
1050         (vec_extract_evenv16qi): Ditto.
1051         (vec_extract_oddv4si): Ditto.
1052
1053 2011-03-31  Mark Wielaard  <mjw@redhat.com>
1054
1055         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
1056         high_pc attribute if the CU has no associated code. Only output
1057         DW_AT_entry_pc for CU if not generating strict dwarf and
1058         dwarf_version < 4.
1059
1060 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
1061
1062         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
1063         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
1064         out of ...
1065         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
1066         * final.c (final_start_function): Call the new function rather
1067         than using a NULL argument for dwarf2out_frame_debug.
1068
1069         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
1070         that contains the prologue.
1071
1072         * haifa-sched.c (queue_insn): New arg REASON.  All callers
1073         changed.  Print it in debugging output.
1074
1075         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
1076
1077         * sched-ebb.c (begin_schedule_ready): Remove second argument.
1078         Split most of the code into...
1079         (begin_move_insn): ... here.  New function.
1080         (ebb_sched_info): Add a pointer to it.
1081         * haifa-sched.c (scheduled_insns): New static variable.
1082         (sched_extend_ready_list): Allocate it.
1083         (schedule_block): Use it to record the order of scheduled insns.
1084         Perform RTL changes to move insns only after all scheduling
1085         decisions have been made.
1086         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
1087         begin_move_insn field.
1088         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
1089         * sched-int.h (struct haifa_sched_info): Remove second argument
1090         from begin_schedule_ready hook.  Add new member begin_move_insn.
1091         * sched-rgn.c (begin_schedule_ready): Remove second argument.
1092         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
1093
1094         * haifa-sched.c (prune_ready_list): New function, broken out of
1095         schedule_block.
1096         (schedule_block): Use it.
1097
1098 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1099
1100         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
1101
1102 2011-04-01  Kai Tietz  <ktietz@redhat.com>
1103
1104         * config.gcc (*-*-mingw*): Allow as option the
1105         posix threading model.
1106         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
1107         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
1108         definition.
1109         (CPP_SPEC): Add pthread/no-pthread handling.
1110         (LIB_SPEC): Likewise.
1111         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
1112         (LIB_SPEC): Likewise.
1113         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
1114         flag to pass -pthread option for shared libgcc build.
1115         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
1116         for shared libgcc build.
1117         * config/i386/t-mingw-pthread: New file.
1118         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
1119         New define to enable use of library pthread by default.
1120         * config/i386/mingw.opt (pthread): New driver option.
1121         (no-pthread): New driver option.
1122         * config/i386/cygming.opt: Make sure trailing empty line is retained.
1123         * config/i386/mingw-w64.opt: Likewise.
1124
1125 2011-04-01  Gary Funck <gary@intrepid.com>
1126
1127         * c-decl.c (grokdeclarator): Fix formatting.
1128
1129 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
1130
1131         * expr.c (emit_block_move_via_movmem): Use n_generator_args
1132         instead of n_operands.
1133         (set_storage_via_setmem): Likewise.
1134         * optabs.c (maybe_gen_insn): Likewise.
1135         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
1136         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
1137         (mips_expand_builtin_direct): Likewise.
1138         * config/spu/spu.c (expand_builtin_args): Likewise.
1139
1140 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
1141
1142         * recog.h (insn_data_d): Add n_generator_args.
1143         * genoutput.c (data): Likewise.
1144         (output_insn_data): Print it.
1145         (max_opno, num_dups): Delete.
1146         (scan_operands): Just fill in "d->operand[...]".
1147         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
1148
1149 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
1150
1151         * gensupport.h (pattern_stats): New structure.
1152         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
1153         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
1154         (max_operand_1, max_operand_vec): Delete.
1155         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
1156
1157 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
1158
1159         * emit-rtl.c (emit_pattern_after_setloc): New function.
1160         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
1161         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
1162         (emit_pattern_after): New function.
1163         (emit_insn_after, emit_jump_insn_after): Call it.
1164         (emit_call_insn_after, emit_debug_insn_after): Likewise.
1165         (emit_pattern_before_setloc): New function.
1166         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
1167         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
1168         Likewise.
1169         (emit_pattern_before): New function.
1170         (emit_insn_before, emit_jump_insn_before): Call it.
1171         (emit_call_insn_before, emit_debug_insn_before): Likewise.
1172
1173 2011-03-31  Richard Henderson  <rth@redhat.com>
1174
1175         * dwarf2out.c (dw_separate_line_info_ref): Remove.
1176         (dw_separate_line_info_entry): Remove.
1177         (enum dw_line_info_opcode): New.
1178         (dw_line_info_entry): Use it.
1179         (dw_line_info_table, dw_line_info_table_p): New.
1180         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
1181         (line_info_table, line_info_label_num): Remove.
1182         (line_info_table_in_use): Remove.
1183         (separate_line_info_table): Remove.
1184         (separate_line_info_table_allocated): Remove.
1185         (separate_line_info_table_in_use): Remove.
1186         (LINE_INFO_TABLE_INCREMENT): Remove.
1187         (line_info_label_num): New.
1188         (cur_line_info_table): New.
1189         (text_section_line_info, cold_text_section_line_info): New.
1190         (separate_line_info): New.
1191         (SEPARATE_LINE_CODE_LABEL): Remove.
1192         (print_dwarf_line_table): Remove.
1193         (debug_dwarf): Don't dump it.
1194         (output_one_line_info_table): New.
1195         (output_line_info): Use it.
1196         (new_line_info_table): New.
1197         (set_cur_line_info_table): New.
1198         (dwarf2out_switch_text_section): Use it.
1199         (dwarf2out_begin_function): Likewise.
1200         (push_dw_line_info_entry): New.
1201         (dwarf2out_source_line): Rewrite for new line info tables.
1202         (dwarf2out_init): Remove dead initailizations.
1203
1204 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
1205
1206         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
1207         various flags.
1208         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
1209         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
1210         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
1211         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
1212         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
1213         * opt-functions.awk (flag_init, switch_bit_fields): New.
1214         (switch_flags): Don't handle flags moved to bit-fields.  Don't
1215         generate CL_MISSING_OK or CL_SAVE.
1216         * optc-gen.awk: Update to generate bit-field output as well as
1217         flags field.
1218         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
1219         bit-field instead of CL_REJECT_DRIVER flag.
1220         * opts-common.c (generate_canonical_option,
1221         decode_cmdline_option): Use bit-fields instead of CL_* flags.
1222         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
1223         instead of CL_REJECT_NEGATIVE flag.
1224         * toplev.c (print_switch_values): Use cl_report bit-field instead
1225         of CL_REPORT flag.
1226
1227 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
1228
1229         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
1230         a zero minimum index only if it is redundant.
1231
1232 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
1233
1234         PR rtl-optimization/48381
1235         * ira-color.c (assign_hard_reg): Use hard reg set intersection
1236         instead of ira_class_hard_reg_index for calculating conflicting
1237         hard registers.
1238
1239 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
1240
1241         * cprop.c: Clean up hash table building.
1242         (reg_avail_info): Remove.
1243         (oprs_available_p): Remove.
1244         (record_last_reg_set_info): Remove.
1245         (record_last_set_info): Remove.
1246         (reg_available_p): New function.
1247         (gcse_constant_p): Do not treat unfolded conditions as constants.
1248         (make_set_regs_unavailable): New function.
1249         (hash_scan_set): Simplify with new reg_available_p.
1250         (compute_hash_table_work): Traverse insns stream only once.
1251         Do not compute reg_avail_info. Traverse insns in reverse order.
1252         Record implicit sets after recording explicit sets from the block.
1253
1254 2011-03-31  Michael Matz  <matz@suse.de>
1255
1256         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
1257
1258 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
1259
1260         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
1261         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
1262         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
1263         (h8300_mode_dependent_address_p): New function.
1264         (h8300_get_index): Make static.
1265
1266 2011-03-31  Jeff Law  <law@redhat.com>
1267
1268         * reload1.c (elimination_effects): Fix typo in recent change.
1269
1270         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
1271         typo potentially leading to null pointer dereference.
1272
1273         * caller-save.c (new_saved_hard_reg): Eliminate return value.
1274         (setup_save_areas): Corresponding changes to avoid useless
1275         assignments.
1276
1277         * jump.c (reversed_comparison_code_parts): Avoid successive return
1278         statements when REVERSE_CONDITION is defined.
1279
1280         * expr.c (expand_assignment): Avoid useless assignments.
1281         (expand_expr_real_1): Likewise.
1282         (expand_expr_real_2): Avoid useless statements.
1283
1284         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
1285
1286         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
1287
1288         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
1289         statements.
1290
1291         * stmt.c (expand_expr_stmt): Avoid useless assignment.
1292
1293 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
1294
1295         PR target/47109
1296         * doc/tm.texi.in (TARGET_VERSION): Remove.
1297         * doc/tm.texi: Regenerate.
1298         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
1299         * collect2.c (main): Don't use TARGET_VERSION.
1300         * mips-tdump.c (main): Don't use TARGET_VERSION.
1301         * mips-tfile.c (main): Don't use TARGET_VERSION.
1302         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
1303         * config/rs6000/vxworksae.h: Remove.
1304         * config/alpha/alpha.h (TARGET_VERSION): Remove.
1305         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
1306         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
1307         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
1308         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
1309         * config/arm/arm.h (TARGET_VERSION): Remove.
1310         * config/arm/coff.h (TARGET_VERSION): Remove.
1311         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
1312         * config/arm/elf.h (TARGET_VERSION): Remove.
1313         * config/arm/freebsd.h (TARGET_VERSION): Remove.
1314         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
1315         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
1316         * config/arm/pe.h (TARGET_VERSION): Remove.
1317         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
1318         * config/arm/semi.h (TARGET_VERSION): Remove.
1319         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
1320         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
1321         * config/arm/vxworks.h (TARGET_VERSION): Remove.
1322         * config/avr/avr.h (TARGET_VERSION): Remove.
1323         * config/bfin/bfin.h (TARGET_VERSION): Remove.
1324         * config/fr30/fr30.h (TARGET_VERSION): Remove.
1325         * config/frv/frv.h (TARGET_VERSION): Remove.
1326         * config/h8300/h8300.h (TARGET_VERSION): Remove.
1327         * config/i386/cygwin.h (TARGET_VERSION): Remove.
1328         * config/i386/darwin.h (TARGET_VERSION): Remove.
1329         * config/i386/darwin64.h (TARGET_VERSION): Remove.
1330         * config/i386/djgpp.h (TARGET_VERSION): Remove.
1331         * config/i386/freebsd.h (TARGET_VERSION): Remove.
1332         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
1333         * config/i386/gnu.h (TARGET_VERSION): Remove.
1334         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
1335         * config/i386/i386elf.h (TARGET_VERSION): Remove.
1336         * config/i386/linux.h (TARGET_VERSION): Remove.
1337         * config/i386/linux64.h (TARGET_VERSION): Remove.
1338         * config/i386/lynx.h (TARGET_VERSION): Remove.
1339         * config/i386/mingw32.h (TARGET_VERSION): Remove.
1340         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
1341         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
1342         * config/i386/netware.h (TARGET_VERSION): Remove.
1343         * config/i386/nto.h (TARGET_VERSION): Remove.
1344         * config/i386/openbsd.h (TARGET_VERSION): Remove.
1345         * config/i386/vxworks.h (TARGET_VERSION): Remove.
1346         * config/ia64/elf.h (TARGET_VERSION): Remove.
1347         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
1348         * config/ia64/hpux.h (TARGET_VERSION): Remove.
1349         * config/ia64/linux.h (TARGET_VERSION): Remove.
1350         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
1351         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
1352         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
1353         * config/lm32/lm32.h (TARGET_VERSION): Remove.
1354         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
1355         * config/m32c/m32c.h (TARGET_VERSION): Remove.
1356         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
1357         * config/m32r/m32r.h (TARGET_VERSION): Remove.
1358         * config/m68k/linux.h (TARGET_VERSION): Remove.
1359         * config/m68k/m68k.h (TARGET_VERSION): Remove.
1360         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
1361         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
1362         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
1363         * config/mep/mep.h (TARGET_VERSION): Remove.
1364         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
1365         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
1366         * config/mips/iris6.h (MACHINE_TYPE): Remove.
1367         * config/mips/linux.h (TARGET_VERSION): Remove.
1368         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
1369         * config/mips/vxworks.h (TARGET_VERSION): Remove.
1370         * config/mmix/mmix.h (TARGET_VERSION): Remove.
1371         * config/mn10300/linux.h (TARGET_VERSION): Remove.
1372         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
1373         * config/pa/pa.h (TARGET_VERSION): Remove.
1374         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
1375         * config/picochip/picochip.h (TARGET_VERSION): Remove.
1376         * config/rs6000/aix.h (TARGET_VERSION): Remove.
1377         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
1378         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
1379         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
1380         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
1381         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
1382         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
1383         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
1384         * config/rs6000/linux.h (TARGET_VERSION): Remove.
1385         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
1386         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
1387         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
1388         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
1389         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
1390         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
1391         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
1392         * config/s390/linux.h (TARGET_VERSION): Remove.
1393         * config/s390/s390.h (TARGET_VERSION): Remove.
1394         * config/s390/tpf.h (TARGET_VERSION): Remove.
1395         * config/score/score.h (TARGET_VERSION): Remove.
1396         * config/sh/linux.h (TARGET_VERSION): Remove.
1397         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
1398         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
1399         * config/sh/sh.h (TARGET_VERSION): Remove.
1400         * config/sh/sh64.h (TARGET_VERSION): Remove.
1401         * config/sh/superh.h (TARGET_VERSION): Remove.
1402         * config/sh/vxworks.h (TARGET_VERSION): Remove.
1403         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
1404         * config/sparc/linux.h (TARGET_VERSION): Remove.
1405         * config/sparc/linux64.h (TARGET_VERSION): Remove.
1406         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
1407         TARGET_NAME32, TARGET_NAME): Remove.
1408         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
1409         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
1410         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
1411         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
1412         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
1413         * config/spu/spu.h (TARGET_VERSION): Remove.
1414         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
1415         * config/v850/v850.h (TARGET_VERSION): Remove.
1416         * config/vax/linux.h (TARGET_VERSION): Remove.
1417         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
1418         * config/xtensa/elf.h (TARGET_VERSION): Remove.
1419         * config/xtensa/linux.h (TARGET_VERSION): Remove.
1420
1421 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
1422
1423         PR target/48142
1424         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
1425         frame-related from frame-unrelated adjustments to the stack pointer.
1426
1427 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
1428
1429         * common.opt (fdebug-types-section): Move earlier.
1430         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
1431
1432 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
1433
1434         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
1435         var.
1436
1437 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
1438
1439         * tree.h (CASE_CHAIN): Define.
1440         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
1441         (gimple_redirect_edge_and_branch): Likewise.
1442
1443 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
1444
1445         PR middle-end/48367
1446         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
1447         calculation.
1448
1449 2011-03-30  Jeff Law  <law@redhat.com>
1450
1451         * PR bootstrap/48371
1452         * reload1.c (reload): Fix botch in last change.
1453
1454         * reload.h (struct reload): Fix typo introduced in last change.
1455
1456 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
1457
1458         * config/arm/arm.opt (mhard-float, msoft-float): Mark
1459         Undocumented.  Remove help text.
1460         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
1461         -mhard-float.
1462
1463 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
1464
1465         * doc/options.texi (NegativeAlias): Document.
1466         (Alias): Mention NegativeAlias.
1467         * opt-functions.awk: Handle NegativeAlias.
1468         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
1469         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
1470         * opts.h (CL_NEGATIVE_ALIAS): Define.
1471         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
1472         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
1473         OPT_mspe_.
1474         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
1475         Alias entries.
1476         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
1477         mno-spe and mno-isel instead of mspe=no and -misel=no.
1478
1479 2011-03-29  Mark Wielaard  <mjw@redhat.com>
1480
1481         * common.opt (fdebug-types-section): New flag.
1482         * doc/invoke.texi: Document new -fno-debug-types-section flag.
1483         * dwarf2out.c (use_debug_types): New define.
1484         (struct die_struct): Mark die_id with GTY desc use_debug_types.
1485         (print_die): Guard output of type unit signatures using
1486         use_debug_types.
1487         (build_abbrev_table): Replace assert of dwarf_version >= 4
1488         with assert on use_debug_types.
1489         (size_of_die): Likewise.
1490         (unmark_dies): Likewise.
1491         (value_format): Decide AT_ref_external form on use_debug_types.
1492         (output_die): Replace dwarf_version version check guard with
1493         use_debug_types where appropriate.
1494         (modified_type_die): Likewise.
1495         (gen_reference_type_die): Likewise.
1496         (dwarf2out_start_source_file): Likewise.
1497         (dwarf2out_end_source_file): Likewise.
1498         (prune_unused_types_walk_attribs): Likewise.
1499         (dwarf2out_finish): Likewise.
1500
1501 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
1502
1503         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
1504
1505 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
1506
1507         PR rtl-optimization/48332
1508         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
1509         mode of input operand N and modeN to its actual mode.
1510
1511 2011-03-30  Jeff Law  <law@redhat.com>
1512
1513         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
1514         define accessor macro.
1515         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
1516         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
1517         (reg_equiv_init): Likewise.
1518         (reg_equivs_size): New variable.
1519         (reg_equiv_init_size): Remove.
1520         (allocate_initial_values): Move prototype to here from....
1521         * integrate.h (allocate_initial_values): Remove prototype.
1522         * integrate.c: Include reload.h.
1523         (allocate_initial_values): Corresponding changes.
1524         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
1525         (fix_reg_equiv_init, no_equiv): Corresponding changes.
1526         (update_equiv_regs): Corresponding changes.
1527         (ira): Corresponding changes.
1528         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
1529         (push_secondary_reload): Corresponding changes.
1530         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
1531         (make_memloc, find_reloads_address): Corresponding changes.
1532         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
1533         (find_reloads_address_1): Corresponding changes.
1534         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
1535         (refers_to_regno_for_reload_p): Corresponding changes.
1536         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
1537         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
1538         * reload1.c: Include ggc.h.
1539         (grow_reg_equivs): New function.
1540         (replace_pseudos_in, reload): Corresponding changes.
1541         (calculate_needs_all_insns, alter_regs): Corresponding changes.
1542         (eliminate_regs_1, elimination_effects): Corresponding changes.
1543         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
1544         (delete_output_reload): Likewise.
1545         * caller-save.c (mark_referenced_regs): Corresponding changes.
1546         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
1547         * frv/predicates.md (frv_load_operand): Corresponding changes.
1548         * microblaze/microblaze.c (double_memory_operand): Corresponding
1549         changes.
1550         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
1551         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
1552         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
1553         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
1554         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
1555         changes.
1556         * pa/pa.c (emit_move_sequence): Corresponding changes.
1557         * vax/vax.c (nonindexed_address_p): Corresponding changes.
1558
1559 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
1560
1561         PR target/47551
1562         * config/arm/arm.c (coproc_secondary_reload_class): Handle
1563         structure modes.  Don't check neon_vector_mem_operand for
1564         vector or structure modes.
1565
1566 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
1567             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1568
1569         PR target/43590
1570         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
1571         operand 1 and reshuffle the operands to match.
1572         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
1573
1574 2011-03-30  Christian Schüler  <cschueler@gmx.de>
1575
1576         PR driver/48208
1577         * config/c.opt (F): Added 'Driver' to -F option.
1578
1579         PR driver/48260
1580         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
1581           handler function.
1582         * config/darwin.opt: Added '-arch' option.
1583
1584 2011-03-30  Nick Clifton  <nickc@redhat.com>
1585
1586         * config/rx/rx.md: Add peepholes and patterns to combine
1587         extending loads and simple arithmetic instructions.
1588         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
1589         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
1590         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
1591         modes to use pre-decrement and post-increment addressing.
1592         (rx_is_restricted_memory_address): Add range checking of REG+INT
1593         addresses.
1594         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
1595         (rx_memory_move_cost): Adjust cost of stores.
1596         (rx_adjust_insn_length): New function.
1597
1598 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
1599
1600         PR c/48305
1601         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
1602         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
1603         matching arg00/arg01 types.
1604
1605 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
1606
1607         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
1608         last_location to UNKNOWN_LOCATION.
1609
1610 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
1611
1612         PR target/48349
1613         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
1614         FLOAT_SSE_REGS.
1615
1616 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
1617             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1618
1619         PR bootstrap/48337
1620         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
1621         Init(PROCESSOR_V7).
1622         (sparc_cpu): Likewise.
1623         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
1624         PROCESSOR_V7.
1625
1626 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
1627
1628         PR target/48336
1629         PR middle-end/48342
1630         PR rtl-optimization/48345
1631         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
1632         hard regs for given mode from profitable regs when doing secondary
1633         allocation.
1634
1635 2011-03-29  Jeff Law  <law@redhat.com>
1636
1637         PR bootstrap/48327
1638         * tree-ssa-threadupdate.c (struct redirection_data): Remove
1639         do_not_duplicate field.
1640         (lookup_redirection_data): Corresponding changes.
1641         (create_duplicates): Always create a template block.
1642         (redirect_edges): Remove code which reused the original block
1643         when it was going to become unreachable code.
1644         (thread_block): Don't set do_not_duplicate field.
1645
1646 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
1647
1648         * lto-opts.c (register_user_option_p, lto_register_user_option):
1649         Make type argument unsigned.
1650         * lto-streamer.h (lto_register_user_option): Make type argument
1651         unsigned.
1652         * opth-gen.awk: Make CL_* macros unsigned.
1653         * opts-common.c (find_opt): Make lang_mask argument unsigned.
1654         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
1655         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
1656         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
1657         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
1658         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
1659         (find_opt): Make lang_mask argument unsigned.
1660
1661 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
1662
1663         PR rtl-optimization/48331
1664         PR rtl-optimization/48334
1665         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
1666         for any used algorithm.
1667
1668 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
1669
1670         * ira-conflicts.c (build_object_conflicts): Add unused attribute
1671         to parent_max.
1672
1673 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
1674
1675         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
1676         (alpha_option_override): Don't set alpha_sr_alias_set.
1677         (emit_frame_store_1): Use gen_frame_mem rather than calling
1678         set_mem_alias_set.
1679         (alpha_expand_epilogue): Ditto.
1680
1681 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
1682
1683         PR tree-optimization/48290
1684         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
1685         vectorization, check that relevant phis in the basic block after
1686         the inner loop are really inner loop's exit phis.
1687
1688 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
1689
1690         PR debug/48190
1691         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
1692         (cached_dw_loc_list_def): New structure.
1693         (cached_dw_loc_list): New typedef.
1694         (cached_dw_loc_list_table): New variable.
1695         (cached_dw_loc_list_table_hash): New function.
1696         (cached_dw_loc_list_table_eq): Likewise.
1697         (add_location_or_const_value_attribute): Take a bool cache_p.
1698         Cache the list when the parameter is true.
1699         (gen_formal_parameter_die): Update caller.
1700         (gen_variable_die): Likewise.
1701         (dwarf2out_finish): Likewise.
1702         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
1703         while generating debug info for the decl.
1704         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
1705         (dwarf2out_init): Initialize cached_dw_loc_list_table.
1706         (resolve_addr): Cache the result of resolving a chain of
1707         location lists.
1708
1709 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
1710
1711         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
1712         conflict object hard regset nodes have intersecting hard reg sets.
1713
1714         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
1715         after regstat_init_n_sets_and_refs.
1716
1717         * ira.c: Add more comments at the top.
1718         (setup_stack_reg_pressure_class, setup_pressure_classes):
1719         Add comments how we compute the register pressure classes.
1720         (setup_allocno_and_important_classes): Add more comments.
1721         (setup_class_translate_array, reorder_important_classes)
1722         (setup_reg_class_relations): Add comments.
1723
1724         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
1725         start of the file.
1726
1727         * ira-color.c: Add 2011 to the Copyright line.
1728         (assign_hard_reg):  Add more comments.
1729         (improve_allocation): Ditto.
1730
1731         * ira-costs.c: Add 2011 to the Copyright line.
1732         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
1733         comments.
1734         (setup_regno_cost_classes_by_mode): Ditto.
1735
1736         Initial patches from ira-improv branch:
1737
1738         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
1739
1740         * ira-build.c: (ira_create_object): Remove initialization of
1741         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
1742         (ira_create_allocno): Remove initialization of
1743         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
1744         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
1745         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
1746         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
1747         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
1748         Initialize ALLOCNO_ADD_DATA.
1749         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
1750         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
1751         ALLOCNO_REG.
1752         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
1753         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
1754
1755         * ira.c (ira_reallocate): Remove.
1756         (setup_pressure_classes): Call
1757         ira_init_register_move_cost_if_necessary.  Use
1758         ira_register_move_cost instead of ira_get_register_move_cost.
1759         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
1760         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
1761
1762         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
1763         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
1764         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
1765         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
1766         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
1767         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
1768         Fix formatting.
1769         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
1770         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
1771         (struct allocno_color_data): New.
1772         (allocno_color_data_t): New typedef.
1773         (allocno_color_data): New definition.
1774         (ALLOCNO_COLOR_DATA): New macro.
1775         (struct object_color_data): New.
1776         (object_color_data_t): New typedef.
1777         (object_color_data): New definition.
1778         (OBJECT_COLOR_DATA): New macro.
1779         (update_copy_costs, calculate_allocno_spill_cost): Call
1780         ira_init_register_move_cost_if_necessary.  Use
1781         ira_register_move_cost instead of ira_get_register_move_cost.
1782         (move_spill_restore, update_curr_costs): Ditto.
1783         (allocno_spill_priority): Make it inline.
1784         (color_pass): Allocate and free allocno_color_dat and object_color_data.
1785         (struct coalesce_data, coalesce_data_t): New.
1786         (allocno_coalesce_data): New definition.
1787         (ALLOCNO_COALESCE_DATA): New macro.
1788         (merge_allocnos, coalesced_allocno_conflict_p): Use
1789         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
1790         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
1791         (coalesce_allocnos): Ditto.
1792         (setup_coalesced_allocno_costs_and_nums): Ditto.
1793         (collect_spilled_coalesced_allocnos): Ditto.
1794         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
1795         (setup_slot_coalesced_allocno_live_ranges): Ditto.
1796         (coalesce_spill_slots): Ditto.
1797         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
1798         free allocno_coalesce_data.
1799
1800         * ira-conflicts.c: Fix formatting.
1801         (process_regs_for_copy): Call
1802         ira_init_register_move_cost_if_necessary.  Use
1803         ira_register_move_cost instead of ira_get_register_move_cost.
1804         (build_object_conflicts): Optimize.
1805
1806         * ira-costs.c (record_reg_classes): Optimize.  Call
1807         ira_init_register_move_cost_if_necessary.  Use
1808         ira_register_move_cost, ira_may_move_in_cost, and
1809         ira_may_move_out_cost instead of ira_get_register_move_cost and
1810         ira_get_may_move_cost.
1811         (record_address_regs): Ditto.
1812         (scan_one_insn): Optimize.
1813         (find_costs_and_classes): Optimize.
1814         (process_bb_node_for_hard_reg_moves): Call
1815         ira_init_register_move_cost_if_necessary.  Use
1816         ira_register_move_cost instead of ira_get_register_move_cost.
1817
1818         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
1819         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
1820         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
1821         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
1822         definitions.
1823         (ira_initiate_emit_data, ira_finish_emit_data)
1824         (create_new_allocno): New functions.
1825         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
1826         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
1827         Use ira_register_move_cost instead of ira_get_register_move_cost.
1828
1829         * ira-int.h: Fix some comments.
1830         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
1831         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
1832         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
1833         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
1834         add_data.
1835         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
1836         bitfield after mode.  Make hard_regno a short int.  Make
1837         hard_regno short.  Remove first_coalesced_allocno and
1838         next_coalesced_allocno.  Move mem_optimized_dest_p,
1839         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
1840         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
1841         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
1842         temp, colorable_p.  Add new member add_data.
1843         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
1844         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
1845         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
1846         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
1847         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
1848         (ALLOCNO_ADD_DATA): New macro.
1849         (ira_emit_data_t): New typedef.
1850         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
1851         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
1852         from struct ira_allocno.
1853         (ALLOCNO_EMIT_DATA): New macro.
1854         (ira_allocno_emit_data, allocno_emit_reg): New.
1855         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
1856         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
1857         (OBJECT_ADD_DATA): New macro.
1858         (ira_reallocate): Remove.
1859         (ira_initiate_emit_data, ira_finish_emit_data): New.
1860         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
1861         (ira_init_register_move_cost_if_necessary): New.
1862         (ira_object_conflict_iter_next): Merge into
1863         ira_object_conflict_iter_cond.
1864         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
1865
1866         * ira-live.c: (process_single_reg_class_operands): Call
1867         ira_init_register_move_cost_if_necessary.  Use
1868         ira_register_move_cost instead of ira_get_register_move_cost.
1869
1870         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
1871
1872         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
1873
1874         * ira-costs.c: Fix formatting.
1875         (cost_classes, cost_classes_num): Remove.
1876         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
1877         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
1878         (cost_classes_del, cost_classes_htab): New.
1879         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
1880         (initiate_regno_cost_classes, setup_cost_classes): New.
1881         (setup_regno_cost_classes_by_aclass): New.
1882         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
1883         (record_reg_classes): Use regno_cost_classes instead of
1884         cost_classes.  Move checking opposite operand up.
1885         (record_address_regs): Use regno_cost_classes
1886         instead of cost_classes.
1887         (scan_one_insn): Ditto.  Use always general register.
1888         (print_allocno_costs): Use regno_cost_classes instead of
1889         cost_classes.
1890         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
1891         (find_costs_and_classes): Set up cost classes for each registers.
1892         Use also their mode for this.  Use regno_cost_classes instead of
1893         cost_classes.
1894         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
1895         cost_classes.
1896         (free_ira_costs, ira_init_costs): Don't use cost_classes.
1897         (ira_costs, ira_set_pseudo_classes): Call
1898         initiate_regno_cost_classes and finish_regno_cost_classes.
1899
1900         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
1901
1902         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
1903
1904         * target.def (ira_cover_classes): Remove.
1905
1906         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
1907
1908         * doc/tm.texi.in: Ditto.
1909
1910         * ira-conflicts.c: Remove mentioning cover classes from the file.
1911         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
1912         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
1913
1914         * targhooks.c (default_ira_cover_classes): Remove.
1915
1916         * targhooks.h (default_ira_cover_classes): Ditto.
1917
1918         * haifa-sched.c: Remove mentioning cover classes from the file.
1919         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
1920         ira_pressure_classes and ira_pressure_classes_num instead of
1921         ira_reg_class_cover_size and ira_reg_class_cover.  Use
1922         sched_regno_pressure_class instead of sched_regno_cover_class.
1923         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
1924         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
1925
1926         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
1927         classes from the file.
1928         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
1929         (struct object_hard_regs, struct object_hard_regs_node): New.
1930         (struct ira_object): New members profitable_hard_regs,
1931         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
1932         (struct ira_allocno): Rename cover_class to aclass.  Rename
1933         cover_class_cost and updated_cover_class_cost to class_cost and
1934         updated_class_cost.  Remove splay_removed_p and
1935         left_conflict_size.  Add new members colorable_p.
1936         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
1937         (ALLOCNO_COLORABLE_P): New macro.
1938         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
1939         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
1940         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
1941         (OBJECT_...): Rename parameter C to O.
1942         (OBJECT_PROFITABLE_HARD_REGS): New macro.
1943         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
1944         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
1945         (struct target_ira_int): New members x_ira_max_memory_move_cost,
1946         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
1947         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
1948         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
1949         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
1950         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
1951         x_ira_reg_class_subunion.
1952         (ira_max_memory_move_cost, ira_max_register_move_cost)
1953         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
1954         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
1955         (ira_important_class_nums, ira_reg_class_superunion): New macros.
1956         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
1957         (ira_reg_class_union): Rename to ira_reg_class_subunion.
1958         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
1959         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
1960         (ira_tune_allocno_costs_and_cover_classes): Rename to
1961         ira_tune_allocno_costs.
1962         (ira_debug_hard_regs_forest): New.
1963         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
1964         (ira_object_conflict_iter_next): Fix comments.
1965         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
1966         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
1967         cover_class to aclass.
1968         (ira_allocate_and_accumulate_costs): Ditto.
1969         (ira_allocate_and_set_or_copy_costs): Ditto.
1970
1971         * opts.c (decode_options): Remove ira_cover_class check.
1972
1973         * ira-color.c: Remove mentioning cover classes from the file.  Use
1974         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
1975         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
1976         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
1977         (splay-tree.h): Remove include.
1978         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
1979         before copy_freq_compare_func.
1980         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
1981         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
1982         New definitions.
1983         (hard_regs_roots, hard_regs_node_vec): Ditto.
1984         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
1985         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
1986         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
1987         (create_new_object_hard_regs_node): Ditto.
1988         (add_new_object_hard_regs_node_to_forest): Ditto.
1989         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
1990         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
1991         Ditto.
1992         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
1993         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
1994         (remove_unused_object_hard_regs_nodes): Ditto.
1995         (enumerate_object_hard_regs_nodes): Ditto.
1996         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
1997         (object_hard_regs_subnode_t): Ditto.
1998         (struct object_hard_regs_subnode): Ditto.
1999         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
2000         (setup_object_hard_regs_subnode_index): Ditto.
2001         (get_object_hard_regs_subnodes_num): Ditto.
2002         (form_object_hard_regs_nodes_forest): Ditto.
2003         (finish_object_hard_regs_nodes_tree): Ditto.
2004         (finish_object_hard_regs_nodes_forest): Ditto.
2005         (allocnos_have_intersected_live_ranges_p): Rename to
2006         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
2007         (pseudos_have_intersected_live_ranges_p): Rename to
2008         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
2009         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
2010         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
2011         (update_copy_costs): Remove assert.  Skip cost update if the hard
2012         reg does not belong the class.
2013         (assign_hard_reg): Process only profitable hard regs.
2014         (uncolorable_allocnos_num): Make it scalar.
2015         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
2016         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
2017         and ira_reg_class_max_nregs.
2018         (bucket_allocno_compare_func): Check frequency first.
2019         (sort_bucket): Add compare function as a parameter.
2020         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
2021         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
2022         (push_allocno_to_stack): Rewrite for checking new allocno
2023         colorability.
2024         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
2025         (push_only_colorable): Pass new parameter to sort_bucket.
2026         (push_allocno_to_spill): Remove.
2027         (allocno_spill_priority_compare): Make it inline and rewrite.
2028         (splay_tree_allocate, splay_tree_free): Remove.
2029         (allocno_spill_sort_compare): New function.
2030         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
2031         build and use splay tree.  Choose first allocno in uncolorable
2032         allocno bucket to spill.  Remove setting spill cost.
2033         (all_conflicting_hard_regs): Remove.
2034         (setup_allocno_available_regs_num): Check only profitable hard
2035         regs.  Print info about hard regs nodes.
2036         (setup_allocno_left_conflicts_size): Remove.
2037         (put_allocno_into_bucket): Don't call
2038         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
2039         (improve_allocation): New.
2040         (color_allocnos): Call setup_profitable_hard_regs,
2041         form_object_hard_regs_nodes_forest, improve_allocation,
2042         finish_object_hard_regs_nodes_forest.  Setup spill cost.
2043         (print_loop_title): Use pressure classes.
2044         (color_allocnso): Ditto.
2045         (do_coloring): Remove allocation and freeing splay_tree_node_pool
2046         and allocnos_for_spilling.
2047         (ira_sort_regnos_for_alter_reg): Don't setup members
2048         {first,next}_coalesced_allocno.
2049         (color): Remove allocating and freeing removed_splay_allocno_vec.
2050         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
2051         prohibited_class_mode_regs.
2052
2053         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
2054         formatting.
2055         (update_allocno_pressure_excess_length): Use pressure classes.
2056         (inc_register_pressure, dec_register_pressure): Check for pressure
2057         class.
2058         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
2059         pressure class.  Use ira_reg_class_nregs instead of
2060         ira_reg_class_max_nregs.
2061         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
2062         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
2063         (single_reg_class): Use ira_reg_class_nregs instead of
2064         ira_reg_class_max_nregs.
2065         (process_bb_node_lives): Use pressure classes.
2066
2067         * ira-emit.c: Remove mentioning cover classes from the file.  Use
2068         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
2069         (change_loop): Use pressure classes.
2070         (modify_move_list): Call ira_set_allocno_class instead of
2071         ira_set_allocno_cover_class.
2072
2073         * ira-build.c: Remove mentioning cover classes from the file.  Use
2074         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
2075         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
2076         ALLOCNO_UPDATED_CLASS_COST instead of
2077         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
2078         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
2079         (ira_create_allocno): Remove initialization of
2080         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
2081         ALLOCNO_COLORABLE_P.
2082         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
2083         Update conflict regs for the objects.
2084         (create_cap_allocno): Remove assert.  Don't propagate
2085         ALLOCNO_AVAILABLE_REGS_NUM.
2086         (ira_free_allocno_costs): New function.
2087         (finish_allocno): Change a part of code into call of
2088         ira_free_allocno_costs.
2089         (low_pressure_loop_node_p): Use pressure classes.
2090         (object_range_compare_func): Don't compare classes.
2091         (setup_min_max_conflict_allocno_ids): Ditto.
2092
2093         * loop-invariant.c: Remove mentioning cover classes from the file.
2094         Use ira_pressure_classes and ira_pressure_classes_num instead of
2095         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
2096         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
2097         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
2098         Use reg_allocno_class instead of reg_cover_class.
2099         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
2100         STACK_REG_COVER_CLASS.
2101         (get_regno_cover_class): Rename to get_regno_pressure_class.
2102         (move_loop_invariants): Initialize and finalize regstat.
2103
2104         * ira.c: Remove mentioning cover classes from the file.  Add
2105         comments about coloring without cover classes.  Use ALLOCNO_CLASS
2106         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
2107         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
2108         setup_class_subset_and_memory_move_costs.
2109         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
2110         (setup_cover_and_important_classes): Rename to
2111         setup_allocno_and_important_classes.
2112         (setup_class_translate_array): New.
2113         (setup_class_translate): Call it for allocno and pressure classes.
2114         (cover_class_order): Rename to allocno_class_order.
2115         (comp_reg_classes_func): Use ira_allocno_class_translate instead
2116         of ira_class_translate.
2117         (reorder_important_classes): Set up ira_important_class_nums.
2118         (setup_reg_class_relations): Set up ira_reg_class_superunion.
2119         (print_class_cover): Rename to print_classes.  Add parameter.
2120         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
2121         Print pressure classes too.
2122         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
2123         setup_reg_subclasses.
2124         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
2125         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
2126         (setup_prohibited_class_mode_regs): Use
2127         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
2128         (clarify_prohibited_class_mode_regs): New function.
2129         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
2130         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
2131         (ira_init_once): Initialize them.
2132         (free_register_move_costs): Process them.
2133         (ira_init): Move calls of find_reg_classes and
2134         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
2135         Call clarify_prohibited_class_mode_regs.
2136         (ira_no_alloc_reg): Remove.
2137         (too_high_register_pressure_p): Use pressure classes.
2138
2139         * sched-deps.c: Remove mentioning cover classes from the file.
2140         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
2141         ira_pressure_classes and ira_pressure_classes_num instead of
2142         ira_reg_class_cover_size and ira_reg_class_cover.
2143         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
2144         sched_regno_pressure_class instead of sched_regno_cover_class.
2145         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
2146         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
2147
2148         * ira.h: Add 2010 to Copyright.
2149         (ira_no_alloc_reg): Remove external.
2150         (struct target_ira): Rename x_ira_hard_regno_cover_class,
2151         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
2152         x_ira_class_translate to x_ira_hard_regno_allocno_class,
2153         x_ira_allocno_classes_num, x_ira_allocno_classes, and
2154         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
2155         x_ira_pressure_classes, x_ira_pressure_class_translate, and
2156         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
2157         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
2158         x_ira_no_alloc_regs.
2159         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
2160         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
2161         ira_allocno_classes_num and ira_allocno_classes.
2162         (ira_class_translate): Rename to ira_allocno_class_translate.
2163         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
2164         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
2165         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
2166         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
2167         (ira_no_alloc_regs): New.
2168
2169         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
2170         classes from the file.  Use ALLOCNO_CLASS instead of
2171         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
2172         ALLOCNO_COVER_CLASS_COST.
2173         (regno_cover_class): Rename to regno_aclass.
2174         (record_reg_classes): Use ira_reg_class_subunion instead of
2175         ira_reg_class_union.
2176         (record_address_regs): Check overflow.
2177         (scan_one_insn): Ditto.
2178         (print_allocno_costs): Print total mem cost fore regional allocation.
2179         (print_pseudo_costs): Use REG_N_REFS.
2180         (find_costs_and_classes): Use classes intersected with them on the
2181         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
2182         ira_reg_class_union.  Use ira_allocno_class_translate and
2183         regno_aclass instead of ira_class_translate and regno_cover_class.
2184         Modify code for finding regno_aclass.  Setup preferred classes for
2185         the next pass.
2186         (setup_allocno_cover_class_and_costs): Rename to
2187         setup_allocno_class_and_costs.  Use regno_aclass instead of
2188         regno_cover_class.  Use ira_set_allocno_class instead of
2189         ira_set_allocno_cover_class.
2190         (init_costs, finish_costs): Use regno_aclass instead of
2191         regno_cover_class.
2192         (ira_costs): Use setup_allocno_class_and_costs instead of
2193         setup_allocno_cover_class_and_costs.
2194         (ira_tune_allocno_costs_and_cover_classes): Rename to
2195         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
2196         by processing objects.  Use ira_reg_class_max_nregs instead of
2197         ira_reg_class_nregs.
2198
2199         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
2200
2201         * sched-int.h: Remove mentioning cover classes from the file.
2202         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
2203
2204         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
2205         classes from the file.
2206         (struct reg_pref): Rename coverclass into allocnoclass.
2207         (reg_cover_class): Rename to reg_allocno_class.
2208
2209         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
2210
2211         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
2212
2213         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
2214
2215         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
2216
2217         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
2218
2219         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
2220
2221         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
2222
2223         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
2224
2225         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
2226
2227         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
2228
2229         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
2230         (i386_ira_cover_classes): Ditto.
2231
2232         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
2233
2234         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
2235
2236         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
2237
2238         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
2239
2240         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
2241
2242         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
2243
2244         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
2245         (mips_ira_cover_classes): Ditto.
2246
2247         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
2248
2249         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
2250
2251         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
2252
2253         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
2254
2255         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
2256
2257         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
2258         (IRA_COVER_CLASSES_VSX): Ditto.
2259
2260         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
2261         (rs6000_ira_cover_classes): Ditto.
2262
2263         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
2264
2265         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
2266
2267         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
2268
2269         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
2270
2271         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
2272
2273         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
2274
2275         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
2276
2277         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
2278
2279         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
2280
2281         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
2282
2283 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
2284
2285         PR debug/48253
2286         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
2287         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
2288         dw_fde_unlikely_section_end_label, cold_in_std_section,
2289         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
2290         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
2291         fields.
2292         (output_fde): Use dw_fde_second_{begin,end} if second is
2293         true, otherwise dw_fde_{begin,end}.
2294         (output_call_frame_info): Test dw_fde_second_begin != NULL
2295         instead of dw_fde_switched_sections.
2296         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
2297         fields, initialize new fields.  Initialize in_std_section
2298         unconditionally from the first partition.
2299         (dwarf2out_end_epilogue): Don't override dw_fde_end when
2300         dw_fde_second_begin is non-NULL.
2301         (dwarf2out_switch_text_section): Stop initializing removed
2302         dw_fde_struct fields, initialize new fields, initialize
2303         also dw_fde_end here.  Set dw_fde_switch_cfi even when
2304         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
2305         (struct var_loc_list_def): Add last_before_switch field.
2306         (arange_table, arange_table_allocated, arange_table_in_use,
2307         ARANGE_TABLE_INCREMENT, add_arange): Removed.
2308         (size_of_aranges): Count !in_std_section and !second_in_std_section
2309         hunks in fdes, instead of looking at arange_table_in_use.
2310         (output_aranges): Add aranges_length argument, don't call
2311         size_of_aranges here.  Instead of using aranges_table*
2312         emit ranges for fdes when !in_std_section resp.
2313         !second_in_std_section.
2314         (dw_loc_list): Break ranges crossing section switch.
2315         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
2316         use dw_fde_second_end instead of dw_fde_end as end of last range.
2317         (gen_subprogram_die): Don't call add_arange.  Use
2318         dw_fde_{begin,end} for first partition and if switched
2319         section dw_fde_second_{begin,end} for the second.
2320         (var_location_switch_text_section_1,
2321         var_location_switch_text_section): New functions.
2322         (dwarf2out_begin_function): Initialize cold_text_section even
2323         when function_section () isn't text_section.
2324         (prune_unused_types): Don't walk arange_table.
2325         (dwarf2out_finish): Don't needlessly test
2326         flag_reorder_blocks_and_partition when testing cold_text_section_used.
2327         If info_section_emitted, call size_of_aranges and if it indicates
2328         non-empty .debug_aranges, call output_aranges with the computed
2329         size.  Stop using removed dw_fde_struct fields, use
2330         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
2331         for second.
2332
2333         PR debug/48203
2334         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
2335         create ENTRY_VALUE if incoming or address of incoming's MEM
2336         is a hard REG.
2337         * dwarf2out.c (mem_loc_descriptor): Don't emit
2338         DW_OP_GNU_entry_value of DW_OP_fbreg.
2339         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
2340         on ENTRY_VALUE is able to find the canonical parameter VALUE.
2341         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
2342         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
2343         ENTRY_VALUE_EXPs.
2344         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
2345         is a REG_P or MEM_P with REG_P address, compute hash directly
2346         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
2347         (preserve_only_constants): Don't clear VALUES forwaring
2348         ENTRY_VALUE to some other VALUE.
2349
2350 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
2351
2352         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
2353         instead of GEN_INT.
2354
2355 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
2356
2357         * cfgexpand.c (expand_gimple_cond): Always set the source location and
2358         block before expanding the statement.
2359         (expand_gimple_stmt_1): Likewise.  Set them here...
2360         (expand_gimple_stmt): ...and not here.  Tidy.
2361         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
2362         unknown.
2363
2364 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
2365
2366         * Makefile.in: New rule for cprop.o.
2367         * gcse.c: Move constant/copy propagation to cprop.c.
2368         (compute_local_properties): Only handle expression tables.
2369         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
2370         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
2371         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
2372         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
2373         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
2374         compute_cprop_data, find_used_regs, try_replace_reg,
2375         find_avail_set, cprop_jump, constprop_register, cprop_insn,
2376         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
2377         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
2378         find_bypass_set, reg_killed_on_edge, bypass_block,
2379         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
2380         execute_rtl_cprop, pass_rtl_cprop): Move to...
2381         * cprop.c: ...here.  New file, constant/copy propagation for RTL
2382         moved from gcse.c to here with minor cleanups in duplicated code.
2383
2384 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
2385
2386         * config/i386/i386.c (flag_opts): Fix a typo in
2387         -mavx256-split-unaligned-store.
2388
2389 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
2390
2391         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
2392         LIBCALL_VALUE): Remove macros.
2393         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
2394         TARGET_FUNCTION_VALUE_REGNO_P): Define.
2395         (h8300_function_value, h8300_libcall_value,
2396         h8300_function_value_regno_p): New functions.
2397
2398 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
2399
2400         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
2401
2402 2011-03-28  Jeff Law  <law@redhat.com>
2403
2404         * tree-ssa-threadupdate.c (redirect_edges): Call
2405         create_edge_and_update_destination_phis as needed.
2406         (create_edge_and_update_destination_phis): Accept new BB argument.
2407         All callers updated.
2408         (thread_block): Do not update the profile when threading around
2409         intermediate blocks.
2410         (thread_single_edge): Likewise.
2411         (determine_bb_domination_status): If BB is not a successor of the
2412         loop header, return NONDOMINATING.
2413         (register_jump_thread): Note when we register a jump thread around
2414         an intermediate block.
2415         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
2416         (thread_across_edge): Use it.
2417
2418 2011-03-28  Tristan Gingold  <gingold@adacore.com>
2419
2420         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
2421         when for_return is 2.
2422
2423 2011-03-28  Jeff Law  <law@redhat.com>
2424
2425         * var-tracking.c (canonicalize_values_mark): Delete unused
2426         lhs assignment.
2427         (canonicalize_values_star, set_variable_part): Likewise.
2428         (clobber_variable_part, delete_variable_part): Likewise.
2429
2430 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
2431
2432         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
2433
2434 2011-03-28  Martin Jambor  <mjambor@suse.cz>
2435
2436         * tree-inline.c (expand_call_inline): Do not check that destination
2437         node is analyzed.
2438         (optimize_inline_calls): Assert that destination node is analyzed.
2439         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
2440         not call tree_lowering_passes.
2441         * cgraph.h (cgraph_analyze_function): Declare.
2442         * cgraphunit.c (cgraph_analyze_function): Make public.
2443
2444 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
2445
2446         * config/sparc/sparc-opts.h: New.
2447         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
2448         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
2449         (sparc_option_override): Store processor_type enumeration rather
2450         than string in cpu_default.  Remove name and enumeration from
2451         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
2452         without using sparc_select.  Use target_flags_explicit instead of
2453         fpu_option_set.
2454         * config/sparc/sparc.h (enum processor_type): Move to
2455         sparc-opts.h.
2456         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
2457         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
2458         HeaderInclude entry.
2459         (mcpu=, mtune=): Use Var and Enum.
2460         (sparc_processor_type): New Enum and EnumValue entries.
2461
2462 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2463             Iain Sandoe  <iains@gcc.gnu.org>
2464
2465         PR target/48245
2466         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
2467
2468 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
2469
2470         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
2471         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
2472         Insert new statements at it in lieu of STMT.
2473         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
2474         * tree-vect-stmts.c (vectorizable_store): Likewise.
2475         (vectorizable_load): Likewise.
2476
2477 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
2478
2479         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
2480         (divtf3): Ditto.
2481         (multf3): Ditto.
2482         (subtf3): Ditto.
2483
2484 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
2485
2486         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
2487         unaligned 256bit load/store.
2488         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
2489         (*avx_movdqu<avxmodesuffix>): Likewise.
2490
2491 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2492
2493         PR target/48288
2494         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
2495         * config/pa/pa.md (iordi3): Use new predicate in expander.
2496         (iorsi3): Likewise.
2497
2498 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
2499
2500         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
2501         FUNCTION_VALUE_REGNO_P): Remove macros.
2502         * config/mips/mips-protos.h (mips_function_value): Remove.
2503         * config/mips/mips.c (mips_function_value): Rename to...
2504         (mips_function_value_1): ... this. Make static.  Handle receiving
2505         the function type in 'fn_decl_or_type' argument.
2506         (mips_function_value, mips_libcall_value,
2507         mips_function_value_regno_p): New function.
2508         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
2509         TARGET_FUNCTION_VALUE_REGNO_P): Define.
2510
2511 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
2512
2513         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
2514         and -mavx256-split-unaligned-store.
2515         (ix86_option_override_internal): Split 32-byte AVX unaligned
2516         load/store by default.
2517         (ix86_avx256_split_vector_move_misalign): New.
2518         (ix86_expand_vector_move_misalign): Use it.
2519
2520         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
2521         -mavx256-split-unaligned-store.
2522
2523         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
2524         256bit load/store.  Generate unaligned store on misaligned memory
2525         operand.
2526         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
2527         256bit load/store.
2528         (*avx_movdqu<avxmodesuffix>): Likewise.
2529
2530         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
2531         -mavx256-split-unaligned-store.
2532
2533 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
2534
2535         PR target/38598
2536         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
2537         Update commentary.
2538
2539 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
2540
2541         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
2542         opno arguments with an expand_operand.  Use create_input_operand.
2543         (mips_prepare_builtin_target): Delete.
2544         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
2545         functions.
2546         (mips_expand_builtin_direct): Use create_output_operand and
2547         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
2548         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
2549         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
2550
2551 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
2552
2553         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
2554         function.
2555         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
2556
2557 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
2558
2559         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
2560         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
2561         basic blocks and call commit_edge_insertions directly.
2562         (fixup_abnormal_edges): Move from here to...
2563         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
2564         on the edges and return whether some have actually been inserted.
2565         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
2566         compensation code.
2567
2568 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
2569
2570         PR rtl-optimization/48144
2571         * sel-sched-ir.c (merge_history_vect): Factor out from ...
2572         (merge_expr_data): ... here.
2573         (av_set_intersect): Rename to av_set_code_motion_filter.
2574         Update all callers.  Call merge_history_vect when an expression
2575         is found in both sets.
2576         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
2577
2578 2011-03-26  Alan Modra  <amodra@gmail.com>
2579
2580         * config/rs6000/predicates.md (word_offset_memref_op): Handle
2581         cmodel medium addresses.
2582         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
2583         64-bit gpr loads and stores.
2584         (rs6000_secondary_reload_ppc64): New function.
2585         * config/rs6000/rs6000-protos.h: Declare it.
2586         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
2587
2588 2011-03-26  Alan Modra  <amodra@gmail.com>
2589
2590         PR target/47487
2591         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
2592         GNU Go in traceback table.
2593
2594 2011-03-25  Richard Henderson  <rth@redhat.com>
2595
2596         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
2597         if there are exactly 6 operands.
2598         (set_storage_via_setmem): Similarly.
2599
2600 2011-03-25  Kai Tietz  <ktietz@redhat.com>
2601
2602         * collect2.c (write_c_file_stat): Handle backslash
2603         as right-hand directory separator.
2604         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
2605         checking just for slash.
2606         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
2607         instead of checking for trailing slash.
2608         * gcc.c (record_temp_file): Use filename_cmp instead
2609         of strcmp.
2610         (do_spec_1): Likewise.
2611         (replace_outfile_spec_function): Likewise.
2612         (is_directory): Use filename_ncmp instead of strncmp.
2613         (print_multilib_info): Likewise.
2614         * gcov.c (find_source): Use filename_cmp instead
2615         instead of strcmp.
2616         (make_gcov_file_name): Fix order of slash/backslash
2617         checks.
2618         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
2619         (add_standard_paths): Likewise.
2620         * mips-tfile.c (saber_stop): Handle backslash.
2621         * prefix.c (update_path): Use filename_ncmp instead of
2622         strncmp.
2623         * profile.c (output_location): Use filename_cmp instead
2624         of strcmp.
2625         * read-md.c (handle_toplevel_file): Handle backslash.
2626         * tlink.c (frob_extension):  Likewise.
2627         * tree-cfg.c (same_line_p): Use filename_cmp instead of
2628         strcmp.
2629         * tree-dump.c (dequeue_and_dump): Handle backslash.
2630         * tree.c (get_file_function_name): Likewise.
2631         * gengtype.c (read_input_list): Likewise.
2632         (get_file_realbasename): Likewise.
2633         (get_output_file_with_visibility): Use filename_cmp
2634         instead of strcmp.
2635
2636 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
2637
2638         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
2639         case to VFPv1.
2640
2641 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
2642
2643         * fold-const.c (expr_location_or): New function.
2644         (fold_truth_not_expr): Call it.
2645
2646 2011-03-25  Jeff Law  <law@redhat.com>
2647
2648         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
2649         va_end.
2650         * c-family/c-common.c (def_fn_type): Likewise.
2651         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
2652         * emit-rtl.c (gen_rtvec): Likewise.
2653         * lto/lto-lang.c (def_fn_type): Likewise.
2654
2655 2011-03-25  Richard Guenther  <rguenther@suse.de>
2656
2657         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
2658         also generate copies.
2659         (fini_copy_prop): Handle constant values properly.
2660
2661 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
2662
2663         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
2664         mode size instead of bitsize with DWARF2_ADDR_SIZE.
2665         (hash_loc_operands, compare_loc_operands): Handle
2666         DW_OP_GNU_entry_value.
2667
2668 2011-03-25  Kai Tietz  <ktietz@redhat.com>
2669
2670         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
2671         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
2672         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
2673         comment and use macro TARGET_64BIT_MS_ABI instead.
2674         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
2675         and change default behavior for 32-bit MS_ABI.
2676         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
2677         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
2678         32-bit, too.
2679         (ix86_cfun_abi): Likewise.
2680         (ix86_maybe_switch_abi): Adjust comment.
2681         (init_cumulative_args): Check for bit-ness in MS_ABI case.
2682         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
2683         instead of checking for SYSV_ABI.
2684         (ix86_nsaved_sseregs): Likewise.
2685         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
2686         to 16 bytes.
2687         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
2688         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
2689         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
2690         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
2691         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
2692
2693 2011-03-25  Richard Guenther  <rguenther@suse.de>
2694
2695         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
2696         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
2697         (verify_gimple): Remove.
2698         * tree-cfg.c (verify_gimple_call): Merge verification
2699         from verify_stmts.
2700         (verify_gimple_phi): Merge verification from verify_stmts.
2701         (verify_gimple_label): New function.
2702         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
2703         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
2704         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
2705         (verify_stmts): Rename to verify_gimple_in_cfg.
2706         (verify_gimple_in_cfg): New function.
2707         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
2708         * tree-ssa.c (verify_ssa): Likewise.
2709         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
2710
2711 2011-03-25  Richard Guenther  <rguenther@suse.de>
2712
2713         * passes.c (init_optimization_passes): Add FRE pass after
2714         early SRA.
2715
2716 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
2717             Andrew Stubbs  <ams@codesourcery.com>
2718
2719         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
2720         for Cortex-A8.
2721         (arm_movdi_vfp_cortexa8): New pattern.
2722         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
2723         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
2724         instructions when tuning for Cortex-A8.  Set attribute "arch".
2725         * config/arm/arm.md: Move include arm-tune.md up a bit.
2726         (define_attr "arch"): Add "onlya8" and "nota8" values.
2727         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
2728
2729 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
2730
2731         PR bootstrap/48282
2732         Revert:
2733         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
2734
2735         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
2736         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
2737         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
2738         * passes.c (init_optimization_passes): Move
2739         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
2740
2741 2011-03-25  Kai Tietz  <ktietz@redhat.com>
2742
2743         * c-typeck.c (comptypes_internal): Replace target
2744         hook call of comp_type_attributes by version in tree.c file.
2745         * gimple.c (gimple_types_compatible_p_1): Likewise.
2746         * tree-ssa.c (useless_type_conversion_p): Likewise.
2747         * tree.c (build_type_attribute_qual_variant): Likewise.
2748         (attribute_value_equal): New static helper function.
2749         (comp_type_attributes): New function.
2750         (merge_attributes): Use attribute_value_equal for comparison.
2751         (attribute_list_contained): Likewise.
2752         * tree.h (comp_type_attributes): New prototype.
2753
2754 2011-03-25  Richard Guenther  <rguenther@suse.de>
2755
2756         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
2757         of complex types at -O0.
2758         (verify_gimple_assign_binary): Likewise.
2759         (verify_gimple_assign_ternary): Likewise.
2760
2761 2011-03-24  Mark Wielaard  <mjw@redhat.com>
2762
2763         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
2764         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
2765
2766 2011-03-24  Mark Wielaard  <mjw@redhat.com>
2767
2768         PR debug/48041
2769         * dwarf2out.c (output_abbrev_section): Only write table when
2770         abbrev_die_table_in_use > 1.
2771
2772 2011-02-24  Richard Henderson  <rth@redhat.com>
2773
2774         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
2775         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
2776         (alpha_expand_unaligned_load_words): Use extql.
2777         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
2778         (emit_insxl): Handle all modes for consistency.
2779
2780 2011-02-24  Richard Henderson  <rth@redhat.com>
2781
2782         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
2783         (alpha_expand_unaligned_load): Likewise.
2784         (alpha_expand_unaligned_store): Likewise.
2785         (alpha_expand_unaligned_load_words): Likewise.
2786         (alpha_expand_unaligned_store_words): Likewise.
2787         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
2788         (alpha_split_lock_test_and_set_12): Likewise.
2789         (print_operand, alpha_fold_builtin_extxx): Likewise.
2790         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
2791         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
2792         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
2793         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
2794         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
2795         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
2796         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
2797         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
2798         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
2799         (extwl, extll, extql): Similarly.
2800         (inswh, inslh, insqh): Similarly.
2801         (mskbl, mskwl, mskll, mskql): Similarly.
2802         (mskwh, msklh, mskqh): Similarly.
2803
2804 2011-02-24  Richard Henderson  <rth@redhat.com>
2805
2806         * config/alpha/alpha.md (attribute isa): Add er, ner.
2807         (attribute enabled): Handle them.
2808         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
2809
2810 2011-02-24  Richard Henderson  <rth@redhat.com>
2811
2812         * config/alpha/alpha.md (attribute isa): Add vms.
2813         (attribute enabled): Handle it.
2814         (*movsf): Merge *movsf_{nofix,fix,nofp}.
2815         (*movdf): Merge *movdf_{nofix,fix,nofp}.
2816         (*movtf): Rename from *movtf_internal for consistency.
2817         (*movsi): Merge with *movsi_nt_vms.
2818         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
2819         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
2820         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
2821         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
2822
2823 2011-02-24  Richard Henderson  <rth@redhat.com>
2824
2825         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
2826         (extendqisi2, extendhisi2): Likewise.
2827         (extendqidi2): Simplify BWX/non-BWX expansions.
2828         (extendhidi2): Similarly.
2829
2830 2011-02-24  Richard Henderson  <rth@redhat.com>
2831
2832         * config/alpha/alpha.md (attribute isa): New.
2833         (attribute enabled): New.
2834         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
2835         (zero_extendqisi2, zero_extendqidi2): Similarly.
2836         (zero_extendhisi2, zero_extendhidi2): Similarly.
2837         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
2838
2839 2011-02-24  Richard Henderson  <rth@redhat.com>
2840
2841         * config/alpha/predicates.md (input_operand): Revert last change;
2842         update comment to mention 32-bit VMS rather than Windows.
2843
2844 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
2845
2846         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
2847         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
2848         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
2849         * passes.c (init_optimization_passes): Move
2850         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
2851
2852 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
2853
2854         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
2855
2856 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
2857
2858         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
2859         correctly.
2860
2861 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
2862
2863         PR debug/48204
2864         * simplify-rtx.c (simplify_const_unary_operation): Call
2865         real_convert when changing mode class with FLOAT_EXTEND.
2866
2867 2011-03-24  Nick Clifton  <nickc@redhat.com>
2868
2869         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
2870         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
2871         * config/rx/rx.c (rx_option_override): Set align_jumps,
2872         align_loops and align_labels if not set by the user.
2873         (rx_align_for_label): New function.
2874         (rx_max_skip_for_label): New function.
2875         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
2876         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
2877         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
2878         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
2879         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
2880
2881 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
2882
2883         PR rtl-optimization/48263
2884         * optabs.c (expand_binop_directly): Reinstate convert_modes code
2885         and original commutative_p handling.  Use maybe_gen_insn.
2886
2887 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2888
2889         * reload.c (find_reloads_subreg_address): Add address_reloaded
2890         parameter and return true there if the full address has been
2891         reloaded.
2892         (find_reloads_toplev): Pass address_reloaded flag.
2893         (find_reloads_address_1): Don't use address_reloaded parameter.
2894
2895 2011-03-24  Jeff Law  <law@redhat.com>
2896
2897         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
2898         unused variable "ann".
2899         (remove_unused_locals): Likewise.
2900
2901         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
2902         statement.
2903
2904         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
2905         after it is freed.
2906
2907 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2908
2909         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
2910         for invalid symbolic addresses.
2911         (s390_secondary_reload): Don't use s390_check_symref_alignment for
2912         larl operands.
2913
2914 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
2915
2916         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
2917         the argument in calls to fold_truth_not_expr.
2918
2919 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
2920
2921         * tree.c (record_node_allocation_statistics): New function.
2922         (make_node_stat, copy_node_stat, build_string): Call it.
2923         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
2924         (build1_stat, build_omp_clause): Likewise.
2925
2926 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
2927
2928         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
2929         last commit.
2930
2931 2011-03-24  Richard Guenther  <rguenther@suse.de>
2932
2933         PR tree-optimization/48271
2934         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
2935         blocks that still exist.
2936
2937 2011-03-24  Richard Guenther  <rguenther@suse.de>
2938
2939         PR tree-optimization/48270
2940         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
2941         not free datarefs before ddrs.
2942
2943 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
2944
2945         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
2946         from the address built for a reference with variable offset.
2947
2948 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
2949
2950         PR target/48237
2951         * config/i386/i386.md (*movdf_internal_rex64): Do not split
2952         alternatives that can be handled with movq or movabsq insn.
2953         (*movdf_internal): Disable for !TARGET_64BIT.
2954         (*movdf_internal_nointeger): Ditto.
2955         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
2956
2957 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
2958
2959         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
2960         (FUNCTION_ARG_ADVANCE): Likewise.
2961         * tm.texi.in: Change references to them to hook references.
2962         * tm.texi: Regenerate.
2963         * targhooks.c (default_function_arg): Eliminate check for target macro.
2964         (default_function_incoming_arg): Likewise.
2965         (default_function_arg_advance): Likewise.
2966         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
2967         (function_arg_advance): Likewise.
2968         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
2969
2970 2011-03-24  Richard Guenther  <rguenther@suse.de>
2971
2972         PR middle-end/48269
2973         * tree-object-size.c (addr_object_size): Do not double-account
2974         for MEM_REF offsets.
2975
2976 2011-03-24  Diego Novillo  <dnovillo@google.com>
2977
2978         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
2979         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
2980         (lto_input_data_block): Move from lto-opts.c.  Make extern.
2981         Update all users.
2982         (lto_input_string): Rename from input_string.  Make extern.
2983         Update all users.
2984         * lto-streamer-out.c (lto_output_string_with_length): Rename from
2985         output_string_with_length.
2986         Output 0 to indicate a non-NULL string.  Update all callers to
2987         not emit 0.
2988         (lto_output_string): Rename from output_string.  Make extern.
2989         Update all users.
2990         (lto_output_decl_state_streams): Make extern.
2991         (lto_output_decl_state_refs): Make extern.
2992         * lto-streamer.h (lto_input_string): Declare.
2993         (lto_input_data_block): Declare.
2994         (lto_output_string): Declare.
2995         (lto_output_string_with_length): Declare.
2996         (lto_output_decl_state_streams): Declare.
2997         (lto_output_decl_state_refs): Declare.
2998
2999 2011-03-24  Richard Guenther  <rguenther@suse.de>
3000
3001         PR tree-optimization/46562
3002         * tree.c (build_invariant_address): New function.
3003         * tree.h (build_invariant_address): Declare.
3004         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
3005         a renamed function moved ...
3006         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
3007         Take valueization callback parameter.
3008         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
3009         * gimple-fold.h: New file.
3010         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
3011         (ccp_fold, fold_const_aggregate_ref,
3012         fold_ctor_reference, fold_nonarray_ctor_reference,
3013         fold_array_ctor_reference, fold_string_cst_ctor_reference,
3014         get_base_constructor): Move ...
3015         * gimple-fold.c: ... here.
3016         (gimple_fold_stmt_to_constant_1): New function
3017         split out from ccp_fold.  Take a valueization callback parameter.
3018         Valueize all operands.
3019         (gimple_fold_stmt_to_constant): New wrapper function.
3020         (fold_const_aggregate_ref_1): New function split out from
3021         fold_const_aggregate_ref.  Take a valueization callback parameter.
3022         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
3023         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
3024         invariant POINTER_PLUS_EXPRs to invariant form.
3025         (vn_valueize): New function.
3026         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
3027         * tree-vrp.c (vrp_valueize): New function.
3028         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
3029         to fold statements to constants.
3030         * tree-ssa-pre.c (eliminate): Properly guard propagation of
3031         function declarations.
3032         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
3033         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
3034
3035 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
3036
3037         * config/h8300/predicates.md (jump_address_operand): Fix register
3038         mode check.
3039
3040 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
3041
3042         * doc/invoke.texi (max-stores-to-sink): Document.
3043         * params.h (MAX_STORES_TO_SINK): Define.
3044         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
3045         if either vectorization or if-conversion is disabled.
3046         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
3047         tree-vect-data-refs.c vect_equal_offsets.
3048         (dr_equal_offsets_p): New function.
3049         (find_data_references_in_bb): Remove static.
3050         * tree-data-ref.h (find_data_references_in_bb): Declare.
3051         (dr_equal_offsets_p): Likewise.
3052         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
3053         (vect_drs_dependent_in_basic_block): Update calls to
3054         vect_equal_offsets.
3055         (vect_check_interleaving): Likewise.
3056         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
3057         (cond_if_else_store_replacement): Rename to...
3058         (cond_if_else_store_replacement_1): ... this.  Change arguments and
3059         documentation.
3060         (cond_if_else_store_replacement): New function.
3061         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
3062         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
3063
3064 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
3065
3066         PR target/46934
3067         * config/arm/arm.md (casesi): Use the gen_int_mode() function
3068         to subtract lower bound instead of GEN_INT().
3069
3070 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
3071
3072         PR other/48179
3073         PR other/48221
3074         PR other/48234
3075         * doc/extend.texi (Alignment): Move section to match order in TOC.
3076         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
3077         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
3078
3079 2011-03-23  Jeff Law  <law@redhat.com>
3080
3081         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
3082         before removing the edge.
3083
3084         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
3085         it may have been freed by redirect_branch_edge or
3086         redirect_edge_succ_nodup.
3087
3088 2011-03-23  Richard Guenther  <rguenther@suse.de>
3089
3090         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
3091         (check_va_list_escapes): Likewise.
3092         (check_all_va_list_escapes): Likewise.
3093
3094 2011-03-23  Richard Guenther  <rguenther@suse.de>
3095
3096         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
3097         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
3098         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
3099         (alias.o): Likewise.
3100         (ipa-type-escape.o): Remove.
3101         (ipa-struct-reorg.o): Likewise.
3102         (GTFILES): Remove ipa-struct-reorg.c.
3103         * alias.c: Do not include ipa-type-escape.h.
3104         * tree-ssa-alias.c: Likewise.
3105         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
3106         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
3107         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
3108         and ipa-type-escape passes.
3109         * tree-pass.h (pass_ipa_type_escape): Remove.
3110         (pass_ipa_struct_reorg): Likewise.
3111         * ipa-struct-reorg.h: Remove.
3112         * ipa-struct-reorg.c: Likewise.
3113         * ipa-type-escape.h: Likewise.
3114         * ipa-type-escape.c: Likewise.
3115         * doc/invoke.texi (-fipa-struct-reorg): Remove.
3116         (--param struct-reorg-cold-struct-ratio): Likewise.
3117         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
3118         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
3119         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
3120
3121 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3122
3123         * config/s390/2084.md: Enable all insn reservations also for z9_ec
3124         cpu attribute value.
3125         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
3126         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
3127         * config/s390/s390.c (processor_flags_table): New constant array.
3128         (s390_handle_arch_option): Remove.
3129         (s390_handle_option): Remove s390_handle_arch_option invocations
3130         and OPT_mwarn_framesize_ handling.
3131         (s390_option_override): Remove s390_handle_arch_option invocation.
3132         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
3133         warnings.
3134         * config/s390/s390.md (cpu attribute): Add z9_ec value.
3135         * config/s390/s390.opt (s390_tune, s390_arch)
3136         (march=): Replace s390_arch_option enum and values with
3137         processor_type.  Set variable name to s390_arch.  Set
3138         initialization value.
3139         (mtune=): Replace s390_arch_option with processor_type.  Set
3140         variable name to s390_tune.  Set initialization value.
3141
3142 2011-03-23  Julian Brown  <julian@codesourcery.com>
3143
3144         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
3145         accesses which are not naturally aligned.
3146
3147 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
3148
3149         PR target/47553
3150         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
3151
3152 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
3153
3154         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
3155         parameter from "int" to "enum insn_code".
3156         (expand_operand_type): New enum.
3157         (expand_operand): New structure.
3158         (create_expand_operand): New function.
3159         (create_fixed_operand, create_output_operand): Likewise
3160         (create_input_operand, create_convert_operand_to): Likewise.
3161         (create_convert_operand_from, create_address_operand): Likewise.
3162         (create_integer_operand): Likewise.
3163         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
3164         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
3165         (expand_insn, expand_jump_insn): Likewise.
3166         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
3167         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
3168         (expand_movstr, expand_builtin___clear_cache): Likewise.
3169         (expand_builtin_lock_release): Likewise.
3170         * explow.c (allocate_dynamic_stack_space): Likewise.
3171         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
3172         and use the default handling in that case.
3173         * expmed.c (check_predicate_volatile_ok): Delete.
3174         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
3175         (emit_cstore): Likewise.
3176         * expr.c (emit_block_move_via_movmem): Likewise.
3177         (set_storage_via_setmem, expand_assignment): Likewise.
3178         (emit_storent_insn, try_casesi): Likewise.
3179         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
3180         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
3181         (expand_vec_shift_expr, expand_binop_directly): Likewise.
3182         (expand_twoval_unop, expand_twoval_binop): Likewise.
3183         (expand_unop_direct, emit_indirect_jump): Likewise.
3184         (emit_conditional_move, vector_compare_rtx): Likewise.
3185         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
3186         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
3187         (expand_sync_lock_test_and_set): Likewise.
3188         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
3189         (emit_unop_insn): Likewise.
3190         (expand_copysign_absneg): Change icode to an insn_code.
3191         (create_convert_operand_from_type): New function.
3192         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
3193         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
3194         (expand_insn, expand_jump_insn): Likewise.
3195         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
3196         than const_int_operand for operand 2.
3197
3198 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3199
3200         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
3201         if possible.
3202
3203 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
3204
3205         * emit-rtl.c (emit_pattern_before_noloc): New function.
3206         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
3207         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
3208         (emit_pattern_after_noloc): New function.
3209         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
3210         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
3211
3212 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
3213
3214         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
3215         (__ffsDI2): Likewise.
3216
3217 2011-03-22  Richard Henderson  <rth@redhat.com>
3218
3219         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
3220         of !TARGET_ABI_OPEN_VMS.
3221         (alpha_trampoline_init, alpha_start_function): Likewise.
3222         (alpha_expand_epilogue, alpha_file_start): Likewise.
3223         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
3224         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
3225         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
3226         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
3227         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
3228
3229 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3230
3231         * config/s390/s390-opts.h: New.
3232         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
3233         s390_arch_flags, s390_warn_framesize, s390_stack_size,
3234         s390_stack_guard): Remove.
3235         (s390_handle_arch_option): Return void.  Take enum
3236         s390_arch_option value instead of string and searching array.
3237         (s390_handle_option): Don't assert that global structures are in
3238         use.  Access variables via opts pointer.  Use error_at.  Don't use
3239         sscanf for -mstack-guard= or -mstack-size=.  Update call to
3240         s390_handle_arch_option.
3241         (s390_option_override): Update call to s390_handle_arch_option.
3242         (s390_emit_prologue): Use %d format for s390_stack_size in
3243         diagnostic.  Use %wd for HOST_WIDE_INT.
3244         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
3245         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
3246         * config/s390/s390.opt (config/s390/s390-opts.h): New
3247         HeaderInclude entry.
3248         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
3249         s390_arch_flags, s390_warn_framesize): New Variable entries.
3250         (s390_arch_option): New Enum and EnumValue entries.
3251         (march=): Use Enum instead of Var.
3252         (mstack-guard=, mstack-size=): Use UInteger and Var.
3253         (mtune=): Use Enum.
3254
3255 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3256
3257         * config/score/score.c (score_handle_option): Don't assert that
3258         global structures are in use.  Access target_flags via opts
3259         pointer.  Use value of -march= option to determine target_flags
3260         settings.
3261         * config/score/score.opt (march=): Use Enum.
3262         (score_arch): New Enum and EnumValue entries.
3263
3264 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3265
3266         * config/mep/mep.c (option_mtiny_specified): Remove.
3267         (mep_option_override): Move register handling for -mivc2 from
3268         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
3269         instead of option_mtiny_specified.
3270         (mep_handle_option): Access target_flags via opts pointer.  Don't
3271         assert that global structures are in use.  Defer part of -mivc2
3272         handling and move it to mep_option_override.
3273         * config/mep/mep.opt (IVC2): New Mask entry.
3274         (mivc2): Use Var and Defer instead of Mask.
3275
3276 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3277
3278         * config/v850/v850-opts.h: New.
3279         * config/v850/v850.c (small_memory): Replace with
3280         small_memory_physical_max array.  Make that array static const.
3281         (v850_handle_memory_option): Take integer value of argument.  Take
3282         gcc_options pointer, option text and location.  Return void.
3283         Update for changes to small memory structures.
3284         (v850_handle_option): Access target_flags via opts pointer.  Don't
3285         assert that global structures are in use.  Update calls to
3286         v850_handle_memory_option.
3287         (v850_encode_data_area): Update references to small memory settings.
3288         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
3289         (enum small_memory_type): Move to v850-opts.h.
3290         * config/v850/v850.opt (config/v850/v850-opts.h): New
3291         HeaderInclude entry.
3292         (small_memory_max): New Variable entry.
3293         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
3294         (mtda, mzda): Likewise.
3295
3296 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3297
3298         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
3299         pointer.  Don't assert that global structures are in use.
3300
3301 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3302
3303         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
3304         via opts pointer.  Don't assert that global structures are in use.
3305
3306 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3307
3308         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
3309         (munix=93): Use Var.
3310         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
3311         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
3312         * config/pa/pa-opts.h: New.
3313         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
3314         (pa_handle_option): Don't assert that global structures are in
3315         use.  Access target_flags via opts pointer.  Don't handle
3316         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
3317         OPT_munix_98 here.
3318         (pa_option_override): Handle deferred OPT_mfixed_range_.
3319
3320 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3321
3322         * config/mn10300/mn10300-opts.h: New.
3323         * config/mn10300/mn10300.c (mn10300_processor,
3324         mn10300_tune_string): Remove.
3325         (mn10300_handle_option): Don't assert that global structures are
3326         in use.  Access mn10300_processor via opts pointer.  Don't handle
3327         OPT_mtune_ here.
3328         * config/mn10300/mn10300.h (enum processor_type): Move to
3329         mn10300-opts.h.
3330         (mn10300_processor): Remove.
3331         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
3332         HeaderInclude entry.
3333         (mn10300_processor): New Variable entry.
3334         (mtune=): Use Var.
3335
3336 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3337
3338         * config/microblaze/microblaze.c: Don't include opts.h.
3339         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
3340         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
3341         (mno-clearbss): Use Var and Warn.
3342
3343 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3344
3345         * config/m32r/m32r-opts.h: New.
3346         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
3347         (m32r_handle_option): Don't assert that global structures are in
3348         use.  Access target_flags and m32r_cache_flush_func via opts
3349         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
3350         OPT_mno_flush_trap here.
3351         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
3352         include of m32r-opts.h.
3353         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
3354         HeaderInclude entry.
3355         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
3356         (mmodel=): Use Enum and Var.
3357         (m32r_model): New Enum and EnumValue entries.
3358         (mno-flush-trap): Use Var.
3359         (msdata=): Use Enum and Var.
3360         (m32r_sdata): New Enum and EnumValue entries.
3361
3362 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3363
3364         * config/m32c/m32c.c: Don't include opts.h.
3365         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
3366         m32c_handle_option): Remove.
3367         (m32c_option_override): Check global_options_set.x_target_memregs
3368         instead of target_memregs_set.
3369         * config/m32c/m32c.h (target_memregs): Remove.
3370         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
3371         variable.
3372
3373 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3374
3375         * config/iq2000/iq2000-opts.h: New.
3376         * config/iq2000/iq2000.c: Don't include opts.h.
3377         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
3378         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
3379         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
3380         HeaderInclude entry.
3381         (iq2000_tune): New Variable entry.
3382         (march=): Add comment.  Use Enum.
3383         (iq2000_arch): New Enum and EnumValue entries.
3384         (mcpu=): Use Enum and Var.
3385         (iq2000_tune): New Enum and EnumValue entries.
3386
3387 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3388
3389         * config/ia64/ia64-opts.h: New.
3390         * config/ia64/ia64.c (ia64_tune): Remove.
3391         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
3392         here.  Use error_at.
3393         (ia64_option_override): Handle deferred OPT_mfixed_range_.
3394         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
3395         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
3396         HeaderInclude entry.
3397         (ia64_tune): New Variable entry.
3398         (mfixed-range=): Use Defer and Var.
3399         (mtune=): Use Enum and Var.
3400         (ia64_tune): New Enum and EnumValue entries.
3401
3402 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3403
3404         * config/frv/frv-opts.h: New.
3405         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
3406         frv-opts.h.
3407         (frv_cpu_type): Remove.
3408         * config/frv/frv.c: Don't include opts.h.
3409         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
3410         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
3411         (frv_cpu_type): New Variable entry.
3412         (frv_cpu): New Enum and EnumValue entries.
3413
3414 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3415
3416         * config/cris/cris.c (cris_handle_option): Access target_flags via
3417         opts pointer.  Don't assert that global structures are in use.
3418         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
3419         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
3420
3421 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3422
3423         * config/bfin/bfin-opts.h: New.
3424         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
3425         bfin_si_revision, bfin_workarounds): Remove.
3426         (bfin_cpus): Make static const.
3427         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
3428         not bfin_lib_id_given.
3429         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
3430         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
3431         pointer. Use error_at.  Don't assert that global structures are in use.
3432         * config/bfin/bfin.h: Include bfin-opts.h.
3433         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
3434         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
3435         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
3436         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
3437         entries.
3438
3439 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3440
3441         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
3442         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
3443         or -msoft-float here.
3444         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
3445         -msoft-float and -mhard-float.
3446         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
3447         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
3448         msoft-float.
3449         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
3450         -msoft-float.
3451         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
3452         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
3453         not mhard-float.
3454         (LIBGCC_SPEC): Don't handle -msoft-float.
3455         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
3456         -mhard-float.
3457         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
3458         msoft-float.
3459         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
3460         -mfloat-abi=*, not -msoft-float and -mhard-float.
3461         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
3462         -msoft-float.
3463         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
3464         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
3465         mhard-float and msoft-float.
3466         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
3467         mfloat-abi=soft in comments, not mhard-float and msoft-float.
3468         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
3469         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
3470         mhard-float.
3471         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
3472         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
3473         msoft-float.
3474         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
3475         not mhard-float.
3476         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
3477         not msoft-float.
3478
3479 2011-03-22  Richard Henderson  <rth@redhat.com>
3480
3481         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
3482         TARGET_ABI_WINDOWS_NT.
3483         (alpha_output_function_end_prologue): Likewise.
3484         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
3485         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
3486         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
3487         (trap, *movsi_nt_vms): Likewise.
3488         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
3489         (*tablejump_osf_nt_internal): Remove.
3490         * config/alpha/predicates.md (input_operand): Only test Pmode.
3491
3492 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3493
3494         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
3495         via opts pointer.  Use error_at.  Don't assert that global
3496         structures are in use.
3497
3498 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3499
3500         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
3501         (ix86_handle_option): Access ix86_isa_flags and
3502         ix86_isa_flags_explicit via opts pointer.  Don't assert that
3503         global structures are in use.
3504         (ix86_function_specific_save, ix86_function_specific_restore):
3505         Update ix86_isa_flags_explicit field name.
3506         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
3507         (ix86_isa_flags_explicit): Rename TargetSave entry to
3508         x_ix86_isa_flags_explicit.
3509
3510 2011-03-22  Richard Henderson  <rth@redhat.com>
3511
3512         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
3513         (alpha_option_override, direct_return): Likewise.
3514         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
3515         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
3516         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
3517         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
3518         (alpha_expand_epilogue, alpha_end_function): Likewise.
3519         (alpha_init_libfuncs): Likewise.
3520         (struct machine_function): Remove unicosmk members.
3521         (print_operand) ['t']: Remove.
3522         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
3523         unicosmk_output_module_name, unicosmk_output_common,
3524         current_section_align, unicosmk_output_text_section_asm_op,
3525         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
3526         unicosmk_section_type_flags, unicosmk_unique_section,
3527         unicosmk_asm_named_section, unicosmk_insert_attributes,
3528         unicosmk_output_align, unicosmk_defer_case_vector,
3529         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
3530         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
3531         unicosmk_output_ssib, unicosmk_add_call_info_word,
3532         unicosmk_extern_head, unicosmk_output_default_externs,
3533         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
3534         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
3535         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
3536         * config/alpha/alpha-protos.h: Update.
3537         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
3538         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
3539         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
3540         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
3541         (*mulsi_se, mulvsi3): Likewise.
3542         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
3543         (*divmodsi_internal, call, call_value, realign): Likewise.
3544         (moddi3, umoddi3): Likewise; remove duplicate expander.
3545         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
3546         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
3547         (*movdi_nofix): Remove r/U alternative.
3548         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
3549         * config/alpha/constraints.md ("U"): Remove.
3550         * config/alpha/predicates.md (call_operand"): Don't test
3551         TARGET_ABI_UNICOSMK.
3552
3553 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3554
3555         * target.def (handle_option): Take gcc_options and
3556         cl_decoded_option pointers and location_t.
3557         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
3558         * doc/tm.texi: Regenerate.
3559         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
3560         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
3561         * lto-opts.c (lto_reissue_options): Generate option structure for
3562         targetm.handle_option call.
3563         * opts.c (target_handle_option): Update call to
3564         targetm.handle_option.  Remove assertions about values now passed
3565         down to hook.
3566         * targhooks.c (default_target_handle_option): New.
3567         * targhooks.h (default_target_handle_option): Declare.
3568         * config/alpha/alpha.c: Include opts.h.
3569         (alpha_handle_option): Update to new hook interface.
3570         * config/arm/arm.c: Include opts.h.
3571         (arm_handle_option): Update to new hook interface.
3572         * config/arm/t-arm (arm.o): Update dependencies.
3573         * config/bfin/bfin.c: Include opts.h.
3574         (bfin_handle_option): Update to new hook interface.
3575         * config/cris/cris.c: Include opts.h.
3576         (cris_handle_option): Update to new hook interface.
3577         * config/frv/frv.c: Include opts.h.
3578         (frv_handle_option): Update to new hook interface.
3579         * config/i386/i386.c: Include opts.h.
3580         (ix86_handle_option): Update to new hook interface.
3581         (ix86_valid_target_attribute_inner_p): Generate option structure
3582         for call to ix86_handle_option.
3583         * config/i386/t-i386 (i386.o): Update dependencies.
3584         * config/ia64/ia64.c: Include opts.h.
3585         (ia64_handle_option): Update to new hook interface.
3586         * config/ia64/t-ia64 (ia64.o): Update dependencies.
3587         * config/iq2000/iq2000.c: Include opts.h.
3588         (iq2000_handle_option): Update to new hook interface.
3589         * config/m32c/m32c.c: Include opts.h.
3590         (m32c_handle_option): Update to new hook interface.
3591         * config/m32r/m32r.c: Include opts.h.
3592         (m32r_handle_option): Update to new hook interface.
3593         * config/m68k/m68k.c: Include opts.h.
3594         (m68k_handle_option): Update to new hook interface.
3595         * config/mep/mep.c: Include opts.h.
3596         (mep_handle_option): Update to new hook interface.
3597         * config/microblaze/microblaze.c: Include opts.h.
3598         (microblaze_handle_option): Update to new hook interface.
3599         * config/mips/mips.c: Include opts.h.
3600         (mips_handle_option): Update to new hook interface.
3601         * config/mn10300/mn10300.c: Include opts.h.
3602         (mn10300_handle_option): Update to new hook interface.
3603         * config/pa/pa.c: Include opts.h.
3604         (pa_handle_option): Update to new hook interface.
3605         * config/pdp11/pdp11.c: Include opts.h.
3606         (pdp11_handle_option): Update to new hook interface.
3607         * config/rs6000/rs6000.c: Include opts.h.
3608         (rs6000_handle_option): Update to new hook interface.
3609         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
3610         * config/rx/rx.c: Include opts.h.
3611         (rx_handle_option): Update to new hook interface.
3612         * config/s390/s390.c: Include opts.h.
3613         (s390_handle_option): Update to new hook interface.
3614         * config/score/score.c: Include opts.h.
3615         (score_handle_option): Update to new hook interface.
3616         * config/sh/sh.c: Include opts.h.
3617         (sh_handle_option): Update to new hook interface.
3618         * config/sparc/sparc.c: Include opts.h.
3619         (sparc_handle_option): Update to new hook interface.
3620         * config/v850/v850.c: Include opts.h.
3621         (v850_handle_option): Update to new hook interface.
3622
3623 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3624
3625         * gcc.c (driver_unknown_option_callback): Only permit and save
3626         unknown -Wno- options.
3627         (driver_wrong_lang_callback): Save options directly instead of via
3628         driver_unknown_option_callback.
3629
3630 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
3631
3632         * combine.c (simplify_set): Try harder to find the best CC mode when
3633         simplifying a nested COMPARE on the RHS.
3634
3635 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3636
3637         * config/alpha/gnu.h: Remove.
3638         * config/arc: Remove directory.
3639         * config/arm/netbsd.h: Remove.
3640         * config/arm/t-pe: Remove.
3641         * config/crx: Remove directory.
3642         * config/i386/netbsd.h: Remove.
3643         * config/m68hc11: Remove directory.
3644         * config/m68k/uclinux-oldabi.h: Remove.
3645         * config/mcore/mcore-pe.h: Remove.
3646         * config/mcore/t-mcore-pe: Remove.
3647         * config/netbsd-aout.h: Remove.
3648         * config/rs6000/gnu.h: Remove.
3649         * config/sh/sh-symbian.h: Remove.
3650         * config/sh/symbian-base.c: Remove.
3651         * config/sh/symbian-c.c: Remove.
3652         * config/sh/symbian-cxx.c: Remove.
3653         * config/sh/symbian-post.h: Remove.
3654         * config/sh/symbian-pre.h: Remove.
3655         * config/sh/t-symbian: Remove.
3656         * config/svr3.h: Remove.
3657         * config/vax/netbsd.h: Remove.
3658         * config.build: Don't handle i[34567]86-*-pe.
3659         * config.gcc: Remove handling of deprecations for most deprecated
3660         targets.
3661         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
3662         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
3663         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
3664         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
3665         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
3666         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
3667         Remove cases.
3668         * config.host: Don't handle i[34567]86-*-pe.
3669         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
3670         (ASM_SPEC32): Don't handle -mcall-gnu.
3671         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
3672         -mcall-gnu.
3673         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
3674         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
3675         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
3676         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
3677         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
3678         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
3679         conditional on SYMBIAN.
3680         * configure.ac: Don't handle powerpc*-*-gnu*.
3681         * configure: Regenerate.
3682         * doc/extend.texi (interrupt attribute): Don't mention CRX.
3683         * doc/install-old.texi (m6811, m6812): Don't mention.
3684         * doc/install.texi (arc-*-elf*): Don't document multilib option.
3685         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
3686         (m68k-uclinuxoldabi): Don't mention.
3687         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
3688         Remove.
3689         (-mcall-gnu): Remove.
3690         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
3691         families): Remove constraint documentation.
3692
3693 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
3694
3695         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
3696         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
3697         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
3698
3699 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
3700
3701         * config/avr/avr-protos.h (expand_epilogue): Change prototype
3702         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
3703         * config/avr/avr.c (init_cumulative_args)
3704         (avr_function_arg_advance): Use it.
3705         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
3706         sibcall epilogues.
3707         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
3708         (avr_function_ok_for_sibcall): ...this new function.
3709         (avr_lookup_function_attribute1): New static Function.
3710         (avr_naked_function_p, interrupt_function_p)
3711         (signal_function_p, avr_OS_task_function_p)
3712         (avr_OS_main_function_p): Use it.
3713         * config/avr/avr.md ("sibcall", "sibcall_value")
3714         ("sibcall_epilogue"): New expander.
3715         ("*call_insn", "*call_value_insn"): New insn.
3716         ("call_insn", "call_value_insn"): Remove
3717         ("call", "call_value", "epilogue"): Change expander to handle
3718         sibling calls.
3719
3720 2011-03-21  Nick Clifton  <nickc@redhat.com>
3721
3722         * doc/invoke.texi (Overall Options): Move closing brace to end of
3723         options list.
3724         (Optimization Options): Add missing @gol.
3725         (Directory Options): Likewise.
3726         (i386 and x86-64 Options): Likewise.
3727         (RS6000 and PowerPC Options): Likewise.
3728         (i386 and x86-64 Windows Options): Likewise.
3729         (V850 Options): Add text missing from descriptions.
3730
3731 2011-03-22  Richard Henderson  <rth@redhat.com>
3732
3733         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
3734         (avr_incoming_return_addr_rtx): New.
3735         (emit_push_byte): New.
3736         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
3737         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
3738         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
3739         (emit_pop_byte): New.
3740         (expand_epilogue): Use it.  Pop frame pointer by bytes.
3741         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
3742         (INCOMING_RETURN_ADDR_RTX): New.
3743         (INCOMING_FRAME_SP_OFFSET): New.
3744         (ARG_POINTER_CFA_OFFSET): New.
3745         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
3746         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
3747         (pophi): Remove.
3748
3749         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
3750
3751 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
3752
3753         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
3754         (FUNCTION_ARG_ADVANCE): Likewise.
3755         * tm.texi.in: Change references to them to hook references.
3756         * tm.texi: Regenerate.
3757         * targhooks.c (default_function_arg): Eliminate check for target
3758         macro.
3759         (default_function_incoming_arg): Likewise.
3760         (default_function_arg_advance): Likewise.
3761         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
3762         (function_arg_advance): Likewise.
3763         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
3764
3765 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
3766
3767         * tree.c (build_call_1): New function.
3768         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
3769
3770 2011-03-22  Richard Guenther  <rguenther@suse.de>
3771
3772         PR tree-optimization/48228
3773         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
3774         for single-arg PHIs.
3775
3776 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
3777
3778         PR rtl-optimization/48143
3779         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
3780         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
3781         sse2_cvtps2pd): Likewise.
3782
3783 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3784
3785         * recog.c (canonicalize_change_group): Use validate_unshare_change.
3786
3787 2011-03-22  Richard Guenther  <rguenther@suse.de>
3788
3789         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
3790         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
3791         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
3792         and REALIGN_LOAD_EXPR.
3793         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
3794         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
3795         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
3796         DOT_PROD_EXPR case ...
3797         (expand_expr_real_2): ... here.
3798         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
3799         and REALIGN_LOAD_EXPR.
3800         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
3801         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
3802         (vect_create_epilog_for_reduction): Likewise.
3803         (vectorizable_reduction): Likewise.
3804         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
3805         * tree-vect-stmts.c (vectorizable_load): Likewise.
3806
3807 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
3808
3809         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
3810
3811 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3812
3813         * config/s390/s390.c (s390_delegitimize_address): Fix offset
3814         handling for PLTOFF/GOTOFF.
3815
3816 2011-03-22  Nick Clifton  <nickc@redhat.com>
3817
3818         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
3819         trailing backslash from the end of the macro definition.
3820
3821 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3822
3823         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
3824         and PLT unspecs.
3825
3826 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
3827
3828         * expr.h (prepare_operand): Move to...
3829         * optabs.h (prepare_operand): ...here and change the insn code
3830         parameter from "int" to "enum insn_code".
3831         (insn_operand_matches): Declare.
3832         * expr.c (init_expr_target): Use insn_operand_matches.
3833         (compress_float_constant): Likewise.
3834         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
3835         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
3836         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
3837         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
3838         Likewise.
3839         (gen_cond_trap): Likewise.
3840         (prepare_operand): Likewise.  Change icode to an insn_code.
3841         (insn_operand_matches): New function.
3842         * reload.c (find_reloads_address_1): Use insn_operand_matches.
3843         * reload1.c (gen_reload): Likewise.
3844         * targhooks.c (default_secondary_reload): Likewise.
3845
3846 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
3847
3848         * config/alpha/alpha.md (unspec): New define_c_enum.
3849         (unspecv): Ditto.
3850
3851 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
3852
3853         PR debug/48214
3854         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
3855         between a call and its CALL_ARG_LOCATION note.
3856
3857 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
3858
3859         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
3860
3861 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
3862
3863         PR c/42544
3864         PR c/48197
3865         * c-common.c (shorten_compare): If primopN is first sign-extended
3866         to opN and then zero-extended to result type, set primopN to opN.
3867
3868 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
3869
3870         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
3871         for barrier handlers.
3872
3873 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
3874
3875         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
3876         UNSPEC constants to be in the unspec enumeration, and redefine
3877         all UNSPECV constants to be in the unspecv enumeration, so that
3878         dumps print which unspec/unspec_volatile this is.
3879         * config/rs6000/vector.md (UNSPEC_*): Ditto.
3880         * config/rs6000/paired.md (UNSPEC_*): Ditto.
3881         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
3882         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
3883         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
3884
3885         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
3886         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
3887         UNSPECV_LWSYNC, since these are used as unspec_volatile.
3888         * config/rs6000/sync.md (isync, lwsync): Ditto.
3889
3890 2011-03-21  Richard Guenther  <rguenther@suse.de>
3891
3892         * params.def (lto-min-partition): Fix typo.
3893
3894 2011-03-21  Richard Guenther  <rguenther@suse.de>
3895
3896         PR c/47939
3897         * c-decl.c (grokdeclarator): Drop to the main variant only
3898         for array types.  Drop flag_gen_aux_info check.
3899
3900 2011-03-21  Richard Guenther  <rguenther@suse.de>
3901
3902         PR translation/47911
3903         * params.def (lto-partitions): Fix typo.
3904         (lto-min-partition): Fix wording.
3905
3906 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
3907
3908         * config/rs6000/t-freebsd: Remove duplication from file.
3909
3910 2011-03-21  Richard Guenther  <rguenther@suse.de>
3911
3912         PR middle-end/47661
3913         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
3914
3915 2011-03-21  Richard Guenther  <rguenther@suse.de>
3916
3917         PR lto/48210
3918         * params.def (lto-partitions): Require at least 1 partition.
3919
3920 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3921
3922         * gthr-solaris.h: Remove.
3923         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
3924         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
3925         (LIB_SPEC): Likewise.
3926         * config/sol2.opt (threads): Remove.
3927         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
3928         (sparc*-*-solaris2*): Likewise.
3929         * configure.ac (enable_threads): Enable solaris support.
3930         * configure: Regenerate.
3931         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
3932         * doc/install.texi (Configuration, --enable-threads=lib): Remove
3933         solaris.
3934
3935 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3936
3937         * config.gcc: Obsolete *-*-solaris2.8*.
3938         * doc/install.texi (Specific, *-*-solaris2*): Document it.
3939
3940 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3941
3942         PR bootstrap/48135
3943         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
3944         reference.  Solaris 8 perl works.
3945
3946 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3947
3948         PR bootstrap/48135
3949         * doc/install.texi (Prerequisites): Move jar etc. up.
3950         Explain support library version requirements.
3951
3952 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3953
3954         PR bootstrap/48135
3955         * doc/install.texi (Prerequisites): Move Perl to build
3956         requirements.  Always necessary on Solaris 2 with Sun ld.
3957
3958 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3959
3960         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
3961         binutils 2.21.
3962         (Specific, i?86-*-solaris2.[89]): Likewise.
3963         (Specific, i?86-*-solaris2.10): Likewise.
3964         (Specific, mips-sgi-irix6): Likewise.
3965         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
3966         Update for binutils 2.21.
3967
3968 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3969
3970         * configure.ac (gcc_cv_lto_plugin): Fix typo.
3971         Allow -fuse-linker-plugin for non-default plugin linker.
3972         * configure: Regenerate.
3973
3974 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
3975
3976         PR bootstrap/48167
3977         * gengtype.c (files_rules): Added rule for cp/parser.h.
3978
3979 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
3980
3981         PR target/48213
3982         * config/s390/s390.c (s390_delegitimize_address): Don't call
3983         lowpart_subreg if orig_x has BLKmode.
3984
3985 2011-03-21  Kai Tietz  <ktietz@redhat.com>
3986
3987         PR target/12171
3988         * doc/plugins.texi: Adjust documentation for plugin register_callback.
3989         * tree.h (attribute_spec): Add new member affects_type_identity.
3990         * attribs.c (empty_attribute_table): Adjust attribute_spec
3991         initializers.
3992         * config/alpha/alpha.c: Likewise.
3993         * config/arc/arc.c: Likewise.
3994         * config/arm/arm.c: Likewise.
3995         * config/avr/avr.c: Likewise.
3996         * config/bfin/bfin.c: Likewise.
3997         * config/crx/crx.c: Likewise.
3998         * config/darwin.h: Likewise.
3999         * config/h8300/h8300.c: Likewise.
4000         * config/i386/cygming.h: Likewise.
4001         * config/i386/i386.c: Likewise.
4002         * config/ia64/ia64.c: Likewise.
4003         * config/m32c/m32c.c: Likewise.
4004         * config/m32r/m32r.c: Likewise.
4005         * config/m68hc11/m68hc11.c: Likewise.
4006         * config/m68k/m68k.c: Likewise.
4007         * config/mcore/mcore.c: Likewise.
4008         * config/mep/mep.c: Likewise.
4009         * config/microblaze/microblaze.c: Likewise.
4010         * config/mips/mips.c: Likewise.
4011         * config/rs6000/rs6000.c: Likewise.
4012         * config/rx/rx.c: Likewise.
4013         * config/sh/sh.c: Likewise.
4014         * config/sol2.h: Likewise.
4015         * config/sparc/sparc.c: Likewise.
4016         * config/spu/spu.c: Likewise.
4017         * config/stormy16/stormy16.c: Likewise.
4018         * config/v850/v850.c: Likewise.
4019
4020 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
4021
4022         * simplify-rtx.c (simplify_binary_operation_1): Handle
4023         (xor (and A B) C) case when B and C are both constants.
4024
4025 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
4026
4027         * tree-dfa.c (add_referenced_var): Fix typo in comment.
4028
4029 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
4030
4031         PR bootstrap/48168
4032         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
4033
4034 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
4035
4036         PR rtl-optimization/48156
4037         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
4038         assume df and df_lr are not NULL.
4039
4040 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4041
4042         PR debug/48023
4043         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
4044         between a call and its CALL_ARG_LOCATION note.
4045
4046 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
4047
4048         PR debug/48178
4049         * config/sh/sh.c (find_barrier): Don't emit a constant pool
4050         between a call and its corresponding CALL_ARG_LOCATION note.
4051
4052 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
4053
4054         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
4055         instead of loop. Use HARD_REGISTER_NUM_P predicate.
4056         * haifa-sched.c (setup_ref_regs): Ditto.
4057         * caller-save.c (add_used_regs_1): Ditto.
4058         * dse.c (look_for_hardregs): Ditto.
4059         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
4060         * sched-rgn.c (check_live_1): Ditto.
4061
4062 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
4063
4064         * c-decl.c (diagnose_mismatched_decls): Give an error for
4065         redefining a typedef with variably modified type.
4066
4067 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
4068
4069         * c-decl.c (grokfield): Don't allow typedefs for structures or
4070         unions with no tag by default.
4071         * doc/extend.texi (Unnamed Fields): Update.
4072
4073 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
4074
4075         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
4076         Rewrite using indirect functions.
4077         (lwp_slwpcb): Ditto.
4078         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
4079         (avx_vinsertf128<mode>): Ditto.
4080
4081 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4082
4083         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
4084         unspecs.
4085
4086 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4087
4088         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
4089         splitting between a call and its corresponding CALL_ARG_LOCATION note.
4090
4091 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
4092
4093         PR rtl-optimization/48170
4094         * gcse.c (hoist_code): Remove bogus asserts.
4095
4096 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
4097
4098         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
4099         computation for prologue/epilogue.
4100
4101 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4102
4103         * Makefile.in (check-consistency): Remove.
4104
4105 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
4106
4107         PR debug/48176
4108         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
4109         arange_table_in_use is 0, but either text_section_used or
4110         cold_text_section_used is true.  Don't call it if
4111         !info_section_emitted.
4112
4113 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
4114
4115         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
4116         FUNCTION_VALUE_REGNO_P): Remove.
4117         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
4118         Remove.
4119         * config/avr/avr.c (avr_ret_register): Make static inline.
4120         (avr_function_value_regno_p): New function.
4121         (avr_libcall_value): Make static. Add 'func' argument.
4122         (avr_function_value): Make static. Rename 'func' argument to
4123         'fn_decl_or_type', forward it to avr_libcall_value. Call
4124         avr_ret_register function instead of RET_REGISTER macro.
4125         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
4126
4127 2011-03-18  Jason Merrill  <jason@redhat.com>
4128
4129         PR c++/23372
4130         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
4131
4132 2011-03-18  Richard Guenther  <rguenther@suse.de>
4133
4134         * doc/install.texi (--enable-gold): Remove.
4135         (--with-plugin-ld): Document.
4136         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
4137
4138 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
4139
4140         PR middle-end/47790
4141         * expr.c (optimize_bitfield_assignment_op): Revamp to work
4142         again after expansion changes.
4143
4144 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
4145
4146         * combine.c (try_combine): Do simplification only call of
4147         subst() on i2 even when i1 is present. Update comments.
4148
4149 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
4150
4151         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
4152         and UNSPEC_PCREL_SYMOFF.
4153
4154 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4155
4156         * config/s390/s390.md: Use define_c_enum for the unspec constant
4157         definitions.
4158
4159 2011-03-18  Richard Henderson  <rth@redhat.com>
4160             Jakub Jelinek  <jakub@redhat.com>
4161
4162         PR bootstrap/48161
4163         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
4164         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
4165
4166 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
4167
4168         PR middle-end/47725
4169         * combine.c (cant_combine_insn_p): Don't check zero/sign
4170         extended hard registers.
4171
4172 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
4173
4174         PR middle-end/47725
4175         * combine.c (cant_combine_insn_p): Check zero/sign extended
4176         hard registers.
4177
4178 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
4179
4180         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
4181         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
4182         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
4183         Change return type to bool.
4184         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
4185
4186 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
4187
4188         PR debug/48163
4189         * var-tracking.c (prepare_call_arguments): If CALL target
4190         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
4191         pc instead of looking it up using cselib_lookup and use
4192         Pmode for it if x has VOIDmode.
4193         * dwarf2out.c (gen_subprogram_die): If also both first and
4194         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
4195
4196         PR debug/48163
4197         * function.c (assign_parms): For data.passed_pointer parms
4198         use MEM of data.entry_parm instead of data.entry_parm itself
4199         as DECL_INCOMING_RTL.
4200         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
4201         also when passed and declared mode is the same, DECL_RTL
4202         is a MEM with pseudo as address and DECL_INCOMING_RTL is
4203         a MEM too.
4204
4205 2011-03-16  Jeff Law  <law@redhat.com>
4206
4207         PR rtl-optimization/37273
4208         * ira-costs.c (scan_one_insn): Detect constants living in memory and
4209         handle them like argument loads from stack slots.  Do not double
4210         count memory for memory constants and argument loads from stack slots.
4211
4212 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
4213
4214         PR debug/48160
4215         * var-tracking.c (prepare_call_arguments): Check SUBREG.
4216
4217 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
4218
4219         PR target/48171
4220         * config/i386/i386.opt: Add Save to -mavx and -mfma.
4221
4222 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
4223
4224         PR bootstrap/48153
4225         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
4226         if dwarf_strict.
4227         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
4228         Clear call_arg_locations and call_arg_loc_last always.
4229
4230         PR middle-end/48152
4231         * var-tracking.c (prepare_call_arguments): If argument needs to be
4232         passed by reference, adjust argtype and mode.
4233
4234 2011-03-17  Richard Guenther  <rguenther@suse.de>
4235
4236         PR middle-end/48134
4237         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
4238         a value make sure to fold the statement.
4239
4240 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
4241
4242         PR target/43872
4243         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
4244         return condition with !cfun->calls_alloca.
4245
4246 2011-03-17  Richard Guenther  <rguenther@suse.de>
4247
4248         PR bootstrap/48148
4249         * lto-cgraph.c (input_overwrite_node): Clear the abstract
4250         origin for decls in other ltrans units.
4251         (input_varpool_node): Likewise.
4252
4253 2011-03-17  Richard Guenther  <rguenther@suse.de>
4254
4255         PR middle-end/48165
4256         * tree-object-size.c (compute_object_offset): Properly return
4257         the offset operand of MEM_REFs as sizetype.
4258
4259 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
4260
4261         PR rtl-optimization/48141
4262         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
4263         * dse.c: Include params.h.
4264         (active_local_stores_len): New variable.
4265         (add_wild_read, dse_step1): Clear it when setting active_local_stores
4266         to NULL.
4267         (record_store, check_mem_read_rtx): Decrease it when removing
4268         from the chain.
4269         (scan_insn): Likewise.  Increase it when adding to chain, if it
4270         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
4271         set active_local_stores to NULL before the addition.
4272         * Makefile.in (dse.o): Depend on $(PARAMS_H).
4273
4274         PR rtl-optimization/48141
4275         * dse.c (record_store): If no positions are needed in an insn
4276         that cannot be deleted, at least unchain it from active_local_stores.
4277
4278 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
4279
4280         PR debug/47510
4281         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
4282         (lookup_type_die_strip_naming_typedef): ... here.
4283         (get_context_die): Use it.
4284         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
4285         the anonymous struct named by the naming typedef.
4286
4287 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
4288
4289         PR target/48154
4290         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
4291         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
4292
4293 2011-03-16  Jeff Law  <law@redhat.com>
4294
4295         * tree-vrp.c (identify_jump_threads): Slightly simplify type
4296         check for operands of conditional.  Allow type to be a pointer.
4297
4298 2011-03-16  Richard Guenther  <rguenther@suse.de>
4299
4300         PR tree-optimization/48149
4301         * fold-const.c (fold_binary_loc): Fold
4302         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
4303
4304 2011-03-16  Richard Guenther  <rguenther@suse.de>
4305
4306         PR tree-optimization/26134
4307         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
4308         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
4309         (non_rewritable_mem_ref_base): Handle complex type component
4310         accesses, constrain offsets for vector and complex extracts
4311         more properly.
4312
4313 2011-03-16  Richard Guenther  <rguenther@suse.de>
4314
4315         PR tree-optimization/48146
4316         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
4317         operands avoiding the need for renaming.
4318
4319 2011-03-16  Richard Guenther  <rguenther@suse.de>
4320
4321         * gimple-fold.c (maybe_fold_reference): Open-code relevant
4322         constant folding.  Move MEM_REF canonicalization first.
4323         Rely on fold_const_aggregate_ref for initializer folding.
4324         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
4325
4326 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
4327
4328         PR middle-end/48136
4329         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
4330         arg0/arg1 or their arguments are always fold converted to matching
4331         types.
4332
4333         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
4334         to nargs.
4335
4336 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4337
4338         PR lto/46944
4339         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
4340         Handle in-tree gold.
4341         (ld_vers): Extract binutils version for gold.
4342         (gcc_cv_ld_hidden): Handle gold here.
4343         (gcc_cv_lto_plugin): Determine level of linker plugin support.
4344         * configure: Regenerate.
4345         * config.in: Regenerate.
4346         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
4347         -fuse-linker-plugin otherwise.
4348         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
4349         (LINK_COMMAND_SPEC): Use it.
4350         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
4351
4352 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
4353
4354         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
4355         * calls.c: Remove debug.h include.
4356         (emit_call_1): Don't call virtual_call_token debug hook.
4357         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
4358         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
4359         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
4360         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
4361         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
4362         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
4363         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
4364         dwarf2out_virtual_call): Remove.
4365         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
4366         copy_call_info and virtual_call hooks.
4367         (dwarf2out_init): Don't initialize vcall_insn_table,
4368         debug_dcall_section and debug_vcall_section.
4369         (prune_unused_types): Don't mark nodes from dcall_table.
4370         (dwarf2out_finish): Don't output dcall or vcall tables.
4371         * final.c (final_scan_insn): Don't call direct_call or
4372         virtual_call debug hooks.
4373         * debug.h (struct gcc_debug_hooks): Remove direct_call,
4374         virtual_call_token, copy_call_info and virtual_call hooks.
4375         (debug_nothing_uid): Remove prototype.
4376         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
4377         copy_call_info and virtual_call hooks.
4378         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
4379         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
4380         * debug.c (do_nothing_debug_hooks): Likewise.
4381         (debug_nothing_uid): Remove.
4382         * doc/invoke.texi (-fenable-icf-debug): Remove.
4383         * common.opt (-fenable-icf-debug): Likewise.
4384
4385         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
4386         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
4387         call's MEM.  Handle functions returning aggregate through a hidden
4388         first pointer.  For virtual calls add clobbered pc to call arguments
4389         chain.
4390         * dwarf2out.c (gen_subprogram_die): Emit
4391         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
4392         can't be emitted.
4393
4394         PR debug/45882
4395         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
4396         * rtl.h (ENTRY_VALUE_EXP): Define.
4397         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
4398         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
4399         * print-rtl.c (print_rtx): Likewise.
4400         * gengtype.c (adjust_field_rtx_def): Likewise.
4401         * var-tracking.c (vt_add_function_parameter): Adjust
4402         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
4403         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
4404         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
4405         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
4406         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
4407
4408         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
4409         Call var_location debug hook even on CALL_INSNs.
4410         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
4411         * rtl.def (ENTRY_VALUE): New.
4412         * dwarf2out.c: Include cfglayout.h.
4413         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
4414         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
4415         (struct call_arg_loc_node): New type.
4416         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
4417         tail_call_site_count): New variables.
4418         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
4419         DW_TAG_GNU_call_site_parameter.
4420         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
4421         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
4422         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
4423         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
4424         and DW_AT_GNU_all_source_call_sites.
4425         (mem_loc_descriptor): Handle ENTRY_VALUE.
4426         (add_src_coords_attributes): Don't add enything if
4427         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
4428         (dwarf2out_abstract_function): Save and clear call_arg_location,
4429         call_site_count and tail_call_site_count around dwarf2out_decl call.
4430         (gen_call_site_die): New function.
4431         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
4432         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
4433         (dwarf2out_function_decl): Clear call_arg_locations,
4434         call_arg_loc_last, set call_site_count and tail_call_site_count
4435         to -1 and free block_map.
4436         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
4437         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
4438         followed by any real instructions.
4439         (dwarf2out_begin_function): Set call_site_count and
4440         tail_call_site_count to 0.
4441         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
4442         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
4443         attempt to force a DIE for it and worst case remove the attribute.
4444         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
4445         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
4446         the decl itself.
4447         * var-tracking.c: Include tm_p.h.
4448         (vt_stack_adjustments): For calls call note_register_arguments.
4449         (argument_reg_set): New variable.
4450         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
4451         ensure the VALUE is resolved.
4452         (call_arguments): New variable.
4453         (prepare_call_arguments): New function.
4454         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
4455         (struct expand_loc_callback_data): Add ignore_cur_loc field.
4456         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
4457         always use the best expression.
4458         (vt_expand_loc): Add ignore_cur_loc argument.
4459         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
4460         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
4461         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
4462         note for all calls.
4463         (vt_add_function_parameter): Use cselib_lookup_from_insn.
4464         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
4465         argument.  Don't call cselib_preserve_only_values and
4466         cselib_reset_table.
4467         (note_register_arguments): New function.
4468         (vt_initialize): Compute argument_reg_set.  Call
4469         vt_add_function_parameters before processing basic blocks instead of
4470         afterwards.  For calls call prepare_call_arguments before calling
4471         cselib_process_insn.
4472         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
4473         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
4474         (var-tracking.o): Depend on $(TM_P_H).
4475         * cfglayout.h (insn_scope): New prototype.
4476         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
4477         * cfglayout.c (insn_scope): No longer static.
4478         * insn-notes.def (CALL_ARG_LOCATION): New.
4479         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
4480         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
4481         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
4482         nothing for DECL_EXTERNAL BLOCK_VARS.
4483
4484 2011-03-16  Alan Modra  <amodra@gmail.com>
4485
4486         PR target/45844
4487         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
4488         create invalid offset address for vsx splat insn.
4489         * config/rs6000/predicates.md (splat_input_operand): New.
4490         * config/rs6000/vsx.md (vsx_splat_*): Use it.
4491
4492 2011-03-15  Xinliang David Li  <davidxl@google.com>
4493
4494         PR c/47837
4495         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
4496         (normalize_preds): New function.
4497         (is_use_properly_guarded): Normalize def predicates.
4498
4499 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4500
4501         PR target/46788
4502         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
4503         in the output template.
4504
4505 2011-03-15  Richard Guenther  <rguenther@suse.de>
4506
4507         PR middle-end/47650
4508         * tree-pretty-print.c (dump_function_declaration): Properly
4509         dump unprototyped and varargs function types.
4510
4511 2011-03-15  Richard Guenther  <rguenther@suse.de>
4512
4513         PR tree-optimization/13954
4514         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
4515         and friends.
4516
4517 2011-03-15  Richard Guenther  <rguenther@suse.de>
4518
4519         PR tree-optimization/48037
4520         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
4521         selects into BIT_FIELD_REFs.
4522         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
4523         vector select.
4524
4525 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
4526
4527         PR tree-optimization/48129
4528         * builtins.c (fold_builtin_snprintf): Convert to type of
4529         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
4530         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
4531
4532 2011-03-15  Richard Guenther  <rguenther@suse.de>
4533
4534         PR tree-optimization/41490
4535         * tree-ssa-dce.c (propagate_necessity): Handle returns without
4536         value but with VUSE.
4537         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
4538         return statements.
4539         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
4540         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
4541         * tree-tailcall.c (find_tail_calls): Ignore returns.
4542
4543 2011-03-15  Richard Guenther  <rguenther@suse.de>
4544
4545         PR middle-end/48031
4546         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
4547         or variable-indexed array accesses when in gimple form.
4548
4549 2011-03-15  Richard Guenther  <rguenther@suse.de>
4550
4551         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
4552
4553 2011-03-15  Alan Modra  <amodra@gmail.com>
4554
4555         PR target/48032
4556         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
4557         presume symbol_refs without a symbol_ref_decl are suitably
4558         aligned, nor other trees we may see here.  Handle anchor symbols.
4559         (legitimate_constant_pool_address_p): Comment.  Add mode param.
4560         Check cmodel=medium addresses.  Adjust all calls.
4561         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
4562         creating cmodel=medium optimized access to locals.
4563         * config/rs6000/constraints.md (R): Pass QImode to
4564         legitimate_constant_pool_address_p.
4565         * config/rs6000/predicates.md (input_operand): Pass mode to
4566         legitimate_constant_pool_address_p.
4567         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
4568         Update prototype.
4569
4570 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
4571
4572         PR target/48053
4573         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
4574         64-bit constants being loaded into registers other than GPRs such
4575         as loading 0 into a VSX register.
4576
4577 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4578
4579         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
4580
4581 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
4582
4583         PR middle-end/47917
4584         * builtins.c (fold_builtin_snprintf): New function.
4585         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
4586         (fold_builtin_4): Likewise.
4587
4588         PR middle-end/38878
4589         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
4590         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
4591         and C - X == X also strip nops from +/-/p+ operand.
4592         When optimizing -X == C, fold C to arg0's type.
4593
4594         PR debug/47946
4595         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
4596         emit it as add_AT_int instead of add_AT_unsigned.
4597
4598 2011-03-14  Tom Tromey  <tromey@redhat.com>
4599
4600         * unwind-dw2.c: Include sys/sdt.h if it exists.
4601         (_Unwind_DebugHook): Use STAP_PROBE2.
4602         * config.in, configure: Rebuild.
4603         * configure.ac: Check for sys/sdt.h.
4604
4605 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
4606
4607         * config/i386/i386.md (ROUND_FLOOR): New constant.
4608         (ROUND_CEIL): Ditto.
4609         (ROUND_TRUNC): Ditto.
4610         (ROUND_MXCSR): Ditto.
4611         (ROUND_NO_EXC): Ditto.
4612         (rint<mode>2): Use new defines instead of numerical constants.
4613         (floor<mode>2): Ditto.
4614         (ceil<mode>2): Ditto.
4615         (btrunc<mode>2): Ditto.
4616         * config/i386/i386-builtin-types.def: Define ROUND function type
4617         aliases.
4618         * config/i386/i386.c (enum ix86_builtins): Add
4619         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
4620         (struct builtin_description): Add
4621         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
4622         (ix86_expand_sse_round): New static function.
4623         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
4624         function types.
4625         (ix86_builtin_vectorized_function): Handle
4626         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
4627
4628 2011-03-14  Tom Tromey  <tromey@redhat.com>
4629
4630         * c-parser.c (c_parser_asm_string_literal): Clear
4631         warn_overlength_strings.
4632
4633 2011-03-14  Tom Tromey  <tromey@redhat.com>
4634
4635         * c-parser.c (disable_extension_diagnostics): Save
4636         warn_overlength_strings.
4637         (restore_extension_diagnostics): Restore warn_overlength_strings.
4638
4639 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
4640
4641         * BASE-VER: Change to 4.7.0.
4642
4643 2011-03-14  Richard Guenther  <rguenther@suse.de>
4644
4645         PR middle-end/48098
4646         * tree.c (build_vector_from_val): Adjust assert to requirements
4647         and reality.
4648
4649 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
4650
4651         PR bootstrap/48102
4652         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
4653
4654 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
4655
4656         * config/rs6000/freebsd.h: (RELOCATABLE_NEEDS_FIXUP): Define in
4657         terms of target_flags_explicit. Adjust copyright year.
4658
4659         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
4660         * config/rs6000/t-freebsd: New file. Add override for
4661         LIB2FUNCS_EXTRA.
4662
4663 2011-03-13  Chris Demetriou  <cgd@google.com>
4664
4665         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
4666         (-fno-diagnostics-show-option): this, to reflect current default.
4667         (-Werror=): Update text about -fno-diagnostics-show-option.
4668
4669 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
4670
4671         PR target/48053
4672         * config/rs6000/predicates.md (easy_vector_constant_add_self,
4673         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
4674         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
4675         mode is not V2DImode or V2DFmode.
4676         (vspltis_constant): Do not handle V2DImode and V2DFmode.
4677         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
4678         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
4679         registers to 0.
4680         (movdi_internal64): Likewise.
4681
4682 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
4683
4684         PR tree-optimization/47127
4685         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
4686         parameter.
4687         (set_cloog_options): Same.
4688         (scop_to_clast): Same.
4689         (print_clast_stmt): Do not call cloog_state_malloc and
4690         cloog_state_free.
4691         (print_generated_program): Same.
4692         (gloog): Same.
4693         * graphite-clast-to-gimple.h (cloog_state): Declared.
4694         (scop_to_clast): Adjust declaration.
4695         * graphite.c (cloog_state): Defined here.
4696         (graphite_initialize): Call cloog_state_malloc.
4697         (graphite_finalize): Call cloog_state_free.
4698
4699 2011-03-11  Jason Merrill  <jason@redhat.com>
4700
4701         * attribs.c (lookup_attribute_spec): Take const_tree.
4702         * tree.h: Adjust.
4703
4704 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
4705
4706         * config/sparc/sparc.c (sparc_option_override): Use
4707         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
4708
4709 2011-03-11  Richard Guenther  <rguenther@suse.de>
4710
4711         PR tree-optimization/48067
4712         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
4713         multiplication result will be only used once on the target
4714         stmt.
4715
4716 2011-03-11  Richard Guenther  <rguenther@suse.de>
4717
4718         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
4719
4720 2011-03-11  Richard Guenther  <rguenther@suse.de>
4721
4722         PR lto/48073
4723         * tree.c (find_decls_types_r): Do not walk types only reachable
4724         from IDENTIFIER_NODEs.
4725
4726 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
4727
4728         PR middle-end/48044
4729         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
4730         all vnode->force_output nodes as needed.
4731
4732 2011-03-11  Jason Merrill  <jason@redhat.com>
4733
4734         PR c++/48069
4735         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
4736         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
4737
4738 2011-03-11  Martin Jambor  <mjambor@suse.cz>
4739
4740         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
4741         cgraph_node.
4742
4743 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
4744
4745         PR tree-optimization/48063
4746         * ipa-inline.c (cgraph_decide_inlining): Don't try to
4747         inline functions called once if !tree_can_inline_p (node->callers).
4748
4749 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
4750
4751         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
4752         extra_objs.
4753         * config/score/score3.c: Delete.
4754         * config/score/score3.h: Delete.
4755         * config/score/mul-div.S: Delete.
4756         * config/score/sfp-machine.h: Add new file.
4757         * config/score/constraints.md: Add new file.
4758         * config/score/t-score-softfp: Add new file.
4759         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
4760         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
4761         (score7_extra_constraint): Delete.
4762         (score7_option_override): Remove unused code.
4763         * config/score/score.c: Remove score3 and score5 define and code.
4764         * config/score/score.h: Remove score3 and score5 define and code.
4765         * config/score/score.md: Remove score3 template and unusual insn.
4766         * config/score/score.opt: Remove score3 and score5 options.
4767
4768 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4769
4770         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
4771         when _HPUX_SOURCE is defined.
4772         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
4773
4774 2011-03-10  Jason Merrill  <jason@redhat.com>
4775
4776         PR c++/48029
4777         * stor-layout.c (layout_type): Don't set structural equality
4778         on arrays of incomplete type.
4779         * tree.c (type_hash_eq): Handle comparing them properly.
4780
4781 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
4782
4783         PR debug/48043
4784         * config/s390/s390.c (s390_delegitimize_address): Make sure the
4785         result mode matches original rtl mode.
4786
4787 2011-03-10  Nick Clifton  <nickc@redhat.com>
4788
4789         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
4790         (andsi3, andsi3_flags): Fix timings for three operand alternative.
4791
4792 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
4793
4794         PR rtl-optimization/47866
4795         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
4796         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
4797         if target wasn't scalar.
4798         * function.c (assign_stack_temp_for_type): Assert that neither
4799         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
4800         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
4801         macro.
4802         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
4803
4804 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4805
4806         * config/s390/s390-protos.h (s390_label_align): New prototype.
4807         * config/s390/s390.c (s390_label_align): New function.
4808         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
4809
4810 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
4811
4812         PR target/47755
4813         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
4814         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
4815         (output_vec_const_move): Ditto.
4816
4817 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
4818
4819         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
4820         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
4821         * config/mips/mips.c (mips_preferred_reload_class): Make static.
4822         Change 'rclass' argument and result type to reg_class_t.
4823         (TARGET_PREFERRED_RELOAD_CLASS): Define.
4824
4825 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
4826
4827         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
4828         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
4829         (TARGET_MEMORY_MOVE_COST): Define.
4830         (avr_register_move_cost, avr_memory_move_cost): New Functions.
4831
4832 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
4833
4834         PR debug/47881
4835         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
4836         removed anything.
4837
4838         PR tree-optimization/48022
4839         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
4840         for EQ/NE_EXPR.
4841
4842 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
4843
4844         PR debug/47991
4845         * var-tracking.c (find_use_val): Return NULL for
4846         cui->sets && cui->store_p BLKmode MEMs.
4847
4848 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
4849
4850         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
4851         Remove.
4852         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
4853         xstormy16_print_operand_address): Remove.
4854         * config/stormy16/stormy16.c (xstormy16_print_operand,
4855         xstormy16_print_operand_address): Make static.
4856         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
4857
4858 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
4859
4860         PR target/47862
4861         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
4862         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
4863         before definition.
4864
4865 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
4866
4867         PR bootstrap/48000
4868         * cfgloopmanip.c (fix_bb_placements): Return immediately
4869         if FROM is BASE_LOOP's header.
4870
4871 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
4872
4873         * gimplify.c (gimplify_function_tree): Fix building calls
4874         to __builtin_return_address.
4875
4876 2011-03-07  Alan Modra  <amodra@gmail.com>
4877
4878         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
4879         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
4880         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
4881         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
4882         return_mode args.
4883         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
4884         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
4885         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
4886         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
4887         * config/rs6000/rs6000.c
4888         (rs6000_elf_end_indicate_exec_stack): Rename to..
4889         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
4890         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
4891         (rs6000_file_start): ..here.
4892         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
4893         file scope variables.
4894         (call_ABI_of_interest): New function.
4895         (init_cumulative_args): Set above vars when function return value
4896         is a float, vector, or small struct.
4897         (rs6000_function_arg_advance_1): Likewise for function args.
4898         (rs6000_va_start): Set rs6000_passes_float if variable arg function
4899         references float args.
4900
4901 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
4902
4903         * doc/cfg.texi: Remove "See" before @ref.
4904         * doc/invoke.texi: Likewise.
4905
4906 2011-03-05  Jason Merrill  <jason@redhat.com>
4907
4908         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
4909
4910 2011-03-05  Anthony Green  <green@moxielogic.com>
4911
4912         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
4913
4914 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
4915
4916         PR rtl-optimization/47899
4917         * cfgloopmanip.c (fix_bb_placements): Fix first argument
4918         to flow_loop_nested_p when moving the loop upward.
4919
4920 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
4921
4922         PR target/47719
4923         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
4924
4925 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
4926
4927         PR tree-optimization/47967
4928         * ipa-cp.c (build_const_val): Return NULL instead of creating
4929         VIEW_CONVERT_EXPR for mismatching sizes.
4930         (ipcp_create_replace_map): Return NULL if build_const_val failed.
4931         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
4932         give up on versioning.
4933
4934 2011-03-05  Alan Modra  <amodra@gmail.com>
4935
4936         PR target/47986
4937         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
4938         full cmodel medium/large lo_sum + high addresses.
4939
4940 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4941
4942         * config/s390/s390.c (s390_decompose_address): Reject non-literal
4943         pool references in UNSPEC_LTREL_OFFSET.
4944
4945 2011-03-04  Jan Hubicka  <jh@suse.cz>
4946
4947         PR lto/47497
4948         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
4949         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
4950         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
4951         Add node pointers.
4952         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
4953         cgraph_add_thunk): Add node pointers.
4954         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
4955         associated to right node.
4956         (input_node): Update use of cgraph_same_body_alias
4957         and cgraph_add_thunk.
4958
4959 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
4960
4961         * config/i386/i386.opt (mprefer-avx128): New flag.
4962         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
4963         modes when the flag -mprefer-avx128 is on.
4964
4965 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
4966
4967         * dwarf2out.c (compare_loc_operands): Fix address handling.
4968
4969 2011-03-04  Alan Modra  <amodra@gmail.com>
4970
4971         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
4972
4973 2011-03-04  Richard Guenther  <rguenther@suse.de>
4974
4975         PR middle-end/47968
4976         * expmed.c (extract_bit_field_1): Prefer vector modes that
4977         vec_extract patterns can handle.
4978
4979 2011-03-04  Richard Guenther  <rguenther@suse.de>
4980
4981         PR middle-end/47975
4982         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
4983
4984 2011-03-04  Richard Henderson  <rth@redhat.com>
4985
4986         * explow.c (emit_stack_save): Remove 'after' parameter.
4987         (emit_stack_restore): Likewise.
4988         * expr.h: Update to match.
4989         * builtins.c, calls.c, stmt.c: Likewise.
4990         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
4991         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
4992         * function.c (expand_function_end): Insert the emit_stack_save
4993         sequence before parm_birth_insn instead of after.
4994
4995 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
4996
4997         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
4998         (ssse3_pmaddubsw128): Ditto.
4999         (ssse3_pmaddubsw): Ditto.
5000
5001 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
5002
5003         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
5004
5005 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
5006
5007         PR c/47963
5008         * gimplify.c (omp_add_variable): Only call omp_notice_variable
5009         on TYPE_SIZE_UNIT if it is a DECL.
5010
5011         PR debug/47283
5012         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
5013         first operand is not is_gimple_mem_ref_addr, try to fold it.
5014         If the operand still isn't is_gimple_mem_ref_addr, clear
5015         MEM_EXPR on op0.
5016
5017 2011-03-03  Richard Guenther  <rguenther@suse.de>
5018
5019         PR middle-end/47283
5020         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
5021         match comment.
5022         (refs_may_alias_p_1): For release branches return true if
5023         we are confused by our input.
5024
5025 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5026
5027         * config/s390/s390.c (s390_function_value): Rename to ...
5028         (s390_function_and_libcall_value): ... this.
5029         (s390_function_value): New function.
5030         (s390_libcall_value): New function.
5031         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
5032         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
5033         target macro definitions.
5034         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
5035
5036 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
5037
5038         * config/i386/freebsd64.h (CC1_SPEC): Define.
5039         * config/i386/linux64.h (CC1_SPEC): Define.
5040         * config/i386/x86-64.h (CC1_SPEC): Don't define.
5041
5042 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
5043
5044         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
5045         Remove.
5046         * config/stormy16/stormy16.c: Include reload.h.
5047         (xstormy16_memory_move_cost): New function.
5048         (TARGET_MEMORY_MOVE_COST): Define.
5049
5050 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
5051
5052         PR rtl-optimization/47925
5053         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
5054         with side effects.  Remove the more-specific check for volatile asms.
5055
5056 2011-03-02  Alan Modra  <amodra@gmail.com>
5057
5058         PR target/47935
5059         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
5060         toc relative addresses for valid offsets.
5061
5062 2011-03-01  Richard Guenther  <rguenther@suse.de>
5063
5064         PR tree-optimization/47890
5065         * tree-vect-loop.c (get_initial_def_for_induction): Set
5066         related stmt properly.
5067
5068 2011-03-01  Richard Guenther  <rguenther@suse.de>
5069
5070         PR lto/47924
5071         * lto-streamer.c (lto_record_common_node): Also register
5072         the canonical type.
5073
5074 2011-03-01  Richard Guenther  <rguenther@suse.de>
5075
5076         PR lto/46911
5077         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
5078         Do not stream DECL_ABSTRACT_ORIGIN.
5079         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
5080         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
5081         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
5082         Do not stream DECL_ABSTRACT_ORIGIN.
5083         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
5084         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
5085
5086 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
5087
5088         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
5089         FUNCTION_VALUE_REGNO_P): Remove.
5090         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
5091         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
5092         Add 'outgoing' argument.
5093         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
5094         function.
5095         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
5096         TARGET_FUNCTION_VALUE_REGNO_P): Define.
5097
5098 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
5099
5100         PR debug/28047
5101         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
5102         (lookup_filename): Likewise.
5103         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
5104
5105 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
5106             Jakub Jelinek  <jakub@redhat.com>
5107
5108         PR middle-end/47893
5109         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
5110         (assign_stack_local_1): Change last argument type to int.
5111         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
5112         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
5113         don't record padding space into frame_space_list nor use those areas.
5114         (assign_stack_local): Adjust caller.
5115         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
5116         of assign_stack_local, pass 0 as last argument.
5117         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
5118         callers.
5119
5120 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
5121
5122         PR debug/47283
5123         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
5124         Use target address_mode and pointer_mode hooks instead of hardcoded
5125         Pmode and ptr_mode.  Handle some simple cases of extending if
5126         POINTERS_EXTEND_UNSIGNED < 0.
5127         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
5128         Call convert_debug_memory_address.
5129         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
5130         convert_debug_memory_address.
5131
5132         PR middle-end/46790
5133         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
5134         * configure: Regenerated.
5135         * config.in: Regenerated.
5136         * varasm.c (default_function_section): Return NULL
5137         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
5138
5139 2011-02-28  Martin Jambor  <mjambor@suse.cz>
5140
5141         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
5142         the description to match the printed values.
5143
5144 2011-02-28  Richard Guenther  <rguenther@suse.de>
5145
5146         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
5147         of the copied scope tree.
5148
5149 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5150
5151         * doc/extend.texi (Function Attributes): Avoid deeply (and
5152         wrongly) nested tables.
5153
5154 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
5155
5156         PR middle-end/47903
5157         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
5158         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
5159         r isn't op0 nor op1.
5160
5161 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
5162
5163         * config/avr/avr.md: Remove magic comment for emacs.
5164
5165 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
5166
5167         PR target/45261
5168         * config/avr/avr.c (avr_option_override): Use error on bad options.
5169         (avr_help): New function.
5170         (TARGET_HELP): Define.
5171
5172 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
5173
5174         PR target/42240
5175         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
5176         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
5177
5178 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
5179
5180         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
5181         (ARM Options): Ditto.
5182         (i386 and x86-64 Options): Ditto.
5183         (RX Options): Ditto.
5184         (SPARC Options): Ditto.
5185
5186 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
5187
5188         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
5189         FreeBSD 6 and later.  Generally use cpu generic.
5190
5191 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
5192
5193         * doc/cpp.texi: Update copyright years.
5194
5195 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
5196
5197         PR target/46898
5198         * config/lm32/lm32.md (ashrsi3): Added needed variable.
5199
5200 2011-02-25  Jon Beniston  <jon@beniston.com>
5201
5202         PR target/46898
5203         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
5204         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
5205         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
5206         (lm32_block_move_inline): Add type cast to remove warning.
5207         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
5208         (gen_int_relational): Move declarations to start of function.
5209
5210 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
5211
5212         PR tree-optimization/45470
5213         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
5214         can throw internally only.
5215         * tree-vect-stmts.c (vectorizable_call): Likewise.
5216
5217 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
5218
5219         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
5220         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
5221         * config/stormy16/stormy16-protos.h
5222         (xstormy16_preferred_reload_class): Remove.
5223         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
5224         static. Change 'rclass' argument and return type to reg_class_t.
5225         (TARGET_PREFERRED_RELOAD_CLASS,
5226         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
5227
5228 2011-02-24  Richard Guenther  <rguenther@suse.de>
5229
5230         * lto-streamer-in.c (input_bb): Do not find referenced vars
5231         in debug statements.
5232
5233 2011-02-23  Jason Merrill  <jason@redhat.com>
5234
5235         * common.opt (fabi-version): Document v5 and v6.
5236
5237 2011-02-23  Richard Guenther  <rguenther@suse.de>
5238
5239         PR tree-optimization/47849
5240         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
5241
5242 2011-02-23  Jie Zhang  <jie@codesourcery.com>
5243
5244         * opts-common.c (decode_cmdline_option): Print empty string
5245         argument as "" in decoded->orig_option_with_args_text.
5246         * gcc.c (execute): Print empty string argument as ""
5247         in the verbose output.
5248         (do_spec_1): Keep empty string argument.
5249
5250 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
5251
5252         * config.gcc: Declare score-* and crx-* obsolete.
5253
5254 2011-02-23  Jie Zhang  <jie@codesourcery.com>
5255
5256         PR rtl-optimization/47763
5257         * web.c (web_main): Ignore naked clobber when replacing register.
5258
5259 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
5260
5261         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
5262         Remove.
5263
5264 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
5265
5266         PR doc/47848
5267         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
5268
5269 2011-02-22  Mike Stump  <mikestump@comcast.net>
5270
5271         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
5272         assembler.
5273         * configure: Regenerate.
5274
5275 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
5276
5277         PR rtl-optimization/46002
5278         * ira-color.c (update_copy_costs): Change class intersection
5279         test to reg_class_contents[] test of 'hard_regno'.
5280
5281 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
5282
5283         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
5284         than Driver option.
5285         * config/hpux11.opt (mt): Likewise.
5286         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
5287         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
5288         * config/vax/elf.opt (mno-asm-pic): Likewise.
5289         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
5290
5291 2011-02-21  Mike Stump  <mikestump@comcast.net>
5292
5293         PR target/47822
5294         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
5295         tree so we can get save the type.
5296         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
5297         for CFString instead of trying to use past the end of the builtins.
5298         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
5299         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
5300         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
5301         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
5302         Rename to darwin_builtin_cfstring.
5303         (darwin_init_cfstring_builtins): Return the built type.
5304
5305 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
5306
5307         PR target/47840
5308         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
5309         (_mm256_insert_epi64): Use _mm_insert_epi64.
5310
5311 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
5312
5313         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
5314         * config/stormy16/stormy16-protos.h
5315         (xstormy16_mode_dependent_address_p): Remove.
5316         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
5317         Make static. Change return type to bool. Change argument type to
5318         const_rtx. Remove dead code.
5319         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
5320
5321 2011-02-21  Richard Guenther  <rguenther@suse.de>
5322
5323         PR lto/47820
5324         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
5325         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
5326         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
5327         TUs context.
5328         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
5329         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
5330
5331 2011-02-20  Richard Guenther  <rguenther@suse.de>
5332
5333         PR lto/47822
5334         * tree.c (free_lang_data_in_decl): Clean builtins from
5335         the TU decl BLOCK_VARS.
5336
5337 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
5338
5339         PR debug/47620
5340         PR debug/47630
5341         * haifa-sched.c (fix_tick_ready): Skip tick computation
5342         for debug insns.
5343
5344 2011-02-19  Richard Guenther  <rguenther@suse.de>
5345
5346         PR lto/47647
5347         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
5348         Remove lazy BLOCK_VARS streaming.
5349         (lto_input_ts_block_tree_pointers): Likewise.
5350         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
5351
5352 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
5353
5354         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
5355
5356 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
5357
5358         * config/i386/biarch32.h, config/i386/mach.h,
5359         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
5360
5361 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
5362
5363         PR target/47800
5364         * config/i386/i386.md (peephole2 for shift and plus): Use
5365         operands[1] original mode in the first insn.
5366
5367 2011-02-18  Mike Stump  <mikestump@comcast.net>
5368
5369         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
5370
5371 2011-02-18  Jan Hubicka  <jh@suse.cz>
5372
5373         PR middle-end/47788
5374         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
5375         to zero when the function is not inlinable at all.
5376
5377 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5378
5379         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
5380         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
5381         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
5382         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
5383         * config/pa/t-pa64: Likewise.
5384         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
5385
5386 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
5387
5388         PR driver/47787
5389         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
5390
5391 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5392
5393         PR target/47792
5394         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
5395
5396 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
5397
5398         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
5399         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
5400         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
5401         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
5402         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
5403         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
5404         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
5405         m32r_load_postinc_p, m32r_store_preinc_predec_p,
5406         m32r_legitimate_address_p): New functions.
5407         * config/m32r/constraints.md (constraint "S"): Don't use
5408         STORE_PREINC_PREDEC_P.
5409         (constraint "U"): Don't use LOAD_POSTINC_P.
5410
5411 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
5412
5413         PR rtl-optimization/46178
5414         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
5415         compute ira_hard_regno_cover_class[].
5416
5417 2011-02-18  Richard Guenther  <rguenther@suse.de>
5418
5419         PR lto/47798
5420         * lto-streamer.h (lto_global_var_decls): Declare.
5421         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
5422         statics for global var processing.
5423
5424 2011-02-18  Richard Guenther  <rguenther@suse.de>
5425
5426         PR tree-optimization/47737
5427         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
5428         edge dominance check.
5429
5430 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
5431
5432         PR debug/47780
5433         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
5434         avoid invalid rtx sharing.
5435
5436 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
5437
5438         * doc/cpp.texi (Obsolete Features): Add background on the
5439         origin of assertions.
5440
5441 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
5442
5443         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
5444         objc_abi == 2.
5445         * config/darwin.c (output_objc_section_asm_op): Added support for
5446         ABI v1 and v2.
5447         (is_objc_metadata): New.
5448         (darwin_objc2_section): New.
5449         (darwin_objc1_section): New.
5450         (machopic_select_section): Added support for ABI v1 and v2.
5451         (darwin_emit_objc_zeroed): New.
5452         (darwin_output_aligned_bss): Detect objc metadata and treat it
5453         appropriately.
5454         (darwin_asm_output_aligned_decl_common): Same.
5455         (darwin_asm_output_aligned_decl_local): Same.
5456         * config/darwin-sections.def: Updated for ABI v1 and v2.
5457         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
5458         compiling Objective-C code for the NeXT runtime, default to using
5459         ABI version 0 for 32-bit, and version 2 for 64-bit.
5460
5461 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
5462
5463         * common.opt (optimize_fast): New Variable.
5464         * opts.c (default_options_optimization): Use opts->x_optimize_fast
5465         instead of local variable ofast.
5466
5467 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
5468
5469         * doc/invoke.texi (fobjc-abi-version): Documented.
5470         (fobjc-nilcheck): Documented.
5471         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
5472         version.
5473
5474 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
5475
5476         PR driver/47390
5477         * common.opt (export-dynamic): New Driver option.
5478         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
5479
5480 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
5481
5482         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
5483
5484 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
5485             Jan Hubicka  <jh@suse.cz>
5486
5487         PR debug/47106
5488         PR debug/47402
5489         * cfgexpand.c (account_used_vars_for_block): Remove.
5490         (estimated_stack_frame_size): Use referenced vars.
5491         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
5492         that were referenced in the original function.  Test src_fn
5493         rather than cfun.  Drop redundant get_var_ann.
5494         (setup_one_parameter): Drop redundant get_var_ann.
5495         (declare_return_variable): Likewise.
5496         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
5497         (copy_arguments_for_versioning): Drop redundant get_var_ann.
5498         * ipa-inline.c (compute_inline_parameters): Do not compute
5499         disregard_inline_limits here.
5500         (compute_inlinable_for_current, pass_inlinable): New.
5501         (pass_inline_parameters): Require PROP_referenced_vars.
5502         * cgraphunit.c (cgraph_process_new_functions): Don't run
5503         compute_inline_parameters explicitly unless function is in SSA form.
5504         (cgraph_analyze_function): Set .disregard_inline_limits.
5505         * tree-sra.c (convert_callers): Compute inliner parameters
5506         only for functions already in SSA form.
5507
5508 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
5509
5510         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
5511         -mlittle-endian-data.
5512
5513 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
5514
5515         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
5516         -mno-fpu, not -fpu and -no-fpu.
5517         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
5518         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
5519
5520 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
5521
5522         PR target/43653
5523         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
5524         input reload with PLUS RTX.
5525
5526 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
5527
5528         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
5529         of InverseVar(MDMX).
5530
5531 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
5532
5533         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
5534         --m4-340.
5535
5536 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
5537
5538         * config/mn10300/mn10300.opt (mno-crt0): New.
5539
5540 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
5541
5542         * config/m68k/uclinux.opt (static-libc): New Driver option.
5543
5544 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
5545
5546         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
5547
5548 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
5549
5550         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
5551         %{muser-extend-enabled}.
5552
5553 2011-02-16  Richard Guenther  <rguenther@suse.de>
5554
5555         PR tree-optimization/47738
5556         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
5557         the TODO from tree_predictive_commoning.
5558
5559 2011-02-15  Jeff Law  <law@redhat.com>
5560
5561         Revert
5562         2011-01-25  Jeff Law  <law@redhat.com>
5563
5564         PR rtl-optimization/37273
5565         * ira-costs.c (scan_one_insn): Detect constants living in memory and
5566         handle them like argument loads from stack slots.  Do not double
5567         count memory for memory constants and argument loads from stack slots.
5568
5569 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
5570
5571         PR middle-end/47725
5572         * combine.c (cant_combine_insn_p): Revert the last change.
5573
5574 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
5575
5576         PR target/47755
5577         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
5578         mode for vector constants.  Remove code that checks for TImode.
5579
5580 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
5581
5582         PR debug/47106
5583         PR debug/47402
5584         * cgraph.h (compute_inline_parameters): Return void.
5585         * ipa-inline.c (compute_inline_parameters): Adjust.
5586
5587 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
5588
5589         PR debug/47106
5590         PR debug/47402
5591         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
5592         rather than decl.
5593         * cfgexpand.c (estimated_stack_frame_size): Likewise.
5594         * ipa-inline.c (compute_inline_parameters): Adjust.
5595
5596 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
5597
5598         PR debug/47106
5599         PR debug/47402
5600         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
5601         Adjust all users.  Pass FN to...
5602         * tree-flow-inline.h (first_referenced_var): ... this.  Add
5603         fn argument.
5604         * ipa-struct-reorg.c: Adjust.
5605         * tree-dfa.c: Adjust.
5606         * tree-into-ssa.c: Adjust.
5607         * tree-sra.c: Adjust.
5608         * tree-ssa-alias.c: Adjust.
5609         * tree-ssa-live.c: Adjust.
5610         * tree-ssa.c: Adjust.
5611         * tree-ssanames.c: Adjust.
5612         * tree-tailcall.c: Adjust.
5613
5614 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
5615
5616         PR debug/47106
5617         PR debug/47402
5618         * tree-flow.h (referenced_var_lookup): Add fn parameter.
5619         Adjust all callers.
5620         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
5621         * tree-flow-inline.h: Adjust.
5622         * gimple-pretty-print.c: Adjust.
5623         * tree-into-ssa.c: Adjust.
5624         * tree-ssa.c: Adjust.
5625         * cfgexpand.c: Adjust.
5626
5627 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
5628
5629         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
5630         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
5631         (EXTRA_CONSTRAINT): Delete.
5632         * config/iq2000/constraints.md: New file.
5633         * config/iq2000/iq2000.md: Include it.
5634         (define_insn ""): Delete.
5635         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
5636         unsupported constraint letters from patterns.
5637         (call_value, call_value_internal1): Likewise.
5638         (call_value_multiple_internal1): Likewise.
5639
5640 2011-02-15  Nick Clifton  <nickc@redhat.com>
5641
5642         * config/mn10300/mn10300.c: Include tm-constrs.h.
5643         (struct liw_data): New data structure describing an LIW candidate
5644         instruction.
5645         (extract_bundle): Use struct liw_data.  Allow small integer
5646         operands for some instructions.
5647         (check_liw_constraints): Use struct liw_data.  Remove swapped
5648         parameter.  Add comments describing the checks.  Fix bug when
5649         assigning the source of liw1 to the source of liw2.
5650         (liw_candidate): Delete.  Code moved into extract_bundle.
5651         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
5652         before swapping.
5653         * config/mn10300/predicates.md (liw_operand): New predicate.
5654         Allows registers and small integer constants.
5655         * config/mn10300/constraints.md (O): New constraint.  Accetps
5656         integers in the range -8 to +7 inclusive.
5657         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
5658         for moving a small integer into a register.  Give this alternative
5659         LIW attributes.
5660         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
5661         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
5662         using the J,K,L and M constraints,
5663         (liw): Remove SI mode on second operands to allow for HI and QI
5664         mode values.
5665         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
5666         instruction.
5667
5668 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
5669
5670         PR middle-end/47725
5671         * combine.c (cant_combine_insn_p): Check zero/sign extended
5672         hard registers.
5673
5674 2011-02-15  Richard Guenther  <rguenther@suse.de>
5675
5676         PR tree-optimization/47743
5677         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
5678         for a non-type-compatible VN lookup bail out.
5679
5680 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
5681
5682         * config/fr30/constraints.md: New file.
5683         * config/fr30/fr30.md: Include it.
5684         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
5685         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
5686         (EXTRA_CONSTRAINT): Delete.
5687
5688 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
5689
5690         * config/frv/constraints.md: New file.
5691         * config/frv/predicates.md: Include it.
5692         * config/frv/frv.c (reg_class_from_letter): Delete.
5693         (frv_option_override): Don't initialize it.
5694         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
5695         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
5696         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
5697         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
5698         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
5699         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
5700         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
5701         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
5702         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
5703         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
5704         (REG_CLASS_FROM_CONSTRAINT): Delete.
5705
5706 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
5707
5708         PR middle-end/47581
5709         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
5710         if frame size is 0 in a leaf function.
5711
5712 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5713
5714         PR pch/14940
5715         * config/alpha/host-osf.c: New file.
5716         * config/alpha/x-osf: New file.
5717         * config.host (alpha*-dec-osf*): Use it.
5718
5719 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
5720
5721         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
5722         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
5723         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
5724         (rx_mode_dependent_address_p): ...this. Make static. Change argument
5725         type to const_rtx.
5726         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
5727
5728 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
5729
5730         * config/stormy16/constraints.md: New file.
5731         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
5732         Use satisfies_constraint_Q and satisfies_constraint_R.
5733         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
5734         Delete.
5735         (xstormy16_legitiamte_address_p): Declare.
5736         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
5737         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
5738         (EXTRA_CONSTRAINT): Delete.
5739         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
5740         Un-staticize.
5741         (xstormy16_extra_constraint_p): Delete.
5742
5743 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
5744
5745         PR tree-optimization/46494
5746         * loop-unroll.c (split_edge_and_insert): Adjust comment.
5747         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
5748         (pass_rtl_loop_done): Add TODO_verify_flow.
5749         * fwprop.c (pass_rtl_fwprop): Likewise.
5750         * modulo-sched.c (pass_sms): Likewise.
5751         * tree-ssa-dom.c (pass_dominator): Likewise.
5752         * tree-ssa-loop-ch.c (pass_ch): Likewise.
5753         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
5754         (pass_tree_loop_done): Likewise.
5755         * tree-ssa-pre.c (execute_pre): Likewise.
5756         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
5757         * tree-ssa-sink.c (pass_sink_code): Likewise.
5758         * tree-vrp.c (pass_vrp): Likewise.
5759
5760 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
5761
5762         * config/v850/constraints.md: New file.
5763         * config/v850/v850.md: Include it.
5764         * config/v850/predicates.md (reg_or_0_operand): Use
5765         satisfies_constraint_G.
5766         (special_symbolref_operand): Use satisfies_constraint_K.
5767         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
5768         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
5769         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
5770         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
5771         (EXTRA_CONSTRAINT): Delete.
5772         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
5773         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
5774         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
5775
5776 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
5777
5778         PR target/47696
5779         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
5780         description.
5781
5782 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
5783
5784         * config/mcore/constraints.md: New file.
5785         * config/mcore/mcore.md: Include it.
5786         * config/mcore/mcore.c (reg_class_from_letter): Delete.
5787         * config/mcore/mcore.h (reg_class_from_letter): Delete.
5788         (REG_CLASS_FROM_LETTER): Delete.
5789         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
5790         insn_const_int_ok_for_constraint.
5791         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
5792         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
5793         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
5794         (EXTRA_CONSTRAINT): Delete.
5795
5796 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5797
5798         PR ada/41929
5799         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
5800         (IS_SIGHANDLER): Define.
5801         (sparc64_is_sighandler): New function, split off from
5802         sparc64_fallback_frame_state.
5803         (sparc_is_sighandler): New function, split off from
5804         sparc_fallback_frame_state.
5805         (sparc64_fallback_frame_state): Merge with ...
5806         (sparc_fallback_frame_state): ... this into ...
5807         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
5808         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
5809         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
5810         stack instead of hardcoded offsets.
5811
5812 2011-02-14  Andriy Gapon  <avg@freebsd.org>
5813
5814         PR target/45808
5815         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
5816
5817 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5818
5819         * configure: Regenerate.
5820
5821 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
5822
5823         PR driver/45731
5824         * gcc.c (asm_options): Correct spec matching --target-help.
5825
5826 2011-02-12  Martin Jambor  <mjambor@suse.cz>
5827
5828         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
5829         to gimple call error.
5830
5831 2011-02-12  Mike Stump  <mikestump@comcast.net>
5832
5833         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
5834         comments in backslash regions.
5835
5836 2011-02-12  Mike Stump  <mikestump@comcast.net>
5837             Jakub Jelinek  <jakub@redhat.com>
5838             Iain Sandoe  <iains@gcc.gnu.org>
5839
5840         PR target/47324
5841         * dwarf2out.c (output_cfa_loc): When required, apply the
5842         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
5843         (output_loc_sequence): Likewise.
5844         (output_loc_operands_raw): Likewise.
5845         (output_loc_sequence_raw): Likewise.
5846         (output_cfa_loc): Likewise.
5847         (output_loc_list): Suppress register number adjustment when
5848         calling output_loc_sequence()
5849         (output_die): Likewise.
5850
5851 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
5852
5853         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
5854         Remove macros.
5855         * config/xtensa/xtensa.c (xtensa_register_move_cost,
5856         xtensa_memory_move_cost): New functions.
5857         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
5858
5859 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
5860
5861         PR lto/47225
5862         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
5863         in the current directory.
5864         * configure: Rebuilt.
5865
5866 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
5867
5868         * config/darwin.c (darwin_override_options): Add a hunk missed
5869         from the commit of r168571.  Trim comment line lengths and
5870         correct indents of the preceding block.
5871
5872 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
5873
5874         * gcc.c (driver_handle_option): Concatenate the argument to -F with
5875         the switch.
5876
5877 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
5878
5879         * common.opt (nostartfiles): New Driver option.
5880
5881 2011-02-11  Xinliang David Li  <davidxl@google.com>
5882
5883         PR tree-optimization/47707
5884         * tree-chrec.c (convert_affine_scev): Keep type precision.
5885
5886 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
5887
5888         PR tree-optimization/47420
5889         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
5890
5891 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
5892
5893         PR rtl-optimization/47614
5894         * rtl.h (check_for_inc_dec): Declare.
5895         * dse.c (check_for_inc_dec): Externalize...
5896         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
5897         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
5898
5899 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
5900
5901         PR driver/47678
5902         * gcc.c (main): Do not compile inputs if there were errors in
5903         option handling.
5904         * opts-common.c (read_cmdline_option): Check for wrong language
5905         after other error checks.
5906
5907 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
5908
5909         * cgraph.c: Fix comment typos.
5910         * cgraph.h: Likewise.
5911         * cgraphunit.c: Likewise.
5912         * ipa-cp.c: Likewise.
5913         * ipa-inline.c: Likewise.
5914         * ipa-prop.c: Likewise.
5915         * ipa-pure-const.c: Likewise.
5916         * ipa-ref.c: Likewise.
5917         * ipa-reference.c: Likewise.
5918
5919 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
5920
5921         PR debug/47684
5922         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
5923
5924 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5925
5926         PR testsuite/47400
5927         * doc/sourcebuild.texi (Require Support): Document
5928         dg-require-ascii-locale.
5929
5930 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
5931
5932         * doc/lto.texi (Write summary): Fix missing parentheses.
5933
5934 2011-02-10  DJ Delorie  <dj@redhat.com>
5935
5936         * config/m32c/m32c.c (m32c_option_override): Disable
5937         -fcombine-stack-adjustments until flag value tracking and compare
5938         optimization can be rewritten.
5939
5940 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
5941
5942         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
5943         PROCESSOR_POWER7.
5944         (PROCESSOR_DEFAULT64): Likewise.
5945
5946 2011-02-10  Richard Henderson  <rth@redhat.com>
5947
5948         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
5949         change from 2011-02-03.
5950         * config/rx/rx.c (flags_from_code): Likewise.
5951         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
5952         is valid, n/pz otherwise.
5953         (rx_select_cc_mode): Return CCmode if Y is not zero.
5954
5955 2011-02-10  Richard Guenther  <rguenther@suse.de>
5956
5957         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
5958
5959 2011-02-10  Richard Guenther  <rguenther@suse.de>
5960
5961         PR tree-optimization/47677
5962         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
5963
5964 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
5965
5966         PR target/47665
5967         * combine.c (make_compound_operation): Only change shifts into
5968         multiplication for SCALAR_INT_MODE_P.
5969
5970 2011-02-10  Jie Zhang  <jie@codesourcery.com>
5971
5972         PR testsuite/47622
5973         Revert
5974         2011-02-05  Jie Zhang  <jie@codesourcery.com>
5975         PR debug/42631
5976         * web.c (entry_register): Don't clobber the number of the
5977         first uninitialized reference in used[].
5978
5979 2011-02-09  Richard Guenther  <rguenther@suse.de>
5980
5981         PR tree-optimization/47664
5982         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
5983         all edges again.
5984
5985 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
5986
5987         PR target/46481
5988         PR target/47032
5989         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
5990         PROCESSOR_POWER7.
5991         (PROCESSOR_DEFAULT64): Same.
5992         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
5993
5994 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5995
5996         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
5997
5998 2011-02-09  Martin Jambor  <mjambor@suse.cz>
5999
6000         PR middle-end/45505
6001         * tree-sra.c (struct access): New flags grp_scalar_read and
6002         grp_scalar_write.  Changed description of assignment read and write
6003         flags.
6004         (dump_access): Dump new flags, reorder all of them.
6005         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
6006         to detect multiple scalar reads.
6007         (analyze_access_subtree): Use the new scalar read write flags instead
6008         of the old flags.  Adjusted comments.
6009
6010 2011-02-08  DJ Delorie  <dj@redhat.com>
6011
6012         PR target/47548
6013         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
6014         patterns.
6015
6016 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
6017
6018         * config/m68k/uclinux.opt: New.
6019         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
6020
6021 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
6022
6023         * config/cris/elf.opt (sim): New Driver option.
6024
6025 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
6026
6027         * config/xtensa/elf.opt: New.
6028         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
6029
6030 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
6031
6032         * config/vax/elf.opt: New.
6033         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
6034
6035 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
6036
6037         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
6038
6039 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
6040
6041         * config/gnu-user.opt: New.
6042         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
6043         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
6044         *-*-uclinux*): Use gnu-user.opt.
6045
6046 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
6047
6048         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
6049         * config/i386/gnu.h (CPP_SPEC): Likewise.
6050
6051 2011-02-08  Ian Lance Taylor  <iant@google.com>
6052
6053         * common.opt (fcx-limited-range): Add SetByCombined flag.
6054         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
6055         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
6056         (fassociative-math, freciprocal-math): Likewise.
6057         (funsafe-math-optimizations): Likewise.
6058         * opth-gen.awk: Handle SetByCombined.
6059         * optc-gen.awk: Likewise.
6060         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
6061         (set_unsafe_math_optimizations_flags): Likewise.
6062         * doc/options.texi (Option properties): Document SetByCombined.
6063
6064 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
6065
6066         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
6067         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
6068         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
6069         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
6070         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
6071
6072 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
6073
6074         PR tree-optimization/46834
6075         PR tree-optimization/46994
6076         PR tree-optimization/46995
6077         * graphite-sese-to-poly.c (used_outside_reduction): New.
6078         (detect_commutative_reduction): Call used_outside_reduction.
6079         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
6080         translate_scalar_reduction_to_array only when at least one
6081         loop-phi/close-phi tuple has been detected.
6082
6083 2011-02-08  Richard Guenther  <rguenther@suse.de>
6084
6085         PR middle-end/47639
6086         * tree-vect-generic.c (expand_vector_operations_1): Update
6087         stmts here ...
6088         (expand_vector_operations): ... not here.  Cleanup EH info
6089         and the CFG if required.
6090
6091 2011-02-08  Richard Guenther  <rguenther@suse.de>
6092
6093         PR tree-optimization/47641
6094         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
6095         require type compatibility.
6096
6097 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6098
6099         * gimple-low.c (lower_function_body): Don't remove the location of
6100         the return statement here.
6101         (lower_gimple_return): Do it here instead but only if the return
6102         statement is actually used twice.
6103
6104 2011-02-08  Richard Guenther  <rguenther@suse.de>
6105
6106         PR tree-optimization/47632
6107         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
6108         unused up_to_stmt parameter, return whether cfg-cleanup is
6109         necessary, remove EH info properly.
6110         (forward_propagate_into_gimple_cond): Adjust caller.
6111         (forward_propagate_into_cond): Likewise.
6112         (forward_propagate_comparison): Likewise.
6113         (tree_ssa_forward_propagate_single_use_vars): Make
6114         forward_propagate_comparison case similar to the two others.
6115
6116 2011-02-08  Nick Clifton  <nickc@redhat.com>
6117
6118         * config/mn10300/mn10300.opt (mliw): New command line option.
6119         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
6120         (liw_bundling): New automaton.
6121         (liw): New attribute.
6122         (liw_op): New attribute.
6123         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
6124         (movsi_internal): Add LIW attributes.
6125         (andsi3): Likewise.
6126         (iorsi3): Likewise.
6127         (xorsi3): Likewise.
6128         (addsi3): Separate register and immediate alternatives.
6129         Add LIW attributes.
6130         (subsi3): Likewise.
6131         (cmpsi): Likewise.
6132         (aslsi3): Likewise.
6133         (lshrsi3): Likewise.
6134         (ashrsi3): Likewise.
6135         (liw): New pattern.
6136         * config/mn10300/mn10300.c (liw_op_names): New
6137         (mn10300_print_operand): Handle 'W' operand descriptor.
6138         (extract_bundle): New function.
6139         (check_liw_constraints): New function.
6140         (liw_candidate): New function.
6141         (mn10300_bundle_liw): New function.
6142         (mn10300_reorg): New function.
6143         (TARGET_MACHINE_DEPENDENT_REORG): Define.
6144         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
6145         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
6146         __LIW__ or __NO_LIW__.
6147         * doc/invoke.texi: Describe the -mliw command line option.
6148
6149 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6150
6151         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
6152         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
6153         pthread_mutex_unlock): Remove.
6154         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
6155         * config/pa/t-pa64: Likewise.
6156         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
6157         shared libc if not linking against libpthread.
6158         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
6159
6160 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
6161
6162         PR target/47558
6163         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
6164         on 10.6 and later to ensure that we always use the unwinder from
6165         the system.  Only add -no_compact_unwind when tarteting darwin
6166         10.6 or later.
6167
6168 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
6169
6170         PR target/46997
6171         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
6172         (vec_interleave_lowv2sf): Ditto.
6173         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
6174         (vec_extract_oddv2sf): Ditto.
6175
6176 2011-02-07  Mike Stump  <mikestump@comcast.net>
6177
6178         PR target/42333
6179         Add __ieee_divdc3 entry point.
6180         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
6181         entry point.
6182         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
6183         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
6184         * config/darwin.c (darwin_rename_builtins): Add.
6185         * config/darwin-protos.h (darwin_rename_builtins): Add.
6186
6187 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
6188
6189         PR target/47636
6190         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
6191         for the condition.
6192
6193 2011-02-07  Mike Stump  <mikestump@comcast.net>
6194
6195         * config/darwin.opt (mmacosx-version-min): Update default OS version.
6196
6197 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
6198
6199         PR target/47534
6200         * config/avr/libgcc.S (exit): Move .endfunc
6201
6202 2011-02-07  Richard Guenther  <rguenther@suse.de>
6203
6204         PR tree-optimization/47615
6205         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
6206         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
6207         (run_scc_vn): Initialize it.
6208         (visit_reference_op_load): Use it.
6209         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
6210
6211 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6212
6213         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
6214         DImode trapping arithmetic libfuncs.
6215
6216 2011-02-07  Richard Guenther  <rguenther@suse.de>
6217
6218         PR tree-optimization/47621
6219         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
6220         two duplicates ...
6221         (execute_update_addresses_taken): ... here.  Make it more
6222         conservative in what we accept.
6223
6224 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
6225
6226         * config/sparc/freebsd.h (ASM_SPEC): Define.
6227         * config/sparc/vxworks.h (ASM_SPEC): Define.
6228
6229 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
6230
6231         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
6232
6233 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
6234
6235         * doc/invoke.texi: Remove reference to compiler internals from
6236         user documentation.
6237
6238         * reg-notes.def: Remove REG_VALUE_PROFILE.
6239         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
6240
6241 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
6242
6243         PR middle-end/47610
6244         * varasm.c (default_section_type_flags): If decl is NULL,
6245         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
6246
6247 2011-02-05  Jie Zhang  <jie@codesourcery.com>
6248
6249         PR debug/42631
6250         * web.c (entry_register): Don't clobber the number of the
6251         first uninitialized reference in used[].
6252
6253 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
6254
6255         PR tree-optimization/46194
6256         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
6257         (build_classic_dist_vector_1): Do not represent classic distance
6258         vectors when the access functions are variating in different loops.
6259
6260 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
6261
6262         * config/mips/iris6.opt: New.
6263         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
6264
6265 2011-02-04  Richard Henderson  <rth@redhat.com>
6266             Steve Ellcey  <sje@cup.hp.com>
6267
6268         PR target/46997
6269         * config/ia64/predicates.md (mux1_brcst_element): New.
6270         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
6271         * config/ia64/ia64.c (ia64_unpack_assemble): New.
6272         (ia64_unpack_sign): New.
6273         (ia64_expand_unpack): Rewrite using new routines.
6274         (ia64_expand_widen_sum): Ditto.
6275         (ia64_expand_dot_prod_v8qi): Ditto.
6276         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
6277         routines, add endian check.
6278         (pmpy2_even): Rename from pmpy2_r, add endian check.
6279         (pmpy2_odd): Rename from pmpy2_l, add endian check.
6280         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
6281         (vec_widen_smult_hi_v4hi): Ditto.
6282         (vec_widen_umult_lo_v4hi): Ditto.
6283         (vec_widen_umult_hi_v4hi): Ditto.
6284         (mulv2si3): Change endian checks.
6285         (sdot_prodv4hi): Rewrite with new calls.
6286         (udot_prodv4hi): New.
6287         (vec_pack_ssat_v4hi): Add endian check.
6288         (vec_pack_usat_v4hi): Ditto.
6289         (vec_pack_ssat_v2si): Ditto.
6290         (max1_even): Rename from max1_r, add endian check.
6291         (max1_odd): Rename from max1_l, add endian check.
6292         (*mux1_rev): Format change.
6293         (*mux1_mix): Ditto.
6294         (*mux1_shuf): Ditto.
6295         (*mux1_alt): Ditto.
6296         (*mux1_brcst_v8qi): Use new predicate.
6297         (vec_extract_evenv8qi): Remove endian check.
6298         (vec_extract_oddv8qi): Ditto.
6299         (vec_interleave_lowv4hi): Format change.
6300         (vec_interleave_highv4hi): Ditto.
6301         (mix2_even): Rename from mix2_r, add endian check.
6302         (mix2_odd): Rename from mux2_l, add endian check.
6303         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
6304         (vec_extract_evenodd_helper): Format change.
6305         (vec_extract_evenv4hi): Remove endian check.
6306         (vec_extract_oddv4hi): Remove endian check.
6307         (vec_interleave_lowv2si): Format change.
6308         (vec_interleave_highv2si): Format change.
6309         (vec_initv2si): Remove endian check.
6310         (vecinit_v2si): Add endian check.
6311         (reduc_splus_v2sf): Add endian check.
6312         (reduc_smax_v2sf): Ditto.
6313         (reduc_smin_v2sf): Ditto.
6314         (vec_initv2sf): Remove endian check.
6315         (fpack): Add endian check.
6316         (fswap): Add endian check.
6317         (vec_interleave_highv2sf): Add endian check.
6318         (vec_interleave_lowv2sf): Add endian check.
6319         (fmix_lr): Add endian check.
6320         (vec_setv2sf): Format change.
6321         (*vec_extractv2sf_0_be): Use shift to extract operand.
6322         (*vec_extractv2sf_1_be): New.
6323         (vec_pack_trunc_v4hi): Add endian check.
6324         (vec_pack_trunc_v2si): Format change.
6325
6326 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
6327
6328         PR inline-asm/23200
6329         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
6330         do bb, locus and block comparison and disallow loads if it is not set.
6331         (stmt_is_replaceable_p): New function.
6332         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
6333         callers.
6334         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
6335         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
6336         SSA_NAME_DEF_STMT.
6337         * tree-flow.h (stmt_is_replaceable_p): New prototype.
6338
6339 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
6340
6341         * config/rs6000/xilinx.opt: New.
6342         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
6343
6344 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
6345
6346         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
6347
6348 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
6349
6350         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
6351         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
6352         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
6353         secondary_reload_info, xtensa_secondary_reload): Remove.
6354         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
6355         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
6356         (xtensa_preferred_reload_class): Make static. Change return and
6357         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
6358         Use CONST_DOUBLE_P predicate.
6359         (xtensa_preferred_output_reload_class): New function.
6360         (xtensa_secondary_reload): Make static.
6361
6362 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
6363
6364         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
6365         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
6366         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
6367
6368 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
6369
6370         PR middle-end/31490
6371         * output.h (SECTION_RELRO): Define.
6372         (SECTION_MACH_DEP): Adjust.
6373         (get_variable_section): New prototype.
6374         * varpool.c (varpool_finalize_named_section_flags): New function.
6375         (varpool_assemble_pending_decls): Call it.
6376         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
6377         * cgraphunit.c (cgraph_output_in_order): Call
6378         varpool_finalize_named_section_flags.
6379         * varasm.c (get_section): Allow section flags conflicts between
6380         relro and read-only sections if the section hasn't been declared yet.
6381         Set SECTION_OVERRIDE after diagnosing section type conflict.
6382         (get_variable_section): No longer static.
6383         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
6384         readonly sections that need relocations.
6385         (decl_readonly_section_1): New function.
6386         (decl_readonly_section): Use it.
6387
6388         Revert:
6389         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
6390                     Steve Ellcey  <sje@cup.hp.com>
6391
6392         PR middle-end/31490
6393         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
6394         if section attribute used.
6395
6396 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
6397
6398         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
6399         * config/darwin.c (SECTION_NO_ANCHOR): Define.
6400         (darwin_init_sections): Remove assertion.
6401
6402 2011-02-03  Nick Clifton  <nickc@redhat.com>
6403
6404         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
6405         lt and ge.
6406         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
6407         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
6408         instead of "n" and "pz".
6409         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
6410         CC_FLAG_S.
6411
6412 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
6413
6414         PR target/47312
6415         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
6416         fma, expand FMA_EXPR as fma{,f,l} call.
6417
6418         PR lto/47274
6419         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
6420         copy them into a unsigned char variable and pass address of it to
6421         lto_output_data_stream.
6422
6423         PR target/47564
6424         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
6425         around backend_init_target and lang_dependent_init_target calls.
6426         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
6427         (verify_cgraph_node): Don't call set_cfun here.  Use
6428         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
6429         Set error_found for incorrectly represented calls to thunks.
6430
6431 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
6432
6433         PR debug/43092
6434         PR rtl-optimization/43494
6435         * rtl.h (for_each_inc_dec_fn): New type.
6436         (for_each_inc_dec): Declare.
6437         * rtlanal.c (struct for_each_inc_dec_ops): New type.
6438         (for_each_inc_dec_find_inc_dec): New fn.
6439         (for_each_inc_dec_find_mem): New fn.
6440         (for_each_inc_dec): New fn.
6441         * dse.c (struct insn_size): Remove.
6442         (replace_inc_dec, replace_inc_dec_mem): Remove.
6443         (emit_inc_dec_insn_before): New fn.
6444         (check_for_inc_dec): Use it, along with for_each_inc_dec.
6445         (canon_address): Pass mem modes to cselib_lookup.
6446         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
6447         (cselib_lookup_from_insn): Likewise.
6448         (cselib_subst_to_values): Likewise.
6449         * cselib.c (find_slot_memmode): New var.
6450         (cselib_find_slot): New fn.  Use it instead of
6451         htab_find_slot_with_hash everywhere.
6452         (entry_and_rtx_equal_p): Use find_slot_memmode.
6453         (autoinc_split): New fn.
6454         (rtx_equal_for_cselib_p): Rename and implement in terms of...
6455         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
6456         Deal with autoinc.  Special-case recursion into MEMs.
6457         (cselib_hash_rtx): Likewise.
6458         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
6459         address and MEM modes.
6460         (cselib_subst_to_values): Add memmode, pass it on.
6461         Deal with autoinc.
6462         (cselib_lookup): Add memmode argument, pass it on.
6463         (cselib_lookup_from_insn): Add memmode.
6464         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
6465         (struct cselib_record_autoinc_data): New.
6466         (cselib_record_autoinc_cb): New fn.
6467         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
6468         mode to cselib_lookup.  Reset autoinced REGs here instead of...
6469         (cselib_process_insn): ... here.
6470         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
6471         to cselib_lookup.
6472         (add_uses): Likewise, also to cselib_subst_to_values.
6473         (add_stores): Likewise.
6474         * sched-deps.c  (add_insn_mem_dependence): Pass mode to
6475         cselib_subst_to_values.
6476         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
6477         * gcse.c (do_local_cprop): Adjusted.
6478         * postreload.c (reload_cse_simplify_set): Adjusted.
6479         (reload_cse_simplify_operands): Adjusted.
6480         * sel-sched-dump (debug_mem_addr_value): Pass mode.
6481
6482 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
6483
6484         PR tree-optimization/45122
6485         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
6486         unsafe assumptions when there's more than one loop exit.
6487
6488 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
6489
6490         PR target/47272
6491         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
6492         Document using vector double with the load/store builtins, and
6493         that the load/store builtins always use Altivec instructions.
6494
6495         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
6496         to use altivec memory instructions, even on VSX.
6497         (vector_altivec_store_<mode>): Ditto.
6498
6499         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
6500         function.
6501
6502         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
6503         V2DF, V2DI support to load/store overloaded builtins.
6504
6505         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
6506         altivec load/store builtins for V2DF/V2DI types.
6507
6508         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
6509         set avoid indexed addresses on power6 if -maltivec.
6510         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
6511         vector_altivec_load/vector_altivec_store builtins.
6512         (altivec_expand_st_builtin): Ditto.
6513         (altivec_expand_builtin): Add VSX memory builtins.
6514         (rs6000_init_builtins): Add V2DI types to internal types.
6515         (altivec_init_builtins): Add support for V2DF/V2DI altivec
6516         load/store builtins.
6517         (rs6000_address_for_altivec): Insure memory address is appropriate
6518         for Altivec.
6519
6520         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
6521         vec_vsx_ld and vec_vsx_st.
6522         (vsx_store_<mode>): Ditto.
6523
6524         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
6525         variables to hold long long types for VSX vector memory builtins.
6526         (RS6000_BTI_unsigned_long_long): Ditto.
6527         (long_long_integer_type_internal_node): Ditti.
6528         (long_long_unsigned_type_internal_node): Ditti.
6529
6530         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
6531         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
6532         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
6533
6534         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
6535         short cuts.
6536         (vec_vsx_st): Ditto.
6537
6538 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
6539
6540         * config/pa/pa-hpux10.opt: New.
6541         * config/hpux11.opt (pthread): New Driver option.
6542         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
6543         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
6544
6545 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
6546
6547         * config/ia64/vms.opt: New.
6548         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
6549
6550 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
6551
6552         PR target/47580
6553         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
6554         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
6555         generator functions.
6556         (vsx_floatuns<VSi><mode>2): Ditto.
6557         (vsx_fix_trunc<mode><VSi>2): Ditto.
6558         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
6559
6560 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
6561
6562         * config/i386/djgpp.opt (posix): New Driver option.
6563
6564 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
6565
6566         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
6567         Move to the unsupported targets list.
6568
6569 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
6570
6571         PR rtl-optimization/47525
6572         * df-scan.c: Update copyright years.
6573         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
6574         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
6575
6576 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6577
6578         * config/i386/sysv4.h (TARGET_VERSION): Remove.
6579         (SUBTARGET_RETURN_IN_MEMORY): Remove.
6580         (ASM_OUTPUT_ASCII): Remove.
6581         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
6582
6583 2011-02-02  Jeff Law  <law@redhat.com>
6584
6585         PR middle-end/47543
6586         * reload.c (find_reloads_address): Handle reg+d address where both
6587         components are invalid by reloading the entire address.
6588
6589 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
6590             Richard Guenther  <rguenther@suse.de>
6591
6592         PR tree-optimization/40979
6593         PR bootstrap/47044
6594         * passes.c (init_optimization_passes): After LIM call copy_prop
6595         and DCE to clean up.
6596         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
6597
6598 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
6599
6600         PR tree-optimization/47576
6601         PR tree-optimization/47555
6602         * doc/invoke.texi (scev-max-expr-complexity): Documented.
6603         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
6604         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
6605         * tree-scalar-evolution.c (follow_ssa_edge): Use
6606         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
6607
6608 2011-02-02  Richard Guenther  <rguenther@suse.de>
6609
6610         PR tree-optimization/47566
6611         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
6612
6613 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
6614
6615         PR debug/47106
6616         PR debug/47402
6617         * tree-inline.c (declare_return_variable): Remove unused caller
6618         variable.
6619
6620         PR debug/47106
6621         PR debug/47402
6622         * tree-flow-inline.h (clear_is_used, is_used_p): New.
6623         * cfgexpand.c (account_used_vars_for_block): Use them.
6624         * tree-nrv.c (tree_nrv): Likewise.
6625         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
6626         (dump_scope_block): Likewise.
6627         (remove_unused_locals): Likewise.
6628
6629         PR debug/47106
6630         PR debug/47402
6631         * tree-inline.c (declare_return_variable): Add result decl to
6632         local decls only once.
6633         * gimple-low.c (record_vars_into): Mark newly-created variables
6634         as referenced.
6635
6636 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
6637
6638         PR debug/47498
6639         PR debug/47501
6640         PR debug/45136
6641         PR debug/45130
6642         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
6643         debug insns.
6644         (no_real_insns_p, schedule_block, set_priorities): Drop special
6645         treatment of boundary debug insns.
6646         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
6647         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
6648         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
6649         (BOUNDARY_DEBUG_INSN_P): Likewise.
6650         (SCHEDULE_DEBUG_INSN_P): Likewise.
6651         * sched-rgn.c (init_ready_list): Drop special treatment of
6652         boundary debug insns.
6653         * final.c (rest_of_clean_state): Clear notes' BB.
6654
6655 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
6656
6657         * config/openbsd.opt (assert=): New Driver option.
6658
6659 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
6660
6661         * config/i386/nto.opt: New.
6662         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
6663
6664 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
6665
6666         * config/i386/netware.opt: New.
6667         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
6668
6669 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
6670
6671         * config/interix.opt (posix): New Driver option.
6672
6673 2011-02-01  DJ Delorie  <dj@redhat.com>
6674
6675         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
6676
6677         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
6678         class for A0/A1.
6679
6680 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
6681
6682         PR tree-optimization/47561
6683         * toplev.c (process_options): Print the Graphite flags.  Add
6684         flag_loop_flatten to the list of options requiring Graphite.
6685
6686 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
6687
6688         * config/i386/cygming.opt (posix): New Driver option.
6689
6690 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
6691
6692         * config/arm/vxworks.opt: New.
6693         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
6694
6695 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
6696
6697         * config/alpha/elf.opt: New.
6698         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
6699         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
6700
6701 2011-02-01  Richard Guenther  <rguenther@suse.de>
6702
6703         PR tree-optimization/47559
6704         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
6705         store-motion on references that can throw.
6706
6707 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
6708
6709         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
6710         * tree-pass.h (TDF_CSELIB): New macro.
6711         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
6712         cselib_lookup): Check for it rather than for TDF_DETAILS.
6713
6714 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
6715
6716         PR driver/47547
6717         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
6718         is HOST_BIT_BUCKET.
6719
6720         * opts.c (finish_options): Don't add x_aux_base_name if it is
6721         HOST_BIT_BUCKET.
6722
6723 2011-02-01  Richard Guenther  <rguenther@suse.de>
6724
6725         PR tree-optimization/47555
6726         Revert
6727         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
6728
6729         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
6730
6731 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
6732
6733         PR gcc/46692
6734         * config/lm32/t-lm32: Add multilib for all CPU options.
6735
6736 2011-02-01  Richard Guenther  <rguenther@suse.de>
6737
6738         PR tree-optimization/47541
6739         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
6740         sure to have a field at offset zero.
6741
6742 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
6743
6744         * config/arc/arc.opt (EB, EL): New Driver options.
6745
6746 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
6747
6748         * config/alpha/osf5.opt: New.
6749         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
6750
6751 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
6752
6753         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
6754
6755 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
6756
6757         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
6758         -floop-interchange.
6759         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
6760         is an alias of -floop-interchange and that it requires the
6761         Graphite infrastructure.
6762         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
6763         flag_loop_interchange based on the value of flag_tree_loop_linear.
6764
6765 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
6766             Richard Guenther  <rguenther@suse.de>
6767
6768         PR tree-optimization/47538
6769         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
6770         type instead of r1type, except for comparisons.  For right
6771         shifts and comparisons punt if there are mismatches in
6772         sizetype vs. non-sizetype types.
6773
6774 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6775
6776         * doc/sourcebuild.texi (Effective-Target Keywords): Document
6777         avx_runtime.
6778
6779 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6780
6781         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
6782         version number.
6783         * configure: Regenerate.
6784
6785 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6786
6787         * configure.ac (gcc_cv_ld_static_option): Define.
6788         (gcc_cv_ld_dynamic_option): Define.
6789         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
6790         instead.
6791         (HAVE_LD_STATIC_DYNAMIC): Update message.
6792         (LD_STATIC_OPTION): Define.
6793         (LD_DYNAMIC_OPTION): Define.
6794         * configure: Regenerate.
6795         * config.in: Regenerate.
6796         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
6797         HAVE_LD_STATIC_DYNAMIC]: Use them.
6798
6799 2011-01-31  Nick Clifton  <nickc@redhat.com>
6800
6801         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
6802         registers inside interrupt handlers if the handler is not a leaf
6803         function.
6804
6805 2011-01-31  Nick Clifton  <nickc@redhat.com>
6806
6807         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
6808         reg_renumber returning an INVALID_REGNUM.
6809
6810 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
6811
6812         PR libgcj/44341
6813         * doc/install.texi: Document host options discarded when cross
6814         configuring target libraries.
6815
6816 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
6817
6818         Reverted:
6819         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
6820         PR debug/45136
6821         PR debug/45130
6822         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
6823         debug insns.
6824         (no_real_insns_p, schedule_block, set_priorities): Drop special
6825         treatment of boundary debug insns.
6826         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
6827         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
6828         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
6829         (BOUNDARY_DEBUG_INSN_P): Likewise.
6830         (SCHEDULE_DEBUG_INSN_P): Likewise.
6831         * sched-rgn.c (init_ready_list): Drop special treatment of
6832         boundary debug insns.
6833         * final.c (rest_of_clean-state): Clear notes' BB.
6834
6835 2011-01-31  Alan Modra  <amodra@gmail.com>
6836
6837         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
6838         toc relative expressions as we do in print_operand_address.
6839
6840 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
6841
6842         * doc/extend.texi: Follow spelling conventions.
6843         * doc/invoke.texi: Fix a typo.
6844
6845 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
6846
6847         * config/hpux11.opt: New.
6848         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
6849         ia64*-*-hpux*): Use hpux11.opt.
6850
6851 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
6852
6853         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
6854         to tmake_file.
6855
6856 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
6857
6858         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
6859         support sites.
6860
6861 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
6862
6863         * doc/install.texi (Binaries): Remove outdated reference for
6864         Motorola 68HC11/68HC12 downloads.
6865
6866 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
6867
6868         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
6869         Drepper's paper.
6870
6871 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
6872
6873         PR bootstrap/47147
6874         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
6875         used by NetBSD.
6876
6877 2011-01-28  Ahmad Sharif  <asharif@google.com>
6878
6879         * value-prof.c (check_counter): Corrected error message.
6880
6881 2011-01-29  Jie Zhang  <jie@codesourcery.com>
6882
6883         * config/arm/arm.c (arm_legitimize_reload_address): New.
6884         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
6885         arm_legitimize_reload_address.
6886         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
6887
6888 2011-01-28  Ian Lance Taylor  <iant@google.com>
6889
6890         * godump.c (go_define): Ignore macros whose definitions include
6891         two adjacent operands.
6892
6893 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
6894
6895         PR target/42894
6896         * varasm.c (force_const_mem): Store copy of x in desc->constant
6897         instead of x itself.
6898         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
6899         itself into REG_EQUAL note.
6900
6901 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
6902
6903         * config/freebsd.opt (posix, rdynamic): New Driver options.
6904
6905 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6906
6907         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
6908         -Bstatic/-Bdynamic.
6909         * configure: Regenerate.
6910
6911 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
6912
6913         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
6914         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
6915
6916 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
6917
6918         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
6919         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
6920         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
6921         (s390_preferred_reload_class): Make static. Change return and
6922         'rclass' argument type to reg_class_t.
6923
6924 2011-01-27  Jan Hubicka  <jh@suse.cz>
6925
6926         PR middle-end/46949
6927         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
6928         (process_function_and_variable_attributes): Check defined weakrefs.
6929
6930 2011-01-27  Martin Jambor  <mjambor@suse.cz>
6931
6932         PR tree-optimization/47228
6933         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
6934         build_ref_for_offset.
6935
6936 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6937
6938         * config/spu/spu-elf.h (ASM_SPEC): Remove.
6939
6940 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
6941
6942         PR rtl-optimization/46856
6943         * postreload.c (reload_combine_recognize_const_pattern): Do not
6944         separate cc0 setter and user on cc0 targets.
6945
6946 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
6947
6948         PR c/43082
6949         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
6950         passed a VOID_TYPE expression, immediately emit an error and
6951         return error_mark_node.
6952
6953 2011-01-26  Jeff Law  <law@redhat.com>
6954
6955         PR rtl-optimization/47464
6956         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
6957         rather than may_trap_p as needed.
6958
6959 2011-01-26  DJ Delorie  <dj@redhat.com>
6960
6961         PR rtl-optimization/46878
6962         * combine.c (insn_a_feeds_b): Check for the implicit cc0
6963         setter/user dependency as well.
6964
6965 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
6966
6967         PR rtl-optimization/44469
6968         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
6969         after removing trivially dead basic blocks.
6970
6971 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
6972
6973         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
6974         * config/frv/frv.h (LINK_SPEC): Likewise.
6975         * config/i386/netware.h (LINK_SPEC): Likewise.
6976         * config/m68k/linux.h (ASM_SPEC): Likewise.
6977         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
6978         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
6979         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
6980         * config/sparc/linux.h (ASM_SPEC): Likewise.
6981         * config/sparc/linux64.h (ASM_SPEC): Likewise.
6982         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
6983
6984 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
6985
6986         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
6987         * config/frv/frv.h (ASM_SPEC): Likewise.
6988         * config/m68k/linux.h (ASM_SPEC): Likewise.
6989         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
6990         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
6991         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
6992         * config/sparc/linux.h (ASM_SPEC): Likewise.
6993         * config/sparc/linux64.h (ASM_SPEC): Likewise.
6994         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
6995
6996 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
6997
6998         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
6999         * config/frv/frv.h (LINK_SPEC): Likewise.
7000         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
7001
7002 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
7003
7004         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
7005         * config/frv/frv.h (ASM_SPEC): Likewise.
7006         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
7007         * config/m68k/linux.h (ASM_SPEC): Likewise.
7008         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
7009         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
7010         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
7011         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
7012         * config/sparc/linux.h (ASM_SPEC): Likewise.
7013         * config/sparc/linux64.h (ASM_SPEC): Likewise.
7014         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
7015         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
7016
7017 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
7018
7019         PR target/46997
7020         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
7021         (*mux2): Ditto.
7022         (vec_extract_evenodd_help): Ditto.
7023         (vec_extract_evenv4hi): Ditto.
7024         (vec_extract_oddv4hi): Ditto.
7025         (vec_interleave_lowv2si): Ditto.
7026         (vec_interleave_highv2si): Ditto.
7027         (vec_extract_evenv2si): Ditto.
7028         (vec_extract_oddv2si: Ditto.
7029         (vec_pack_trunc_v2si): Ditto.
7030
7031 2011-01-22  Jan Hubicka  <jh@suse.cz>
7032
7033         PR target/47237
7034         * cgraph.h (cgraph_local_info): New field can_change_signature.
7035         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
7036         signature can change.
7037         (ipcp_estimate_growth): Call sequence simplify only if calle signature
7038         can change.
7039         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
7040         (cgraph_function_versioning): We can not change signature of functions
7041         that don't allow that.
7042         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
7043         (lto_input_node): Likewise.
7044         * ipa-inline.c (compute_inline_parameters): Compute
7045         local.can_change_signature.
7046         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
7047         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
7048         functions that can not change signature.
7049         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
7050         init_cumulative_args): Do not use local calling conventions
7051         for functions that can not change signature.
7052
7053 2011-01-22  Jan Hubicka  <jh@suse.cz>
7054
7055         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
7056
7057 2011-01-26  Richard Guenther  <rguenther@suse.de>
7058
7059         PR tree-optimization/47190
7060         * cgraphunit.c (process_common_attributes): New function.
7061         (process_function_and_variable_attributes): Use it.
7062
7063 2011-01-26  Richard Guenther  <rguenther@suse.de>
7064
7065         PR lto/47423
7066         * cgraphbuild.c (record_eh_tables): Record reference to personality
7067         function.
7068
7069 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
7070
7071         PR debug/45454
7072         * sel-sched.c (moveup_expr): Don't let debug insns prevent
7073         non-debug insns from moving up.
7074
7075 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
7076
7077         PR target/40125
7078         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
7079         t-dlldir{,-x} fragment for build and add it to tmake_file.
7080         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
7081         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
7082         * config/i386/t-dlldir: New file.
7083         (SHLIB_DLLDIR): Define.
7084         * config/i386/t-dlldir-x: New file.
7085         (SHLIB_DLLDIR): Define.
7086         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
7087         (SHLIB_INSTALL): Use it.
7088
7089 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
7090
7091         PR target/47246
7092         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
7093         lower bound of the allowed Thumb-2 coprocessor load/store
7094         index range to -256. Add explaining comment.
7095
7096 2011-01-25  Ian Lance Taylor  <iant@google.com>
7097
7098         * godump.c (go_define): Improve lexing of macro expansion to only
7099         accept expressions which match Go spec.
7100
7101 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
7102
7103         PR c++/43601
7104         * tree.c (handle_dll_attribute): Handle it.
7105         * doc/extend.texi (@item dllexport): Mention it.
7106         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
7107
7108 2011-01-25  Ian Lance Taylor  <iant@google.com>
7109
7110         PR tree-optimization/26854
7111         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
7112         (decl_jump_unsafe): Move higher in file, with no other change.
7113         (bind): Set has_jump_unsafe_decl if appropriate.
7114         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
7115         (check_earlier_gotos): Likewise.
7116         (c_check_switch_jump_warnings): Likewise.
7117
7118 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
7119
7120         * doc/invoke.texi (Warning Options): Add missing hyphen.
7121         (-fprofile-dir): Minor grammatical fixes.
7122         (-fbranch-probabilities): Likewise.
7123
7124 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
7125
7126         PR debug/45136
7127         PR debug/45130
7128         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
7129         debug insns.
7130         (no_real_insns_p, schedule_block, set_priorities): Drop special
7131         treatment of boundary debug insns.
7132         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
7133         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
7134         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
7135         (BOUNDARY_DEBUG_INSN_P): Likewise.
7136         (SCHEDULE_DEBUG_INSN_P): Likewise.
7137         * sched-rgn.c (init_ready_list): Drop special treatment of
7138         boundary debug insns.
7139         * final.c (rest_of_clean-state): Clear notes' BB.
7140
7141 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7142
7143         * Makefile.in (LAMBDA_H): Removed.
7144         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
7145         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
7146         lambda-trans.o, and tree-loop-linear.o.
7147         (lto-symtab.o): Remove dependence on LAMBDA_H.
7148         (tree-loop-linear.o): Remove rule.
7149         (lambda-mat.o): Same.
7150         (lambda-trans.o): Same.
7151         (lambda-code.o): Same.
7152         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
7153         (tree-vect-slp.o): Same.
7154         * hwint.h (gcd): Moved here.
7155         (least_common_multiple): Same.
7156         * lambda-code.c: Removed.
7157         * lambda-mat.c: Removed.
7158         * lambda-trans.c: Removed.
7159         * lambda.h: Removed.
7160         * tree-loop-linear.c: Removed.
7161         * lto-symtab.c: Do not include lambda.h.
7162         * omega.c (gcd): Removed.
7163         * passes.c (init_optimization_passes): Remove pass_linear_transform.
7164         * tree-data-ref.c (print_lambda_vector): Moved here.
7165         (lambda_vector_copy): Same.
7166         (lambda_matrix_copy): Same.
7167         (lambda_matrix_id): Same.
7168         (lambda_vector_first_nz): Same.
7169         (lambda_matrix_row_add): Same.
7170         (lambda_matrix_row_exchange): Same.
7171         (lambda_vector_mult_const): Same.
7172         (lambda_vector_negate): Same.
7173         (lambda_matrix_row_negate): Same.
7174         (lambda_vector_equal): Same.
7175         (lambda_matrix_right_hermite): Same.
7176         * tree-data-ref.h: Do not include lambda.h.
7177         (lambda_vector): Moved here.
7178         (lambda_matrix): Same.
7179         (dependence_level): Same.
7180         (lambda_transform_legal_p): Removed declaration.
7181         (lambda_collect_parameters): Same.
7182         (lambda_compute_access_matrices): Same.
7183         (lambda_vector_gcd): Same.
7184         (lambda_vector_new): Same.
7185         (lambda_vector_clear): Same.
7186         (lambda_vector_lexico_pos): Same.
7187         (lambda_vector_zerop): Same.
7188         (lambda_matrix_new): Same.
7189         * tree-flow.h (least_common_multiple): Removed declaration.
7190         * tree-parloops.c (lambda_trans_matrix): Moved here.
7191         (LTM_MATRIX): Same.
7192         (LTM_ROWSIZE): Same.
7193         (LTM_COLSIZE): Same.
7194         (LTM_DENOMINATOR): Same.
7195         (lambda_trans_matrix_new): Same.
7196         (lambda_matrix_vector_mult): Same.
7197         (lambda_transform_legal_p): Same.
7198         * tree-pass.h (pass_linear_transform): Removed declaration.
7199         * tree-ssa-loop.c (tree_linear_transform): Removed.
7200         (gate_tree_linear_transform): Removed.
7201         (pass_linear_transform): Removed.
7202         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
7203         flag_loop_interchange.
7204
7205 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
7206
7207         PR tree-optimization/47265
7208         PR tree-optimization/47443
7209         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
7210         if name still has some uses.
7211
7212 2011-01-25  Martin Jambor  <mjambor@suse.cz>
7213
7214         PR tree-optimization/47382
7215         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
7216         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
7217
7218 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
7219
7220         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
7221         sjlj_except_unwind_info.
7222
7223 2011-01-25  Richard Guenther  <rguenther@suse.de>
7224
7225         PR tree-optimization/47426
7226         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
7227         visible functions results escape.
7228
7229 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
7230
7231         PR target/45701
7232         * config/arm/arm.c (any_sibcall_uses_r3): New function.
7233         (arm_get_frame_offsets): Use it.
7234
7235 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7236             Jakub Jelinek  <jakub@redhat.com>
7237
7238         PR tree-optimization/47271
7239         * tree-if-conv.c (bb_postdominates_preds): New.
7240         (if_convertible_bb_p): Call bb_postdominates_preds.
7241         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
7242         (predicate_scalar_phi): Call bb_postdominates_preds.
7243
7244 2011-01-25  Nick Clifton  <nickc@redhat.com>
7245
7246         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
7247         * config/rx/rx.c (rx_function_value): Likewise.
7248         (rx_promote_function_mode): Likewise.
7249         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
7250         in order to make it legitimate.
7251         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
7252         make sure that the first operand is the same as the result register.
7253         (addsi3_unspec): Delete.
7254         (subdi3): Do not accept immediate operands.
7255         (subdi3_internal): Likewise.
7256
7257 2011-01-25  Jeff Law  <law@redhat.com>
7258
7259         PR rtl-optimization/37273
7260         * ira-costs.c (scan_one_insn): Detect constants living in memory and
7261         handle them like argument loads from stack slots.  Do not double
7262         count memory for memory constants and argument loads from stack slots.
7263
7264 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
7265
7266         PR tree-optimization/47427
7267         PR tree-optimization/47428
7268         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
7269         coalesce if the new root var would be TREE_READONLY.
7270
7271 2011-01-25  Richard Guenther  <rguenther@suse.de>
7272
7273         PR middle-end/47414
7274         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
7275         correct type for TBAA.
7276
7277 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7278
7279         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
7280         (close_phi_written_to_memory): Call for_each_index with
7281         dr_indices_valid_in_loop.
7282
7283 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7284
7285         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
7286         when it is initialized.
7287
7288 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7289
7290         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
7291         call to graphite_find_data_references_in_stmt.
7292         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
7293         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
7294         call to graphite_find_data_references_in_stmt.
7295         (analyze_drs_in_stmts): Same.
7296         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
7297         in which the scalar analysis of indices is performed.
7298         (create_data_ref): Same.  Update call to dr_analyze_indices.
7299         (find_data_references_in_stmt): Update call to create_data_ref.
7300         (graphite_find_data_references_in_stmt): Same.
7301         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
7302         declaration.
7303         (create_data_ref): Same.
7304         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
7305         call to create_data_ref.
7306
7307 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7308
7309         * graphite-sese-to-poly.c (build_poly_scop): Move
7310         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
7311
7312 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7313
7314         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
7315         VAR_DECL, PARM_DECL, and RESULT_DECL.
7316
7317 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7318
7319         * graphite-dependences.c (reduction_dr_1): Allow several reductions
7320         in a reduction PBB.
7321         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
7322         that have already been marked as PBB_IS_REDUCTION.
7323
7324 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7325
7326         * graphite-scop-detection.c (same_close_phi_node): New.
7327         (remove_duplicate_close_phi): New.
7328         (make_close_phi_nodes_unique): New.
7329         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
7330
7331 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7332
7333         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
7334         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
7335         of both data references to be the same.
7336
7337 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7338
7339         * graphite-dependences.c (build_lexicographical_constraint): Remove
7340         the gdim parameter.
7341         (build_lexicographical_constraint): Adjust call to
7342         ppl_powerset_is_empty.
7343         (dependence_polyhedron): Same.
7344         (graphite_legal_transform_dr): Same.
7345         (graphite_carried_dependence_level_k): Same.
7346         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
7347         parameter.
7348         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
7349
7350 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7351
7352         * graphite-sese-to-poly.c
7353         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
7354         (close_phi_written_to_memory): New.
7355         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
7356         and unshare_expr.
7357
7358 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7359
7360         * doc/install.texi: Update the expected version number of PPL to 0.11.
7361         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
7362         #if PPL_VERSION_MINOR < 11.
7363
7364 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7365
7366         * graphite-dependences.c: Include graphite-cloog-util.h.
7367         (new_poly_ddr): Inlined into dependence_polyhedron.
7368         (free_poly_ddr): Moved close by new_poly_ddr.
7369         (dependence_polyhedron_1): Renamed dependence_polyhedron.
7370         Early return NULL when ppl_powerset_is_empty returns true.
7371         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
7372         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
7373         (graphite_legal_transform_dr): Call new_poly_ddr.
7374         (graphite_carried_dependence_level_k): Same.
7375         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
7376         (dot_transformed_deps_stmt_1): Removed.
7377         (dot_deps_stmt_1): Call dot_deps_stmt_2.
7378         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
7379         (dot_deps_1): Call dot_deps_2.
7380         * Makefile.in (graphite-dependences.o): Add missing dependence on
7381         graphite-cloog-util.h.
7382
7383 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7384
7385         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
7386         (build_lexicographical_constraint): Same.
7387         (dependence_polyhedron_1): Same.
7388         (graphite_legal_transform_dr): Same.
7389         (graphite_carried_dependence_level_k): Same.
7390         * graphite-ppl.c (ppl_powerset_is_empty): New.
7391         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
7392         * tree-data-ref.c (dump_data_reference): Print the basic block index.
7393
7394 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7395
7396         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
7397         the "a followed by b" relation and document it.
7398
7399 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7400
7401         * graphite-dependences.c (build_lexicographical_constraint): Stop the
7402         iteration when the bag of constraints is empty.
7403
7404 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7405
7406         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
7407
7408 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7409
7410         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
7411         nest and two loop depths as parameters.
7412         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
7413         lst_perfect_nestify.
7414
7415 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7416
7417         * graphite-dependences.c (print_pddr): Call
7418         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
7419
7420 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7421
7422         * graphite-ppl.c (debug_gmp_value): New.
7423         * graphite-ppl.h (debug_gmp_value): Declared.
7424
7425 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
7426
7427         * doc/install.texi: Document availability of cloog-0.16.
7428
7429 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
7430
7431         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
7432         invalid postdominance info.
7433
7434 2011-01-24  Jan Hubicka  <jh@suse.cz>
7435
7436         PR c/21659
7437         * doc/extend.texi (weak pragma): Drop claim that it must
7438         appear before definition.
7439         * varasm.c (merge_weak, declare_weak): Only sanity check
7440         that DECL is not output at a time it is declared weak.
7441
7442 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
7443
7444         * machmode.def: Fixed comments.
7445
7446 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
7447
7448         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
7449
7450 2011-01-24  Paul Koning  <ni1d@arrl.net>
7451
7452         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
7453         WORDS_BIG_ENDIAN.
7454
7455 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
7456
7457         PR target/46519
7458         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
7459         (block_info): Add scanned and prev.
7460         (move_or_delete_vzeroupper_2): Return if the basic block
7461         has been scanned and the upper 128bit state is unchanged
7462         from the last scan.
7463         (move_or_delete_vzeroupper_1): Return true if the exit
7464         state is changed.
7465         (move_or_delete_vzeroupper): Visit basic blocks using the
7466         work-list based algorithm based on vt_find_locations in
7467         var-tracking.c.
7468
7469         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
7470
7471 2011-01-24  Nick Clifton  <nickc@redhat.com>
7472
7473         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
7474         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
7475         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
7476         then define __v850e1__.
7477         * doc/invoke.texi: Document -mv850es.
7478
7479 2011-01-24  Richard Henderson  <rth@redhat.com>
7480
7481         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
7482         compound unordered comparisons.
7483         * config/rx/rx.c (rx_split_fp_compare): Remove.
7484         * config/rx/rx-protos.h: Update.
7485         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
7486         (cbranchsf4): Don't call rx_split_fp_compare.
7487         (*cbranchsf4): Use rx_split_cbranch.
7488         (*cmpsf): Don't accept "i" constraint.
7489         (*conditional_branch): Only valid after reload.
7490         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
7491
7492 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
7493
7494         PR target/47385
7495         * config/rs6000/altivec.md (vector constant splitters): Add
7496         support for creating vector single precision constants if -mvsx is
7497         used and we would create the constant using Altivec primitives.
7498
7499 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
7500             Richard Sandiford  <rdsandiford@googlemail.com>
7501
7502         PR rtl-optimization/47166
7503         * reload1.c (emit_reload_insns): Disable the spill_reg_store
7504         mechanism for PRE_MODIFY and POST_MODIFY.
7505         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
7506         reloadreg.
7507
7508 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
7509
7510         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
7511
7512 2011-01-22  Jan Hubicka  <jh@suse.cz>
7513
7514         PR lto/47333
7515         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
7516
7517 2011-01-22  Jan Hubicka  <jh@suse.cz>
7518
7519         PR tree-optimization/43884
7520         PR lto/44334
7521         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
7522         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
7523
7524 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
7525
7526         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
7527         * config/s390/s390.c (s390_register_move_cost,
7528         s390_memory_move_cost): New.
7529         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
7530
7531 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7532
7533         PR middle-end/47401
7534         * except.c (sjlj_assign_call_site_values): Move setting the
7535         crtl->uses_eh_lsda flag to ...
7536         (sjlj_mark_call_sites): ... here.
7537         (sjlj_emit_function_enter): Support NULL dispatch label.
7538         (sjlj_build_landing_pads): In a function with no landing pads
7539         that still has must-not-throw regions, generate code to register
7540         a personality function with empty LSDA.
7541
7542 2011-01-21  Richard Henderson  <rth@redhat.com>
7543
7544         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
7545
7546         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
7547
7548         * compare-elim.c: New file.
7549         * Makefile.in (OBJS-common): Add it.
7550         (compare-elim.o): New.
7551         * common.opt (fcompare-elim): New.
7552         * opts.c (default_options_table): Add OPT_fcompare_elim.
7553         * tree-pass.h (pass_compare_elim_after_reload): New.
7554         * passes.c (init_optimization_passes): Add it.
7555         * recog.h: Protect against re-inclusion.
7556         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
7557         * doc/invoke.texi (-fcompare-elim): Document it.
7558         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
7559         * doc/tm.texi: Rebuild.
7560
7561 2011-01-22  Nick Clifton  <nickc@redhat.com>
7562
7563         * config/rx/rx.md (cstoresf4): Pass comparison operator to
7564         rx_split_fp_compare.
7565
7566 2011-01-22  Nick Clifton  <nickc@redhat.com>
7567
7568         * config/rx/rx.md (UNSPEC_CONST): New.
7569         (deallocate_and_return): Wrap the amount popped off the stack in
7570         an UNSPEC_CONST in order to stop it being rejected by
7571         -mmax-constant-size.
7572         (pop_and_return): Add a "(return)" rtx.
7573         (call): Drop the immediate operand.
7574         (call_internal): Likewise.
7575         (call_value): Likewise.
7576         (call_value_internal): Likewise.
7577         (sibcall_internal): Likewise.
7578         (sibcall_value_internal): Likewise.
7579         (sibcall): Likewise.  Generate an explicit call using
7580         sibcall_internal.
7581         (sibcall_value): Likewise.
7582         (mov<>): FAIL if a constant operand is not legitimate.
7583         (addsi3_unpsec): New pattern.
7584
7585         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
7586         (ok_for_max_constant): New function.
7587         (gen_safe_add): New function.
7588         (rx_expand_prologue): Use gen_safe_add.
7589         (rx_expand_epilogue): Likewise.
7590         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
7591         UNSPEC CONSTs.
7592
7593 2011-01-21  Jeff Law  <law@redhat.com>
7594
7595         PR tree-optimization/47053
7596         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
7597         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
7598         statements are deleted.
7599         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
7600         is nonempty, then purge dead edges and cleanup the CFG.
7601
7602 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
7603
7604         PR debug/47402
7605         Temporarily revert:
7606         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
7607         PR debug/47106
7608         * tree-dfa.c (create_var_ann): Mark variable as used.
7609
7610 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
7611
7612         PR middle-end/45566
7613         * except.c (convert_to_eh_region_ranges): Emit queued no-region
7614         notes from other section in hot/cold partitioning even if
7615         last_action is -3.  Increment call_site_base.
7616
7617         PR rtl-optimization/47366
7618         * fwprop.c (forward_propagate_into): Return bool.  If
7619         any changes are made, -fnon-call-exceptions is used and
7620         REG_EH_REGION note is present, call purge_dead_edges
7621         and return true if it purged anything.
7622         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
7623         any EH edges were purged.
7624
7625 2011-01-21  Jeff Law  <law@redhat.com>
7626
7627         PR rtl-optimization/41619
7628         * caller-save.c (setup_save_areas): Break out code to determine
7629         which hard regs are live across calls by examining the reload chains
7630         so that it is always used.
7631         Eliminate code which checked REG_N_CALLS_CROSSED.
7632
7633 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
7634
7635         PR tree-optimization/47355
7636         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
7637         NOP has non-debug uses beyond PHIs in new_bb.
7638
7639 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
7640
7641         PR debug/47106
7642         * cfgexpand.c (account_used_vars_for_block): Only account vars
7643         that are annotated as used.
7644         (estimated_stack_frame_size): Don't set TREE_USED.
7645         * tree-dfa.c (create_var_ann): Mark variable as used.
7646
7647 2011-01-21  Richard Guenther  <rguenther@suse.de>
7648
7649         PR middle-end/47395
7650         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
7651
7652 2011-01-21  Richard Guenther  <rguenther@suse.de>
7653
7654         PR tree-optimization/47365
7655         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
7656         (vn_reference_lookup_pieces): Adjust.
7657         (vn_reference_lookup): Likewise.
7658         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
7659         (vn_reference_lookup_3): Only look through kills if in
7660         VN_WALKREWRITE mode.
7661         (vn_reference_lookup_pieces): Adjust.
7662         (vn_reference_lookup): Likewise.
7663         (visit_reference_op_load): Likewise.
7664         (visit_reference_op_store): Likewise.
7665         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
7666         (compute_avail): Likewise.
7667         (eliminate): Likewise.
7668
7669 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
7670
7671         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
7672         DECL_IGNORED_P non-reg vars if they are used.
7673
7674         PR tree-optimization/47391
7675         * varpool.c (const_value_known_p): Return false if
7676         decl is volatile.
7677
7678 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
7679
7680         PR bootstrap/47215
7681         * config/i386/i386.c (ix86_local_alignment): Handle
7682         case for va_list_type_node is nil.
7683         (ix86_canonical_va_list_type): Likewise.
7684
7685 2011-01-21  Alan Modra  <amodra@gmail.com>
7686
7687         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
7688         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
7689
7690 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7691
7692         * config/arm/arm.md (define_attr type): Rename f_load
7693         and f_store to f_fpa_load and f_fpa_store. Update.
7694         (write_conflict): Deal with rename fallout.
7695         (*push_fp_multi): Likewise.
7696         * config/arm/fpa.md (f_load): Use f_fpa_load.
7697         (f_store): Use f_fpa_store.
7698         (*movsf_fpa): Likewise.
7699         (*movdf_fpa): Likewise.
7700         (*movxf_fpa): Likewise.
7701         (*thumb2_movsf_fpa): Likewise.
7702         (*thumb2_movdf_fpa): Likewise.
7703         (*thumb2_movxf_fpa): Likewise.
7704         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
7705         f_loadd and f_stored.
7706         (*thumb2_movdi_vfp): Likewise.
7707         (*thumb2_movsf_vfp): Fix attribute to f_loads.
7708         (*thumb2_movsi_vfp): Likewise.
7709         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
7710         Use f_loads instead of f_load.
7711         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
7712
7713 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
7714
7715         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
7716         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
7717         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
7718         (xtensa_mode_dependent_address_p): New function.
7719         (constantpool_address_p): Make static. Change return type to bool.
7720         Change argument type to const_rtx. Use CONST_INT_P predicate.
7721
7722 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
7723
7724         PR debug/46583
7725         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
7726
7727 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
7728
7729         PR debug/47283
7730         * cfgexpand.c (expand_debug_expr): Instead of generating
7731         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
7732         etc. handling.
7733
7734 2011-01-20  Richard Guenther  <rguenther@suse.de>
7735
7736         PR middle-end/47370
7737         * tree-inline.c (remap_gimple_op_r): Recurse manually for
7738         the pointer operand of MEM_REFs.
7739
7740 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
7741
7742         PR tree-optimization/46130
7743         * ipa-split.c (consider_split): If return_bb contains non-virtual
7744         PHIs other than for retval or if split_function would not adjust it,
7745         refuse to split.
7746
7747 2011-01-20  Richard Guenther  <rguenther@suse.de>
7748
7749         PR tree-optimization/47167
7750         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
7751         Revert previous change, only avoid enumeral type changes.
7752
7753 2011-01-19  Mike Stump  <mikestump@comcast.net>
7754
7755         * doc/tm.texi.in (BRANCH_COST): Englishify.
7756         * doc/tm.texi (BRANCH_COST): Likewise.
7757
7758 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
7759
7760         PR c++/47291
7761         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
7762         (gen_scheduled_generic_parms_dies): New functions.
7763         (gen_struct_or_union_type_die): Schedule template parameters DIEs
7764         generation for the end of CU compilation.
7765         (dwarf2out_finish): Generate template parameters DIEs here.
7766
7767 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
7768
7769         PR debug/46240
7770         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
7771         debug bind stmt on merge edges.
7772
7773 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
7774
7775         PR debug/47079
7776         PR debug/46724
7777         * function.c (instantiate_expr): Instantiate incoming rtl of
7778         implicit arguments, and recurse on VALUE_EXPRs.
7779         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
7780         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
7781
7782 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
7783
7784         * c-parser.c (c_parser_for_statement): Initialize
7785         collection_expression.
7786
7787 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
7788
7789         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
7790
7791 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
7792
7793         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
7794         (LINK_SHLIB_SPEC): Don't use %(link_path).
7795         (SUBTARGET_EXTRA_SPECS): Remove link_path.
7796
7797 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
7798
7799         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
7800         (NO_SHARED_LIB_SUPPORT): Remove.
7801         (LINK_SHLIB_SPEC): Remove one conditional definition.
7802
7803 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
7804
7805         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
7806         %{call_shared}.
7807         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
7808         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
7809         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
7810         %{call_shared} and conditionals on these options not being passed.
7811         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
7812         %{call_shared}.
7813
7814 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
7815
7816         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
7817         simplify.
7818
7819         * ipa-split.c: Spelling fixes.
7820
7821 2011-01-19  Richard Henderson  <rth@redhat.com>
7822
7823         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
7824         (*mulsi3): Likewise.
7825
7826         * longlong.h [__mn10300__] (count_leading_zeros): New.
7827         [__mn10300__] (umul_ppmm, smul_ppmm): New.
7828         [__mn10300__] (add_ssaaaa, subddmmss): New.
7829         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
7830         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
7831
7832 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7833
7834         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
7835
7836 2011-01-19  Richard Henderson  <rth@redhat.com>
7837
7838         * config/mn10300/mn10300.md (addsi3_flags): New.
7839         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
7840         (subsi3_flags, subc_internal, subdi3): New.
7841         (subdi3_internal, *subdi3_degenerate): New.
7842         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
7843
7844         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
7845         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
7846         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
7847         * config/mn10300/mn10300-protos.h: Update.
7848         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
7849         (return_ret): Likewise.  Rename from return_internal_regs.
7850         (return_internal): Remove.
7851
7852         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
7853         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
7854         (mn10300_legitimate_constant_p): Likewise.
7855         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
7856         (mn10300_frame_size): New.
7857         (mn10300_expand_prologue): Use it.
7858         (mn10300_expand_epilogue): Likewise.
7859         (mn10300_initial_offset): Likewise.
7860         * config/mn10300/mn10300-protos.h: Update.
7861         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
7862         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
7863         (prologue, epilogue, return_internal): Tidy output code.
7864         (mn10300_store_multiple_operation, return): Likewise.
7865         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
7866         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
7867         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
7868         (load_pic, am33_load_pic): New.
7869         (mn10300_load_pic0, mn10300_load_pic1): New.
7870
7871         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
7872         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
7873         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
7874         (cc_flags_for_mode, cc_flags_for_code): New.
7875         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
7876         overflow flag is not valid.  Validate that the flags we need
7877         for the comparison are valid.
7878         (mn10300_output_cmp): Remove.
7879         (mn10300_output_add): New.
7880         (mn10300_select_cc_mode): Use cc_flags_for_code.
7881         (mn10300_split_cbranch): New.
7882         (mn10300_match_ccmode): New.
7883         (mn10300_split_and_operand_count): New.
7884         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
7885         to the function.
7886         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
7887         (addsi3): ... here.  Use mn10300_output_add.
7888         (*addsi3_flags): New.
7889         (*am33_subsi3, *mn10300_subsi3): Merge...
7890         (subsi3): ... here.  Use attribute isa.
7891         (*subsi3_flags): New.
7892         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
7893         when possible.
7894         (*am33_andsi3, *mn10300_andsi3): Merge...
7895         (andsi3): ... here.
7896         (*andsi3_flags): New.
7897         (andsi3 splitters): New.
7898         (*am33_iorsi3, *mn10300_iorsi3): Merge...
7899         (iorsi3): ... here.
7900         (*iorsi3_flags): New.
7901         (*am33_xorsi3, *mn10300_xorsi3): Merge...
7902         (xorsi3): ... here.
7903         (*xorsi3_flags): New.
7904         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
7905         (one_cmplsi2): ... here.
7906         (*one_cmplsi2_flags): New.
7907         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
7908         instead of "dax" in constraints.  Use mn10300_split_cbranch.
7909         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
7910         use matching constraints to eliminate a self-comparison.
7911         (*integer_conditional_branch): Rename from integer_conditional_branch.
7912         Use int_mode_flags to match CC_REG.
7913         (*cbranchsi4_btst, *btstsi): New.
7914         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
7915         mn10300_split_cbranch.
7916         (*am33_cmpsf): Rename from am33_cmpsf.
7917         (*float_conditional_branch): Rename from float_conditional_branch.
7918         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
7919         (zero_extendqisi2): ... here.
7920         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
7921         (zero_extendhisi2): ... here.
7922         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
7923         (extendqisi2): ... here.
7924         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
7925         (extendhisi2): ... here.
7926         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
7927         (ashlsi3): ... here.
7928         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
7929         (lshrsi3): ... here.
7930         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
7931         (ashrsi3): ... here.
7932         (consecutive add peephole): Remove.
7933         * config/mn10300/predicates.md (label_ref_operand): New.
7934         (int_mode_flags): New.
7935         (CCZN_comparison_operator): New.
7936
7937         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
7938         (throughput_42_latency_43): New reservation.
7939         (mulsidi3, umulsidi3): New expanders.
7940         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
7941         the MDR register to allocation; separately allocate the low and
7942         high parts of the DImode result.
7943         (umulsidi3_internal): Similarly.
7944         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
7945         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
7946         (udivsi3, umodsi3): Remove.
7947         (udivmodsi4, divmodsi4): New expanders.
7948         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
7949         (*divmodsi4): Simiarly.
7950         (ext_internal): New.
7951
7952         * config/mn10300/constraints.md ("z"): New constraint.
7953         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
7954         (FIXED_REGISTERS): Don't fix MDR.
7955         (CALL_USED_REGSITERS): Reformat nicely.
7956         (REG_ALLOC_ORDER): Add MDR.
7957         (enum regclass): Add MDR_REGS.
7958         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
7959         (IRA_COVER_CLASSES): Add MDR_REGS.
7960         (REGNO_REG_CLASS): Handle MDR_REG.
7961         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
7962         (mn10300_register_move_cost): Likewise.
7963         * config/mn10300/mn10300.md (MDR_REG): New.
7964         (*movsi_internal): Handle moves to/from MDR_REGS.
7965
7966         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
7967         POST_MODIFY.
7968         (mn10300_secondary_reload): Tidy combination reload classes.
7969         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
7970         addresses for AM33.  Allow symbolic offsets for reg+imm.
7971         (mn10300_regno_in_class_p): New.
7972         (mn10300_legitimize_reload_address): New.
7973         * config/mn10300/mn10300.h (enum reg_class): Remove
7974         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
7975         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
7976         SP_OR_GENERAL_REGS.
7977         (REG_CLASS_NAMES): Update to match.
7978         (REG_CLASS_CONTENTS): Likewise.
7979         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
7980         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
7981         (REGNO_IN_RANGE_P): Remove.
7982         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
7983         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
7984         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
7985         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
7986         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
7987         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
7988         (REGNO_GENERAL_P): New.
7989         (HAVE_POST_MODIFY_DISP): New.
7990         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
7991         (LEGITIMIZE_RELOAD_ADDRESS): New.
7992         * config/mn10300/mn10300-protos.h: Update.
7993
7994         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
7995         DATA_REGS for AM33 stack-pointer destination.
7996         (mn10300_preferred_output_reload_class): Likewise.
7997         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
7998         into a form appropriate for ...
7999         (TARGET_SECONDARY_RELOAD): New.
8000         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
8001         * config/mn10300/mn10300-protos.h: Update.
8002         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
8003         reload_insi; use the "A" constraint for the scratch; handle AM33
8004         moves of sp to non-address registers.
8005
8006         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
8007         (*movqi_internal): ... here.
8008         (*am33_movhi, *mn10300_movhi): Merge into...
8009         (*movhi_internal): ... here.
8010         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
8011         as the source/destination of moves from/to SP.
8012         (movsf): Only allow for AM33-2.
8013         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
8014         any integer constant constraint.  Only allow for AM33-2.  Tidy
8015         all of the alternative outputs.
8016         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
8017         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
8018         for MN103.
8019         (udivsi3, umodsi3): New patterns for MN103 only.
8020
8021 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
8022
8023         * doc/tm.texi.in: Spell out that a lack of register class unions
8024         can lead to ICEs.
8025         * doc/tm.texi: Regenerate.
8026
8027 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
8028
8029         PR rtl-optimization/47337
8030         * dce.c (check_argument_store): New function.
8031         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
8032
8033         PR tree-optimization/47290
8034         * tree-eh.c (infinite_empty_loop_p): New function.
8035         (cleanup_empty_eh): Use it.
8036
8037 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
8038
8039         PR target/46997
8040         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
8041         (a64_expand_widen_sum): Ditto.
8042         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
8043         (vec_extract_evenodd_help): Ditto.
8044         (vec_extract_evenv4hi): Ditto.
8045         (vec_extract_oddv4hi): Ditto.
8046         (vec_extract_evenv2si): Ditto.
8047         (vec_extract_oddv2si): Ditto.
8048         (vec_extract_evenv2sf): Ditto.
8049         (vec_extract_oddv2sf): Ditto.
8050         (vec_pack_trunc_v4hi: Ditto.
8051         (vec_pack_trunc_v2si): Ditto.
8052         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
8053         (vec_interleave_highv8qi): Ditto.
8054         (mix1_r): Ditto.
8055         (vec_extract_oddv8qi): Ditto.
8056         (vec_interleave_lowv4hi): Ditto.
8057         (vec_interleave_highv4hi): Ditto.
8058         (vec_interleave_lowv2si): Ditto.
8059         (vec_interleave_highv2si): Ditto.
8060
8061 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8062
8063         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
8064         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
8065         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
8066         (pa_c_mode_for_suffix): New.
8067         (TARGET_EXPAND_BUILTIN): Define.
8068         (TARGET_C_MODE_FOR_SUFFIX): Define.
8069         (pa_builtins): Define.
8070         (pa_init_builtins): Register __float128 type and init new support
8071         builtins.
8072         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
8073         * config/pa/quadlib.c (_U_Qfcopysign): New.
8074
8075 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
8076
8077         PR middle-end/46894
8078         * explow.c (allocate_dynamic_stack_space): Do not assume more than
8079         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
8080         are defined.
8081
8082 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8083
8084         PR tree-optimization/47179
8085         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
8086         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
8087
8088 2011-01-18  Richard Guenther  <rguenther@suse.de>
8089
8090         PR rtl-optimization/47216
8091         * emit-rtl.c: Include tree-flow.h.
8092         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
8093         of replicating it with different semantics.
8094         * Makefile.in (emit-rtl.o): Adjust.
8095
8096 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8097
8098         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
8099         (cortex_a9_dp): Handle neon types correctly.
8100
8101 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
8102
8103         PR rtl-optimization/47299
8104         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
8105         subtarget.  Use normal multiplication if both operands are constants.
8106         * expmed.c (expand_widening_mult): Don't try to optimize constant
8107         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
8108         before using it.
8109
8110 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8111
8112         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
8113         spacing after 'e.g.', typos, comma, hyphenation.
8114
8115 2011-01-17  Richard Henderson  <rth@redhat.com>
8116
8117         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
8118         (rx_restricted_mem_operand): New.
8119         (rx_shift_operand): Use register_operand.
8120         (rx_source_operand, rx_compare_operand): Likewise.
8121         * config/rx/rx.md (addsi3_flags): New expander.
8122         (adddi3): Rewrite as expander.
8123         (adc_internal, *adc_flags, adddi3_internal): New patterns.
8124         (subsi3_flags): New expander.
8125         (subdi3): Rewrite as expander.
8126         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
8127
8128         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
8129         (rx_init_builtins): Remove sat builtin.
8130         (rx_expand_builtin): Likewise.
8131         * config/rx/rx.md (ssaddsi3): New.
8132         (*sat): Rename from sat.  Represent the CC_REG input.
8133
8134         * config/rx/predicates.md (rshift_operator): New.
8135         * config/rx/rx.c (rx_expand_insv): Remove.
8136         * config/rx/rx-protos.h: Update.
8137         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
8138         operand to the canonical position.
8139         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
8140         (*bitclr, *bitclr_in_memory): Similarly.
8141         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
8142         (insv): Retain the zero_extract in the expansion.
8143
8144         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
8145         (bswaphi2, bitinvert, revw): Likewise.
8146
8147         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
8148         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
8149         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
8150         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
8151         (bitset, bitset_in_memory): Likewise.
8152         (bitinvert, bitinvert_in_memory): Likewise.
8153         (bitclr, bitclr_in_memory): Likewise.
8154         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
8155         (rx_strend, rx_cmpstrn): Likewise.
8156         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
8157         (bitop peep2 patterns): Remove.
8158
8159         * config/rx/rx.c (rx_match_ccmode): New.
8160         * config/rx/rx-protos.h: Update.
8161         * config/rx/rx.md (abssi2): Clobber, don't set flags.
8162         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
8163         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
8164         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
8165         (fix_truncsfsi2, floatsisf2): Likewise.
8166         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
8167         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
8168         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
8169         (*subsi3_flags, *xorsi3_flags): New.
8170
8171         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
8172
8173         * config/rx/rx.c (rx_print_operand): Remove workaround for
8174         unsplit comparison operations.
8175
8176         * config/rx/rx.md (movsicc): Split after reload.
8177         (*movsicc): Merge *movsieq and *movsine via match_operator.
8178         (*stcc): New pattern.
8179
8180         * config/rx/rx.c (rx_float_compare_mode): Remove.
8181         * config/rx/rx.h (rx_float_compare_mode): Remove.
8182         * config/rx/rx.md (cstoresi4): Split after reload.
8183         (*sccc): New pattern.
8184
8185         * config/rx/predicates.md (label_ref_operand): New.
8186         (rx_z_comparison_operator): New.
8187         (rx_zs_comparison_operator): New.
8188         (rx_fp_comparison_operator): New.
8189         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
8190         Validate that the flags are set properly for the comparison.
8191         (rx_gen_cond_branch_template): Remove.
8192         (rx_cc_modes_compatible): Remove.
8193         (mode_from_flags): New.
8194         (flags_from_code): Rename from flags_needed_for_conditional.
8195         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
8196         (rx_select_cc_mode): Likewise.
8197         (rx_split_fp_compare): New.
8198         (rx_split_cbranch): New.
8199         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
8200         (*cbranchsi4): Use match_operator and rx_split_cbranch.
8201         (*cbranchsf4): Similarly.
8202         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
8203         match_operator and rx_split_cbranch.
8204         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
8205         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
8206         (*cmpsi): Rename from cmpsi.
8207         (*tstsi): Rename from tstsi.
8208         (*cmpsf): Rename from cmpsf; use CC_Fmode.
8209         (*conditional_branch): Rename from conditional_branch.
8210         (*reveresed_conditional_branch): Remove.
8211         (b<code>): Remove expander.
8212         * config/rx/rx-protos.h: Update.
8213
8214         * config/rx/rx.c (rx_compare_redundant): Remove.
8215         * config/rx/rx.md (cmpsi): Don't use it.
8216         * config/rx/rx-protos.h: Update.
8217
8218         * config/rx/rx-modes.def (CC_F): New mode.
8219         * config/rx/rx.c (rx_select_cc_mode): New.
8220         * config/rx/rx.h (SELECT_CC_MODE): Use it.
8221         * config/rx/rx-protos.h: Update.
8222
8223 2011-01-17  Richard Henderson  <rth@redhat.com>
8224
8225         * except.c (dump_eh_tree): Fix stray ; after for statement.
8226
8227 2011-01-17  Richard Guenther  <rguenther@suse.de>
8228
8229         PR tree-optimization/47313
8230         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
8231         handling before copying the body.  Properly deal with
8232         by-reference result in SSA form.
8233
8234 2011-01-17  Ian Lance Taylor  <iant@google.com>
8235
8236         PR target/47219
8237         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
8238         (struct_value_alias_set): Don't define.
8239         (sparc_option_override): Don't set sparc_sr_alias_set and
8240         struct_value_alias_set.
8241         (save_or_restore_regs): Use gen_frame_mem rather than calling
8242         set_mem_alias_set.
8243         (sparc_struct_value_rtx): Likewise.
8244
8245 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
8246
8247         PR target/47318
8248         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
8249         (_mm_maskstore_pd): Likewise.
8250         (_mm_maskload_ps): Likewise.
8251         (_mm_maskstore_ps): Likewise.
8252         (_mm256_maskload_pd): Change mask to __m256i.
8253         (_mm256_maskstore_pd): Likewise.
8254         (_mm256_maskload_ps): Likewise.
8255         (_mm256_maskstore_ps): Likewise.
8256
8257         * config/i386/i386-builtin-types.def: Updated.
8258         (ix86_expand_special_args_builtin): Likewise.
8259
8260         * config/i386/i386.c (bdesc_special_args): Update
8261         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
8262         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
8263         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
8264         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
8265
8266         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
8267         Use <avxpermvecmode> on mask register.
8268         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
8269
8270 2011-01-17  Olivier Hainque  <hainque@adacore.com>
8271             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
8272             Eric Botcazou  <ebotcazou@adacore.com>
8273
8274         PR target/46655
8275         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
8276         if <= USHRT_MAX in 32-bit mode.
8277
8278 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8279
8280         * doc/install.texi (Configuration, Specific): Wrap long
8281         lines in examples.  Allow line wrapping in long options
8282         and URLs where beneficial for PDF output.
8283
8284 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
8285
8286         * config/mips/mips.c (mips_classify_symbol): Don't return
8287         SYMBOL_PC_RELATIVE for nonlocal labels.
8288
8289 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
8290
8291         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
8292
8293 2011-01-15  Jan Hubicka  <jh@suse.cz>
8294
8295         PR tree-optimization/47276
8296         * ipa.c (function_and_variable_visibility): Do not try to mark alias
8297         declarations as needed.
8298
8299 2011-01-15  Martin Jambor  <mjambor@suse.cz>
8300
8301         * common.opt (fdevirtualize): New flag.
8302         * doc/invoke.texi (Option Summary): Document it.
8303         * opts.c (default_options_table): Add devirtualize flag.
8304         * ipa-prop.c (detect_type_change): Return immediately if
8305         devirtualize flag is not set.
8306         (detect_type_change_ssa): Likewise.
8307         (compute_known_type_jump_func): Likewise.
8308         (ipa_analyze_virtual_call_uses): Likewise.
8309
8310 2011-01-14  Martin Jambor  <mjambor@suse.cz>
8311
8312         PR tree-optimization/45934
8313         PR tree-optimization/46302
8314         * ipa-prop.c (type_change_info): New type.
8315         (stmt_may_be_vtbl_ptr_store): New function.
8316         (check_stmt_for_type_change): Likewise.
8317         (detect_type_change): Likewise.
8318         (detect_type_change_ssa): Likewise.
8319         (compute_complex_assign_jump_func): Check for dynamic type change.
8320         (compute_complex_ancestor_jump_func): Likewise.
8321         (compute_known_type_jump_func): Likewise.
8322         (compute_scalar_jump_functions): Likewise.
8323         (ipa_analyze_virtual_call_uses): Likewise.
8324         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
8325
8326 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
8327
8328         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
8329         * config/i386/i386.opt (msse5): New Alias.
8330
8331 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
8332
8333         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
8334         * config/sparc/linux64.h (CC1_SPEC): Likewise.
8335         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
8336         * config/sparc/sparc.h (CC1_SPEC): Likewise.
8337
8338 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
8339
8340         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
8341         -mcpu options.
8342         * config/sparc/linux64.h (CC1_SPEC): Likewise.
8343         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
8344         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
8345         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
8346         Likewise.
8347         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
8348
8349 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
8350
8351         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
8352
8353 2011-01-14  Mike Stump  <mikestump@comcast.net>
8354
8355         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
8356         * config/fr30/fr30.md: Likweise
8357         (movsi_push): Likewise.
8358         (movsi_pop): Likewise.
8359         (enter_func): Likewise.
8360         * config/moxie/moxie.md (movsi_push): Likewise.
8361         (movsi_pop): Likewise.
8362
8363 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
8364
8365         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
8366         %{no_archive} %{exact_version}.
8367         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
8368         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
8369         %{no_archive} %{exact_version}.
8370         * config/mips/openbsd.h (LINK_SPEC): Likewise.
8371         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
8372         * config/mips/vxworks.h: Likewise.
8373
8374 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
8375
8376         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
8377
8378 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
8379
8380         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
8381         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
8382
8383 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
8384
8385         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
8386         -nodefaultlib.
8387
8388 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
8389
8390         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
8391         for mcpu not cpu.
8392         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
8393         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
8394         not cpu.
8395         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
8396         Don't handle -shlib.
8397
8398 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
8399
8400         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
8401         (CC1_SPEC): Don't handle -profile.
8402
8403 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
8404
8405         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
8406         * config/mips/mips.h (CC1_SPEC): Likewise.
8407
8408 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
8409
8410         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
8411         * config/mips/mips.h (CC1_SPEC): Likewise.
8412
8413 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
8414
8415         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
8416         * config/m32r/linux.h (LINK_SPEC): Likewise.
8417         * config/mips/linux.h (LINK_SPEC): Likewise.
8418         * config/mips/linux64.h (LINK_SPEC): Likewise.
8419         * config/sparc/linux.h (LINK_SPEC): Likewise.
8420         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
8421         LINK_SPEC): Likewise.
8422         * config/xtensa/linux.h (LINK_SPEC): Likewise.
8423
8424 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
8425
8426         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
8427         %{version:-v}.
8428         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
8429
8430 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
8431
8432         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
8433         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
8434
8435 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
8436
8437         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
8438
8439 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8440
8441         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
8442         supports -Bstatic/-Bdynamic.
8443         * configure: Regenerate.
8444
8445 2011-01-14  Jan Hubicka  <jh@suse.cz>
8446             Jack Howarth  <howarth@bromo.med.uc.edu>
8447
8448         PR target/46037
8449         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
8450         when checking debug_info_level. Test write_symbols instead of
8451         debug_hooks->var_location when setting flag_var_tracking_uninit.
8452
8453 2011-01-14  Richard Guenther  <rguenther@suse.de>
8454
8455         PR tree-optimization/47179
8456         * target.def (ref_may_alias_errno): New target hook.
8457         * targhooks.h (default_ref_may_alias_errno): Declare.
8458         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
8459         (default_ref_may_alias_errno): New function.
8460         * target.h (struct ao_ref_s): Declare.
8461         * tree-ssa-alias.c: Include target.h.
8462         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
8463         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
8464         (targhooks.o): Likewise.
8465         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
8466         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
8467
8468 2011-01-14  Richard Guenther  <rguenther@suse.de>
8469
8470         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
8471
8472 2011-01-14  Richard Guenther  <rguenther@suse.de>
8473
8474         PR tree-optimization/47280
8475         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
8476         return CFG changes.
8477         (tree_ssa_forward_propagate_single_use_vars): Deal with
8478         CFG changes from associate_plusminus.
8479
8480 2011-01-14  Richard Guenther  <rguenther@suse.de>
8481
8482         PR middle-end/47281
8483         Revert
8484         2011-01-11  Richard Guenther  <rguenther@suse.de>
8485
8486         PR tree-optimization/46076
8487         * tree-ssa.c (useless_type_conversion_p): Conversions from
8488         unprototyped to empty argument list function types are useless.
8489
8490 2011-01-14  Richard Guenther  <rguenther@suse.de>
8491
8492         PR tree-optimization/47286
8493         * tree-ssa-structalias.c (new_var_info): Register variables are global.
8494
8495 2011-01-14  Martin Jambor  <mjambor@suse.cz>
8496
8497         PR middle-end/46823
8498         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
8499
8500 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
8501
8502         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
8503         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
8504         * config/xtensa/xtensa.c (xtensa_libcall_value,
8505         xtensa_function_value_regno_p): New functions.
8506         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
8507
8508 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
8509
8510         PR c++/47213
8511         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
8512         PE specific hook.
8513         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
8514         New function prototype.
8515         * config/i386/winnt.c (i386_pe_assemble_visibility):
8516         Warn only if attribute was specified by user.
8517
8518 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
8519
8520         PR target/47251
8521         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
8522         floating point.
8523         (floatunsdidf2_fcfidu): Ditto.
8524
8525 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8526
8527         * config/s390/s390.c (print_operand_address): Replace 'error' with
8528         'output_operand_lossage'.
8529         (print_operand): Likewise.
8530
8531 2011-01-13  Jeff Law  <law@redhat.com>
8532
8533         PR rtl-optimization/39077
8534         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
8535         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
8536         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
8537         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
8538         * gcse.c (prune_insertions_deletions): New function.
8539         (compute_pre_data): Use it.
8540
8541 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
8542
8543         PR debug/PR46973
8544         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
8545         static function.
8546         (prune_unused_types_mark): Use it.
8547
8548 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
8549
8550         PR rtl-optimization/45352
8551         * sel-sched.c: Update copyright years.
8552         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
8553         in the advancing loop when we have issued issue_rate insns.
8554
8555 2011-01-12  Richard Henderson  <rth@redhat.com>
8556
8557         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
8558         (TARGET_MD_ASM_CLOBBERS): New.
8559
8560         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
8561         (TARGET_DELEGITIMIZE_ADDRESS): New.
8562
8563         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
8564         (clzsi2, *bsch): New patterns.
8565
8566         * config/mn10300/mn10300.md (INT): New mode iterator.
8567         (*mov<INT>_clr): New pattern, and peep2 to generate it.
8568
8569         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
8570         flag_split_wide_types.
8571
8572         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
8573         (mn10300_trampoline_init): Rewrite without a template, an immediate
8574         load and a direct branch.
8575         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
8576
8577 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
8578
8579         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
8580         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
8581         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
8582         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
8583
8584 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
8585
8586         PR debug/47209
8587         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
8588         of type.
8589
8590 2011-01-12  Jan Hubicka  <jh@suse.cz>
8591
8592         PR driver/47244
8593         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
8594         (PLUGIN_COND_CLOSE): New macro.
8595         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
8596
8597 2011-01-12  Richard Guenther  <rguenther@suse.de>
8598
8599         PR lto/47259
8600         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
8601         register variables in a MEM_REF.
8602
8603 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
8604
8605         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
8606         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
8607         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
8608         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
8609         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
8610         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
8611         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
8612         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
8613         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
8614         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
8615         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
8616         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
8617         * config/gnu-user.h: New.  Copied from linux.h.
8618         (LINUX_TARGET_STARTFILE_SPEC): Rename to
8619         GNU_USER_TARGET_STARTFILE_SPEC.
8620         (LINUX_TARGET_ENDFILE_SPEC): Rename to
8621         GNU_USER_TARGET_ENDFILE_SPEC.
8622         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
8623         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
8624         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
8625         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
8626         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
8627         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
8628         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
8629         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
8630         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
8631         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
8632         * config/arm/linux-eabi.h (CC1_SPEC): Use
8633         GNU_USER_TARGET_CC1_SPEC.
8634         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
8635         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
8636         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
8637         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
8638         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
8639         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
8640         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
8641         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
8642
8643 2011-01-12  Richard Guenther  <rguenther@suse.de>
8644
8645         PR other/46946
8646         * doc/invoke.texi (ffast-math): Document it is turned on
8647         with -Ofast.
8648
8649 2011-01-12  Jan Hubicka  <jh@suse.cz>
8650
8651         PR tree-optimization/47233
8652         * opts.c (common_handle_option): Disable ipa-reference with profile
8653         feedback.
8654
8655 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
8656
8657         * c-parser.c (c_parser_objc_at_property_declaration): Improved
8658         error message.
8659
8660 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
8661
8662         * c-parser.c (c_lex_one_token): Updated and reindented some
8663         comments.  No changes in code.
8664
8665 2011-01-11  Ian Lance Taylor  <iant@google.com>
8666
8667         * godump.c (go_output_var): Don't output the variable if there is
8668         already a type with the same name.
8669
8670 2011-01-11  Ian Lance Taylor  <iant@google.com>
8671
8672         * godump.c (go_format_type): Don't generate float80.
8673
8674 2011-01-11  Richard Henderson  <rth@redhat.com>
8675
8676         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
8677         declaration.  Rewrite for both speed and size.
8678         (mn10300_address_cost_1): Remove.
8679         (mn10300_register_move_cost): New.
8680         (mn10300_memory_move_cost): New.
8681         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
8682         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
8683         extensions, shifts, BSWAP, CLZ.
8684         (mn10300_wide_const_load_uses_clr): Remove.
8685         (TARGET_REGISTER_MOVE_COST): New.
8686         (TARGET_MEMORY_MOVE_COST): New.
8687         * config/mn10300/mn10300-protos.h: Update.
8688         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
8689
8690         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
8691         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
8692         * config/mn10300/mn10300-protos.h: Update.
8693         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
8694         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
8695         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
8696         (*test_int_bitfield, *test_byte_bitfield): Remove.
8697         (*bit_test, *subreg_bit_test): Remove.
8698         * config/mn10300/predicates.md (const_8bit_operand): Remove.
8699
8700         * config/mn10300/constraints.md ("c"): Rename from "A".
8701         ("A", "D"): New constraint letters.
8702         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
8703         (fmssf4, fnmasf4, fnmssf4): Likewise.
8704
8705         * config/mn10300/mn10300.md (isa): New attribute.
8706         (enabled): New attribute.
8707
8708         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
8709         (abssf2, negsf2): Define only for hardware fp.
8710         (sqrtsf2): Reformat.
8711         (addsf3, subsf3, mulsf3): Merge expander and insn.
8712
8713         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
8714         (DEBUGGER_AUTO_OFFSET): Remove.
8715         (DEBUGGER_ARG_OFFSET): Remove.
8716
8717         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
8718         Emit register stores with the same offsets as the hardware.
8719         (mn10300_store_multiple_operation): Don't check that the register
8720         save offsets are monotonic.
8721         * config/mn10300/mn10300-protos.h: Update.
8722
8723         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
8724
8725         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
8726         in terms of the value on the stack, not the MDR register.
8727
8728 2011-01-11  Jan Hubicka  <jh@suse.cz>
8729
8730         PR lto/45721
8731         PR lto/45375
8732         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
8733         (symbol_alias_set_destroy, symbol_alias_set_contains,
8734         propagate_aliases_backward): Declare.
8735         * lto-streamer-out.c (struct sets): New sturcture.
8736         (trivally_defined_alias): New function.
8737         (output_alias_pair_p): Rewrite.
8738         (output_unreferenced_globals): Fix output of alias pairs.
8739         (produce_symtab): Likewise.
8740         * ipa.c (function_and_variable_visibility): Set weak alias destination
8741         as needed in lto.
8742         * varasm.c (symbol_alias_set_t): Remove.
8743         (symbol_alias_set_destroy): Export.
8744         (propagate_aliases_forward, propagate_aliases_backward): New functions
8745         based on ...
8746         (compute_visible_aliases): ... this one; remove.
8747         (trivially_visible_alias): New
8748         (trivially_defined_alias): New.
8749         (remove_unreachable_alias_pairs): Rewrite.
8750         (finish_aliases_1): Reorganize code checking if alias is defined.
8751         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
8752         in LTO mode.
8753
8754 2011-01-11  Richard Guenther  <rguenther@suse.de>
8755
8756         PR tree-optimization/46076
8757         * tree-ssa.c (useless_type_conversion_p): Conversions from
8758         unprototyped to empty argument list function types are useless.
8759
8760 2011-01-11  Richard Guenther  <rguenther@suse.de>
8761
8762         PR middle-end/45235
8763         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
8764         volatile MEMs as MEM_READONLY_P.
8765
8766 2011-01-11  Richard Guenther  <rguenther@suse.de>
8767
8768         PR tree-optimization/47239
8769         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
8770
8771 2011-01-11  Jeff Law  <law@redhat.com>
8772
8773         PR tree-optimization/47086
8774         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
8775         IVs from statements that might throw.
8776
8777 2011-01-10  Jan Hubicka  <jh@suse.cz>
8778
8779         PR lto/45375
8780         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
8781
8782 2011-01-10  Jan Hubicka  <jh@suse.cz>
8783
8784         PR lto/45375
8785         * profile.c (read_profile_edge_counts): Ignore profile inconistency
8786         when correcting profile.
8787
8788 2011-01-10  Jan Hubicka  <jh@suse.cz>
8789
8790         PR lto/46083
8791         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
8792         DECL_FINI_PRIORITY.
8793         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
8794         Restore DECL_FINI_PRIORITY.
8795
8796 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8797
8798         * doc/gimple.texi: Fix quoting of multi-word return values in
8799         @deftypefn statements.  Ensure presence of return value.  Wrap
8800         overlong @deftypefn lines.
8801         (is_gimple_operand, is_gimple_min_invariant_address): Remove
8802         descriptions of removed functions.
8803         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
8804         of multi-word return value in @deftypefn statement.
8805
8806 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8807
8808         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
8809         (Conditional Expressions, Logical Operators)
8810         (Statement and operand traversals): Do not indent smallexample
8811         code.  Fix duplicate function argument in example.
8812
8813 2011-01-10  Jeff Law  <law@redhat.com>
8814
8815         PR tree-optimization/47141
8816         * ipa-split.c (split_function): Handle case where we are
8817         returning a value and the return block has a virtual operand phi.
8818
8819 2011-01-10  Jan Hubicka  <jh@suse.cz>
8820
8821         PR tree-optimization/47234
8822         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
8823         (pass_feedback_split_functions): Declare.
8824         * passes.c (init_optimization_passes): Add ipa-split as subpass of
8825         tree-profile.
8826         * ipa-split.c (gate_split_functions): Update comments; disable
8827         split-functions for profile_arc_flag and branch_probabilities.
8828         (gate_feedback_split_functions): New function.
8829         (execute_feedback_split_functions): New function.
8830         (pass_feedback_split_functions): New global var.
8831
8832 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
8833
8834         PR lto/46760
8835         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
8836         calling gimple_call_set_cannot_inline.
8837
8838 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
8839
8840         * config/darwin-sections.def: Remove unused section.
8841
8842 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
8843
8844         PR c++/47218
8845         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
8846
8847 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
8848
8849         PR objc/47232
8850         * c-parser.c (c_parser_declaration_or_fndef): Improved
8851         error message.
8852
8853 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
8854
8855         * config/i386/winnt.c (i386_pe_start_function): Make sure
8856         to switch back to function's section.
8857
8858 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
8859
8860         PR gcc/46902
8861         PR testsuite/46912
8862         * plugin.c: Move include of dlfcn.h from here...
8863         * system.h: ... to here.
8864
8865 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8866
8867         * doc/cpp.texi (C++ Named Operators): Fix markup for header
8868         file name.
8869         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
8870         two extra empty pages in PDF output.
8871
8872 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
8873
8874         PR objc/47078
8875         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
8876         for error recovery purposes behave as if it was not specified so
8877         that the default type is usd.
8878
8879 2011-01-07  Jan Hubicka  <jh@suse.cz>
8880
8881         PR tree-optmization/46469
8882         * ipa.c (function_and_variable_visibility): Clear needed flags on
8883         nodes with external decls; handle weakrefs merging correctly.
8884
8885 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
8886
8887         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
8888         not false.
8889
8890 2011-01-07  Jan Hubicka  <jh@suse.cz>
8891
8892         * doc/invoke.texi: (-flto, -fuse-linker-plugin): Update defaults
8893         and no longer claim that gold is required for linker plugin.
8894         * configure: Regenerate.
8895         * gcc.c (PLUGIN_COND): New macro.
8896         (LINK_COMMAND_SPEC): Use it.
8897         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
8898         * config.in (HAVE_LTO_PLUGIN): New.
8899         * configure.ac (--with-lto-plugin): New parameter; autodetect
8900         HAVE_LTO_PLUGIN.
8901
8902 2011-01-07  Jan Hubicka  <jh@suse.cz>
8903
8904         PR tree-optimization/46367
8905         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
8906         when we can update original.
8907         (cgraph_mark_inline_edge): Sanity check.
8908         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
8909
8910 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8911
8912         * config/spu/spu.h (ASM_COMMENT_START): Define.
8913
8914 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
8915
8916         PR driver/42445
8917         * gcc.c (%>S): New.
8918         (SWITCH_KEEP_FOR_GCC): Likewise.
8919         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
8920         (do_spec_1): Handle "%>".
8921
8922         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
8923
8924 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
8925
8926         PR target/47201
8927         * config/i386/i386.c (ix86_delegitimize_address): If
8928         simplify_gen_subreg fails, return orig_x.
8929
8930         PR bootstrap/47187
8931         * value-prof.c (gimple_stringop_fixed_value): Handle
8932         lhs of the call properly.
8933
8934 2011-01-07  Jan Hubicka  <jh@suse.cz>
8935
8936         PR lto/45375
8937         * lto-opt.c (lto_reissue_options): Set flag_shlib.
8938
8939 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
8940
8941         * target.def (function_switched_text_sections): New hook.
8942         * doc/tm.texi: Regenerated.
8943         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
8944         * final.c (default_function_switched_text_sections): New.
8945         (final_scan_insn): Call function_switched_text_sections when a
8946         mid-function section change occurs.
8947         * output.h (default_function_switched_text_sections): Declare.
8948         * config/darwin-protos.h (darwin_function_switched_text_sections):
8949         Likewise.
8950         * config/darwin.c (darwin_function_switched_text_sections): New.
8951         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
8952
8953 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
8954
8955         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
8956         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
8957         the secondary code fragment when outputting for DWARF == 2.
8958
8959 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
8960
8961         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
8962         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
8963         Remove.
8964         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
8965         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
8966
8967 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
8968
8969         PR debug/46704
8970         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
8971         when it is not empty.
8972
8973 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
8974
8975         Bobcat Enablement
8976         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
8977         (case ${target}): Add btver1.
8978         * config/i386/driver-i386.c (host_detect_local_cpu): Let
8979         -march=native recognize btver1 processors.
8980         * config/i386/i386-c.c (ix86_target_macros_internal): Add
8981         btver1 def_and_undef
8982         * config/i386/i386.c (struct processor_costs btver1_cost): New
8983         btver1 cost table.
8984         (m_BTVER1): New definition.
8985         (m_AMD_MULTIPLE): Includes m_BTVER1.
8986         (initial_ix86_tune_features): Add btver1 tune.
8987         (processor_target_table): Add btver1 entry.
8988         (static const char *const cpu_names): Add btver1 entry.
8989         (software_prefetching_beneficial_p): Add btver1.
8990         (ix86_option_override_internal): Add btver1 instruction sets.
8991         (ix86_issue_rate): Add btver1.
8992         (ix86_adjust_cost): Add btver1.
8993         * config/i386/i386.h (TARGET_BTVER1): New definition.
8994         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
8995         (enum processor_type): Add PROCESSOR_BTVER1.
8996         * config/i386/i386.md (define_attr "cpu"): Add btver1.
8997
8998 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8999
9000         PR target/43309
9001         * config/i386/i386.c (legitimize_tls_address)
9002         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
9003         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
9004         (tls_initial_exec_64_sun): New pattern.
9005
9006 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
9007
9008         * doc/invoke.texi (Overall Options): Improve wording and markup
9009         of the description of -wrapper.
9010
9011 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
9012
9013         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
9014         rdynamic, threads): New Driver options.
9015
9016 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9017
9018         PR target/38118
9019         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
9020         if coming from .tdata.
9021         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
9022
9023 2011-01-06  Jan Hubicka  <jh@suse.cz>
9024
9025         PR lto/47188
9026         * collect2.c (main): Do not enable LTOmode when plugin is active.
9027
9028 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9029
9030         PR other/45915
9031         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
9032         --version output if supported.
9033         * configure: Regenerate.
9034
9035 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
9036
9037         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
9038         Driver options.
9039
9040 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
9041
9042         PR c/47150
9043         * c-convert.c (convert): When converting a complex expression
9044         other than COMPLEX_EXPR to a different complex type, ensure
9045         c_save_expr is called instead of save_expr, unless in_late_binary_op.
9046         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
9047         when converting COMPLEX_TYPE.
9048
9049 2011-01-06  Ira Rosen  <irar@il.ibm.com>
9050
9051         PR tree-optimization/47139
9052         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
9053         only the last reduction value is used outside the loop.  Update
9054         documentation.
9055
9056 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
9057
9058         * config/rtems.opt: New.
9059         * config.gcc (*-*-rtems*): Use rtems.opt.
9060
9061 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
9062
9063         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
9064         processors do not support 3DNow instructions.
9065
9066 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9067
9068         * config/spu/spu.c (spu_option_override): Set parameter
9069         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
9070
9071 2011-01-05  Jan Hubicka  <jh@suse.cz>
9072
9073         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
9074         at the command line.
9075
9076 2011-01-05  Martin Jambor  <mjambor@suse.cz>
9077
9078         PR lto/47162
9079         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
9080         deltas on streamed outgoing edges.
9081         (output_node_opt_summary): Output info for outgoing edges only when
9082         the node is in new parameter set.
9083         (output_cgraph_opt_summary): New parameter set, passed to the two
9084         aforementioned functions.  Update its forward declaration and its
9085         callee too.
9086
9087 2011-01-05  Tom Tromey  <tromey@redhat.com>
9088
9089         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
9090         operator to c_finish_omp_atomic.
9091         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
9092         (build_unary_op): Update.
9093         (build_modify_expr): Update.
9094         (build_asm_expr): Update.
9095
9096 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9097
9098         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
9099         newly inserted insns.
9100         (pad_bb): Likewise.
9101         (spu_emit_branch_hint): Likewise.
9102         (insert_hbrp_for_ilb_runout): Likewise.
9103         (spu_machine_dependent_reorg): Call df_finish_pass after
9104         schedule_insns returns.
9105
9106 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9107
9108         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
9109
9110 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
9111
9112         PR tree-optimization/47005
9113         * tree-sra.c (struct access): Add 'non_addressable' bit.
9114         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
9115         (decide_one_param_reduction): Return 0 if the parameter is passed by
9116         reference and one of the accesses in the group is non_addressable.
9117
9118 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
9119
9120         PR tree-optimization/47056
9121         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
9122         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
9123         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
9124
9125 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
9126
9127         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
9128         initializer.  Skip view conversions from aggregate types.
9129
9130 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
9131
9132         PR bootstrap/47055
9133         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
9134
9135 2011-01-04  Philipp Thomas  <pth@suse.de>
9136
9137         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
9138         obvious typo.
9139
9140 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9141
9142         * function.c (thread_prologue_and_epilogue_insns): Do not crash
9143         on empty epilogue sequences.
9144
9145 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
9146
9147         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
9148         non-static): New Driver options.
9149
9150 2011-01-04  Jie Zhang  <jie@codesourcery.com>
9151
9152         PR driver/47137
9153         * gcc.c (default_compilers[]): Set combinable field to 0
9154         for all assembly languages.
9155
9156 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
9157
9158         * config/mips/loongson3a.md: New file.
9159         * config/mips/mips.md: Include loongson3a.md.
9160         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
9161         TUNE_LOONGSON_3A.
9162
9163 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
9164
9165         PR middle-end/47017
9166         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
9167         instead of convert_memory_address_addr_space on the base expression.
9168
9169 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9170
9171         * config/spu/spu.c (spu_option_override): Update error text
9172         for bad -march= / -mtune= values.
9173
9174 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9175
9176         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
9177         if branch-hint optimization will be performed.
9178
9179 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
9180
9181         PR tree-optimization/47148
9182         * ipa-split.c (split_function): Convert arguments to
9183         DECL_ARG_TYPE if possible.
9184
9185         PR tree-optimization/47155
9186         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
9187         when computing uns.
9188
9189         PR rtl-optimization/47157
9190         * combine.c (try_combine): If undobuf.other_insn becomes
9191         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
9192         and set *new_direct_jump_p too.
9193
9194 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
9195
9196         PR tree-optimization/47021
9197         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
9198
9199 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
9200
9201         * gcc.c (process_command): Update copyright notice dates.
9202         * gcov.c (print_version): Likewise.
9203         * gcov-dump.c (print_version): Likewise.
9204         * mips-tfile.c (main): Likewise.
9205         * mips-tdump.c (main): Likewise.
9206
9207 2011-01-03  Martin Jambor  <mjambor@suse.cz>
9208
9209         PR tree-optimization/46801
9210         * tree-sra.c (type_internals_preclude_sra_p): Check whether
9211         aggregate fields start at byte boundary instead of the bit-field flag.
9212
9213 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
9214
9215         PR driver/47137
9216         * gcc.c (main): Revert revision 168407.
9217
9218 2011-01-03  Martin Jambor  <mjambor@suse.cz>
9219
9220         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
9221
9222 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9223
9224         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
9225         vector optab to expand vector/scalar shift, update gimple to vector.
9226
9227 2011-01-03  Martin Jambor  <mjambor@suse.cz>
9228
9229         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
9230         a thunk.
9231
9232 2011-01-03  Martin Jambor  <mjambor@suse.cz>
9233
9234         PR tree-optimization/46984
9235         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
9236         HOST_WIDE_INT.
9237         (cgraph_create_indirect_edge): Fixed line length.
9238         (cgraph_indirect_call_info): Declare.
9239         (cgraph_make_edge_direct) Update declaration.
9240         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
9241         (cgraph_create_indirect_edge): Use it.
9242         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
9243         callees.
9244         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
9245         the new thunk_delta representation.
9246         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
9247         HOST_WIDE_INT.
9248         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
9249         (ipa_read_indirect_edge_info): Likewise.
9250         * lto-cgraph.c (output_edge_opt_summary): New function.
9251         (output_node_opt_summary): Call it on all outgoing edges.
9252         (input_edge_opt_summary): New function.
9253         (input_node_opt_summary): Call it on all outgoing edges.
9254
9255 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
9256
9257         PR driver/47137
9258         * gcc.c (main): Don't check have_o when settting combine_inputs.
9259
9260 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
9261
9262         * regrename.c: Add general comment describing the pass.
9263         (struct du_head): Remove 'length' field.
9264         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
9265         (regrename_optimize): Do not sort chains.  Rework comments, add others.
9266         Force renaming to the preferred class (if any) in the first pass and do
9267         not consider registers that belong to it in the second pass.
9268         (create_new_chain): Do not set 'length' field.
9269         (scan_rtx_reg): Likewise.
9270
9271 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
9272
9273         PR tree-optimization/47140
9274         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
9275         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
9276         to bit_value_binop.
9277
9278         PR rtl-optimization/47028
9279         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
9280         parm_birth_insn instead of at the beginning of first bb.
9281
9282 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
9283
9284         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
9285         Remove the word "see" before "@pxref".
9286         * doc/rtl.texi: Remove the word "see" before "@pxref".
9287
9288 2011-01-01  Jan Hubicka  <jh@suse.cz>
9289
9290         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
9291         memory.
9292
9293 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
9294
9295         PR target/38662
9296         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
9297
9298 \f
9299 Copyright (C) 2011 Free Software Foundation, Inc.
9300
9301 Copying and distribution of this file, with or without modification,
9302 are permitted in any medium without royalty provided the copyright
9303 notice and this notice are preserved.