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