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