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