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