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