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