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