OSDN Git Service

c13819a0ce0ea497bbe05bf27657e9d29cc79259
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-08-14  Anatoly Sokolov  <aesok@post.ru>
2
3         * config/mmix/mmix.c (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Redefine
4         as mmix_preferred_output_reload_class.
5
6 2011-08-14  Georg-Johann Lay  <avr@gjlay.de>
7         
8         * PR target/49903
9         * config/avr/avr.md (UNSPEC_IDENTITY): New c_enum.
10         (branch_unspec): New insn.
11         (branch): Beauty farm.
12         * config/avr/avr.c (compare_condition): Use JUMP_P.  Test SET_SRC
13         to be IF_THEN_ELSE.
14         (avr_compare_pattern, avr_reorg_remove_redundant_compare):
15         New static functions.
16         (avr_reorg): Use them.  Use next_real_insn instead of NEXT_INSN.
17         Use CONST_INT_P.  Beauty.
18
19 2011-08-12  David Li  <davidxl@google.com>
20
21         * cp/class.c (update_vtable_entry_for_fn): Set
22         LOST_PRIMARY bit properly.
23
24 2011-08-12  Richard Henderson  <rth@redhat.com>
25
26         PR rtl-opt/49994
27         * sched-init.h (struct deps_desc): Add sched_before_next_jump.
28         * sched-deps.c (init_deps): Clear it.
29         (deps_analyze_insn): Consume it.
30         (sched_analyze_insn): Fill it.
31
32 2011-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
33
34         PR target/48328
35         * config/arm/arm.h (CASE_VECTOR_SHORTEN_MODE): Fix distance
36         for tbh instructions.
37
38 2011-08-12   Diego Novillo  <dnovillo@google.com>
39
40         * data-streamer.h (streamer_write_zero): Rename from output_zero.
41         (streamer_write_uhwi): Rename from lto_output_uleb128.
42         (streamer_write_hwi): Rename from output_sleb128.
43         (streamer_write_string): Rename from lto_output_string.
44         (streamer_string_index): Rename from lto_string_index.
45         (streamer_write_string_with_length): Rename from
46         lto_output_string_with_length.
47         (streamer_write_uhwi_stream): Rename from lto_output_uleb128_stream.
48         (streamer_write_hwi_stream): Rename from lto_output_sleb128_stream.
49         (streamer_read_string): Rename from lto_input_string.
50         (streamer_read_indexed_string): Rename from input_string_internal.
51         (streamer_read_uhwi): Rename from lto_input_uleb128.
52         (streamer_read_hwi): Rename from lto_input_sleb128.
53         (streamer_write_hwi_in_range): Rename from lto_output_int_in_range.
54         (streamer_read_hwi_in_range): Rename from lto_input_int_in_range.
55         (streamer_write_enum): Rename from lto_output_enum.
56         (streamer_read_enum): Rename from lto_input_enum.
57         (streamer_write_record_start): Rename from output_record_start.
58         (streamer_read_record_start): Rename from input_record_start.
59         (streamer_write_bitpack): Rename from lto_output_bitpack.
60         (streamer_read_bitpack): Rename from lto_input_bitpack.
61         (streamer_write_char_stream): Rename from lto_output_1_stream.
62         (streamer_read_uchar): Rename from lto_input_1_unsigned.
63         * tree-streamer.h (streamer_cache_d): Rename from lto_streamer_cache_d.
64         (streamer_handle_as_builtin_p): Rename from lto_stream_as_builtin_p.
65         (streamer_read_string_cst): Rename from input_string_cst.
66         (streamer_read_chain): Rename from lto_input_chain.
67         (streamer_alloc_tree): Rename from lto_materialize_tree.
68         (streamer_read_tree_body): Rename from lto_input_tree_pointers.
69         (streamer_get_pickled_tree): Rename from lto_get_pickled_tree.
70         (streamer_get_builtin_tree): Rename from lto_get_builtin_tree.
71         (streamer_read_integer_cst): Rename from lto_input_integer_cst.
72         (streamer_read_tree_bitfields): Rename from tree_read_bitfields.
73         (streamer_write_chain): Rename from lto_output_chain.
74         (streamer_write_tree_header): Rename from lto_output_tree_header.
75         (streamer_pack_tree_bitfields): Rename from pack_value_fields.
76         (streamer_write_tree_body): Rename from lto_output_tree_pointers.
77         (streamer_write_integer_cst): Rename from lto_output_integer_cst.
78         (streamer_write_builtin): Rename from lto_output_builtin_tree.
79         (streamer_check_handled_ts_structures): Rename from
80         check_handled_ts_structures.
81         (streamer_tree_cache_insert): Rename from lto_streamer_cache_insert.
82         (streamer_tree_cache_insert_at): Rename from
83         lto_streamer_cache_insert_at.
84         (streamer_tree_cache_append): Rename from lto_streamer_cache_append.
85         (streamer_tree_cache_lookup): Rename from lto_streamer_cache_lookup.
86         (streamer_tree_cache_get): Rename from lto_streamer_cache_get.
87         (streamer_tree_cache_create): Rename from lto_streamer_cache_create.
88         (streamer_tree_cache_delete): Rename from lto_streamer_cache_delete.
89         * tree-streamer-out.c (write_string_cst): Rename from output_string_cst.
90         (write_identifier): Rename from output_identifier.
91         (write_ts_common_tree_pointers): Rename from
92         lto_output_ts_common_tree_pointers.
93         (write_ts_vector_tree_pointers): Rename from
94         lto_output_ts_vector_tree_pointers.
95         (write_ts_complex_tree_pointers): Rename from
96         lto_output_ts_complex_tree_pointers.
97         (write_ts_decl_minimal_tree_pointers): Rename from
98         lto_output_ts_decl_minimal_tree_pointers.
99         (write_ts_decl_common_tree_pointers): Rename from
100         lto_output_ts_decl_common_tree_pointers.
101         (write_ts_decl_non_common_tree_pointers): Rename from
102         lto_output_ts_decl_non_common_tree_pointers.
103         (write_ts_decl_with_vis_tree_pointers): Rename from
104         lto_output_ts_decl_with_vis_tree_pointers.
105         (write_ts_field_decl_tree_pointers): Rename from
106         lto_output_ts_field_decl_tree_pointers.
107         (write_ts_function_decl_tree_pointers): Rename from
108         lto_output_ts_function_decl_tree_pointers.
109         (write_ts_type_common_tree_pointers): Rename from
110         lto_output_ts_type_common_tree_pointers.
111         (write_ts_type_non_common_tree_pointers): Rename from
112         lto_output_ts_type_non_common_tree_pointers.
113         (write_ts_list_tree_pointers): Rename from
114         lto_output_ts_list_tree_pointers.
115         (write_ts_vec_tree_pointers): Rename from
116         lto_output_ts_vec_tree_pointers.
117         (write_ts_exp_tree_pointers): Rename from
118         lto_output_ts_exp_tree_pointers.
119         (write_ts_block_tree_pointers): Rename from
120         lto_output_ts_block_tree_pointers.
121         (write_ts_binfo_tree_pointers): Rename from
122         lto_output_ts_binfo_tree_pointers.
123         (write_ts_constructor_tree_pointers): Rename from
124         lto_output_ts_constructor_tree_pointers.
125         (write_ts_target_option): Rename from
126         lto_output_ts_target_option.
127         (write_ts_translation_unit_decl_tree_pointers): Rename from
128         lto_output_ts_translation_unit_decl_tree_pointers.
129         * tree-streamer.c (streamer_tree_cache_add_to_node_array):
130         Rename from lto_streamer_cache_add_to_node_array.
131         (streamer_tree_cache_insert_1): Rename from lto_streamer_cache_insert_1.
132         (record_common_node): Rename from lto_record_common_node.
133
134         * streamer-hooks.h (bitpack_d, lto_streamer_cache_d): Remove forward
135         declarations.
136         * data-streamer-in.c (lto_input_widest_uint_uleb128): Remove unused
137         function.
138         * data-streamer-out.c (lto_output_widest_uint_uleb128_stream): Remove
139         unused function.
140         * Makefile.in (lto-section-out.o): Add dependency on DATA_STREAMER_H.
141         (ipa-reference.o): Likewise.
142         * lto-section-out.c: Include data-streamer.h.
143         * ipa-reference.c: Include data-streamer.h.
144
145 2011-08-12  Nick Clifton  <nickc@redhat.com>
146
147         * builtins.c (expand_builtin_memcmp): Do not use cmpstrnsi
148         pattern.
149         * doc/md.texi (cmpstrn): Note that the comparison stops if both
150         fetched bytes are zero.
151         (cmpstr): Likewise.
152         (cmpmem): Note that the comparison does not stop if both of the
153         fetched bytes are zero.
154
155 2011-08-12  Uros Bizjak  <ubizjak@gmail.com>
156
157         * builtins.def (BUILT_IN_ICEIL{,F,L}, BUILT_IN_IFLOOR{,F,L}
158         BUILT_IN_IRINT{,F,L}, BUILT_IN_IROUND{,F,L}: New builtin definitions.
159         * convert.c (convert_to_integer): Convert to BUILT_IN_ICEIL,
160         BUILT_IN_IFLOOR, BUILT_IN_IRINT or BUILT_INT_IROUND when converting
161         to integer_type_node.
162         * fold-const.c (tree_call_nonnegative_warnv_p): Handle BUILT_IN_ICEIL,
163         BUILT_IN_IFLOOR, BUILT_IN_IRINT and BUILT_INT_IROUND.
164         * builtins.c (expand_builtin_in): Ditto.
165         (mathfn_built_in_1): Ditto.
166         (expand_builtin_int_roundingfn): Handle BUILT_IN_ICEIL and
167         BUILT_IN_IFLOOR.
168         (expand_builtin_int_roundingfn_2): Handle BUILT_IN_IRINT and
169         BUILT_IN_IROUND.
170         (fold_fixed_mathfn): Canonicalize BUILT_IN_ICEIL, BUILTIN_IN_IFLOOR
171         BUILT_IN_IRINT and BUILT_IN_IROUND to BUILT_IN_LCEIL,
172         BUILTIN_IN_LFLOOR, BUILT_IN_LRINT and BUILT_IN_LROUND on ILP32 targets.
173
174 2011-08-12  Richard Guenther  <rguenther@suse.de>
175
176         * tree-vrp.c (extract_range_from_unary_expr_1): Implement
177         -X as 0 - X.
178
179 2011-08-12  Romain Geissler  <romain.geissler@gmail.com>
180
181         * Makefile.in (PLUGIN_HEADERS): Add C_TREE_H.
182
183 2011-08-12  Richard Sandiford  <rdsandiford@googlemail.com>
184
185         * config/arm/arm.c (get_label_padding): New function.
186         (create_fix_barrier, arm_reorg): Use it.
187
188 2011-08-11  Uros Bizjak  <ubizjak@gmail.com>
189
190         PR target/49781
191         * config/i386/i386.md (*lea_5_zext): New.
192         (*lea_6_zext): Ditto.
193         * config/i386/predicates.md (const_32bit_mask): New predicate.
194         (lea_address_operand): Reject AND.
195         * config/i386/i386.c (ix86_decompose_address): Allow Dimode AND with
196         const_32bit_mask immediate.
197         (ix86_print_operand_address): Handle AND.
198         (memory_address_length): Ditto.
199
200 2011-08-11  Romain Geissler  <romain.geissler@gmail.com>
201             Brian Hackett  <bhackett1024@gmail.com>
202
203         * plugin.def: Add event for finish_decl.
204         * plugin.c (register_callback, invoke_plugin_callbacks): Same.
205         * c-decl.c (finish_decl): Invoke callbacks on above event.
206         * doc/plugins.texi: Document above event.
207
208 2011-08-11  Richard Guenther  <rguenther@suse.de>
209
210         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid redundant
211         lookups, make looking through aggregate copies stronger.
212
213 2011-08-11  Richard Henderson  <rth@redhat.com>
214
215         PR bootstrap/50018
216         * expr.c (fixup_args_size_notes): Accept and ignore normal calls.
217
218 2011-08-11  Richard Guenther  <rguenther@suse.de>
219
220         * lto-cgraph.c (input_node): Use DECL_BUILT_IN.
221         * tree-vrp.c (stmt_interesting_for_vrp): Likewise.
222         (vrp_visit_stmt): Likewise.
223
224 2011-08-11  Richard Guenther  <rguenther@suse.de>
225
226         PR middle-end/50040
227         * gimplify.c (gimplify_modify_expr_complex_part): Mark the
228         load of the other piece with TREE_NO_WARNING.
229         * tree-flow.h (warn_uninit): Adjust prototype.
230         * tree-ssa.c (warn_uninit): Take uninitialized SSA name,
231         the base variable and the expression that is used separately.
232         Properly query all TREE_NO_WARNING flags.
233         (struct walk_data): Remove.
234         (warn_uninitialized_var): Likewise.
235         (warn_uninitialized_vars): Do not walk gimple pieces but simply
236         look at all SSA uses of the statement.  Handle unused memory
237         separately.
238         * tree-ssa-uninit.c (warn_uninitialized_phi): Adjust.
239
240 2011-08-11   Kazuhiro Inaoka  <kazuhiro.inaoka.ud@renesas.com>
241
242         * config/rx/rx.md (movsicc): Allow register to register transfers.
243         (*movsicc): Likewise.
244         (*stcc): Restrict this pattern to EQ and NE compares.
245         (*stcc_reg): New pattern.  Works for any comparison but only for
246         register transfers.
247
248 2011-08-11   Diego Novillo  <dnovillo@google.com>
249
250         * tree-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers):
251         Call stream_write_tree instead of output_record_start.
252         (lto_output_ts_binfo_tree_pointers): Likewise.
253
254         * streamer-hooks.h (stream_write_tree): Move from tree-streamer.h.
255         Convert it to a macro.
256         (stream_read_tree): Likewise.
257
258         * lto-streamer.h (lto_stream_as_builtin_p): Move ...
259         * tree-streamer.h (lto_stream_as_builtin_p): ... here.
260
261         * lto-streamer-in.c (lto_read_tree): Call lto_streamer_cache_append
262         and tree_read_bitfields.
263         * lto-streamer-out.c (lto_is_streamable): Move from lto-streamer.c
264         (lto_write_tree): Call it.
265         * lto-streamer.c (lto_is_streamable): Move to lto-streamer-out.c
266         * streamer-hooks.h (struct streamer_hooks): Remove fields
267         name, is_streamable and alloc_tree. Update all users.
268         * tree-streamer-in.c (tree_read_bitfields): Factor out of ...
269         (lto_materialize_tree): ... here.
270         Handle CALL_EXPR codes.
271         Remove call to lto_streamer_cache_append.
272         * tree-streamer-out.c (lto_output_tree_header): Handle CALL_EXPR nodes.
273         * tree-streamer.h (tree_read_bitfields): Declare.
274
275         * Makefile.in (TREE_STREAMER_H): Add STREAMER_HOOKS_H.
276         (gimple-streamer-in.o): Add dependency on TREE_STREAMER_H.
277         * tree-streamer.h (stream_read_tree): New.  Replace all calls
278         to lto_input_tree with it.
279         (stream_write_tree): New.  Replace all calls to lto_output_tree,
280         lto_output_tree_ref and lto_output_tree_or_ref with it.
281         * lto-streamer-in.c (lto_read_tree): Inline code from
282         lto_streamer_read_tree.
283         (lto_input_tree): Move from tree-streamer-in.c.
284         * lto-streamer-out.c (lto_output_tree_ref): Make static.
285         Remove handling of NULL values for EXPR.
286         Do not handle EXPRs that are not indexable.
287         (lto_write_tree): Move from tree-streamer-out.c.
288         Inline lto_streamer_write_tree.
289         (lto_output_tree): Move from tree-streamer-out.c.
290         If REF_P is true and EXPR is indexable, call lto_output_tree_ref.
291         * lto-streamer.c (lto_record_common_node): Move to tree-streamer.c.
292         (lto_preload_common_nodes): Likewise.
293         Remove assertions and adjustments for nodes
294         main_identifier_node, ptrdiff_type_node and fileptr_type_node.
295         (lto_streamer_hooks_init): Set streamer_hooks.write_tree to
296         lto_output_tree and streamer_hooks.read_tree to lto_input_tree.
297         * lto-streamer.h (lto_input_tree): Declare.
298         (lto_output_tree_ref): Remove.
299         * streamer-hooks.h (struct streamer_hooks): Remove fields
300         preload_common_nodes, indexable_with_decls_p,
301         pack_value_fields, unpack_value_fields and output_tree_header.
302         Update all users.
303         * tree-streamer-in.c (lto_materialize_tree): Make extern.
304         (lto_input_tree_pointers): Likewise.
305         (lto_read_tree): Move to lto-streamer-in.c.
306         (lto_input_integer_cst): Make extern.
307         (lto_get_pickled_tree): Likewise.
308         (lto_get_builtin_tree): Likewise.
309         (lto_input_tree): Move to lto-streamer-in.c.
310         * tree-streamer-out.c (pack_value_fields): Make extern.
311         (lto_output_tree_or_ref): Remove.  Replace all callers with
312         calls to stream_write_tree.
313         (lto_output_builtin_tree): Make extern.
314         (lto_streamer_write_tree): Inline into lto_write_tree.
315         (lto_output_tree_pointers): Make extern.
316         (lto_output_tree_header): Likewise.
317         (lto_output_integer_cst): Likewise.
318         (lto_write_tree): Move to lto-streamer-out.c.
319         (lto_output_tree): Likewise.
320         * tree-streamer.c (lto_record_common_node): Move from lto-streamer.c
321         (preload_common_nodes): Likewise.
322         (lto_streamer_cache_create): Call it.
323         * tree-streamer.h: Include streamer-hooks.h.
324         (stream_write_tree): New.
325         (stream_read_tree): New.
326         (lto_input_tree): Remove.
327         (lto_materialize_tree): Declare.
328         (lto_input_tree_pointers): Declare.
329         (lto_get_pickled_tree): Declare.
330         (lto_get_builtin_tree): Declare.
331         (lto_input_integer_cst): Declare.
332         (lto_output_tree_header): Declare.
333         (pack_value_fields): Declare.
334         (lto_output_tree_pointers): Declare.
335         (lto_output_integer_cst): Declare.
336         (lto_output_builtin_tree): Declare.
337
338 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
339
340         * sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge
341         only if producer writes to the register given by regno.
342
343 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
344             Alexander Monakov  <amonakov@ispras.ru>
345
346         * sched-deps.c (sched_get_condition_with_rev): Rename to ...
347         (sched_get_condition_with_rev_uncached): ... this.  Factor out
348         condition caching logic into ...
349         (sched_get_condition_with_rev): ... this.  Reimplement.  Do not
350         attempt to use cache for instructions with zero luid.
351         (sched_analyze_insn): Use INSN_CACHED_COND instead of INSN_COND.
352         * sched-int.h (INSN_COND): Rename to INSN_CACHED_COND.
353
354 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
355
356         * sel-sched-ir.c (get_seqno_of_a_pred): Rename to
357         get_seqno_for_a_jump.  Update the caller.
358         (get_seqno_by_succs): New.  Use it ...
359         (get_seqno_for_a_jump): ... here to find a seqno if looking at
360         predecessors was not sufficient.
361         (get_seqno_by_preds): Include head in iteration range, exclude insn.
362
363 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
364
365         * sel-sched-ir.c (invalidate_av_set): Remove the assert.
366
367 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
368
369         * sel-sched-ir.h (register_unavailable_p): Declare.
370         * sel-sched-ir.c (register_unavailable_p): New.  Use it...
371         (set_unavailable_target_for_expr): ... here to properly test
372         availability of a register.
373         (speculate_expr): Ditto.
374         * sel-sched.c (substitute_reg_in_expr): Ditto.
375         (av_set_could_be_blocked_by_bookkeeping_p): Ditto.
376
377 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
378
379         * sel-sched.c (verify_target_availability): Fix usage of
380         hard_regno_nregs.
381
382 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
383
384         * sel-sched-ir.c (init_global_and_expr_for_insn): Forbid copying of
385         recognized by cannot_copy_insn_p hook and volatile instructions.
386
387 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
388
389         * sel-sched-ir.c (merge_expr_data): Take maximum spec.
390
391 2011-08-11  Richard Sandiford  <richard.sandiford@linaro.org>
392
393         * doc/md.texi (define_bypass): Say that the instruction names can
394         be filename-style globs.
395         * Makefile.in (FNMATCH_H): Define.
396         (build/genattrtab.o, build/genautomata.o): Depend on $(FNMATCH_H).
397         * genattrtab.c: Include fnmatch.h.
398         (bypass_list): Change field name from "insn" to "pattern".
399         (gen_bypass_1): Update accordingly.
400         (process_bypasses): Use fnmatch to check for matches between
401         insn reservations and define_bypasses.
402         * genautomata.c: Include fnmatch.h.
403         (bypass_decl): Rename in_insn_name and out_insn_name to in_pattern
404         and out_pattern respectively.
405         (gen_bypass, insert_bypass): Update accordingly.
406         (for_each_matching_insn, process_bypass_2, process_bypass_1)
407         (process_bypass): New functions.
408         (process_decls): Use process_bypass.  Update after field name changes.
409
410 2011-08-11  Georg-Johann Lay  <avr@gjlay.de>
411
412         PR target/49687
413         * config/avr/avr.md (smulqi3_highpart): New insn.
414         (umulqi3_highpart): New insn.
415         (*subqi3.ashiftrt7): New insn.
416         (smulhi3_highpart): New expander.
417         (umulhi3_highpart): Nex expander.
418         (*smulhi3_highpart_call): New insn.
419         (*umulhi3_highpart_call): New insn.
420         (extend_u): New code attribute.
421         (extend_prefix): Rename code attribute to extend_su.
422         * config/avr/avr.c (avr_rtx_costs): Report costs of highpart of
423         widening QI/HI multiply.
424
425 2011-08-11  Ira Rosen  <ira.rosen@linaro.org>
426
427         PR tree-optimization/50039
428         * tree-vect-patterns.c (vect_operation_fits_smaller_type): Check
429         that DEF_STMT has a stmt_vec_info.
430
431 2011-08-10  Richard Guenther  <rguenther@suse.de>
432
433         * tree.h (can_trust_pointer_alignment): Remove.
434         * builtins.c (can_trust_pointer_alignment): Remove.
435
436 2011-08-10  Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
437
438         * c-typeck.c (scalar_to_vector): New function. Try scalar to
439         vector conversion.
440         (stv_conv): New enum for scalar_to_vector return type.
441         (build_binary_op): Adjust.
442         * doc/extend.texi: Description of scalar to vector expansion.
443
444 2011-08-10  Richard Guenther  <rguenther@suse.de>
445
446         * tree.h (get_pointer_alignment): Remove max-align argument.
447         (get_object_alignment): Likewise.
448         * builtins.c (get_object_alignment_1): Adjust.
449         (get_object_alignment): Remove max-align argument.
450         (get_pointer_alignment): Likewise.
451         (expand_builtin_strlen): Adjust.
452         (expand_builtin_memcpy): Likewise.
453         (expand_builtin_mempcpy_args): Likewise.
454         (expand_builtin_strncpy): Likewise.
455         (expand_builtin_memset_args): Likewise.
456         (expand_builtin_memcmp): Likewise.
457         (expand_builtin_strcmp): Likewise.
458         (expand_builtin_strncmp): Likewise.
459         (get_builtin_sync_mem): Likewise.
460         (fold_builtin_memset): Likewise.
461         (fold_builtin_memory_op): Likewise.
462         (expand_builtin_memory_chk): Likewise.
463         * emit-rtl.c (get_mem_align_offset): Likewise.
464         (set_mem_attributes_minus_bitpos): Likewise.
465         * expr.c (expand_assignment): Likewise.
466         (expand_expr_real_1): Likewise.
467         * tree-sra.c (tree_non_mode_aligned_mem_p): Likewise.
468         * tree-ssa-forwprop.c (simplify_builtin_call): Likewise.
469         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Likewise.
470         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
471         * value-prof.c (gimple_stringops_transform): Likewise.
472
473 2011-08-10  Paulo J. Matos  <paulo.matos@csr.com>
474
475         * doc/tm.texi.in (CLASS_MAX_NREGS): Fix typo.
476         * doc/tm.texi: Regenerate.
477
478 2011-08-10  Georg-Johann Lay  <avr@gjlay.de>
479
480         PR target/29560
481         * config/avr/avr.md (*ashlhiqi3): New insn-and-split.
482         (*ashl<extend_prefix>qihiqi3): New insn-and-splits.
483         (*ashl<extend_prefix>qihiqi3.mem): New insn-and-splits.
484         Add peephole2 to map ashlhi3 to ashlqi3 if high part of
485         shift target is unused.
486
487 2011-08-10  Richard Guenther  <rguenther@suse.de>
488
489         PR tree-optimization/49937
490         * tree-ssa-ccp.c (get_value_from_alignment): Re-implement
491         using get_object_alignment_1.
492
493 2011-08-09  Uros Bizjak  <ubizjak@gmail.com>
494
495         * config/i386/i386.c (ix86_emit_i387_round): New function.
496         * config/i386/i386-protos.h (ix86_emit_i387_round): Declare.
497         * config/i386/i386.md (round<mode>2): Use X87MODEF mode iterator.
498         Use ix86_emit_i387_round to expand round function for i387 math.
499         (lround<X87MODEF:mode><SWI248x:mode>2): Use X87MODEF mode iterator.
500         Use ix86_emit_i387_round to expand {l,ll}round function for i387 math.
501
502 2011-08-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
503
504         * config/sync.c: Move to ../libgcc.
505         * Makefile.in (libgcc.mvars): Remove LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS.
506         * config/mips/t-libgcc-mips16 (LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS):
507         Remove.
508
509 2011-08-09  Anatoly Sokolov  <aesok@post.ru>
510
511         * config/mmix/mmix.h (REGISTER_MOVE_COST): Remove macro.
512         * config/mmix/mmix-protos.h (mmix_register_move_cost): Remove.
513         * config/mmix/mmix.c (mmix_register_move_cost): Make static.
514         Change 'from' and 'to' arguments type to reg_class_t.
515         (TARGET_REGISTER_MOVE_COST): Define.
516
517 2011-08-09  Vladimir Makarov  <vmakarov@redhat.com>
518
519         PR target/50026
520         Revert:
521         PR rtl-optimization/49990
522         * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
523         ignore classes which can not change mode.
524         (find_costs_and_classes): Ditto.
525
526 2011-08-09  Richard Guenther  <rguenther@suse.de>
527
528         * tree-vrp.c (zero_nonzero_bits_from_vr): Also return precise
529         information for ranges with only negative values.
530         (extract_range_from_binary_expr_1): Adjust BIT_IOR_EXPR and
531         BIT_AND_EXPR handling to handle ranges with negative values.
532
533 2011-08-09  Kirill Yukhin  <kirill.yukhin@intel.com>
534
535         * config/i386/i386.c: Remove traling spaces.
536         * config/i386/sse.md: Likewise.
537         (*fma_fmadd_<mode>): Fix insn alternative 1 mnemonic.
538         (*fma_fmsub_<mode>): Likewise.
539         (*fma_fnmadd_<mode>): Likewise.
540         (*fma_fnmsub_<mode>): Likewise.
541
542 2011-08-09  Nick Clifton  <nickc@redhat.com>
543
544         * config/rx/rx.md: Disable extender peepholes at -O3.
545
546 2011-08-09  Uros Bizjak  <ubizjak@gmail.com>
547
548         PR target/49781
549         * config/i386/i386.md (reload_noff_load): New.
550         (reload_noff_store): Ditto.
551         * config/i386/i386.c (ix86_secondary_reload): Use
552         CODE_FOR_reload_noff_load and CODE_FOR_reload_noff_store to handle
553         double-word moves from/to non-offsetable addresses instead of
554         generating XMM temporary.
555
556 2011-08-09  Anatoly Sokolov  <aesok@post.ru>
557
558         * config/mmix/mmix.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Remove.
559
560 2011-08-09  Ira Rosen  <ira.rosen@linaro.org>
561
562         PR tree-optimization/50014
563         * tree-vect-loop.c (vectorizable_reduction): Get def type before
564         calling vect_get_vec_def_for_stmt_copy ().
565
566 2011-08-08  Vladimir Makarov  <vmakarov@redhat.com>
567
568         PR rtl-optimization/49990
569         * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
570         ignore classes which can not change mode.
571         (find_costs_and_classes): Ditto.
572
573 2011-08-08  Richard Henderson  <rth@redhat.com>
574
575         PR middle-end/49990
576         * config/i386/i386.c (ix86_expand_prologue): Call
577         for SEH target gen_prologue_use instead of gen_blockage
578         at prologue's end.
579
580 2011-08-08  Martin Jambor  <mjambor@suse.cz>
581
582         PR middle-end/49923
583         * tree-sra.c (access_precludes_ipa_sra_p): Also check access
584         memory alignment.
585
586 2011-08-08   Diego Novillo  <dnovillo@google.com>
587
588         * Makefile.in (LTO_STREAMER_H): Add DIAGNOSTIC_H.
589         (DATA_STREAMER_H): New.
590         (GIMPLE_STREAMER_H): New.
591         (TREE_STREAMER_H): New.
592         (STREAMER_HOOKS_H): New.
593         (OBJS): Add data-streamer.o, data-streamer-in.o, data-streamer-out.o,
594         gimple-streamer-in.o, gimple-streamer-out.o, streamer-hooks.o,
595         tree-streamer.o, tree-streamer-in.o and tree-streamer-out.o.
596         (data-streamer.o): New.
597         (data-streamer-in.o): New.
598         (data-streamer-out.o): New.
599         (gimple-streamer-in.o): New.
600         (gimple-streamer-out.o): New.
601         (streamer-hooks.o): New.
602         (tree-streamer.o): New.
603         (tree-streamer-in.o): New.
604         (tree-streamer-out.o): New.
605         (lto-cgraph.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
606         (lto-streamer-in.o): Add dependency on DATA_STREAMER_H,
607         GIMPLE_STREAMER_H and TREE_STREAMER_H.
608         (lto-streamer-out.o): Add dependency on DATA_STREAMER_H,
609         GIMPLE_STREAMER_H and TREE_STREAMER_H.
610         (lto-streamer.o): Add dependency on STREAMER_HOOKS_H.
611         (ipa-prop.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
612         (ipa-inline-analysis.o): Likewise.
613         (ipa-pure-const.o): Likewise.
614         * data-streamer-in.c: New.
615         * data-streamer-out.c: New.
616         * data-streamer.c: New.
617         * data-streamer.h: New.
618         * gimple-streamer-in.c: New.
619         * gimple-streamer-out.c: New.
620         * gimple-streamer.h: New.
621         * ipa-inline-analysis.c: Include data-streamer.h.
622         * ipa-prop.c: Include data-streamer.h.
623         * ipa-pure-const.c: Include data-streamer.h.
624         * lto-cgraph.c: Include data-streamer.h.
625         * lto-section-in.c (lto_input_uleb128): Move to data-streamer-in.c.
626         (lto_input_widest_uint_uleb128): Likewise.
627         (lto_input_sleb128): Likewise.
628         (bp_unpack_var_len_unsigned): Likewise.
629         (bp_unpack_var_len_int): Likewise.
630         * lto-section-out.c (lto_output_uleb128_stream): Move to
631         data-streamer-out.c.
632         (lto_output_widest_uint_uleb128_stream): Likewise.
633         (lto_output_sleb128_stream): Likewise.
634         (bp_pack_var_len_unsigned): Likewise.
635         (bp_pack_var_len_int): Likewise.
636         * lto-streamer-in.c: Include data-streamer.h and gimple-streamer.h.
637         (struct string_slot): Remove.  Update all users.
638         (lto_tag_check_set): Make extern.
639         (lto_tag_check_range): Move to lto-streamer.h.
640         (lto_tag_check): Likewise.
641         (hash_string_slot_node): Remove.  Update all users.
642         (eq_string_slot_node): Remove.  Update all users.
643         (string_for_index): Move to data-streamer-in.c
644         (input_string_internal): Likewise.
645         (input_string_cst): Move to tree-streamer-in.c.
646         (input_identifier): Likewise.
647         (lto_input_string): Move to data-streamer-in.c
648         (input_record_start): Move to data-streamer.h
649         (canon_file_name): Use new definition of struct string_slot
650         from data-streamer.h.  Set S_SLOT.LEN.
651         (lto_input_location): Make extern.
652         (lto_input_chain): Move to tree-streamer-in.c.
653         (lto_init_eh): Make extern.
654         (input_phi): Move to gimple-streamer-in.c.
655         (input_gimple_stmt): Likewise.
656         (input_bb): Likewise.
657         (unpack_ts_base_value_fields): Move to tree-streamer-in.c.
658         (unpack_ts_real_cst_value_fields): Likewise.
659         (unpack_ts_fixed_cst_value_fields): Likewise.
660         (unpack_ts_decl_common_value_fields): Likewise.
661         (unpack_ts_decl_wrtl_value_fields): Likewise.
662         (unpack_ts_decl_with_vis_value_fields): Likewise.
663         (unpack_ts_function_decl_value_fields): Likewise.
664         (unpack_ts_type_common_value_fields): Likewise.
665         (unpack_ts_block_value_fields): Likewise.
666         (unpack_ts_translation_unit_decl_value_fields): Likewise.
667         (unpack_value_fields): Likewise.
668         (lto_materialize_tree): Likewise.
669         (lto_input_ts_common_tree_pointers): Likewise.
670         (lto_input_ts_vector_tree_pointers): Likewise.
671         (lto_input_ts_complex_tree_pointers): Likewise.
672         (lto_input_ts_decl_minimal_tree_pointers): Likewise.
673         (lto_input_ts_decl_common_tree_pointers): Likewise.
674         (lto_input_ts_decl_non_common_tree_pointers): Likewise.
675         (lto_input_ts_decl_with_vis_tree_pointers): Likewise.
676         (lto_input_ts_field_decl_tree_pointers): Likewise.
677         (lto_input_ts_function_decl_tree_pointers): Likewise.
678         (lto_input_ts_type_common_tree_pointers): Likewise.
679         (lto_input_ts_type_non_common_tree_pointers): Likewise.
680         (lto_input_ts_list_tree_pointers): Likewise.
681         (lto_input_ts_vec_tree_pointers): Likewise.
682         (lto_input_ts_exp_tree_pointers): Likewise.
683         (lto_input_ts_block_tree_pointers): Likewise.
684         (lto_input_ts_binfo_tree_pointers): Likewise.
685         (lto_input_ts_constructor_tree_pointers): Likewise.
686         (lto_input_ts_target_option): Likewise.
687         (lto_input_ts_translation_unit_decl_tree_pointers): Likewise.
688         (lto_input_tree_pointers): Likewise.
689         (lto_get_pickled_tree): Likewise.
690         (lto_get_builtin_tree): Likewise.
691         (lto_read_tree): Likewise.
692         (lto_input_integer_cst): Likewise.
693         (lto_input_tree): Likewise.
694         * lto-streamer-out.c: Include data-streamer.h,
695         gimple-streamer.h and streamer-hooks.h.
696         (struct string_slot): Move to data-streamer.h.
697         (hash_string_slot_node): Likewise.
698         (eq_string_slot_node): Likewise.
699         (lto_string_index): Move to data-streamer-out.c.
700         (lto_output_string_with_length): Likewise.
701         (lto_output_string): Likewise.
702         (output_string_cst): Move to tree-streamer-out.c.
703         (output_identifier): Likewise.
704         (output_zero): Move to data-streamer-out.c
705         (output_uleb128): Likewise.
706         (output_sleb128): Likewise.
707         (output_record_start): Move to data-streamer.h
708         (pack_ts_base_value_fields): Move to tree-streamer-out.c.
709         (pack_ts_real_cst_value_fields): Likewise.
710         (pack_ts_fixed_cst_value_fields): Likewise.
711         (pack_ts_decl_common_value_fields): Likewise.
712         (pack_ts_decl_wrtl_value_fields): Likewise.
713         (pack_ts_decl_with_vis_value_fields): Likewise.
714         (pack_ts_function_decl_value_fields): Likewise.
715         (pack_ts_type_common_value_fields): Likewise.
716         (pack_ts_block_value_fields): Likewise.
717         (pack_ts_translation_unit_decl_value_fields): Likewise.
718         (pack_value_fields): Likewise.
719         (lto_output_chain): Likewise.
720         (lto_output_ts_common_tree_pointers): Likewise.
721         (lto_output_ts_vector_tree_pointers): Likewise.
722         (lto_output_ts_complex_tree_pointers): Likewise.
723         (lto_output_ts_decl_minimal_tree_pointers): Likewise.
724         (lto_output_ts_decl_common_tree_pointers): Likewise.
725         (lto_output_ts_decl_non_common_tree_pointers): Likewise.
726         (lto_output_ts_decl_with_vis_tree_pointers): Likewise.
727         (lto_output_ts_field_decl_tree_pointers): Likewise.
728         (lto_output_ts_function_decl_tree_pointers): Likewise.
729         (lto_output_ts_type_common_tree_pointers): Likewise.
730         (lto_output_ts_type_non_common_tree_pointers): Likewise.
731         (lto_output_ts_list_tree_pointers): Likewise.
732         (lto_output_ts_vec_tree_pointers): Likewise.
733         (lto_output_ts_exp_tree_pointers): Likewise.
734         (lto_output_ts_block_tree_pointers): Likewise.
735         (lto_output_ts_binfo_tree_pointers): Likewise.
736         (lto_output_ts_constructor_tree_pointers): Likewise.
737         (lto_output_ts_target_option): Likewise.
738         (lto_output_ts_translation_unit_decl_tree_pointers): Likewise.
739         (lto_output_tree_pointers): Likewise.
740         (lto_output_tree_header): Likewise.
741         (lto_output_builtin_tree): Likewise.
742         (lto_write_tree): Likewise.
743         (lto_output_integer_cst): Likewise.
744         (lto_output_tree): Likewise.
745         (output_phi): Move to gimple-streamer-out.c.
746         (output_gimple_stmt): Likewise.
747         (output_bb): Likewise.
748         * lto-streamer.c: Include tree-streamer.h and streamer-hooks.h.
749         (streamer_hooks): Move to streamer-hooks.c.
750         (check_handled_ts_structures): Move to tree-streamer.c
751         (lto_streamer_cache_add_to_node_array): Likewise.
752         (lto_streamer_cache_insert_1): Likewise.
753         (lto_streamer_cache_insert): Likewise.
754         (lto_streamer_cache_insert_at): Likewise.
755         (lto_streamer_cache_append): Likewise.
756         (lto_streamer_cache_lookup): Likewise.
757         (lto_streamer_cache_get): Likewise.
758         (lto_record_common_node): Likewise.
759         (lto_preload_common_nodes): Likewise.
760         (lto_streamer_cache_create): Likewise.
761         (lto_streamer_cache_delete): Likewise.
762         (streamer_hooks_init): Move to streamer-hooks.c.
763         * lto-streamer.h: Include diagnostic.h
764         (struct output_block, struct lto_input_block,
765         struct data_in, struct bitpack_d): Remove forward declarations.
766         (struct bitpack_d): Move to data-streamer.h.
767         (struct lto_streamer_cache_d): Move to tree-streamer.h.
768         (struct streamer_hooks): Move to streamer-hooks.h.
769         (bp_pack_var_len_unsigned): Move to data-streamer.h.
770         (bp_pack_var_len_int): Likewise.
771         (bp_unpack_var_len_unsigned): Likewise.
772         (bp_unpack_var_len_int): Likewise.
773         (lto_input_location): Declare.
774         (lto_tag_check_set): Declare.
775         (lto_init_eh): Declare.
776         (lto_output_tree_ref): Declare.
777         (lto_output_location): Declare.
778         (bitpack_create): Move to data-streamer.h.
779         (bp_pack_value): Likewise.
780         (lto_output_bitpack): Likewise.
781         (lto_input_bitpack): Likewise.
782         (bp_unpack_value): Likewise.
783         (lto_output_1_stream): Likewise.
784         (lto_input_1_unsigned): Likewise.
785         (lto_output_int_in_range): Likewise.
786         (lto_input_int_in_range): Likewise.
787         (bp_pack_int_in_range): Likewise.
788         (bp_unpack_int_in_range): Likewise.
789         (lto_output_enum): Likewise.
790         (lto_input_enum): Likewise.
791         (bp_pack_enum): Likewise.
792         (bp_unpack_enum): Likewise.
793         * streamer-hooks.c: New.
794         * streamer-hooks.h: New.
795         * tree-streamer-in.c: New.
796         * tree-streamer-out.c: New.
797         * tree-streamer.c: New.
798         * tree-streamer.h: New.
799
800 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
801
802         * gthr-posix95.h: Remove.
803         * gthr.h [_PTHREADS95]: Remove.
804         * configure.ac (enable_threads): Remove posix95.
805         * configure: Regenerate.
806         * doc/install.texi (Configuration, --enable-threads): Remove posix95.
807
808 2011-08-08  Uros Bizjak  <ubizjak@gmail.com>
809
810         PR target/49781
811         * config/i386/i386.c (ix86_decompose_address): Allow zero-extended
812         SImode addresses.
813         (ix86_print_operand_address): Handle zero-extended addresses.
814         (memory_address_length): Add length of addr32 prefix for
815         zero-extended addresses.
816         (ix86_secondary_reload): Handle moves to/from double-word general
817         registers from/to zero-extended addresses.
818         * config/i386/predicates.md (lea_address_operand): Reject
819         zero-extended operands.
820
821 2011-08-08  H.J. Lu  <hongjiu.lu@intel.com>
822
823         PR other/48007
824         * config.gcc (libgcc_tm_file): Add i386/value-unwind.h for Linux/x86.
825
826         * system.h (REG_VALUE_IN_UNWIND_CONTEXT): Poisoned.
827         (ASSUME_EXTENDED_UNWIND_CONTEXT): Likewise.
828
829         * unwind-dw2.c (ASSUME_EXTENDED_UNWIND_CONTEXT): New.
830         (_Unwind_Context_Reg_Val): Likewise.
831         (_Unwind_Get_Unwind_Word): Likewise.
832         (_Unwind_Get_Unwind_Context_Reg_Val): Likewise.
833         (_Unwind_Context): Use _Unwind_Context_Reg_Val on the reg field.
834         (_Unwind_IsExtendedContext): Check ASSUME_EXTENDED_UNWIND_CONTEXT
835         for EXTENDED_CONTEXT_BIT.
836         (__frame_state_for): Likewise.
837         (uw_init_context_1): Likewise.
838         (_Unwind_GetGR): Updated.
839         (_Unwind_SetGR): Likewise.
840         (_Unwind_GetGRPtr): Likewise.
841         (_Unwind_SetGRPtr): Likewise.
842         (_Unwind_SetGRValue): Likewise.
843         (_Unwind_GRByValue): Likewise.
844         (uw_install_context_1): Likewise.
845
846         * doc/tm.texi.in: Document REG_VALUE_IN_UNWIND_CONTEXT and
847         ASSUME_EXTENDED_UNWIND_CONTEXT.
848         * doc/tm.texi: Regenerated.
849
850 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
851
852         * Makefile.in (gengtype$(exeext)): Add $(LDFLAGS).
853
854 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
855
856         * doc/invoke.texi (DEC Alpha Options, -mcpu): native support isn't
857         Linux/GNU-specific.
858         (DEC Alpha Options, -mtune): Likewise.
859         (MIPS Options, -march): native is supported on IRIX.
860
861 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
862
863         * config/sparc/driver-sparc.c: New file.
864         * config/sparc/x-sparc: New file.
865         * config.host: Use driver-sparc.o, sparc/x-sparc on sparc*-*-solaris2*.
866         * config/sparc/sparc.opt (native): New value for enum processor_type.
867         * config/sparc/sparc-opts.h (PROCESSOR_NATIVE): Declare.
868         * config/sparc/sparc.c (sparc_option_override): Abort if
869         PROCESSOR_NATIVE gets here.
870         * config/sparc/sol2.h [__sparc__] (host_detect_local_cpu): Declare.
871         (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS,
872         DRIVER_SELF_SPECS): Define.
873         * doc/invoke.texi (SPARC Options, -mcpu): Document native.
874         (SPARC Options, -mtune): Likewise.
875         * configure.ac (EXTRA_GCC_LIBS): Check for libkstat.
876         Substitute result.
877         * configure: Regenerate.
878         * Makefile.in (EXTRA_GCC_LIBS): Set.
879         (xgcc$(exeext)): Add $(EXTRA_GCC_LIBS).
880         (cpp$(exeext)): Likewise.
881
882 2011-08-08  Richard Guenther  <rguenther@suse.de>
883
884         * tree-vrp.c (extract_range_from_unary_expr_1): New function,
885         split out from ...
886         (extract_range_from_unary_expr): ... here.  Handle BIT_NOT_EXPR
887         by composition.
888
889 2011-08-08  Mikael Pettersson  <mikpe@it.uu.se>
890
891         PR tree-optimization/50005
892         * ipa-inline-analysis (remap_predicate): Add cast to
893         silence signed/unsigned comparison warning.
894
895 2011-08-08  Richard Sandiford  <richard.sandiford@linaro.org>
896
897         * modulo-sched.c (get_sched_window): Use a table for the debug output.
898         Print the current ii.
899         (sms_schedule_by_order): Reduce whitespace in dump line.
900
901 2011-08-08  Richard Sandiford  <richard.sandiford@linaro.org>
902
903         * modulo-sched.c (get_sched_window): Use just one loop for predecessors
904         and one loop for successors.  Fix upper bound of memory range.
905
906 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
907
908         PR target/50001
909         * config/alpha/alpha.c (alpha_instantiate_decls): New function.
910         (TARGET_INSTANTIATE_DECLS): New define.
911
912 2011-08-06  Paolo Bonzini  <bonzini@gnu.org>
913             Mikael Morin   <mikael.morin@sfr.fr>
914
915         * Makefile.in (INCLUDES_FOR_TARGET): New.
916         (LIBGCC2_CFLAGS): Use it.
917         (CRTSTUFF_CFLAGS): Use it instead of INCLUDES.
918
919 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
920
921         * config/i386/i386.c (ix86_compute_frame_layout): Simplify
922         frame->save_regs_using_mov calculation.
923
924 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
925
926         * config/i386/i386.md (ssemodesuffix): Remove V8SI mode.
927         * config/i386/sse.md (castmode): New mode attribute.
928         (avx_<castmode><avxsizesuffix>_<castmode>): Rename from
929         avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>.
930
931 2011-08-05  Jan Hubicka  <jh@suse.cz>
932
933         PR middle-end/49494
934         * ipa-inline-analysis.c (remap_predicate): Add bounds check.
935
936 2011-08-05  Jan Hubicka  <jh@suse.cz>
937
938         PR middle-end/49500
939         * tree-emultls.c (new_emutls_decl):Add alias_of parameter;
940         handle aliases.
941         (create_emultls_var):New function.
942         (ipa_lower_emutls): Handle aliases correctly.
943
944 2011-08-05  Jan Hubicka  <jh@suse.cz>
945
946         PR middle-end/49735
947         * ipa-inline.c (recursive_inlining): Look through aliases.
948
949 2011-08-05  Jason Merrill  <jason@redhat.com>
950
951         * config/i386/i386.c (setup_incoming_varargs_ms_64): Move
952         declarations to beginning of function.
953
954 2011-08-05  Bernd Schmidt  <bernds@codesourcery.com>
955
956         PR rtl-optimization/49900
957         * sched-ebb.c (add_deps_for_risky_insns): Also add dependencies to
958         ensure basic blocks stay in the same order.
959
960 2011-08-05  Aldy Hernandez  <aldyh@redhat.com>
961
962         * config/s390/s390.c (s390_expand_cs_hqi): Add new arguments to
963         store_bit_field.
964         (s390_expand_atomic): Same.
965
966 2011-08-05  Richard Henderson  <rth@redhat.com>
967
968         PR rtl-opt/49977
969         * dwarf2cfi.c (scan_insn_after): Split out of ...
970         (scan_trace): ... here.  Correctly place notes wrt sequences.
971
972 2011-08-05  Kaz Kojima  <kkojima@gcc.gnu.org>
973             Richard Henderson  <rth@redhat.com>
974
975         PR rtl-opt/49982
976         * expr.c (fixup_args_size_notes): Look through no-op moves.
977
978 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
979
980         * config/i386/i386.md (*push<mode>2): Use "o" constraint instead
981         of "m" for operand 0.  Add type and mode attribute.
982         (*pushxf_nointeger"): Use "<" constraint for operand 0.
983         (*pushdf_rex64): New pattern, split out of *pushdf.  Use "m"
984         constraint instead of "o" for opreand 1.
985         (*pushdf): Disable for TARGET_64BIT.  Correct mode attribute.
986         (*movdi_internal_rex64): Use "!o" constraint instead of "!m" for
987         operand 0, alternative 4.
988         (*movdf_internal_rex64): Ditto for operand 0, alernative 6.
989
990 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
991
992         * config/i386/predicates.md (lea_address_operand): Rename from
993         no_seg_address_operand.
994         * config/i386/i386.md (*lea_1): Update operand 1 predicate for rename.
995         (*lea_1_zext): Ditto.
996         (*lea_2): Ditto.
997         (*lea_2_zext): Ditto.
998
999 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
1000
1001         * config/i386/i386.c (ix86_print_operand_address): Handle SUBREGs of
1002         parts.base and parts.index.
1003         * config/i386/predicates.md (aligned_operand): Ditto.
1004         (cmpxchg8b_pic_memory_operand): Ditto.
1005
1006 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1007
1008         * config/soft-fp: Move to ../libgcc.
1009         * Makefile.in (SFP_MACHINE): Remove.
1010         (libgcc-support): Remove $(SFP_MACHINE) dependency.
1011         * config/arm/sfp-machine.h: Move to ../libgcc/config/arm.
1012         * config/arm/t-arm-softfp: Move to
1013         ../libgcc/config/arm/t-softfp.
1014         * config/c6x/sfp-machine.h: Move to ../libgcc/config/c6x.
1015         * config/c6x/t-c6x-softfp: Remove.
1016         * config/i386/sfp-machine.h: Move to ../libgcc/config/i386.
1017         * config/i386/t-fprules-softfp: Move to
1018         ../libgcc/config/t-softfp-tf.
1019         * config/ia64/sfp-machine.h: Move to ../libgcc/config/ia64.
1020         * config/ia64/t-fprules-softfp: Remove.
1021         * config/lm32/sfp-machine.h: Move to ../libgcc/config/lm32.
1022         * config/lm32/t-fprules-softfp: Remove.
1023         * config/moxie/sfp-machine.h: Remove.
1024         * config/moxie/t-moxie-softfp: Remove.
1025         * config/rs6000/darwin-ldouble-format: Move to
1026         ../libgcc/config/rs6000/ibm-ldouble-format.
1027         * config/rs6000/darwin-ldouble.c: Move to
1028         ../libgcc/config/rs6000/ibm-ldouble.c
1029         * config/rs6000/libgcc-ppc-glibc.ver: Move to ../libgcc/config/rs6000.
1030         * config/rs6000/libgcc-ppc64.ver: Likewise.
1031         * config/rs6000/sfp-machine.h: Likewise.
1032         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Remove
1033         $(srcdir)/config/rs6000/libgcc-ppc64.ver.
1034         (LIB2FUNCS_EXTRA): Remove.
1035         (TARGET_LIBGCC2_CFLAGS): Remove.
1036         * config/rs6000/t-aix52: Likewise
1037         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
1038         $(srcdir)/config/rs6000/darwin-ldouble.c.
1039         (SHLIB_MAPFILES): Remove.
1040         * config/rs6000/t-darwin64 (LIB2FUNCS_EXTRA): Remove
1041         $(srcdir)/config/rs6000/darwin-ldouble.c.
1042         * config/rs6000/t-fprules-softfp: Move to
1043         ../libgcc/config/t-softfp-sfdf.
1044         * config/rs6000/t-freebsd: Move to ../libgcc/config/rs6000.
1045         * config/rs6000/t-linux64 (softfp_wrap_start, softfp_wrap_end): Remove.
1046         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Remove
1047         $(srcdir)/config/rs6000/darwin-ldouble.c.
1048         * config/score/sfp-machine.h: Move to ../libgcc/config/score.
1049         * config/score/t-score-softfp: Remove.
1050         * config.gcc (arm*-*-linux*): Remove arm/t-arm-softfp,
1051         soft-fp/t-softfp from tmake_file.
1052         (arm*-*-uclinux*): Likewise.
1053         (arm*-*-ecos-elf): Likewise.
1054         (arm*-*-eabi*, arm*-*-symbianelf*): Likewise.
1055         (arm*-*-rtems*): Likewise.
1056         (arm*-*-elf): Likewise.
1057         (moxie-*-elf): Remove moxie/t-moxie-softfp, soft-fp/t-softfp from
1058         tmake_file.
1059         (moxie-*-uclinux*): Likewise.
1060         (moxie-*-rtems*): Likewise.
1061         (lm32-*-elf*): Remove lm32/t-fprules-softfp, soft-fp/t-softfp from
1062         tmake_file.
1063         (lm32-*-rtems*): Likewise.
1064         (lm32-*-uclinux*): Likewise.
1065         (powerpc-*-freebsd*): Remove rs6000/t-freebsd,
1066         rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
1067         (powerpc-*-linux*, powerpc64-*-linux*): Remove
1068         rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
1069         (score-*-elf): Remove score/t-score-softfp, soft-fp/t-softfp from
1070         tmake_file.
1071         (tic6x-*-elf): Remove c6x/t-c6x-softfp, soft-fp/t-softfp from
1072         tmake_file.
1073         (tic6x-*-uclinux): Likewise.
1074         (i[34567]86-*-darwin*, x86_64-*-darwin*): Remove i386/t-fprules-softfp,
1075         soft-fp/t-softfp from tmake_file.
1076         (i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu)
1077         (x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Likewise.
1078         (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Likewise.
1079         (i[34567]86-*-cygwin*, i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
1080         (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Likewise.
1081
1082 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1083
1084         * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS, TPBIT_FUNCS): Remove.
1085         (libgcc-support): Remove $(FPBIT), $(DPBIT), $(TPBIT) dependencies.
1086         (libgcc.mvars): Remove FPBIT, FPBIT_FUNCS, DPBIT, DPBIT_FUNCS,
1087         TPBIT, TPBIT_FUNCS.
1088         * config/fp-bit.c, config/fp-bit.h: Move to ../libgcc.
1089         * config/arm/t-strongarm-elf (FPBIT, DPBIT, dp-bit.c, fp-bit.c):
1090         Remove.
1091         * config/arm/t-vxworks: Likewise.
1092         * config/arm/t-wince-pe: Likewise.
1093         * config/avr/t-avr (fp-bit.c, FPBIT): Remove.
1094         * config/bfin/t-bfin (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
1095         * config/bfin/t-bfin-elf: Likewise.
1096         * config/bfin/t-bfin-linux: Likewise.
1097         * config/bfin/t-bfin-uclinux: Likewise.
1098         * config/cris/t-cris (FPBIT, DPBIT, dp-bit.c, tmplibgcc_fp_bit.c):
1099         Remove.
1100         * config/fr30/t-fr30: Likewise.
1101         * config/frv/t-frv: Likewise.
1102         * config/h8300/t-h8300 (FPBIT, fp-bit.c): Remove.
1103         * config/iq2000/t-iq2000 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
1104         * config/m32c/t-m32c: Likewise.
1105         * config/m32r/t-linux: (LIB2FUNCS_EXTRA, fp-bit.c, dp-bit.c): Remove.
1106         * config/m32r/t-m32r (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
1107         * config/mcore/t-mcore: Likewise.
1108         * config/mep/t-mep: Likewise.
1109         * config/microblaze/t-microblaze: Likewise.
1110         * config/mips/t-linux64 (TPBIT, tp-bit.c): Remove.
1111         * config/mips/t-mips (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
1112         * config/mips/t-sdemtk (FPBIT, DPBIT): Remove.
1113         * config/mips/t-sr71k (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
1114         * config/mn10300/t-linux: Remove.
1115         * config/mn10300/t-mn10300 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
1116         * config/pdp11/t-pdp11: Likewise.
1117         * config/picochip/t-picochip (FPBIT, fp-bit.c): Remove.
1118         * config/rs6000/ppc64-fp.c: Move to ../libgcc/config/rs6000.
1119         * config/rs6000/t-aix43 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
1120         (LIB2FUNCS_EXTRA): Remove $(srcdir)/config/rs6000/ppc64-fp.c.
1121         * config/rs6000/t-aix52: Likewise.
1122         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
1123         $(srcdir)/config/rs6000/ppc64-fp.c.
1124         * config/rs6000/t-fprules-fpbit: Remove.
1125         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Remove.
1126         * config/rs6000/t-lynx (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
1127         * config/sh/t-netbsd (FPBIT, DPBIT): Remove.
1128         * config/sh/t-sh (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
1129         * config/sparc/t-elf: Likewise.
1130         * config/sparc/t-leon: Likewise.
1131         * config/sparc/t-leon3: Likewise.
1132         * config/spu/t-spu-elf: Likewise.
1133         (DPBIT_FUNCS): Remove.
1134         * config/stormy16/t-stormy16 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
1135         * config/v850/t-v850: Likewise.
1136         * config.gcc (avr-*-rtems*): Add avr/avr-lib.h to libgcc_tm_file.
1137         (avr-*-*): Likewise.
1138         (h8300-*-rtems*): Set libgcc_tm_file.
1139         (h8300-*-elf*): Likewise.
1140         (powerpc-*-eabisimaltivec*): Remove rs6000/t-fprules-fpbit from
1141         tmake_file.
1142         (powerpc-*-eabisim*): Likewise.
1143         (powerpc-*-elf*): Likewise.
1144         (powerpc-*-eabialtivec*): Likewise.
1145         (powerpc-xilinx-eabi*): Likewise.
1146         (powerpc-*-eabi*): Likewise.
1147         (powerpc-*-rtems*): Likewise.
1148         (powerpc-wrs-vxworks, powerpc-wrs-vxworksae): Likewise.
1149         (powerpcle-*-elf*): Likewise.
1150         (powerpcle-*-eabisim*): Likewise.
1151         (powerpcle-*-eabi*): Likewise.
1152         (rx-*-elf*): Add rx/rx-lib.h to libgcc_tm_file.
1153         (am33_2.0-*-linux*): Remove mn10300/t-linux from tmake_file.
1154         * doc/fragments.texi (Target Fragment, Floating Point Emulation):
1155         Remove.
1156
1157 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1158
1159         * Makefile.in (UNWIND_H): Remove.
1160         (LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): Move to
1161         ../libgcc/Makefile.in.
1162         (LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL): Likewise.
1163         (LIBUNWINDDEP): Remove.
1164         (libgcc-support): Remove LIB2ADDEH, $(srcdir)/emutls.c dependencies.
1165         (libgcc.mvars): Remove LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED,
1166         LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL.
1167         (stmp-int-hdrs): Remove $(UNWIND_H) dependency.
1168         Don't copy $(UNWIND_H).
1169         * config.gcc (ia64*-*-linux*): Remove with_system_libunwind handling.
1170         * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Remove.
1171         * aclocal.m4: Regenerate.
1172         * configure: Regenerate.
1173         * emutls.c, unwind-c.c, unwind-compat.c, unwind-compat.h,
1174         unwind-dw2-fde-compat.c, unwind-dw2-fde-glibc.c, unwind-dw2-fde.c,
1175         unwind-dw2-fde.h, unwind-dw2.c, unwind-dw2.h, unwind-generic.h,
1176         unwind-pe.h, unwind-sjlj.c, unwind.inc: Move to ../libgcc.
1177         * unwind-dw2-fde-darwin.c: Move to ../libgcc/config.
1178         * config/arm/libunwind.S, config/arm/pr-support.c,
1179         config/arm/unwind-arm.c, config/arm/unwind-arm.h: Move to
1180         ../libgcc/config/arm.
1181         * config/arm/t-bpabi (UNWIND_H, LIB2ADDEH): Remove.
1182         * config/arm/t-symbian (UNWIND_H, LIB2ADDEH): Remove.
1183         * config/frv/t-frv ($(T)frvbegin$(objext)): Use
1184         $(srcdir)/../libgcc to refer to unwind-dw2-fde.h.
1185         ($(T)frvend$(objext)): Likewise.
1186         * config/ia64/t-glibc (LIB2ADDEH): Remove.
1187         * config/ia64/t-glibc-libunwind: Move to ../libgcc/config/ia64.
1188         * config/ia64/fde-glibc.c, config/ia64/fde-vms.c,
1189         config/ia64/unwind-ia64.c, config/ia64/unwind-ia64.h: Move to
1190         ../libgcc/config/ia64.
1191         * config/ia64/t-hpux (LIB2ADDEH): Remove.
1192         * config/ia64/t-ia64 (LIB2ADDEH): Remove.
1193         * config/ia64/t-vms (LIB2ADDEH): Remove.
1194         * config/ia64/vms.h (UNW_IVMS_MODE,
1195         MD_UNW_COMPATIBLE_PERSONALITY_P): Remove.
1196         * config/picochip/t-picochip (LIB2ADDEH): Remove.
1197         * config/rs6000/aix.h (R_LR, MD_FROB_UPDATE_CONTEXT): Remove.
1198         * config/rs6000/t-darwin (LIB2ADDEH): Remove.
1199         * config/rs6000/darwin-fallback.c: Move to ../libgcc/config/rs6000.
1200         * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): Use
1201         $(srcdir)/../libgcc to refer to unwinder sources.
1202         * config/spu/t-spu-elf (LIB2ADDEH): Remove.
1203         * config/t-darwin (LIB2ADDEH): Remove.
1204         * config/t-freebsd (LIB2ADDEH): Remove.
1205         * config/t-libunwind (LIB2ADDEH, LIB2ADDEHSTATIC): Remove.
1206         * config/t-libunwind-elf: Move to ../libgcc/config.
1207         * config/t-linux (LIB2ADDEH): Remove.
1208         * config/t-sol2 (LIB2ADDEH): Remove.
1209         * config/xtensa/t-xtensa (LIB2ADDEH): Remove.
1210         * system.h (MD_FROB_UPDATE_CONTEXT): Poison.
1211
1212 2011-08-05  H.J. Lu  <hongjiu.lu@intel.com>
1213
1214         * config/i386/i386.c (processor_alias_table): Add core-avx-i.
1215
1216         * doc/invoke.texi: Document core-avx-i.
1217
1218 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1219
1220         * tsystem.h (CONST_CAST2, CONST_CAST): Define.
1221
1222 2011-08-05  Ira Rosen  <ira.rosen@linaro.org>
1223
1224         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use the
1225         result of multiple results reduction when extracting the final
1226         value using scalar code.
1227
1228 2011-08-05  Richard Guenther  <rguenther@suse.de>
1229
1230         PR tree-optimization/49984
1231         * tree-vrp.c (extract_range_from_binary_expr_1): Handle BIT_XOR_EXPR.
1232
1233 2011-08-05  Richard Guenther  <rguenther@suse.de>
1234
1235         * tree-vrp.c (zero_nonzero_bits_from_vr): Make sure to always
1236         return true for constant integer ranges.
1237         (extract_range_from_binary_expr_1): Simplify BIT_AND_EXPR and
1238         BIT_IOR_EXPR handling.
1239
1240 2011-08-04  Kai Tietz  <ktietz@redhat.com>
1241
1242         * config/i386/i386.c (setup_incoming_varargs_ms_64): Set
1243         ix86_varargs_gpr_size and ix86_varargs_fpr_size to zero.
1244
1245 2011-08-04  Ira Rosen  <ira.rosen@linaro.org>
1246
1247         * tree-vectorizer.h (struct _stmt_vec_info): Add new field for
1248         pattern def statement, and its access macro.
1249         (NUM_PATTERNS): Set to 5.
1250         * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
1251         pattern def statement.
1252         (vect_transform_loop): Likewise.
1253         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add new
1254         function vect_recog_over_widening_pattern ().
1255         (vect_operation_fits_smaller_type): New function.
1256         (vect_recog_over_widening_pattern, vect_mark_pattern_stmts):
1257         Likewise.
1258         (vect_pattern_recog_1): Move the code that marks pattern
1259         statements to vect_mark_pattern_stmts (), and call it.  Update
1260         documentation.
1261         * tree-vect-stmts.c (vect_supportable_shift): New function.
1262         (vect_analyze_stmt): Handle pattern def statement.
1263         (new_stmt_vec_info): Initialize pattern def statement.
1264
1265 2011-08-04  Richard Henderson  <rth@redhat.com>
1266
1267         PR target/49964
1268         * config/i386/i386.c (ix86_expand_call): Don't create nested
1269         PARALLELs for TARGET_VZEROUPPER.
1270         (ix86_split_call_vzeroupper): Fix extraction of the original call.
1271         * config/i386/i386.md (*call_rex64_ms_sysv_vzeroupper): Don't
1272         recognize nested PARALLELs.
1273         (*call_pop_vzeroupper, *sibcall_pop_vzeroupper,
1274         *call_value_rex64_ms_sysv_vzeroupper, *call_value_pop_vzeroupper,
1275         *sibcall_value_pop_vzeroupper): Likewise.
1276
1277 2011-08-04  Richard Henderson  <rth@redhat.com>
1278
1279         PR middle-end/49968
1280         * calls.c (expand_call): Use fixup_args_size_notes for
1281         emit_stack_restore.
1282         * expr.c (fixup_args_size_notes): Allow STACK_POINTER_REGNUM sets
1283         in non-standard modes.
1284
1285 2011-08-04  Jakub Jelinek  <jakub@redhat.com>
1286
1287         * gcc.c (self_spec): New variable.
1288         (static_specs): Add self_spec.
1289         (main): Call do_self_spec on "self_spec" specs after reading
1290         user specs files.  Move compare_debug handling right after that.
1291
1292 2011-08-04  Richard Guenther  <rguenther@suse.de>
1293
1294         * tree-vrp.c (vrp_expr_computes_nonnegative): Remove.
1295         (value_range_nonnegative_p): New function.
1296         (ssa_name_nonnegative_p): Use it.
1297         (value_range_constant_singleton): New function.
1298         (op_with_constant_singleton_value_range): Use it.
1299         (extract_range_from_binary_expr_1): New function, split out from ...
1300         (extract_range_from_binary_expr): ... this.  Remove fallback
1301         constant folding done here.
1302
1303 2011-08-04  Richard Guenther  <rguenther@suse.de>
1304
1305         PR tree-optimization/49806
1306         * tree-vrp.c (op_with_boolean_value_range_p): New function.
1307         (simplify_truth_ops_using_ranges): Simplify.  Allow inserting
1308         a new statement for a final conversion to bool.
1309
1310 2011-08-04  Romain Geissler  <romain.geissler@gmail.com>
1311
1312         * gengtype-state.c: Include "bconfig.h" if
1313         GENERATOR_FILE is defined, "config.h" otherwise.
1314         * gengtype.c: Likewise.
1315         * gengtype-lex.l: Likewise.
1316         * gengtype-parse.c: Likewise.
1317         * Makefile.in (gengtype-lex.o-warn): New variable.
1318         (plugin_resourcesdir): Likewise.
1319         (plugin_bindir): Likewise.
1320         (plugin_includedir): Use $(plugin_resourcesdir) as prefix base.
1321         (MOSTLYCLEANFILES): Add gengtype$(exeext).
1322         (native): Depend on gengtype$(exeext) is $enable_plugin
1323         is set to "yes".
1324         (gtype.state): Depend on s-gtype. Use temporary file.
1325         (gengtype-lex.o): New rule.
1326         (gengtype-parse.o): Likewise.
1327         (gengtype-state.o): Likewise.
1328         (gengtype$(exeext)): Likewise.
1329         (install-gengtype): Likewise.
1330         (gengtype.o): Likewise.
1331         (build/gengtype.o): Depend on version.h.
1332         (build/gengtype-state): Depend on double-int.h, version.h,
1333         $(HASHTAB_H), $(OBSTACK_H), $(XREGEX_H) and build/errors.o.
1334         (install-plugin): Depend on install-gengtype.
1335
1336 2011-08-04  Jakub Jelinek  <jakub@redhat.com>
1337
1338         PR middle-end/49905
1339         * tree.h (init_attributes): New prototype.
1340         * attribs.c (init_attributes): No longer static.
1341
1342 2011-08-04  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1343
1344         * config/arm/arm.c (arm_set_fixed_optab_libfunc): Constify
1345         maybe_suffix.
1346
1347 2011-08-03   David Li  <davidxl@google.com>
1348
1349         * tree-optimize.c (execute_fixup_cfg): Fix up entry
1350         outgoing edge counts after inlining.
1351
1352 2011-08-03   David Li  <davidxl@google.com>
1353
1354         * profile.c (compute_branch_probabilities): Compute
1355         function frequency after profile annotation.
1356
1357 2011-08-04  Alan Modra  <amodra@gmail.com>
1358
1359         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Simplify
1360         use_backchain_to_restore_sp initialisation.
1361         (rs6000_legitimate_offset_address_p): Simplify offset test.
1362
1363 2011-08-03  Richard Henderson  <rth@redhat.com>
1364
1365         * config/spu/spu.md: Use define_c_enum instead of define_constants.
1366         (UNSPECV_BLOCKAGE, UNSPECV_LNOP, UNSPECV_SYNC): Rename from UNSPEC_*.
1367         (UNSPECV_NOP): New.
1368
1369 2011-08-03  Richard Henderson  <rth@redhat.com>
1370
1371         PR target/34888
1372         * config/avr/avr.md: New splitter for REG_ARGS_SIZE 0.
1373
1374 2011-08-03  Jakub Jelinek  <jakub@redhat.com>
1375
1376         PR tree-optimization/49948
1377         * gimple.c (walk_stmt_load_store_addr_ops): Walk CONSTRUCTOR elements.
1378
1379 2011-08-03  Anatoly Sokolov  <aesok@post.ru>
1380
1381         * config/m32c/m32c.c (class_sizes): Remove.
1382         (reduce_class): Change arguments and return type to reg_class_t.
1383         Change type cc var to HARD_REG_SET. Change type best var to
1384         reg_class_t. Change type best_size var to unsigned int. Remove
1385         initialization class_sizes var. Use reg_class_size array instead
1386         of class_sizes. Use reg_class_contents array instead
1387         of class_contents.
1388
1389 2011-08-03  Richard Guenther  <rguenther@suse.de>
1390
1391         PR middle-end/49958
1392         * fold-const.c (fold_binary_loc): Only associate
1393         (+ (+ (* a b) c) (* d e)) as (+ (+ (* a b) (* d e)) c) if
1394         overflow wraps.
1395
1396 2011-08-03  Alan Modra  <amodra@gmail.com>
1397
1398         PR rtl-optimization/49941
1399         * jump.c (mark_jump_label): Comment.
1400         (mark_jump_label_1): Set JUMP_LABEL for return jumps.
1401         * emit-rtl.c (copy_rtx_if_shared_1, copy_insn_1): Leave RETURN shared.
1402         (mark_used_flags): Don't mark RETURN.
1403
1404 2011-08-03  Richard Guenther  <rguenther@suse.de>
1405
1406         PR tree-optimization/49938
1407         * tree-scalar-evolution.c (interpret_loop_phi): Gracefully
1408         deal with a POLYNOMIAL_CHREC.
1409
1410 2011-08-03  Revital Eres  <revital.eres@linaro.org>
1411
1412         * modulo-sched.c (calculate_stage_count,
1413         calculate_must_precede_follow, get_sched_window,
1414         try_scheduling_node_in_cycle, remove_node_from_ps): Add
1415         declaration.
1416         (update_node_sched_params, set_must_precede_follow, optimize_sc):
1417         New functions.
1418         (reset_sched_times): Call update_node_sched_params.
1419         (sms_schedule): Call optimize_sc.
1420         (get_sched_window): Change function arguments.
1421         (sms_schedule_by_order): Update call to get_sched_window.
1422         Call set_must_precede_follow.
1423         (calculate_stage_count): Add function argument.
1424
1425 2011-08-02  Richard Henderson  <rth@redhat.com>
1426
1427         PR target/49864
1428         PR target/49879
1429         * reg-notes.def (REG_ARGS_SIZE): New.
1430         * calls.c (emit_call_1): Emit REG_ARGS_SIZE for call_pop.
1431         (expand_call): Add REG_ARGS_SIZE to emit_stack_restore.
1432         * cfgcleanup.c (old_insns_match_p): Don't allow cross-jumping to
1433         different stack levels.
1434         * combine-stack-adj.c (adjust_frame_related_expr): Remove.
1435         (maybe_move_args_size_note): New.
1436         (combine_stack_adjustments_for_block): Use it.
1437         * combine.c (distribute_notes): Place REG_ARGS_SIZE.
1438         * dwarf2cfi.c (dw_cfi_row_struct): Remove args_size member.
1439         (dw_trace_info): Add beg_true_args_size, end_true_args_size,
1440         beg_delay_args_size, end_delay_args_size, eh_head, args_size_undefined.
1441         (cur_cfa): New.
1442         (queued_args_size): Remove.
1443         (add_cfi_args_size): Assert size is non-negative.
1444         (stack_adjust_offset, dwarf2out_args_size): Remove.
1445         (dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust): Remove.
1446         (notice_args_size, notice_eh_throw): New.
1447         (dwarf2out_frame_debug_def_cfa): Use cur_cfa.
1448         (dwarf2out_frame_debug_adjust_cfa): Likewise.
1449         (dwarf2out_frame_debug_cfa_offset): Likewise.
1450         (dwarf2out_frame_debug_expr): Likewise.  Don't stack_adjust_offset.
1451         (dwarf2out_frame_debug): Don't handle non-frame-related-p insns.
1452         (change_cfi_row): Don't emit args_size.
1453         (maybe_record_trace_start_abnormal): Split out from ...
1454         (maybe_record_trace_start): Here.  Set args_size_undefined.
1455         (create_trace_edges): Update to match.
1456         (scan_trace): Handle REG_ARGS_SIZE.
1457         (connect_traces): Connect args_size between EH insns.
1458         * emit-rtl.c (try_split): Handle REG_ARGS_SIZE.
1459         * explow.c (suppress_reg_args_size): New.
1460         (adjust_stack_1): Split out from ...
1461         (adjust_stack): ... here.
1462         (anti_adjust_stack): Use it.
1463         (allocate_dynamic_stack_space): Suppress REG_ARGS_SIZE.
1464         * expr.c (mem_autoinc_base): New.
1465         (fixup_args_size_notes): New.
1466         (emit_single_push_insn_1): Rename from emit_single_push_insn.
1467         (emit_single_push_insn): New.  Generate REG_ARGS_SIZE.
1468         * recog.c (peep2_attempt): Handle REG_ARGS_SIZE.
1469         * reload1.c (reload_as_needed): Likewise.
1470         * rtl.h (fixup_args_size_notes): Declare.
1471
1472 2011-08-02  Paolo Carlini  <paolo.carlini@oracle.com>
1473
1474         PR bootstrap/49914
1475         * fold-const.c (fold_plusminus_mult_expr): Use abs_hwi instead
1476         of abs.
1477         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
1478         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
1479
1480 2011-08-02  Richard Henderson  <rth@redhat.com>
1481
1482         * config/h8300/h8300.c (push, pop): Return the insn.
1483         (h8300_swap_into_er6): Generate correct unwind info.
1484         (h8300_swap_out_of_er6): Likewise.
1485         * dwarf2cfi.c (def_cfa_1): Clear cfa_cfi if we no longer have a
1486         complex cfa expression.
1487         (dwarf2out_frame_debug_def_cfa): Allow (plus (mem) (const_int)) too.
1488
1489 2011-08-02  H.J. Lu  <hongjiu.lu@intel.com>
1490
1491         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
1492
1493 2011-08-02  Richard Henderson  <rth@redhat.com>
1494
1495         PR target/49878
1496         * config/h8300/h8300.c (h8300_move_ok): New.
1497         * config/h8300/h8300-protos.h: Declare it.
1498         * config/h8300/h8300.md (P): New mode iterator.
1499         (*movqi_h8300, *movqi_h8300hs, movqi): Use h8300_move_ok.
1500         (*movqi_h8sx, *movhi_h8300, *movhi_h8300hs, movhi): Likewise.
1501         (movsi, *movsi_h8300, *movsi_h8300hs): Likewise.
1502         (*pushqi1_h8300): Rename from pushqi1_h8300; use PRE_MODIFY.
1503         (*pushqi1_h8300hs_<P>): Macroize from pushqi1_h8300hs_advanced
1504         and pushqi1_h8300hs_normal; use PRE_MODIFY and
1505         register_no_sp_elim_operand.
1506         (*pushhi1_h8300hs_<P>): Similarly.
1507         (pushqi1, pushhi1, pushhi1_h8300): Remove.
1508         * config/h8300/predicates.md (register_no_sp_elim_operand): New.
1509
1510 2011-08-02  Richard Henderson  <rth@redhat.com>
1511
1512         PR target/49881
1513         * config/avr/avr.md (push<MPUSH>1): Don't constrain the operand.
1514
1515 2011-08-02  Jakub Jelinek  <jakub@redhat.com>
1516
1517         * c-parser.c (enum c_parser_prec): New enum, moved from within
1518         c_parser_binary_expression.
1519         (c_parser_binary_expression): Add PREC argument.  Stop parsing
1520         if operator has lower or equal precedence than PREC.
1521         (c_parser_conditional_expression, c_parser_omp_for_loop): Adjust
1522         callers.
1523         (c_parser_omp_atomic): Handle parsing OpenMP 3.1 atomics.
1524         Adjust c_finish_omp_atomic caller.
1525         (c_parser_omp_taskyield): New function.
1526         (c_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
1527         (c_parser_omp_clause_name): Handle final and mergeable clauses.
1528         (c_parser_omp_clause_final, c_parser_omp_clause_mergeable): New
1529         functions.
1530         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
1531         and PRAGMA_OMP_CLAUSE_MERGEABLE.
1532         (OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
1533         (c_parser_omp_clause_reduction): Handle min and max.
1534         * c-typeck.c (c_finish_omp_clauses): Don't complain about
1535         const qualified predetermined vars in firstprivate clause.
1536         andle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
1537         Handle MIN_EXPR and MAX_EXPR.
1538         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FINAL
1539         and OMP_CLAUSE_MERGEABLE.
1540         (dump_generic_node): Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD
1541         and OMP_ATOMIC_CAPTURE_NEW.
1542         * tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FINAL and
1543         OMP_CLAUSE_MERGEABLE.
1544         (omp_clause_code_name): Likewise.
1545         (walk_tree_1): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
1546         * tree.h (enum omp_clause_code): Add OMP_CLAUSE_FINAL
1547         and OMP_CLAUSE_MERGEABLE.
1548         (OMP_CLAUSE_FINAL_EXPR): Define.
1549         * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FINAL and
1550         OMP_CLAUSE_MERGEABLE.
1551         (expand_task_call): Likewise.
1552         (expand_omp_atomic_load, expand_omp_atomic_store): New functions.
1553         (expand_omp_atomic_fetch_op): Handle cases where old or new
1554         value is needed afterwards.
1555         (expand_omp_atomic): Call expand_omp_atomic_load resp.
1556         expand_omp_atomic_store.
1557         * gimplify.c (gimplify_omp_atomic, gimplify_expr): Handle
1558         OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and OMP_ATOMIC_CAPTURE_NEW.
1559         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
1560         OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
1561         * tree-nested.c (convert_nonlocal_omp_clauses,
1562         convert_local_omp_clauses): Likewise.
1563         * tree.def (OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD,
1564         OMP_ATOMIC_CAPTURE_NEW): New.
1565         * gimple.h (GF_OMP_ATOMIC_NEED_VALUE): New.
1566         (gimple_omp_atomic_need_value_p, gimple_omp_atomic_set_need_value):
1567         New inlines.
1568         * omp-builtins.def (BUILT_IN_GOMP_TASKYIELD): New builtin.
1569         * doc/generic.texi: Mention OMP_CLAUSE_COLLAPSE,
1570         OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
1571
1572 2011-08-02  Kai Tietz  <ktietz@redhat.com>
1573
1574         * gimple.c (canonicalize_cond_expr_cond): Handle cast from
1575         boolean-type.
1576         (ssa_forward_propagate_and_combine): Interprete result of
1577         forward_propagate_comparison.
1578         * gcc/gimple-fold.c (fold_gimple_assign): Add canonicalization for
1579         boolean-typed operands for comparisons.
1580
1581 2011-08-02  Georg-Johann Lay  <avr@gjlay.de>
1582
1583         * config/avr/libgcc.S: Gather related function in the
1584         same input section.
1585         (__mulqihi3, __mulqihi3, __divmodqi4, __divmodhi4, __udivmodsi4,
1586         __divmodsi4): Use XCALL/XJMP instead of rcall/rjmp for external
1587         references.
1588         (__udivmodqi4, __divmodqi4, __udivmodhi4, __divmodhi4,
1589         __udivmodsi4, __divmodsi4, __prologue_saves__,
1590         __epilogue_restores__, _exit, __tablejump2__, __tablejump__,
1591         __do_copy_data, __do_clear_bss, __do_global_ctors,
1592         __do_global_dtors, __tablejump_elpm__): Enclose in DEFUN/ENDF.
1593
1594 2011-08-02  Uros Bizjak  <ubizjak@gmail.com>
1595
1596         PR target/47766
1597         * doc/md.texi (stack_protect_set): The pattern moves ptr_mode value.
1598         (stack_protect_test): The pattern compares ptr_mode value.
1599
1600 2011-08-02  Alan Modra  <amodra@gmail.com>
1601
1602         * config/rs6000/rs6000.c (rs6000_emit_prologue): Add REG_CFA_RESTORE
1603         note for save_LR_around_toc_setup sequence.
1604
1605 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
1606
1607         * config/i386/lzcntintrin.h (__lzcnt64): Replace long with long long.
1608
1609 2011-08-01  Sebastian Pop  <sebastian.pop@amd.com>
1610             Joseph Myers  <joseph@codesourcery.com>
1611
1612         * Makefile.in (hwint.o): Depend on DIAGNOSTIC_CORE_H.
1613         * hwint.c: Include diagnostic-core.h.
1614         (abs_hwi): New.
1615         (gcd): Moved here...
1616         (pos_mul_hwi): New.
1617         (mul_hwi): New.
1618         (least_common_multiple): Moved here...
1619         * hwint.h (gcd): ... from here.
1620         (least_common_multiple): ... from here.
1621         (HOST_WIDE_INT_MIN): New.
1622         (HOST_WIDE_INT_MAX): New.
1623         (abs_hwi): Declared.
1624         (gcd): Declared.
1625         (pos_mul_hwi): Declared.
1626         (mul_hwi): Declared.
1627         (least_common_multiple): Declared.
1628         * omega.c (check_pos_mul): Removed.
1629         (check_mul): Removed.
1630         (omega_solve_geq): Use pos_mul_hwi instead of check_pos_mul and
1631         mul_hwi instead of check_mul.
1632
1633 2011-08-01  Richard Henderson  <rth@redhat.com>
1634
1635         PR target/49881
1636         * config/avr/avr.h (PUSH_ROUNDING): New.
1637         * config/avr/avr.md (pushqi1): Rename from *pushqi.
1638         (*pushhi, *pushsi, *pushsf): Remove.
1639         (MPUSH): New mode iterator.
1640         (push<MPUSH>1): New expander.
1641
1642 2011-08-01  Anatoly Sokolov  <aesok@post.ru>
1643
1644         * config/mmix/mmix.h (PREFERRED_RELOAD_CLASS,
1645         PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
1646         * config/mmix/mmix-protos.h (mmix_preferred_reload_class,
1647         mmix_preferred_output_reload_class): Remove.
1648         * config/mmix/mmix.c (mmix_preferred_reload_class,
1649         mmix_preferred_output_reload_class): Make static. Change rclass
1650         argument and return type to reg_class_t.
1651         (TARGET_PREFERRED_RELOAD_CLASS,
1652         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
1653
1654 2011-08-01  Joern Rennecke  <joern.rennecke@embecosm.com>
1655
1656         * mode-switching.c (optimize_mode_switching): Fix bug in MODE_AFTER
1657         handling.
1658
1659 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
1660
1661         PR target/47766
1662         * config/i386/i386.md (PTR): New.
1663         (stack_protect_set: Check TARGET_LP64 instead of TARGET_64BIT.
1664         (stack_protect_test): Likewise.
1665         (stack_protect_set_<mode>): Replace ":P" with ":PTR".
1666         (stack_tls_protect_set_<mode>): Likewise.
1667         (stack_tls_protect_test_<mode>): Likewise.
1668
1669 2011-08-01  Uros Bizjak  <ubizjak@gmail.com>
1670
1671         PR target/49927
1672         * config/i386/i386.c (ix86_address_subreg_operand): New.
1673         (ix86_decompose_address): Use ix86_address_subreg_operand.
1674         (ix86_legitimate_address_p): Do not assert that subregs satisfy
1675         register_no_elim_operand in DImode.
1676
1677 2011-08-01  Ira Rosen  <ira.rosen@linaro.org>
1678
1679         PR tree-optimization/49926
1680         * tree-vect-loop.c (vect_is_slp_reduction): Check that a statement
1681         in a chain doesn't have uses both inside and outside the loop.
1682
1683 2011-08-01  Georg-Johann Lay  <avr@gjlay.de>
1684
1685         * config/avr/avr.h (mcu_type_s): Add errata_skip field.
1686         * config/avr/avr-devices.c (avr_mcu_types): Use it.
1687         * config/avr/avr-mcus.def (AVR_MCU): Use it.
1688         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it to builtin
1689         define __AVR_ERRATA_SKIP__ and __AVR_ERRATA_SKIP_JMP_CALL__.
1690         * config/avr/libgcc.S (__mulshisi3, __ffshi2, __fmulsu_exit):
1691         Use __AVR_ERRATA_SKIP_JMP_CALL__ instead of __AVR_HAVE_JMP_CALL__
1692         to detect if XJMP must not be skipped.
1693
1694 2011-08-02  Alan Modra  <amodra@gmail.com>
1695
1696         * config/rs6000/rs6000-protos.h (rs6000_save_toc_in_prologue_p):
1697         Delete.
1698         * config/rs6000/rs6000.c (rs6000_save_toc_in_prologue_p): Make static.
1699         (rs6000_emit_prologue): Don't prematurely return when
1700         TARGET_SINGLE_PIC_BASE.  Don't emit eh_frame info in
1701         save_toc_in_prologue case.
1702         (rs6000_call_indirect_aix): Only disallow save_toc_in_prologue for
1703         calls_alloca.
1704
1705 2011-08-01  Georg-Johann Lay  <avr@gjlay.de>
1706
1707         * config/avr/avr-devices.c: Delete SVN property svn:executable.
1708         * config/avr/predicates.md: Ditto.
1709         * config/avr/driver-avr.c: Ditto.
1710         * config/avr/genopt.sh: Set SVN property svn:executable to *.
1711
1712 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
1713
1714         * calls.c (emit_library_call_value_1): Declare size only if
1715         BLOCK_REG_PADDING is defined.
1716
1717 2011-08-01  Kirill Yukhin  <kirill.yukhin@intel.com>
1718
1719         PR target/49547
1720         * config.gcc (i[34567]86-*-*): Replace abmintrin.h with lzcntintrin.h.
1721         (x86_64-*-*): Likewise.
1722         * config/i386/i386.opt (mlzcnt): New.
1723         * config/i386/abmintrin.h: File removed.
1724         (__lzcnt_u16, __lzcnt, __lzcnt_u64): Moved to ...
1725         * config/i386/lzcntintrin.h: ... here.  New file.
1726         (__lzcnt): Rename to ...
1727         (__lzcnt32): ... this.
1728         * config/i386/bmiintrin.h (head): Update copyright year.
1729         (__lzcnt_u16): Removed.
1730         (__lzcnt_u32): Likewise.
1731         (__lzcnt_u64): Likewise.
1732         * config/i386/x86intrin.h: Include lzcntintrin.h when __LZCNT__
1733         is defined, remove abmintrin.h.
1734         * config/i386/cpuid.h (bit_LZCNT): New.
1735         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
1736         LZCNT feature.
1737         * config/i386/i386-c.c (ix86_target_macros_internal): Define
1738         __LZCNT__ if needed.
1739         * config/i386/i386.c (ix86_target_string): New option -mlzcnt.
1740         (ix86_option_override_internal): Handle LZCNT option.
1741         (ix86_valid_target_attribute_inner_p): Likewise.
1742         (struct builtin_description bdesc_args) <IX86_BUILTIN_CLZS>: Update.
1743         * config/i386/i386.h (TARGET_LZCNT): New.
1744         (CLZ_DEFINED_VALUE_AT_ZERO): Update.
1745         * config/i386/i386.md (clz<mode>2): Update insn constraint.
1746         (clz<mode>2_lzcnt): Likewise.
1747         * doc/invoke.texi: Mention -mlzcnt option.
1748         * doc/extend.texi: Likewise.
1749
1750 2011-08-01  Julian Brown  <julian@codesourcery.com>
1751
1752         * configure.ac (fixed-point): Add ARM support.
1753         * configure: Regenerate.
1754         * config/arm/arm.c (arm_fixed_mode_set): New struct.
1755         (arm_set_fixed_optab_libfunc): New.
1756         (arm_set_fixed_conv_libfunc): New.
1757         (arm_init_libfuncs): Initialise fixed-point helper libfuncs with
1758         ARM-specific names.
1759         (aapcs_libcall_value): Return sub-word-size fixed-point libcall
1760         return values in SImode.
1761         (arm_return_in_msb): Return fixed-point types in the msb.
1762         (arm_pad_reg_upwards, arm_pad_arg_upwards): Pad fixed-point types
1763         upwards.
1764         (arm_scalar_mode_supported_p): Support fixed-point modes.
1765         (arm_vector_mode_supported_p): Support vector fixed-point modes.
1766         * config/arm/arm.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE)
1767         (LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE)
1768         (SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE)
1769         (LONG_LONG_ACCUM_TYPE_SIZE, MAX_FIXED_MODE_SIZE): Define.
1770         * config/arm/iterators.md (FIXED, ADDSUB, UQADDSUB, QADDSUB, QMUL):
1771         New mode iterators.
1772         (qaddsub_suf): New mode attribute.
1773         * config/arm/arm-modes.def (FRACT, UFRACT, ACCUM, UACCUM): Declare
1774         vector modes.
1775         * config/arm/predicates.md (sat_shift_operator): New predicate.
1776         * config/arm/arm-fixed.md: New.
1777         * config/arm/arm.md: Include arm-fixed.md.
1778         * config/arm/t-arm (MD_INCLUDES): Add arm-fixed.md.
1779
1780 2011-08-01  Julian Brown  <julian@codesourcery.com>
1781
1782         * calls.c (emit_library_call_value_1): Support padding for libcall
1783         arguments and return values.
1784         * config/arm/arm.c (arm_pad_arg_upward): Pad half-float values
1785         downwards in big-endian mode.
1786
1787 2011-08-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1788
1789         PR debug/49887
1790         * config/sol2.c (solaris_code_end): Rename to solaris_file_end.
1791         * config/sol2-protos.h: Likewise.
1792         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Don't call
1793         solaris_code_end.
1794         * config/i386/sol2.h [!USE_GAS] (TARGET_ASM_FILE_END): Redefine.
1795         * config/sparc/sparc.c (sparc_file_end) [TARGET_SOLARIS]: Call
1796         solaris_file_end.
1797         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Remove.
1798
1799 2011-08-01  Julian Brown  <julian@codesourcery.com>
1800
1801         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Support FIXED_CST.
1802
1803 2011-08-01  Julian Brown  <julian@codesourcery.com>
1804
1805         * final.c (output_addr_const): Print fixed-point constants as
1806         decimal not hex.
1807
1808 2011-08-01  Richard Guenther  <rguenther@suse.de>
1809
1810         * stor-layout.c (initialize_sizetypes): Properly sign-extend
1811         bitsiztype TYPE_MAX_VALUE.
1812
1813 2011-08-01  Julian Brown  <julian@codesourcery.com>
1814
1815         * optabs.c (prepare_cmp_insn): Use correct biasing for fixed-point
1816         comparison helpers.
1817
1818 2011-07-31  Richard Henderson  <rth@redhat.com>
1819
1820         * config/h8300/crti.asm: Add flags to .section directive.
1821         * config/h8300/crtn.asm: Likewise.
1822
1823 2011-07-31  Richard Henderson  <rth@redhat.com>
1824
1825         * stor-layout.c (initialize_sizetypes): Handle unsigned short.
1826         * tree.c (build_common_tree_nodes): Likewise.
1827
1828 2011-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
1829
1830         PR target/49880
1831         * config/sh/sh.md (udivsi3_i1): Enable for TARGET_DIVIDE_CALL_DIV1.
1832         (divsi3_i1): Likewise.
1833
1834 2011-07-31  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1835
1836         PR tree-optimization/49749
1837         * tree-ssa-reassoc.c (get_rank): New forward declaration.
1838         (PHI_LOOP_BIAS): New macro.
1839         (phi_rank): New function.
1840         (loop_carried_phi): Likewise.
1841         (propagate_rank): Likewise.
1842         (get_rank): Add calls to phi_rank and propagate_rank.
1843
1844 2011-07-31  H.J. Lu  <hongjiu.lu@intel.com>
1845
1846         * config/i386/x86-64.h (SIZE_TYPE): Check TARGET_LP64 instead
1847         of TARGET_64BIT.
1848         (PTRDIFF_TYPE): Likewise.
1849
1850 2011-07-31  Uros Bizjak  <ubizjak@gmail.com>
1851
1852         PR target/49920
1853         * config/i386/i386.md (strset): Do not expand strset_singleop
1854         when %eax or $edi are fixed.
1855         (*strsetdi_rex_1): Disable when %eax or %edi are fixed.
1856         (*strsetsi_1): Ditto.
1857         (*strsethi_1): Ditto.
1858         (*strsetqi_1): Ditto.
1859         (*rep_stosdi_rex64): Disable when %eax, %ecx or %edi are fixed.
1860         (*rep_stossi): Ditto.
1861         (*rep_stosqi): Ditto.
1862         (*strlenqi_1): Ditto.
1863         (cmpstrnsi): Also fail when %ecx is fixed.
1864         (*cmpstrnqi_nz_1): Disable when %ecx, %esi or %edi are fixed.
1865         (*cmpstrnqi_1): Ditto.
1866         (*strmovdi_rex_1): Disable when %esi or %edi are fixed.
1867         (*strmovsi_1): Ditto.
1868         (*strmovhi_1): Ditto.
1869         (*strmovqi_1): Ditto.
1870         (*rep_movdi_rex64): Disable when %ecx, %esi or %edi are fixed.
1871         (*rep_movsi): Ditto.
1872         (*rep_movqi): Ditto.
1873
1874 2011-07-31  Mikael Pettersson  <mikpe@it.uu.se>
1875
1876         PR target/47908
1877         * config/m68k/m68k.c (m68k_override_options_after_change): New function.
1878         Disable instruction scheduling for non-ColdFire targets.
1879         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
1880
1881 2011-07-31  Revital Eres  <revital.eres@linaro.org>
1882
1883         * ddg.c (create_ddg_dep_from_intra_loop_link): Remove the creation
1884         of anti-dep edge from a branch.
1885         (add_cross_iteration_register_deps): Create anti-dep edge from
1886         a branch.
1887
1888 2011-07-31  Revital Eres  <revital.eres@linaro.org>
1889
1890         * modulo-sched.c: Change comment.
1891         (reset_sched_times): Fix print message.
1892         (print_partial_schedule): Add print info.
1893
1894 2011-07-31  Tom de Vries  <tom@codesourcery.com>
1895
1896         PR middle-end/43513
1897         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Use max of
1898         get_object_alignment and TYPE_ALIGN.
1899
1900 2011-07-30  Tom de Vries  <tom@codesourcery.com>
1901
1902         PR middle-end/43513
1903         * tree-ssa-dce.c (ref_may_be_aliased): Add assert.
1904         (propagate_necessity): Handle WITH_SIZE_EXPR call arg.
1905
1906 2011-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1907
1908         * config/mips/driver-native.c [__sgi__]: Include <invent.h>,
1909         <sys/sbd.h>.
1910         (cpu_types): New array.
1911         (cputype): New function.
1912         (host_detect_local_cpu): Only define buf, f if !__sgi__.
1913         Use scaninvent instead of /proc/cpuinfo if __sgi__.
1914         * config.host: Also use driver-native.o, mips/x-native on
1915         mips-sgi-irix*.
1916         * config/mips/iris6.h [__mips__] (host_detect_local_cpu): Declare.
1917         (EXTRA_SPEC_FUNCTIONS, MARCH_MTUNE_NATIVE_SPECS): Define.
1918         (DRIVER_SELF_SPECS): Add MARCH_MTUNE_NATIVE_SPECS.
1919
1920 2011-07-29  Jakub Jelinek  <jakub@redhat.com>
1921
1922         PR middle-end/49897
1923         PR middle-end/49898
1924         * omp-low.c (use_pointer_for_field): If disallowing copy-in/out
1925         in nested parallel and outer is a gimple_reg, mark it as addressable
1926         and set its bit in task_shared_vars bitmap too.
1927
1928 2011-07-29  Uros Bizjak  <ubizjak@gmail.com>
1929
1930         * config/i386/predicates.md (tp_or_register_operand): Remove predicate.
1931
1932 2011-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1933
1934         * config/alpha/driver-alpha.c (IMPLVER_EV4_FAMILY,
1935         IMPLVER_EV5_FAMILY, IMPLVER_EV6_FAMILY, IMPLVER_EV7_FAMILY): Define.
1936         (AMASK_BWX, AMASK_FIX, AMASK_CIX, AMASK_MVI, AMASK_PRECISE,
1937         AMASK_LOCKPFTCHOK): Define.
1938         (host_detect_local_cpu): Remove buf, f, cpu_names.
1939         Define cpu_types, implver, amask.
1940         Use __builtin_alpha_implver, __builtin_alpha_amask to determine
1941         native CPU.
1942         * config.host: Also use driver-alpha.o, alpha/x-alpha on
1943         alpha*-dec-osf*.
1944         * config/alpha/osf5.h [__alpha__ || __alpha]
1945         (host_detect_local_cpu): Declare.
1946         (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS)
1947         (DRIVER_SELF_SPECS): Define.
1948
1949 2011-07-29  Uros Bizjak  <ubizjak@gmail.com>
1950
1951         PR target/47715
1952         * config/i386/i386.md (*load_tp_x32): New.
1953         (*load_tp_x32_zext): Ditto.
1954         (*add_tp_x32): Ditto.
1955         (*add_tp_x32_zext): Ditto.
1956         (*load_tp_<mode>): Disable for TARGET_X32 targets.
1957         (*add_tp_<mode>): Ditto.
1958         * config/i386/i386.c (get_thread_pointer): Load thread pointer in
1959         ptr_mode and convert to Pmode if needed.
1960
1961 2011-07-29  Georg-Johann Lay  <avr@gjlay.de>
1962
1963         PR target/49687
1964         * config/avr/avr.md (mulsi3, *mulsi3, mulu<mode>si3,
1965         muls<mode>si3, mulohisi3, mulhisi3, umulhisi3, usmulhisi3,
1966         *<any_extend:extend_prefix><any_extend2:extend_prefix>mul<QIHI:mode><QIHI2:mode>si3):
1967         Add X to register footprint: Clobber r26/r27.
1968
1969 2011-07-29  Richard Guenther  <rguenther@suse.de>
1970
1971         * builtins.c (fold_builtin_signbit): Build the comparison
1972         with a proper type.
1973
1974 2011-07-29  Richard Guenther  <rguenther@suse.de>
1975
1976         PR tree-optimization/49893
1977         * tree-predcom.c (suitable_reference_p): Volatile references
1978         are not suitable.
1979
1980 2011-07-29  Georg-Johann Lay  <avr@gjlay.de>
1981
1982         PR target/49313
1983         * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
1984         (__ctzsi2): Result for 0 may be undefined.
1985         (__ctzhi2): Result for 0 may be undefined.
1986         (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
1987         (__popcountsi2): Ditto. And don't clobber r26.
1988         (__popcountdi2): Ditto. And don't clobber r27.
1989         * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
1990         (parityhi2): New expand.
1991         (paritysi2): New expand.
1992         (popcounthi2): New expand.
1993         (popcountsi2): New expand.
1994         (clzhi2): New expand.
1995         (clzsi2): New expand.
1996         (ctzhi2): New expand.
1997         (ctzsi2): New expand.
1998         (ffshi2): New expand.
1999         (ffssi2): New expand.
2000         (copysignsf3): New insn.
2001         (bswapsi2): New expand.
2002         (*parityhi2.libgcc): New insn.
2003         (*parityqihi2.libgcc): New insn.
2004         (*paritysihi2.libgcc): New insn.
2005         (*popcounthi2.libgcc): New insn.
2006         (*popcountsi2.libgcc): New insn.
2007         (*popcountqi2.libgcc): New insn.
2008         (*popcountqihi2.libgcc): New insn-and-split.
2009         (*clzhi2.libgcc): New insn.
2010         (*clzsihi2.libgcc): New insn.
2011         (*ctzhi2.libgcc): New insn.
2012         (*ctzsihi2.libgcc): New insn.
2013         (*ffshi2.libgcc): New insn.
2014         (*ffssihi2.libgcc): New insn.
2015         (*bswapsi2.libgcc): New insn.
2016
2017 2011-07-29  Richard Guenther  <rguenther@suse.de>
2018
2019         * tree-vrp.c (get_value_range): Only set parameter default
2020         definitions to varying, leave others at undefined.
2021         (extract_range_from_binary_expr): Fix undefined handling.
2022         (vrp_visit_phi_node): Handle merged undefined state.
2023
2024 2011-07-29  Wei Guozhi  <carrot@google.com>
2025
2026         PR rtl-optimization/49799
2027         * combine.c (make_compound_operation): Check if the bit field is valid
2028         before change it to bit field extraction.
2029
2030 2011-07-29  Bernd Schmidt  <bernds@codesourcery.com>
2031
2032         PR rtl-optimization/49891
2033         * cfgrtl.c (force_nonfallthru_and_redirect): Set JUMP_LABEL for
2034         newly created returnjumps.
2035
2036 2011-07-28  DJ Delorie  <dj@redhat.com>
2037
2038         * expr.c (expand_expr_addr_expr_1): Detect a user request for a
2039         local frame in a naked function, and produce a suitable error for
2040         that specific case.
2041
2042         * config/m32c/m32c.c (m32c_secondary_reload_class): Allow PSI
2043         registers to be reloaded in HI classes when the target is HI.
2044
2045 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
2046
2047         * graphite-clast-to-gimple.c: Replace v1, v2, lb, ub with
2048         bound_one, bound_two.
2049
2050 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
2051
2052         PR middle-end/48648
2053         * graphite-clast-to-gimple.c (clast_get_body_of_loop): Handle
2054         CLAST assignments.
2055         (translate_clast): Same.
2056         (translate_clast_assignment): New.
2057
2058 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
2059
2060         PR tree-optimization/49876
2061         * sese.c (rename_uses): Do not return false on gloog_error: set
2062         the new_expr to integer_zero_node and continue code generation.
2063         (graphite_copy_stmts_from_block): Remove early exit on gloog_error.
2064
2065 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
2066
2067         PR debug/49846
2068         * var-tracking.c (prepare_call_arguments): For non-MODE_INT stack
2069         arguments also check if they aren't initialized with a MODE_INT
2070         mode of the same size.
2071
2072 2011-07-28  Aldy Hernandez  <aldyh@redhat.com>
2073
2074         * expr.c (get_bit_range): Handle *MEM_REF's.
2075
2076 2011-07-28  Bernd Schmidt  <bernds@codesourcery.com>
2077
2078         * rtlanal.c (tablejump_p): False for returns.
2079         * reorg.c (first_active_target_insn): New static function.
2080         (find_end_label): Set JUMP_LABEL for a new returnjump.
2081         (optimize_skip, get_jump_flags, rare_destination,
2082         mostly_true_jump, get_branch_condition,
2083         steal_delay_list_from_target, own_thread_p,
2084         fill_simple_delay_slots, follow_jumps, fill_slots_from_thread,
2085         fill_eager_delay_slots, relax_delay_slots, make_return_insns,
2086         dbr_schedule): Adjust to handle ret_rtx in JUMP_LABELs.
2087         * jump.c (delete_related_insns): Likewise.
2088         (jump_to_label_p): New function.
2089         (redirect_target): New static function.
2090         (redirect_exp_1): Use it.  Adjust to handle ret_rtx in JUMP_LABELS.
2091         (redirect_jump_1): Assert that the new label is nonnull.
2092         (redirect_jump): Likewise.
2093         (redirect_jump_2): Check for ANY_RETURN_P rather than NULL labels.
2094         * ifcvt.c (find_if_case_1): Take care when redirecting jumps to the
2095         exit block.
2096         (dead_or_predicable): Change NEW_DEST arg to DEST_EDGE.  All callers
2097         changed.  Ensure that the right label is passed to redirect_jump.
2098         * function.c (emit_return_into_block,
2099         thread_prologue_and_epilogue_insns): Ensure new returnjumps have
2100         ret_rtx in their JUMP_LABEL.
2101         * print-rtl.c (print_rtx): Handle ret_rtx in a JUMP_LABEL.
2102         * emit-rtl.c (skip_consecutive_labels): Allow the caller to
2103         pass ret_rtx as label.
2104         * cfglayout.c (fixup_reorder_chain): Use
2105         force_nonfallthru_and_redirect rather than force_nonfallthru.
2106         (duplicate_insn_chain): Copy JUMP_LABELs for returns.
2107         * rtl.h (ANY_RETURN_P): New macro.
2108         (jump_to_label_p): Declare.
2109         * resource.c (find_dead_or_set_registers): Handle ret_rtx in
2110         JUMP_LABELs.
2111         (mark_target_live_regs): Likewise.
2112         * basic-block.h (force_nonfallthru_and_redirect): Declare.
2113         * cfgrtl.c (force_nonfallthru_and_redirect): No longer static.
2114         * config/alpha/alpha.c (alpha_tablejump_addr_vec,
2115         alpha_tablejump_best_label): Remove functions.
2116         * config/alpha/alpha-protos.c (alpha_tablejump_addr_vec,
2117         alpha_tablejump_best_label): Remove declarations.
2118         * config/sh/sh.c (barrier_align, split_branches): Adjust for
2119         ret_rtx in JUMP_LABELs.
2120         * config/arm/arm.c (is_jump_table): Likewise.
2121
2122 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
2123
2124         * config/i386/predicates.md (pic_32bit_opreand): Do not define as
2125         special predicate.  Remove explicit mode checks.
2126
2127 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
2128
2129         * dwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize
2130         DW_AT_data_member_location containing just DW_OP_plus_uconst.
2131
2132         PR debug/49871
2133         * dwarf2out.c (size_of_die, value_format, output_die): Use
2134         DW_FORM_udata instead of DW_FORM_data[48] for
2135         dw_val_class_unsigned_const DW_AT_data_member_location for DWARF 3.
2136
2137 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
2138
2139         * config/i386/i386.md (*tls_global_dynamic_64): Update
2140         length attribute.
2141
2142 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
2143
2144         PR target/47715
2145         * config/i386/i386.md (*tls_global_dynamic_64): Remove mode from
2146         tls_symbolic_operand check.  Update code sequence for TARGET_X32.
2147         (tls_global_dynamic_64): Remove mode from tls_symbolic_operand check.
2148         (tls_dynamic_gnu2_64): Ditto.
2149         (*tls_dynamic_gnu2_lea_64): Ditto.
2150         (*tls_dynamic_gnu2_call_64): Ditto.
2151         (*tls_dynamic_gnu2_combine_64): Ditto.
2152
2153 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
2154
2155         * config.gcc: Set need_64bit_hwint to yes for x86 targets.
2156
2157 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
2158
2159         PR target/47364
2160         * config/i386/i386.md (strlen<mode>): Replace SWI48x with P.
2161
2162 2011-07-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2163
2164         * config/arm/vfp.md ("*movdf_vfp"): Handle the VFP constraints
2165         before the core constraints. Adjust attributes.
2166         ("*thumb2_movdf_vfp"): Likewise.
2167
2168 2011-07-28  Kai Tietz  <ktietz@redhat.com>
2169
2170         * tree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case.
2171         (simplify_truth_ops_using_ranges): Likewise.
2172         (build_assert_expr_for): Likewise.
2173         (build_assert_expr_for_1): Remove TRUTH_NOT_EXPR case
2174         and handle BIT_NOT_EXPR for truth-operation.
2175
2176 2011-07-28  Georg-Johann Lay  <avr@gjlay.de>
2177
2178         PR target/49313
2179         Undo r176835 from trunk
2180         2011-07-27  Georg-Johann Lay
2181
2182 2011-07-28  Georg-Johann Lay  <avr@gjlay.de>
2183
2184         PR target/49687
2185         * config/avr/t-avr (LIB1ASMFUNCS): Remove _xmulhisi3_exit.
2186         Add _muluhisi3, _mulshisi3, _usmulhisi3.
2187         * config/avr/libgcc.S (__mulsi3): Rewrite.
2188         (__mulhisi3): Rewrite.
2189         (__umulhisi3): Rewrite.
2190         (__usmulhisi3): New.
2191         (__muluhisi3): New.
2192         (__mulshisi3): New.
2193         (__mulohisi3): New.
2194         (__mulqi3, __mulqihi3, __umulqihi3, __mulhi3): Use DEFUN/ENDF to
2195         declare.
2196         * config/avr/predicates.md (pseudo_register_operand): Rewrite.
2197         (pseudo_register_or_const_int_operand): New.
2198         (combine_pseudo_register_operand): New.
2199         (u16_operand): New.
2200         (s16_operand): New.
2201         (o16_operand): New.
2202         * config/avr/avr.c (avr_rtx_costs): Handle costs for mult:SI.
2203         * config/avr/avr.md (QIHI, QIHI2): New mode iterators.
2204         (any_extend, any_extend2): New code iterators.
2205         (extend_prefix): New code attribute.
2206         (mulsi3): Rewrite. Turn insn to expander.
2207         (mulhisi3): Ditto.
2208         (umulhisi3): Ditto.
2209         (usmulhisi3): New expander.
2210         (*mulsi3): New insn-and-split.
2211         (mulu<mode>si3): New insn-and-split.
2212         (muls<mode>si3): New insn-and-split.
2213         (mulohisi3): New insn-and-split.
2214         (*uumulqihisi3, *uumulhiqisi3, *uumulhihisi3, *uumulqiqisi3,
2215         *usmulqihisi3, *usmulhiqisi3, *usmulhihisi3, *usmulqiqisi3,
2216         *sumulqihisi3, *sumulhiqisi3, *sumulhihisi3, *sumulqiqisi3,
2217         *ssmulqihisi3, *ssmulhiqisi3, *ssmulhihisi3, *ssmulqiqisi3): New
2218         insn-and-split.
2219         (*mulsi3_call): Rewrite.
2220         (*mulhisi3_call): Rewrite.
2221         (*umulhisi3_call): Rewrite.
2222         (*usmulhisi3_call): New insn.
2223         (*muluhisi3_call): New insn.
2224         (*mulshisi3_call): New insn.
2225         (*mulohisi3_call): New insn.
2226         (extendqihi2): Use combine_pseudo_register_operand as predicate
2227         for operand 1.
2228         (extendqisi2): Ditto.
2229         (zero_extendqihi2): Ditto.
2230         (zero_extendqisi2): Ditto.
2231         (zero_extendhisi2): Ditto.
2232         (extendhisi2): Ditto. Don't early-clobber operand 0.
2233
2234 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
2235
2236         * config/i386/i386.c (add->lea splitter): Add SWI mode to PLUS RTX.
2237
2238 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
2239
2240         PR tree-optimization/49471
2241         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned
2242         iv only when the largest type is unsigned.  Do not call
2243         lang_hooks.types.type_for_size.
2244
2245 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
2246
2247         PR middle-end/45450
2248         * graphite-poly.c (apply_poly_transforms): Disable legality check
2249         after an openscop read.
2250
2251 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
2252
2253         PR middle-end/47691
2254         * graphite-clast-to-gimple.c (translate_clast_user): Update use of
2255         copy_bb_and_scalar_dependences.
2256         * sese.c (rename_uses): Do not call gcc_assert.  Set gloog_error.
2257         (graphite_copy_stmts_from_block): Update call to rename_uses.
2258         (copy_bb_and_scalar_dependences): Update call to
2259         graphite_copy_stmts_from_block.
2260         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
2261
2262 2011-07-27  Georg-Johann Lay  <avr@gjlay.de>
2263
2264         PR target/49313
2265         * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
2266         (__ctzsi2): Result for 0 may be undefined.
2267         (__ctzhi2): Result for 0 may be undefined.
2268         (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
2269         (__popcountsi2): Ditto. And don't clobber r26.
2270         (__popcountdi2): Ditto. And don't clobber r27.
2271         * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
2272         (parityhi2): New expand.
2273         (paritysi2): New expand.
2274         (popcounthi2): New expand.
2275         (popcountsi2): New expand.
2276         (clzhi2): New expand.
2277         (clzsi2): New expand.
2278         (ctzhi2): New expand.
2279         (ctzsi2): New expand.
2280         (ffshi2): New expand.
2281         (ffssi2): New expand.
2282         (copysignsf3): New insn.
2283         (bswapsi2): New expand.
2284         (*parityhi2.libgcc): New insn.
2285         (*parityqihi2.libgcc): New insn.
2286         (*paritysihi2.libgcc): New insn.
2287         (*popcounthi2.libgcc): New insn.
2288         (*popcountsi2.libgcc): New insn.
2289         (*popcountqi2.libgcc): New insn.
2290         (*popcountqihi2.libgcc): New insn-and-split.
2291         (*clzhi2.libgcc): New insn.
2292         (*clzsihi2.libgcc): New insn.
2293         (*ctzhi2.libgcc): New insn.
2294         (*ctzsihi2.libgcc): New insn.
2295         (*ffshi2.libgcc): New insn.
2296         (*ffssihi2.libgcc): New insn.
2297         (*bswapsi2.libgcc): New insn.
2298
2299 2011-07-27  Uros Bizjak  <ubizjak@gmail.com>
2300
2301         * config/i386/i386.c (ix86_expand_move): Do not explicitly check
2302         the mode of symbolic_opreand RTXes.
2303
2304 2011-07-27  Uros Bizjak  <ubizjak@gmail.com>
2305
2306         * config/i386/predicates.md (x86_64_movabs_operand): Return false
2307         for pic_32bit_operand RTXes.
2308         * config/i386/i386.c (ix86_expand_move): Check x86_64_movabs_operand
2309         in DImode.
2310
2311 2011-07-27  Kai Tietz  <ktietz@redhat.com>
2312
2313         * config/i386/i386.c (ix86_option_override_internal): Allow -mabi
2314         for 32-bit, too.
2315         (ix86_handle_abi_attribute): Allow function attributes
2316         ms_abi/sysv_abi in 32-bit mode, too.
2317         * doc/extend.texi: Adjust attribute documentation.
2318
2319         * gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR
2320         expression handling.
2321         (and_var_with_comparison_1): Likewise.
2322
2323 2011-07-27  Aldy Hernandez  <aldyh@redhat.com>
2324
2325         * params.h (ALLOW_STORE_DATA_RACES): New.
2326         * params.def (PARAM_ALLOW_STORE_DATA_RACES): New.
2327         * Makefile.in (expr.o): Depend on PARAMS_H.
2328         * machmode.h (get_best_mode): Add argument.
2329         * fold-const.c (optimize_bit_field_compare): Add argument to
2330         get_best_mode.
2331         (fold_truthop): Same.
2332         * ifcvt.c (noce_emit_move_insn): Add argument to store_bit_field.
2333         * expr.c (emit_group_store): Same.
2334         (copy_blkmode_from_reg): Same.
2335         (write_complex_part): Same.
2336         (optimize_bitfield_assignment_op): Add argument.
2337         Add argument to get_best_mode.
2338         (get_bit_range): New.
2339         (expand_assignment): Calculate maxbits and pass it down accordingly.
2340         (store_field): New argument.
2341         (expand_expr_real_2): New argument to store_field.  Include params.h.
2342         * expr.h (store_bit_field): New argument.
2343         * stor-layout.c (get_best_mode): Restrict mode expansion by taking
2344         into account maxbits.
2345         * calls.c (store_unaligned_arguments_into_pseudos): New argument
2346         to store_bit_field.
2347         * expmed.c (store_bit_field_1): New argument.  Use it.
2348         (store_bit_field): Same.
2349         (store_fixed_bit_field): Same.
2350         (store_split_bit_field): Same.
2351         (extract_bit_field_1): Pass new argument to get_best_mode.
2352         (extract_bit_field): Same.
2353         * stmt.c (store_bit_field): Pass new argument to store_bit_field.
2354         * doc/invoke.texi: Document parameter allow-store-data-races.
2355
2356 2011-07-27  Jakub Jelinek  <jakub@redhat.com>
2357
2358         * dwarf2out.c (gen_producer_string): Ignore also -fverbose-asm option.
2359
2360 2011-07-27  Kai Tietz  <ktietz@redhat.com>
2361
2362         * tree-vrp.c (extract_range_from_binary_expr): Remove
2363         TRUTH-binary cases and add new bitwise-cases.
2364         (extract_range_from_assignment): Likewise.
2365         (register_edge_assert_for_1): Likeiwise.
2366         (register_edge_assert_for): Likewise.
2367         (simplify_truth_ops_using_ranges): Likewise.
2368         (simplify_stmt_using_ranges): Likewise.
2369
2370 2011-07-26  H.J. Lu  <hongjiu.lu@intel.com>
2371
2372         PR target/47372
2373         * config/i386/i386.c (ix86_delegitimize_address): Call
2374         simplify_gen_subreg for PIC with mode of x only if modes of
2375         x and orig_x are different.
2376
2377 2011-07-26  Jakub Jelinek  <jakub@redhat.com>
2378
2379         * dwarf2out.c (output_macinfo_op): Ensure fd->filename points
2380         to GC allocated copy of the string.
2381         (dwarf2out_finish): Emit .debug_macinfo or .debug_macro sections
2382         before .debug_line, not after it.
2383
2384 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
2385
2386         PR middle-end/47046
2387         * tree-chrec.h (evolution_function_is_affine_p): Recursively call
2388         evolution_function_is_affine_p on CHREC_RIGHT.
2389
2390 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
2391
2392         * tree-data-ref.c (max_stmt_executions_tree): Do not call
2393         lang_hooks.types.type_for_size.
2394
2395 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
2396
2397         PR middle-end/47653
2398         * graphite-scop-detection.c (graphite_can_represent_loop): Discard
2399         loops using wrapping semantics.
2400
2401 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
2402
2403         PR middle-end/48805
2404         * tree-scalar-evolution.c (instantiate_scev_r): Return
2405         chrec_dont_know for ADDR_EXPR.
2406
2407 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
2408             H.J. Lu  <hongjiu.lu@intel.com>
2409
2410         PR target/47369
2411         PR target/49853
2412         * config/i386/i386.c (ix86_expand_move): Call convert_to_mode
2413         if legitimize_tls_address returned operand in wrong mode. Allow
2414         SImode and DImode symbolic operand for PIC.  Call convert_to_mode
2415         if legitimize_pic_address returned operand in wrong mode.
2416
2417 2011-07-26  Martin Jambor  <mjambor@suse.cz>
2418
2419         * tree-sra.c (tree_non_mode_aligned_mem_p): Strip conversions and
2420         return false for invariants.
2421
2422 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
2423
2424         * config/i386/i386.md (add->lea splitter): Implement using SWI
2425         mode iterator.  Change operand 2 predicate to <nonmemory_operand>.
2426         (add->lea zext splitter): Change operand 2 predicate to
2427         x86_64_nonmemory_operand.
2428
2429 2011-07-26  Richard Guenther  <rguenther@suse.de>
2430
2431         * predict.c (maybe_hot_frequency_p): Make sure a zero entry-block
2432         frequency makes everything hot.
2433
2434 2011-07-26  Richard Guenther  <rguenther@suse.de>
2435
2436         PR tree-optimization/49840
2437         * tree-vrp.c (range_fits_type_p): Properly handle full
2438         double-int precision.
2439
2440 2011-07-26  Martin Jambor  <mjambor@suse.cz>
2441
2442         PR bootstrap/49786
2443         * ipa-cp.c (update_profiling_info): Avoid overflow when updating
2444         counts.
2445         (update_specialized_profile): Likewise.
2446
2447 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
2448             H.J. Lu  <hongjiu.lu@intel.com>
2449
2450         PR target/47381
2451         PR target/49832
2452         PR target/49833
2453         * config/i386/i386.md (i): Change SImode attribute to "e".
2454         (g): Change SImode attribute to "rme".
2455         (di): Change SImode attribute to "nF".
2456         (general_operand): Change SImode attribute to x86_64_general_operand.
2457         (general_szext_operand): Change SImode attribute to
2458         x86_64_szext_general_operand.
2459         (immediate_operand): Change SImode attribute to
2460         x86_64_immediate_operand.
2461         (nonmemory_operand): Change SImode attribute to
2462         x86_64_nonmemory_operand.
2463         (*movdi_internal_rex64): Remove mode from pic_32bit_operand check.
2464         (*movsi_internal): Ditto.  Use "e" constraint in alternative 2.
2465         (*lea_1): Use SWI48 mode iterator.
2466         (*lea_1_zext): New insn pattern.
2467         (testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2.
2468         (*bt<mode>): Ditto.
2469         (*add<mode>1): Use x86_64_general_operand predicate for operand 2.
2470         Update operand constraints.
2471         (addsi_1_zext): Ditto.
2472         (*add<mode>2): Ditto.
2473         (*addsi_3_zext): Ditto.
2474         (*subsi_1_zext): Ditto.
2475         (*subsi_2_zext): Ditto.
2476         (*subsi_3_zext): Ditto.
2477         (*addsi3_carry_zext): Ditto.
2478         (*<plusminus_insn>si3_zext_cc_overflow): Ditto.
2479         (*mulsi3_1_zext): Ditto.
2480         (*andsi_1): Ditto.
2481         (*andsi_1_zext): Ditto.
2482         (*andsi_2_zext): Ditto.
2483         (*<any_or:code>si_1_zext): Ditto.
2484         (*<any_or:code>si_2_zext): Ditto.
2485         (*test<mode>_1): Use <general_operand> predicate for operand 1.
2486         (*and<mode>_2): Ditto.
2487         (mov<mode>cc): Use  <general_operand> predicate for operands 1 and 2.
2488         (add->lea splitter): Check operand modes in insn constraint.  Extend
2489         operands less than SImode wide to SImode.
2490         (add->lea zext splitter): Do not extend input operands to DImode.
2491         (*lea_general_1): Handle only QImode and HImode operands.
2492         (*lea_general_2): Ditto.
2493         (*lea_general_3): Ditto.
2494         (*lea_general_1_zext): Remove.
2495         (*lea_general_2_zext): Ditto.
2496         (*lea_general_3_zext): Ditto.
2497         (*lea_general_4): Check operand modes in insn constraint.  Extend
2498         operands less than SImode wide to SImode.
2499         (ashift->lea splitter): Ditto.
2500         * config/i386/i386.c (ix86_print_operand_address): Print address
2501         registers with 'q' modifier on 64bit targets.
2502         * config/i386/predicates.md (pic_32bit_opreand): Define as special
2503         predicate.  Reject non-SI and non-DI modes.
2504
2505 2011-07-25  Andrew Pinski  <apinski@cavium.com>
2506
2507         PR tree-opt/49671
2508         * tree-inline.c (remap_gimple_op_r): Copy TREE_THIS_VOLATILE and
2509         TREE_THIS_NOTRAP into the inner most MEM_REF.
2510         Always copy TREE_THIS_VOLATILE.
2511         * tree-sra.c (ptr_parm_has_direct_uses): Check that the lhs, rhs and
2512         arguments are not volatile references.
2513
2514 2011-07-25  Richard Henderson  <rth@redhat.com>
2515
2516         * insn-notes.def (NOTE_INSN_CFA_RESTORE_STATE): Remove.
2517         * final.c (final_scan_insn): Don't test for it.
2518         (rest_of_clean_state): Likewise.
2519
2520 2011-07-25  Richard Henderson  <rth@redhat.com>
2521
2522         PR debug/49841
2523         * config/rs6000/rs6000.c (rs6000_frame_related): Return the insn.
2524         (emit_frame_save): Likewise.
2525         (rs6000_emit_prologue): Move the FRAME_RELATED_EXPR from the save
2526         insn onto a dummy blockage insn after the join label.
2527
2528 2011-07-25  Richard Henderson  <rth@redhat.com>
2529
2530         * dwarf2cfi.c (dw_trace_info): Add ID member.
2531         (get_trace_index): Remove.  Change users to use ID member.
2532         (before_next_cfi_note): New.
2533         (connect_traces): Remove unreachable traces before the main loop.
2534         Look across one trace and generate remember/restore_state if needed.
2535
2536 2011-07-25  Richard Henderson  <rth@redhat.com>
2537
2538         * dwarf2cfi.c (dump_cfi_row, debug_cfi_row): New.
2539
2540 2011-07-25  Joern Rennecke  <joern.rennecke@embecosm.com>
2541
2542         * genattr.c (write_upcase, gen_attr <enum definition writing>):
2543         Move to ...
2544         * genattr-common.c ... here.
2545         (main): Call gen_attr.
2546         * optc-gen.awk: Make generated program include insn-attr-common.h .
2547         * Makefile.in (oprions.o): Depend on insn-attr-common.h
2548
2549 2011-07-25  Anatoly Sokolov  <aesok@post.ru>
2550
2551         * config/m32c/m32c.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
2552         PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
2553         * config/m32c/m32c-protos.h (m32c_print_operand_punct_valid_p,
2554         m32c_print_operand, m32c_print_operand_address): Remove.
2555         * config/m32c/m32c.c (m32c_print_operand_punct_valid_p): Make static.
2556         Change return type to bool. Change argument type to bool.
2557         (m32c_print_operand, m32c_print_operand_address): Make static.
2558         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
2559         TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
2560
2561 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2562
2563         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
2564         attributes): Document mmap.
2565
2566 2011-07-25  Anatoly Sokolov  <aesok@post.ru>
2567
2568         * config/mmix/mmix.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
2569         PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
2570         * config/mmix/mmix-protos.h (mmix_print_operand_punct_valid_p,
2571         mmix_print_operand, mmix_print_operand_address): Remove.
2572         * config/mmix/mmix.c (mmix_print_operand_punct_valid_p): Make static.
2573         Change return type to bool. Change argument type to bool.
2574         (mmix_print_operand, mmix_print_operand_address): Make static.
2575         (mmix_intval, mmix_output_condition): Change 'x' argument type
2576         to const_rtx.
2577         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
2578         TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
2579
2580 2011-07-25  Georg-Johann Lay  <avr@gjlay.de>
2581
2582         PR target/39386
2583         * config/avr/avr.c (out_shift_with_cnt): Use tmp_reg as
2584         shift counter for x << x and x >> x shifts.
2585
2586 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2587
2588         PR target/47124
2589         * config.gcc: Reject *-*-solaris2 configuration.
2590
2591 2011-07-25  Richard Sandiford  <richard.sandiford@linaro.org>
2592
2593         PR tree-optimization/49809
2594         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Use
2595         gimple_get_lhs instead of gimple_assign_lhs.
2596
2597 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2598
2599         * system.h [__cplusplus]: Wrap C function declarations in extern "C".
2600
2601 2011-07-25  Richard Guenther  <rguenther@suse.de>
2602
2603         PR tree-optimization/49822
2604         * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
2605         more.  Make sure to preserve stmts with side-effects.  Properly
2606         handle virtual defs, follow a longer def chain.
2607
2608 2011-07-22  Romain Geissler  <romain.geissler@gmail.com>
2609
2610         PR plugins/45348
2611         PR plugins/48425
2612         PR plugins/46577
2613         * Makefile.in: Do not flatten c-family directory when installing
2614         plugin headers.
2615
2616 2011-07-25  Eric Botcazou  <ebotcazou@adacore.com>
2617
2618         * ipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of
2619         original nodes if we are dealing with virtual clones.
2620
2621 2011-07-25  Bernd Schmidt  <bernds@codesourcery.com>
2622
2623         * common/config/c6x/c6x-common.c: New file.
2624
2625 2011-07-25  Roman Zhuykov  <zhroma@ispras.ru>
2626
2627         * tree-flow.h (tree_ssa_loop_version): Remove unused declaration.
2628
2629 2011-07-25  Richard Guenther  <rguenther@suse.de>
2630
2631         PR tree-optimization/49715
2632         * tree-vrp.c: Include expr.h and optabs.h.
2633         (range_fits_type_): New function.
2634         (simplify_float_conversion_using_ranges): Likewise.
2635         (simplify_stmt_using_ranges): Call it.
2636         * Makefile.in (tree-vrp.o): Add $(EXPR_H) and $(OPTABS_H) dependencies.
2637         * optabs.c (can_float_p): Export.
2638         * optabs.h (can_float_p): Declare.
2639
2640 2011-07-25  Richard Guenther  <rguenther@suse.de>
2641
2642         * tree-vrp.c (num_vr_values, values_propagated): New global vars.
2643         (get_value_range): For out-of-range SSA names or names created
2644         after propagation return a read-only varying range.
2645         (dump_all_value_ranges): Adjust.
2646         (vrp_initialize): Likewise.
2647         (vrp_finalize): Likewise.
2648
2649 2011-07-24  Richard Henderson  <rth@redhat.com>
2650
2651         PR debug/49831
2652         * dwarf2cfi.c (connect_traces): Allow unvisited traces.  Skip
2653         them entirely.
2654
2655 2011-07-24  Richard Henderson  <rth@redhat.com>
2656
2657         PR debug/49825
2658         * dwarf2cfi.c (dwarf2out_stack_adjust): Move A_O_A test earlier.
2659         (dwarf2out_notice_stack_adjust): Use args_size from call_insn.
2660
2661 2011-07-24  Richard Henderson  <rth@redhat.com>
2662
2663         PR debug/49827
2664         * dwarf2cfi.c (create_trace_edges): Handle sequences properly.
2665
2666 2011-07-24  Richard Henderson  <rth@redhat.com>
2667
2668         * dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter.
2669         Zero args_size for abnormal edges.  Adjust all callers.
2670
2671 2011-07-24  Richard Henderson  <rth@redhat.com>
2672
2673         PR debug/49825
2674         * dwarf2cfi.c (cfi_row_equal_p): Don't compare args_size.
2675
2676 2011-07-24  H.J. Lu  <hongjiu.lu@intel.com>
2677
2678         PR bootstrap/49835
2679         * collect2.c (demangle_flag): Removed.
2680
2681 2011-07-24  Sandra Loosemore  <sandra@codesourcery.com>
2682
2683         * configure.ac (demangler_in_ld): Default to yes.
2684         * configure: Regenerated.
2685         * collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't
2686         mess with COLLECT_NO_DEMANGLE, and just pass --demangle and
2687         --no-demangle options straight through to ld.  When
2688         HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a
2689         way that has the intended effect on Windows.
2690
2691 2011-07-23  Richard Henderson  <rth@redhat.com>
2692
2693         * dwarf2cfi.c: Include basic-block.h.
2694         (dw_label_info): Remove.
2695         (trace_work_list, trace_index): New.
2696         (remember_row, emit_cfa_remember): Remove.
2697         (dw_trace_info_hash, dw_trace_info_eq): New.
2698         (get_trace_index, get_trace_info): New.
2699         (save_point_p): New.
2700         (free_cfi_row): Remove.
2701         (add_cfi): Do not emit DW_CFA_remember_state.
2702         (cfa_row_equal_p): New.
2703         (barrier_args_size): Remove.
2704         (compute_barrier_args_size_1, compute_barrier_args_size): Remove.
2705         (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size.
2706         (maybe_record_trace_start, create_trace_edges, scan_trace): New.
2707         (dwarf2out_cfi_begin_epilogue): Remove.
2708         (dwarf2out_frame_debug_restore_state): Remove.
2709         (connect_traces, create_pseudo_cfg): New.
2710         (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces.
2711         * Makefile.in (dwarf2cfi.o): Update.
2712
2713 2011-07-23  Richard Henderson  <rth@redhat.com>
2714
2715         * dwarf2cfi.c (dw_trace_info): New.
2716         (dw_label_info): New.
2717         (cie_return_save): New.
2718         (cur_trace): New.
2719         (queued_args_size): Rename from args_size.  Update all users.
2720         (cfa_store, cfa_temp, regs_saved_in_regs): Remove.
2721         (def_cfa_1): Use cur_trace instead of cfa_*.
2722         (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise.
2723         (clobbers_queued_reg_save, reg_saved_in): Likewise.
2724         (dwarf2out_frame_debug_expr): Likewise.
2725         (create_cie_data): Split out from ...
2726         (execute_dwarf2_frame): ... here.  Initialize cur_trace.
2727
2728 2011-07-23  Richard Henderson  <rth@redhat.com>
2729
2730         * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc.
2731         Update all users to match.
2732         (execute_dwarf2_frame): Free reg_saved_in_data.
2733
2734 2011-07-23  Richard Henderson  <rth@redhat.com>
2735
2736         * dwarf2cfi.c (queued_reg_save): Reorder for packing.  Don't GTY.
2737         (queued_reg_saves): Don't GTY.  Change to a VEC.
2738         (queue_reg_save): Update to match.
2739         (dwarf2out_flush_queued_reg_saves): Likewise.
2740         (clobbers_queued_reg_save): Likewise.
2741         (reg_saved_in): Likewise.
2742         (execute_dwarf2_frame): Free queued_reg_saves.
2743
2744 2011-07-23  Richard Henderson  <rth@redhat.com>
2745
2746         * dwarf2cfi.c (dw_cfi_row_ref): Remove.  Update all users.
2747
2748 2011-07-23  Richard Henderson  <rth@redhat.com>
2749
2750         * dwarf2cfi.c (add_cfi_args_size): Split out from...
2751         (dwarf2out_args_size): ... here.
2752         (add_cfi_restore): Split out from ...
2753         (dwarf2out_frame_debug_cfa_restore): ... here.
2754         (def_cfa_0): Split out from ...
2755         (def_cfa_1): ... here.
2756         (cfi_oprnd_equal_p, cfi_equal_p): New.
2757         (change_cfi_row): New.
2758         (add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index.
2759         (create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note.
2760         (output_cfis): Remove.
2761         * dwarf2out.c (output_fde): Simplify output_cfi loop.
2762         (dwarf2out_switch_text_section): Don't call output_cfis.
2763         (dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New.
2764         * dwarf2out.h: Update decls.
2765         (enum dw_val_class): Add dw_val_class_none.
2766
2767 2011-07-23  Richard Henderson  <rth@redhat.com>
2768
2769         * dwarf2cfi.c (update_row_reg_save): New.
2770         (dwarf2out_frame_debug_cfa_expression): Use it.
2771         (dwarf2out_frame_debug_cfa_restore): Likewise.
2772         (reg_save): Likewise.  Do not emit DW_CFA_same_value.
2773
2774 2011-07-23  Richard Henderson  <rth@redhat.com>
2775
2776         * dwarf2cfi.c (add_cfi_insn): Rename from cfi_insn.  Update all users.
2777
2778 2011-07-23  Richard Henderson  <rth@redhat.com>
2779
2780         * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New.
2781         (cie_cfi_row): New.
2782         (new_cfi_row, copy_cfi_row, free_cfi_row): New.
2783         (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove.
2784         (cur_row, remember_row): New.
2785         (def_cfa_1): Use cur_row instead of the old_* variables.
2786         (dwarf2out_frame_debug_restore_state): Similarly.
2787         (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise.
2788         (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa.
2789         (dwarf2out_frame_debug_adjust_cfa): Likewise.
2790         (dwarf2out_frame_debug_cfa_offset): Likewise.
2791         (dwarf2out_frame_debug_expr): Likewise.
2792         (execute_dwarf2_frame): Set up cur_row.
2793         * dwarf2out.h (struct cfa_loc): Mark for GTY.
2794
2795 2011-07-23  Richard Henderson  <rth@redhat.com>
2796
2797         * basic-block.h (EDGE_PRESERVE): New.
2798         (EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it.
2799         * bb-reorder.c: Include except.h.
2800         (fix_up_crossing_landing_pad): New.
2801         (find_rarely_executed_basic_blocks_and_crossing_edges): Place
2802         landing pads in the right partition.  Duplicate as necessary.
2803         (partition_hot_cold_basic_blocks): Fix up DF info after
2804         duplicating landing pads.
2805         * cfg.c (dump_edge_info): Add crossing and preserve to bitnames.
2806         * cfgrtl.c (rtl_verify_flow_info_1): Validate that EDGE_CROSSING
2807         is set properly.  Validate that EH edges are not CROSSING.
2808         * except.c (expand_dw2_landing_pad_for_region): Split out from ...
2809         (dw2_build_landing_pads): ... here.
2810         (convert_to_eh_region_ranges): Remove code to fixup crossing
2811         landing pads.
2812         * except.h (expand_dw2_landing_pad_for_region): Declare.
2813         * tree-cfg.c (gimple_can_merge_blocks_p): Don't merge PRESERVE edges.
2814
2815 2011-07-23  Richard Earnshaw  <rearnsha@arm.com>
2816
2817         PR target/49816
2818         * arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure.
2819
2820 2011-07-22  Jason Merrill  <jason@redhat.com>
2821
2822         * doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing.
2823
2824 2011-07-22  Richard Henderson  <rth@redhat.com>
2825
2826         * bb-reorder.c (gate_handle_partition_blocks): Honor optimize.
2827
2828 2011-07-22  Richard Henderson  <rth@redhat.com>
2829
2830         * jump.c (maybe_propagate_label_ref): Split out of...
2831         (mark_all_labels): ... here.  Do not attempt label_ref
2832         propagation while in cfglayout mode.
2833
2834 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
2835
2836         * dwarf2out.c (struct macinfo_struct): Change code to unsigned char.
2837         (DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define.
2838         (dwarf_attr_name): Handle DW_AT_GNU_macros.
2839         (dwarf2out_define): If the vector is empty and
2840         lineno is 0, emit a dummy entry first.
2841         (dwarf2out_undef): Likewise.  Remove redundant semicolon.
2842         (htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op,
2843         optimize_macinfo_range): New functions.
2844         (output_macinfo): Use them.  If !dwarf_strict and .debug_str is
2845         mergeable, optimize longer strings using
2846         DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP,
2847         optimize longer sequences of define/undef ops from headers
2848         using DW_MACRO_GNU_transparent_include.  For !dwarf_strict
2849         emit a section headers.
2850         (dwarf2out_init): For !dwarf_strict set debug_macinfo_section
2851         and macinfo_section_label to DEBUG_MACRO_SECTION
2852         resp. DEBUG_MACRO_SECTION_LABEL.
2853         (dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros
2854         instead of DW_AT_macro_info.
2855
2856         PR other/32998
2857         * common.opt (grecord-gcc-switches, gno-record-gcc-switches): New
2858         options.
2859         * dwarf2out.c: Include opts.h.
2860         (dchar_p): New typedef.  Define heap VEC for it.
2861         (producer_string): New variable.
2862         (gen_producer_string): New function.
2863         (gen_compile_unit_die): Use it.
2864         (dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer if needed.
2865         * Makefile.in (dwarf2out.o): Depend on $(OPTS_H).
2866         * doc/invoke.texi: Document -grecord-gcc-switches and
2867         -gno-record-gcc-switches, add a -grecord-gcc-switches reference
2868         to -frecord-gcc-switches description.
2869
2870 2011-07-22  Jason Merrill  <jason@redhat.com>
2871
2872         PR c++/30112
2873         * c-decl.c (c_linkage_bindings): Define.
2874
2875 2011-07-22  Eric Botcazou  <ebotcazou@adacore.com>
2876
2877         PR debug/49815
2878         * var-tracking.c (vt_finalize): Always free windowed_parm_regs.
2879
2880 2011-07-22  H.J. Lu  <hongjiu.lu@intel.com>
2881
2882         * config/i386/i386.c (ix86_option_override_internal): Disallow
2883         MS ABI in x32 mode.
2884         (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi
2885         only for TARGET_LP64.
2886         (ix86_handle_abi_attribute): Check TARGET_LP64 instead of TARGET_64BIT.
2887
2888 2011-07-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
2889
2890         * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to
2891         avoid warnings when GCC is built with a C++ compiler.
2892
2893 2011-07-22  Martin Jambor  <mjambor@suse.cz>
2894
2895         PR lto/49796
2896         * cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false
2897         if decl node is in another partition, call cgraph_get_node only once.
2898
2899 2011-07-22  Uros Bizjak  <ubizjak@gmail.com>
2900
2901         * config.gcc (x86_64-*-linux*): Set
2902         default_gnu_indirect_function to yes.
2903
2904 2011-07-22  Richard Guenther  <rguenther@suse.de>
2905
2906         PR tree-optimization/45819
2907         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
2908         preserve volatile and notrap flags.
2909
2910 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2911             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2912
2913         PR bootstrap/49794
2914         * configure.ac: Test AM_ICONV with CXX.
2915         * configure: Regenerate.
2916         * config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST.
2917
2918 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2919
2920         PR bootstrap/49797
2921         * graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing.
2922         (set_cloog_options): Use it.
2923
2924 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
2925
2926         PR c++/49756
2927         * gcc.c (main): Call stack_limit_increase (64MB).
2928         * toplev.c (toplev_main): Likewise.
2929
2930 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
2931
2932         * config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg
2933         instead of force_reg.
2934
2935 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
2936
2937         * config/i386/i386.c (ix86_expand_move): Convert to Pmode if
2938         needed and use force_reg after convert.
2939         (ix86_expand_call): Likewise.
2940         (ix86_expand_special_args_builtin): Likewise.
2941         (ix86_expand_builtin): Likewise.
2942
2943 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
2944
2945         PR middle-end/47654
2946         PR middle-end/49649
2947         * graphite-clast-to-gimple.c (type_for_clast_term): Pass v1 and v2
2948         in parameter.  Initialize v1 and v2 based on the values returned
2949         by clast_name_to_lb_ub.
2950         (type_for_clast_red): Pass v1 and v2 in parameter, and set their
2951         values.
2952         (type_for_clast_bin): Same.
2953         (type_for_clast_expr): Same.
2954         (type_for_clast_eq): Update calls to type_for_clast_expr.
2955         (type_for_clast_for): Same.
2956         (build_iv_mapping): Same.
2957         * graphite-ppl.h (value_min): New.
2958
2959 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
2960
2961         * graphite-clast-to-gimple.c (type_for_interval): Generate signed
2962         types whenever possible.
2963
2964 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
2965
2966         * graphite-clast-to-gimple.c (struct clast_name_index): Add lb
2967         and ub fields.
2968         (new_clast_name_index): Add lb and ub parameters.
2969         (free_clast_name_index): New.
2970         (clast_name_to_lb_ub): New.
2971         (save_clast_name_index): Add lb and ub parameters.
2972         (compute_bounds_for_param): New.
2973         (type_for_level): Removed.
2974         (type_for_clast_for): Removed level parameter.  Do not call
2975         type_for_level.
2976         (graphite_create_new_loop): Store the lb and ub for the clast_name
2977         of the iterator of the loop that has been generated.
2978         (graphite_create_new_loop_guard): Remove parameter level.
2979         (create_params_index): Store the lb and ub of each parameter.
2980         (gloog): Use free_clast_name_index.  Pass to create_params_index
2981         the current scop.
2982
2983 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
2984
2985         * graphite-clast-to-gimple.c (max_signed_precision_type): Removed.
2986         (max_precision_type): Inline max_signed_precision_type.
2987         (type_for_clast_red): Use max_precision_type.
2988         (type_for_clast_bin): Same.
2989         (type_for_clast_for): Same.
2990
2991 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
2992
2993         * graphite-clast-to-gimple.c (gcc_type_for_interval): Renamed
2994         type_for_interval.
2995         (gcc_type_for_value): Renamed type_for_value.
2996         (gcc_type_for_clast_term): Renamed type_for_clast_term.
2997         (gcc_type_for_clast_expr): Renamed type_for_clast_expr.
2998         (gcc_type_for_clast_red): Renamed type_for_clast_red.
2999         (gcc_type_for_clast_bin): Renamed type_for_clast_bin.
3000         (gcc_type_for_clast_eq): Renamed type_for_clast_eq.
3001         (graphite_translate_clast_equation): Update calls.
3002         (compute_type_for_level): Renamed type_for_level.
3003         (gcc_type_for_iv_of_clast_loop): Renamed type_for_clast_for.
3004         (build_iv_mapping): Update calls.
3005         (graphite_create_new_loop_guard): Same.
3006
3007 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
3008
3009         * graphite-clast-to-gimple.c (clast_get_body_of_loop): Add fixme
3010         comment.
3011
3012 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
3013
3014         * graphite-clast-to-gimple.c (struct ivs_params): New.
3015         (clast_name_to_gcc): Use ivs_params to pass around parameters.
3016         (clast_to_gcc_expression): Same.
3017         (clast_to_gcc_expression_red): Same.
3018         (gcc_type_for_clast_term): Same.
3019         (gcc_type_for_clast_expr): Same.
3020         (gcc_type_for_clast_red): Same.
3021         (gcc_type_for_clast_bin): Same.
3022         (gcc_type_for_clast_eq): Same.
3023         (graphite_translate_clast_equation): Same.
3024         (graphite_create_guard_cond_expr): Same.
3025         (graphite_create_new_guard): Same.
3026         (graphite_create_new_loop): Same.
3027         (build_iv_mapping): Same.
3028         (translate_clast_user): Same.
3029         (graphite_create_new_loop_guard): Same.
3030         (translate_clast): Same.
3031         (translate_clast_for_loop): Same.
3032         (translate_clast_for): Same.
3033         (translate_clast_guard): Same.
3034         (initialize_cloog_names): Fix typo.
3035         (gloog): Initialize an ivs_params struct, pass it to translate_clast.
3036
3037 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
3038
3039         * graphite-clast-to-gimple.c (struct clast_name_index): Add level.
3040         (new_clast_name_index): Add level parameter.
3041         (clast_name_to_level): New.
3042         (save_clast_name_index): Add level parameter.
3043         (newivs_to_depth_to_newiv): Removed.
3044         (clast_name_to_gcc): Inlined newivs_to_depth_to_newiv.
3045         (graphite_create_new_loop): Add level parameter.  Pass level to
3046         save_clast_name_index.
3047         (translate_clast_for_loop): Pass level to graphite_create_new_loop.
3048         (create_params_index): Pass level to save_clast_name_index.
3049
3050 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
3051
3052         * graphite-clast-to-gimple.c (graphite_create_new_loop): Do not
3053         recompute type, lb, and ub.  Get them from...
3054         (graphite_create_new_loop_guard): ...here.  Pass in parameter
3055         pointers to type, lb, and ub.
3056         (translate_clast_for_loop): Update function calls.
3057         (translate_clast_for): Same.
3058
3059 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
3060
3061         * graphite-clast-to-gimple.c (compute_bounds_for_level): Call
3062         psct_dynamic_dim.
3063         (translate_clast_for_loop): Pass loop level to dependency_in_loop_p.
3064         (gcc_type_for_iv_of_clast_loop): Update use of level.
3065         (gloog): Start counting nesting level from 0.
3066         * graphite-clast-to-gimple.h (get_scattering_level): Removed.
3067         * graphite-dependences.c (graphite_carried_dependence_level_k): Call
3068         psct_dynamic_dim on level.
3069
3070 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
3071
3072         * config/i386/i386.c (ix86_legitimize_address): Convert to
3073         Pmode if needed.
3074
3075 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
3076
3077         * config/i386/i386.c (function_value_64): Always return pointers
3078         in Pmode.
3079         (ix86_promote_function_mode): New.
3080         (TARGET_PROMOTE_FUNCTION_MODE): Likewise.
3081
3082 2011-07-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3083
3084         PR tree-optimization/49749
3085         * tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and
3086         remove no-longer-used maxrank variable.
3087
3088 2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
3089
3090         * config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs.
3091
3092 2011-07-21  Jason Merrill  <jason@redhat.com>
3093
3094         * system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New.
3095         * recog.h (struct insn_data_d): Check it instead of
3096         HAVE_DESIGNATED_INITIALIZERS.
3097         * genoutput.c (output_insn_data): Likewise.
3098
3099 2011-07-21  Richard Guenther  <rguenther@suse.de>
3100
3101         PR tree-optimization/49770
3102         * tree-ssa-sccvn.c (valueize_refs_1): Return whether we
3103         valueized any operand.  Renamed from ...
3104         (valueize_refs): ... this.  New wrapper around valueize_refs_1.
3105         (valueize_shared_reference_ops_from_ref): Return whether we
3106         valueized any operand.
3107         (vn_reference_lookup): Only when we valueized any operand
3108         use the valueized reference for alias analysis.  Do not preserve
3109         the original reference tree in this case.
3110
3111 2011-07-21  Uros Bizjak  <ubizjak@gmail.com>
3112
3113         * config/i386/i386.c (ix86_decompose_address): Reject all but
3114         register operands and subregs of DImode hard registers in index.
3115
3116 2011-07-21  Kai Tietz  <ktietz@redhat.com>
3117
3118         * fold-const.c (fold_unary_loc): Preserve indirect
3119         comparison cast to none-boolean type.
3120         * tree-ssa.c (useless_type_conversion_p): Preserve cast
3121         from/to boolean-type.
3122         * gimplify.c (gimple_boolify): Handle boolification of comparisons.
3123         (gimplify_expr): Boolifiy non aggregate-typed comparisons.
3124         * tree-cfg.c (verify_gimple_comparison): Check result
3125         type of comparison expression.
3126         * tree-ssa-forwprop.c (forward_propagate_comparison): Adjust test
3127         of condition result and disallow type-cast sinking into comparison.
3128
3129 2011-07-21  Richard Guenther  <rguenther@suse.de>
3130
3131         * tree-ssa-forwprop.c (combine_conversions): Return whether
3132         we have to run cfg-cleanup.  Properly remove dead stmts.
3133         (ssa_forward_propagate_and_combine): Adjust.
3134
3135 2011-07-21  Richard Sandiford  <richard.sandiford@linaro.org>
3136
3137         * regcprop.c (maybe_mode_change): Check HARD_REGNO_MODE_OK.
3138
3139 2011-07-21  Kai Tietz  <ktietz@redhat.com>
3140
3141         * tree-ssa-propagate.c (substitute_and_fold): Use
3142         do_dce flag to deside, if BB's statements are scanned
3143         in last to first, or first to last order.
3144
3145 2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
3146
3147         * config/avr/avr.c (avr_rtx_costs): Set cost of CONST, LABEL_REF to 0.
3148
3149 2011-07-20  H.J. Lu  <hongjiu.lu@intel.com>
3150             Uros Bizjak  <ubizjak@gmail.com>
3151             Richard Henderson  <rth@redhat.com>
3152
3153         * config/i386/constraints.md (w): New.
3154
3155         * config/i386/i386.c (ix86_output_addr_vec_elt): Check
3156         TARGET_LP64 instead of TARGET_64BIT for ASM_QUAD.
3157
3158         * config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64
3159         instead of TARGET_64BIT.
3160
3161         * config/i386/i386.md (indirect_jump): Replace
3162         nonimmediate_operand with indirect_branch_operand.
3163         (*indirect_jump): Likewise.  Replace constraint "m" with "w".
3164         (tablejump): Replace nonimmediate_operand with indirect_branch_operand.
3165         Convert operand 0 to Pmode for x32 if not PIC.
3166         (*tablejump_1): Replace nonimmediate_operand with
3167         indirect_branch_operand.  Replace constraint "m" with "w".
3168         (*call_vzeroupper): Replace constraint "m" with "w".
3169         (*call): Likewise.
3170         (*call_rex64_ms_sysv_vzeroupper): Likewise.
3171         (*call_rex64_ms_sysv): Likewise.
3172         (*call_value_vzeroupper): Likewise.
3173         (*call_value): Likewise.
3174         (*call_value_rex64_ms_sysv_vzeroupper): Likewise.
3175         (*call_value_rex64_ms_sysv): Likewise.
3176         (set_got_offset_rex64): Check TARGET_LP64 instead of TARGET_64BIT.
3177
3178         * config/i386/predicates.md (indirect_branch_operand): New.
3179         (call_insn_operand): Support x32.
3180
3181 2011-07-20  Michael Eager  <eager@eagercon.com>
3182
3183         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Default to 12.
3184
3185 2011-07-20  Richard Henderson  <rth@redhat.com>
3186
3187         * cfg.c (dump_bb_info): Dump basic_block->flags.
3188         * cfgrtl.c (print_rtl_with_bb): Use dump_bb_info.
3189
3190 2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
3191
3192         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
3193         of DImode hard registers in index.
3194         (ix86_legitimate_address_p): Allow subregs of base and index to span
3195         more than a word.  Assert that subregs of base and index satisfy
3196         register_no_elim_operand predicates.  Reject addresses where
3197         base and index have different modes.
3198
3199 2011-07-20  Robert Millan  <rmh@gnu.org>
3200
3201         * config.gcc (mips*-*-linux*): Remove redundant tm_file entry.
3202
3203 2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3204
3205         * bb-reorder.c (fix_crossing_conditional_branches): Fix crash by
3206         removing now-unnecessary assignment.
3207
3208 2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3209
3210         * emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting
3211         memory address space to the type's address space.
3212
3213 2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
3214
3215         PR target/36467
3216         PR target/49687
3217         * config/avr/avr.md (mulhi3): Use register_or_s9_operand for operand2
3218         and expand appropriately if there is a CONST_INT in operand2.
3219         (usmulqihi3): New insn.
3220         (*sumulqihi3): New insn.
3221         (*osmulqihi3): New insn.
3222         (*oumulqihi3): New insn.
3223         (*muluqihi3.uconst): New insn_and_split.
3224         (*muluqihi3.sconst): New insn_and_split.
3225         (*mulsqihi3.sconst): New insn_and_split.
3226         (*mulsqihi3.uconst): New insn_and_split.
3227         (*mulsqihi3.oconst): New insn_and_split.
3228         (*ashifthi3.signx.const): New insn_and_split.
3229         (*ashifthi3.signx.const7): New insn_and_split.
3230         (*ashifthi3.zerox.const): New insn_and_split.
3231         (mulsqihi3): New insn.
3232         (muluqihi3): New insn.
3233         (muloqihi3): New insn.
3234         * config/avr/predicates.md (const_2_to_7_operand): New.
3235         (const_2_to_6_operand): New.
3236         (u8_operand): New.
3237         (s8_operand): New.
3238         (o8_operand): New.
3239         (s9_operand): New.
3240         (register_or_s9_operand): New.
3241
3242 2011-07-20  Kai Tietz  <ktietz@redhat.com>
3243
3244         * builtins.c (fold_builtin_expect): See through the cast
3245         from truthvalue_type_node to long.
3246
3247 2011-07-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
3248
3249         * config/rs6000/vsx.md (vsx_fma*): Use 4 argument fma instructions
3250         where we can use them from the standard and altivec instruction
3251         sets, instead of always using the 3 operand VSX forms that require
3252         the destination to overlap one of the inputs.
3253         (vsx_fms*): Ditto.
3254         (vsx_fnma*): Ditto.
3255         (vsx_fnms*): Ditto.
3256
3257         * config/rs6000/rs6000.md (fmadf4_fpr): Set fp_type fp_maddsub_d
3258         for DF types.
3259         (fmsdf4_fpr): Ditto.
3260         (nfmadf4_fpr): Ditto.
3261         (nfmsdf4_fpr): Ditto.
3262
3263 2011-07-20  Sandra Loosemore  <sandra@codesourcery.com>
3264
3265         * genrecog.c (make_insn_sequence): Correct position numbering
3266         when filtering out match_scratch and match_dup.
3267
3268 2011-07-20  Richard Guenther  <rguenther@suse.de>
3269
3270         * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
3271         against already removed statements.
3272         (forward_propagate_into_comparison): Remove dead defining stmts.
3273         (forward_propagate_into_gimple_cond): Likewise.
3274         (forward_propagate_into_cond): Simplify.
3275         (ssa_forward_propagate_and_combine): Handle changed cfg from
3276         forward_propagate_into_comparison.
3277         * tree-ssa-phiopt.c (conditional_replacement): Use proper
3278         locations for newly built statements.
3279
3280 2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
3281
3282         * config/avr/avr.c (avr_rtx_costs): Set cost of SYMBOL_REF to 0.
3283
3284 2011-07-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3285
3286         * config/s390/s390.c (s390_class_max_nregs): Fix return type.
3287         * config/s390/s390-protos.h (s390_class_max_nregs): Likewise.
3288
3289 2011-07-20  Richard Guenther  <rguenther@suse.de>
3290
3291         PR middle-end/18908
3292         * tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision.
3293         * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus
3294         ADDR_EXPR folding.  Canonicalize X ^ ~0 as ~X.
3295
3296 2011-07-20  Vladimir Makarov  <vmakarov@redhat.com>
3297
3298         * config/frv/frv.c (frv_register_move_cost): Define explicitly
3299         costs for subclasses of GR_REGS.
3300
3301 2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
3302
3303         PR target/49780
3304         * config/i386/predicates.md (no_seg_addres_operand): No more special.
3305         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
3306         of DImode hard registers in base.
3307         (ix86_legitimate_address_p): Allow SImode and DImode base and index
3308         registers.
3309
3310 2011-07-20  Richard Guenther  <rguenther@suse.de>
3311
3312         * tree-ssa-structalias.c (new_var_info): Allocate oldsolution lazily.
3313         (unify_nodes): Deal with that.
3314         (solve_graph): Likewise.
3315
3316 2011-07-20  Chung-Lin Tang  <cltang@codesourcery.com>
3317
3318         * config/arm/arm.c (arm_canonicalize_comparison): Add case to
3319         canonicalize left operand from ZERO_EXTEND to AND.
3320
3321 2011-07-20  Anatoly Sokolov  <aesok@post.ru>
3322
3323         * target.def (class_max_nregs): New hook.
3324         * doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document.
3325         * doc/tm.texi: Regenerate.
3326         * targhooks.c (default_class_max_nregs): New function.
3327         * targhooks.h (default_class_max_nregs): Declare.
3328         * ira.h (target_ira): Change type x_ira_reg_class_max_nregs and
3329         x_ira_reg_class_min_nregs arrays to unsigned char.
3330         * ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target
3331         hook instead of CLASS_MAX_NREGS macro.
3332         * reginfo.c (restore_register_info): Ditto.
3333         * ira-conflicts.c (process_regs_for_copy): Use
3334         ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
3335         Change type rclass and aclass vars to reg_class_t.
3336         * ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs
3337         array instead of CLASS_MAX_NREGS macro. Change type rclass var to
3338         reg_class_t.
3339         * reload.c (combine_reloads, find_reloads, find_reloads_address_1):
3340         Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
3341
3342         * config/i386/i386.h (CLASS_MAX_NREGS): Remove.
3343         * config/i386/i386.c (ix86_class_max_nregs): New function.
3344         (ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook
3345         instead of CLASS_MAX_NREGS macro.
3346         (TARGET_CLASS_MAX_NREGS): Define.
3347         * config/avr/avr.h (CLASS_MAX_NREGS): Remove.
3348         * config/avr/avr-protos.h (class_max_nregs): Remove declaration.
3349         * config/avr/avr.c (class_max_nregs): Remove function.
3350         * config/alpha/alpha.h (CLASS_MAX_NREGS): Remove.
3351         * config/spu/spu.h (CLASS_MAX_NREGS): Remove.
3352         * config/mep/mep.h (CLASS_MAX_NREGS): Remove.
3353         * config/m32r/m32r.h (CLASS_MAX_NREGS): Remove.
3354         * config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove.
3355         * config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove.
3356         * config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove.
3357         * config/lm32/lm32.h (CLASS_MAX_NREGS): Remove.
3358         * config/moxie/moxie.h (CLASS_MAX_NREGS): Remove.
3359         * config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove.
3360         * config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove.
3361         * config/score/score.h (CLASS_MAX_NREGS): Remove.
3362         * config/vax/vax.h (CLASS_MAX_NREGS): Remove.
3363         * config/h8300/h8300.h (CLASS_MAX_NREGS): Remove.
3364         * config/v850/v850.h (CLASS_MAX_NREGS): Remove.
3365
3366 2011-07-19  Eric Botcazou  <ebotcazou@adacore.com>
3367
3368         * cif-code.def (OVERWRITABLE): Fix typo and move around.
3369         (TARGET_OPTIMIZATION_MISMATCH): Delete.
3370         (EH_PERSONALITY): Fix typo.
3371         (NON_CALL_EXCEPTIONS): Fix message.
3372         (OPTIMIZATION_MISMATCH): Adjust message.
3373         * ipa-inline.c (can_inline_edge_p): Use CIF_OPTIMIZATION_MISMATCH.
3374
3375 2011-07-19  Ian Lance Taylor  <iant@google.com>
3376
3377         * doc/install.texi (Configuration): Document
3378         --enable-build-poststage1-with-cxx.
3379
3380 2011-07-19  Robert Millan  <rmh@gnu.org>
3381
3382         * config/mips/gnu-user.h: Copy from linux.h.  Update comments.
3383         (GLIBC_DYNAMIC_LINKER): Remove.
3384
3385         * config/mips/gnu-user64.h: Copy from linux64.h.  Update comments.
3386         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
3387         (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
3388         (BIONIC_DYNAMIC_LINKERN32, GNU_USER_DYNAMIC_LINKERN32): Remove.
3389         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32,
3390         GNU_USER_DYNAMIC_LINKER64 and GNU_USER_LINK_EMULATIONN32.
3391
3392         * config/mips/linux.h: Remove everything except for ...
3393         (GLIBC_DYNAMIC_LINKER): ... this macro.
3394
3395         * config/mips/linux64.h: Remove everything except for ...
3396         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
3397         (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
3398         (BIONIC_DYNAMIC_LINKERN32): ... these macros.
3399         (GNU_USER_LINK_EMULATION32, GNU_USER_LINK_EMULATION64)
3400         (GNU_USER_LINK_EMULATIONN32): New macros.
3401
3402         * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux* | mips-*-linux*):
3403         Use the new headers.
3404
3405 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
3406
3407         * rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs.
3408         Add offset_known_p and size_known_p fields.
3409         (MEM_OFFSET_KNOWN_P): Update accordingly.
3410         (MEM_OFFSET, MEM_SIZE_KNOWN_P, MEM_SIZE): Likewise.
3411         * emit-rtl.c (mem_attrs_htab_hash): Update after mem_attrs changes.
3412         (mem_attrs_eq_p, set_mem_attributes_minus_bitpos, set_mem_offset)
3413         (clear_mem_offset, set_mem_size, clear_mem_size, change_address)
3414         (adjust_address_1, widen_memory_access, set_mem_attrs_for_spill)
3415         (init_emit_regs): Likewise.
3416
3417 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
3418
3419         * doc/rtl.texi (MEM_OFFSET_KNOWN_P): Document.
3420         (MEM_OFFSET): Change from returning an rtx to returning a
3421         HOST_WIDE_INT.
3422         * rtl.h (MEM_OFFSET_KNOWN_P): New macro.
3423         (MEM_OFFSET): Return a HOST_WIDE_INT rather than an rtx.
3424         * emit-rtl.h (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
3425         (clear_mem_offset): Declare.
3426         * alias.c (ao_ref_from_mem): Adjust uses of MEM_OFFSET, using
3427         MEM_OFFSET_KNOWN_P to test whether the offset is known, and
3428         MEM_OFFSET to get a HOST_WIDE_INT offset.
3429         (nonoverlapping_memrefs_p): Likewise.  Adjust calls to...
3430         (adjust_offset_for_component_ref): Take a bool "known_p"
3431         parameter and a HOST_WIDE_INT "offset" parameter.
3432         * builtins.c (get_memory_rtx): As for ao_ref_from_mem.
3433         Adjust calls to set_mem_offset, passing a HOST_WIDE_INT rather
3434         than an rtx.  Use clear_mem_offset to clear the offset.
3435         * cfgcleanup.c (merge_memattrs): Likewise.
3436         * dwarf2out.c (tls_mem_loc_descriptor): Likewise.
3437         * function.c (assign_parm_find_stack_rtl): Likewise.
3438         (assign_parm_setup_stack): Likewise.
3439         * print-rtl.c (print_rtx): Likewise.
3440         * reload.c (find_reloads_subreg_address): Likewise.
3441         * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
3442         * var-tracking.c (INT_MEM_OFFSET): Likewise.
3443         * emit-rtl.c (set_reg_attrs_from_value): Likewise.
3444         (get_mem_align_offset): Likewise.
3445         (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
3446         (clear_mem_offset): New function.
3447         * config/mips/mips.c (r10k_safe_mem_expr_p): Take a HOST_WIDE_INT
3448         offset rather than an rtx.  Assume both the expressio and offset
3449         are available.
3450         (r10k_needs_protection_p_1): Update accordingly, checking the
3451         expression and offset availability here instead.
3452
3453 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
3454
3455         * doc/rtl.texi (MEM_SIZE_KNOWN_P): Document.
3456         (MEM_SIZE): Change from returning an rtx to returning a HOST_WIDE_INT.
3457         * rtl.h (MEM_SIZE_KNOWN_P): New macro.
3458         (MEM_SIZE): Return a HOST_WIDE_INT rather than an rtx.
3459         * emit-rtl.h (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
3460         (clear_mem_size): Declare.
3461         * emit-rtl.c (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
3462         (clear_mem_size): New function.
3463         * alias.c (ao_ref_from_mem): Adjust uses of MEM_SIZE, using
3464         MEM_SIZE_KNOWN_P to test whether the size is known, and MEM_SIZE
3465         to get a HOST_WIDE_INT size.  Adjust calls to set_mem_size,
3466         passing a HOST_WIDE_INT rather than an rtx.  Use clear_mem_size
3467         to clear the size.
3468         (nonoverlapping_memrefs_p): Likewise.
3469         * builtins.c (get_memory_rtx, expand_builtin_memcmp): Likewise.
3470         (expand_builtin_init_trampoline): Likewise.
3471         * calls.c (compute_argument_addresses): Likewise.
3472         * cfgcleanup.c (merge_memattrs): Likewise.
3473         * dce.c (find_call_stack_args): Likewise.
3474         * dse.c (record_store, scan_insn): Likewise.
3475         * dwarf2out.c (dw_sra_loc_expr): Likewise.
3476         * expr.c (emit_block_move_hints): Likewise.
3477         * function.c (assign_parm_find_stack_rtl): Likewise.
3478         * print-rtl.c (print_rtx): Likewise.
3479         * reload.c (find_reloads_subreg_address): Likewise.
3480         * rtlanal.c (may_trap_p_1): Likewise.
3481         * var-tracking.c (track_expr_p): Likewise.
3482         * varasm.c (assemble_trampoline_template): Likewise.
3483         * config/arm/arm.c (arm_print_operand): Likewise.
3484         * config/h8300/h8300.c (h8sx_emit_movmd): Likewise.
3485         * config/i386/i386.c (expand_movmem_via_rep_mov): Likewise.
3486         (expand_setmem_via_rep_stos, expand_constant_movmem_prologue)
3487         (expand_constant_setmem_prologue): Likewise.
3488         * config/mips/mips.c (mips_get_unaligned_mem): Likewise.
3489         * config/rs6000/rs6000.c (expand_block_move): Likewise.
3490         (adjacent_mem_locations): Likewise.
3491         * config/s390/s390.c (s390_expand_setmem): Likewise.
3492         (s390_expand_insv): Likewise.
3493         * config/s390/s390.md (*extzv<mode>, *extv<mode>): Likewise.
3494         (*extendqi<mode>2_short_displ): Likewise.
3495         * config/sh/sh.c (expand_block_move): Likewise.
3496         * config/sh/sh.md (extv, extzv): Likewise.
3497
3498 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
3499
3500         * emit-rtl.c (mem_attrs_eq_p): New function, split out from...
3501         (mem_attrs_htab_eq): ...here.
3502         (find_mem_attrs): Replace with...
3503         (set_mem_attrs): ...this function.  Take a mem_attrs structure
3504         rather than individual fields.
3505         (set_mem_attributes_minus_bitpos, set_mem_alias_set)
3506         (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
3507         (set_mem_size, change_address, adjust_address_1, offset_address)
3508         (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
3509         Update accordingly.
3510
3511 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
3512
3513         * rtl.h (MEM_ALIAS_SET, MEM_EXPR, MEM_OFFSET, MEM_ADDR_SPACE)
3514         (MEM_SIZE, MEM_ALIGN): Redefine in terms of get_mem_attrs.
3515         Provide a dummy definition of MEM_ADDR_SPACE for generators.
3516         (target_rtl): Add x_mode_mem_attrs.
3517         (mode_mem_attrs): New macro.
3518         (get_mem_attrs): New function.
3519         * emit-rtl.c (get_mem_attrs): Rename to...
3520         (find_mem_attrs): ...this.
3521         (set_mem_attributes_minus_bitpos, set_mem_alias_set)
3522         (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
3523         (set_mem_size, change_address, adjust_address_1, offset_address)
3524         (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
3525         Update accordingly.
3526         (init_emit_regs): Initialize mode_mem_attrs.
3527
3528 2011-07-19  Richard Guenther  <rguenther@suse.de>
3529
3530         * tree-ssa-forwprop.c (lookup_logical_inverted_value): Remove
3531         TRUTH_*_EXPR handling.
3532         * tree-ssa-operands.c (get_expr_operands): Likewise.
3533         * tree-ssa-pre.c (fully_constant_expression): Likewise.
3534         * tree-ssa-uninit.c (use_pred_not_overlap_with_undef_path_pre):
3535         Likewise.
3536         (is_and_or_or): Likewise.
3537         (is_norm_cond_subset_of): Likewise.
3538
3539 2011-07-19  Richard Guenther  <rguenther@suse.de>
3540
3541         * tree.h (fold_build_pointer_plus_loc): New helper function.
3542         (fold_build_pointer_plus_hwi_loc): Likewise.
3543         (fold_build_pointer_plus): Define.
3544         (fold_build_pointer_plus_hwi): Likewise.
3545         * builtins.c (std_gimplify_va_arg_expr): Use fold_build_pointer_plus.
3546         (fold_builtin_memory_op): Likewise.
3547         (fold_builtin_stpcpy): Likewise.
3548         (fold_builtin_memchr): Likewise.
3549         (fold_builtin_strstr): Likewise.
3550         (fold_builtin_strchr): Likewise.
3551         (fold_builtin_strrchr): Likewise.
3552         (fold_builtin_strpbrk): Likewise.
3553         (fold_builtin_strcat): Likewise.
3554         (expand_builtin_memory_chk): Likewise.
3555         (fold_builtin_memory_chk): Likewise.
3556         * c-typeck.c (build_unary_op): Likewise.
3557         * cgraphunit.c (thunk_adjust): Likewise.
3558         * fold-const.c (build_range_check): Likewise.
3559         (fold_binary_loc): Likewise.
3560         * omp-low.c (extract_omp_for_data): Likewise.
3561         (expand_omp_for_generic): Likewise.
3562         (expand_omp_for_static_nochunk): Likewise.
3563         (expand_omp_for_static_chunk): Likewise.
3564         * tree-affine.c (add_elt_to_tree): Likewise.
3565         * tree-data-ref.c (split_constant_offset_1): Likewise.
3566         * tree-loop-distribution.c (generate_memset_zero): Likewise.
3567         * tree-mudflap.c (mf_xform_derefs_1): Likewise.
3568         * tree-predcom.c (ref_at_iteration): Likewise.
3569         * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
3570         (add_to_parts): Likewise.
3571         (create_mem_ref): Likewise.
3572         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
3573         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Likewise.
3574         (number_of_iterations_le): Likewise.
3575         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise.
3576         * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
3577         (vect_create_addr_base_for_vector_ref): Likewise.
3578         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Likewise.
3579         (vect_create_cond_for_alias_checks): Likewise.
3580         * tree-vrp.c (extract_range_from_assert): Likewise.
3581         * config/alpha/alpha.c (alpha_va_start): Likewise.
3582         (alpha_gimplify_va_arg_1): Likewise.
3583         * config/i386/i386.c (ix86_va_start): Likewise.
3584         (ix86_gimplify_va_arg): Likewise.
3585         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
3586         * config/mep/mep.c (mep_expand_va_start): Likewise.
3587         (mep_gimplify_va_arg_expr): Likewise.
3588         * config/mips/mips.c (mips_va_start): Likewise.
3589         (mips_gimplify_va_arg_expr): Likewise.
3590         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
3591         * config/rs6000/rs6000.c (rs6000_va_start): Likewise.
3592         (rs6000_gimplify_va_arg): Likewise.
3593         * config/s390/s390.c (s390_va_start): Likewise.
3594         (s390_gimplify_va_arg): Likewise.
3595         * config/sh/sh.c (sh_va_start): Likewise.
3596         (sh_gimplify_va_arg_expr): Likewise.
3597         * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
3598         * config/spu/spu.c (spu_va_start): Likewise.
3599         (spu_gimplify_va_arg_expr): Likewise.
3600         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
3601         Likewise.
3602         (xstormy16_gimplify_va_arg_expr): Likewise.
3603         * config/xtensa/xtensa.c (xtensa_va_start): Likewise.
3604         (xtensa_gimplify_va_arg_expr): Likewise.
3605
3606 2011-07-19  Richard Guenther  <rguenther@suse.de>
3607
3608         * expr.c (expand_expr_real_2): Remove TRUTH_*_EXPR handling.
3609         (expand_expr_real_1): Remove TRUTH_*IF_EXPR and STATEMENT_LIST
3610         handling.
3611
3612         PR middle-end/18908
3613         * expr.c (expand_expr_real_2): Do not unnecessarily truncate the
3614         result of BIT_*_EXPR to bitfield precision.
3615
3616 2011-07-19  Richard Sandiford  <richard.sandiford@linaro.org>
3617
3618         PR tree-optimization/49742
3619         * tree-data-ref.c (get_references_in_stmt): Treat the lhs of a call
3620         as a potential write.
3621
3622 2011-07-19  Richard Guenther  <rguenther@suse.de>
3623
3624         * Makefile.in (tree-ssa-forwprop.o): Depend on gimple-pretty-print.h.
3625         * tree-ssa-forwprop.c: Include gimple-pretty-print.h.
3626         (forward_propagate_comparison): Simplify, remove obsolete code.
3627
3628 2011-07-19  Richard Guenther  <rguenther@suse.de>
3629
3630         * gimplify.c (gimplify_expr): Gimplify TRUTH_NOT_EXPR as
3631         BIT_XOR_EXPR, same as the RTL expander does.
3632         * tree-cfg.c (verify_expr): Disallow TRUTH_NOT_EXPR in the gimple IL.
3633         (verify_gimple_assign_unary): Likewise.
3634         * tree-ssa-propagate.c (valid_gimple_rhs_p): Disallow TRUTH_*_EXPR.
3635         * tree-ssa-forwprop.c (forward_propagate_comparison): Handle
3636         BIT_NOT_EXPR and BIT_XOR_EXPR instead of TRUTH_NOT_EXPR.
3637
3638 2011-07-19  Jakub Jelinek  <jakub@redhat.com>
3639
3640         PR tree-optimization/49768
3641         * gimple-fold.c (fold_nonarray_ctor_reference): Return NULL
3642         if offset is smaller than bitoffset, but offset+size is bigger
3643         than bitoffset.
3644
3645 2011-07-19  Ira Rosen  <ira.rosen@linaro.org>
3646
3647         PR tree-optimization/49771
3648         * tree-vect-loop-manip.c (vect_vfa_segment_size): In case of
3649         zero step, set segment length to the size of the data-ref's type.
3650
3651 2011-07-18  Martin Jambor  <mjambor@suse.cz>
3652
3653         * ipa-prop.h: Include alloc-pool.h, all sorts of updates to general
3654         comments.
3655         (ipcp_values_pool): Declare.
3656         (ipcp_sources_pool): Likewise.
3657         (ipcp_lattice): Changed to forward declaration.
3658         (ipa_param_descriptor): Removed fields ipcp_lattice, types and
3659         cannot_devirtualize.
3660         (ipa_node_params): New fields descriptors, lattices, known_vals,
3661         clone_for_all_contexts and node dead, removed fields params and
3662         count_scale.
3663         (ipa_set_param_count): Removed.
3664         (ipa_get_param_count): Made to work with descriptors vector.
3665         (ipa_get_param): Updated.
3666         (ipa_param_cannot_devirtualize_p): Removed.
3667         (ipa_param_types_vec_empty): Likewise.
3668         (ipa_set_param_used): New function.
3669         (ipa_get_param_used): Updated to use descriptors vector.
3670         (ipa_func_list): Removed.
3671         (ipa_init_func_list): Removed declaration.
3672         (ipa_push_func_to_list_1): Likewise.
3673         (ipa_pop_func_from_list): Likewise.
3674         (ipa_push_func_to_list): Removed.
3675         (ipa_lattice_from_jfunc): Remove declaration.
3676         (ipa_get_jf_pass_through_result): Declare.
3677         (ipa_get_jf_ancestor_result): Likewise.
3678         (ipa_value_from_jfunc): Likewise.
3679         (ipa_get_lattice): Update.
3680         (ipa_lat_is_single_const): New function.
3681         * ipa-prop.c (ipa_push_func_to_list_1): Removed.
3682         (ipa_init_func_list): Likewise.
3683         (ipa_pop_func_from_list): Likewise.
3684         (ipa_get_param_decl_index): Fix coding style.
3685         (count_formal_params): Removed.
3686         (count_formal_params_1): Renamed to count_formal_params.
3687         (ipa_populate_param_decls): Update to use descriptors vector.
3688         (ipa_initialize_node_params): Likewise.
3689         (visit_ref_for_mod_analysis): Use ipa_set_param_used.
3690         (ipa_analyze_params_uses): Likewise.
3691         (ipa_free_node_params_substructures): Likewise and free also lattices
3692         and known values.
3693         (duplicate_array): Removed.
3694         (ipa_edge_duplication_hook): Add the new edge to the list of edge
3695         clones.
3696         (ipa_node_duplication_hook): Update to use new lattices.
3697         (ipa_free_all_structures_after_ipa_cp): Free alloc pools.
3698         (ipa_free_all_structures_after_iinln): Likewise.
3699         (ipa_write_node_info): Update to use new lattices.
3700         (ipa_read_node_info): Likewise.
3701         (ipa_get_jf_pass_through_result): New function.
3702         (ipa_get_jf_ancestor_result): Likewise.
3703         (ipa_value_from_jfunc): Likewise.
3704         (ipa_cst_from_jfunc): Reimplemented using ipa_value_from_jfunc.
3705         * ipa-cp.c: Reimplemented.
3706         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): Removed.
3707         (PARAM_IPA_CP_VALUE_LIST_SIZE): New parameter.
3708         (PARAM_IPA_CP_EVAL_THRESHOLD): Likewise.
3709         * Makefile.in (IPA_PROP_H): Added alloc-pool.h to dependencies.
3710         * doc/invoke.texi (devirt-type-list-size): Removed description.
3711         (ipa-cp-value-list-size): Added description.
3712
3713 2011-07-18  Richard Henderson  <rth@redhat.com>
3714
3715         * bb-reorder.c (fix_crossing_conditional_branches): Emit all insns
3716         before calling create_basic_block.
3717
3718 2011-07-18  Jakub Jelinek  <jakub@redhat.com>
3719
3720         PR middle-end/49675
3721         * tree.c (build_common_builtin_nodes): Register
3722         __builtin_return_address, __cyg_profile_func_enter
3723         and __cyg_profile_func_exit.
3724
3725 2011-07-18  Richard Henderson  <rth@redhat.com>
3726
3727         * bb-reorder.c (emit_barrier_after_bb): Split out of ...
3728         (add_labels_and_missing_jumps): ... here.
3729         (fix_up_fall_thru_edges, fix_crossing_conditional_branches): Use it.
3730
3731 2011-07-18  Uros Bizjak  <ubizjak@gmail.com>
3732
3733         PR target/47744
3734         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
3735         of DImode hard registers in PLUS address chains.
3736
3737 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3738
3739         PR bootstrap/49769
3740         * config.gcc (alpha*-*-linux*): Add crtfastmath.o to extra_parts.
3741         (alpha*-*-freebsd*): Likewise.
3742         (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
3743         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
3744         i[34567]86-*-kopensolaris*-gnu): Add crtprec32.o, crtprec64.o,
3745         crtprec80.o, crtfastmath.o to extra_parts for all targets.
3746         (ia64*-*-elf*): Remove extra_parts.
3747         (sparc-*-linux*): Add crtfastmath.o to extra_parts.
3748         (sparc64-*-linux*): Likewise.
3749         (sparc64-*-freebsd*): Likewise.
3750
3751         Revert:
3752         * config.gcc (ia64*-*-freebsd*): Remove crtfastmath.o from extra_parts.
3753         (ia64*-*-linux*): Likewise.
3754         (mips64*-*-linux*): Likewise.
3755         (mips*-*-linux*): Likewise.
3756
3757 2011-07-18  David Edelsohn  <dje.gcc@gmail.com>
3758
3759         * doc/install.texi (Specific, *-ibm-aix*): AIX assembler bug.
3760
3761 2011-07-18  Richard Guenther  <rguenther@suse.de>
3762
3763         * gimplify.c (gimplify_expr): Use input_location, not saved_location
3764         when building new trees.
3765
3766 2011-07-18  Richard Guenther  <rguenther@suse.de>
3767
3768         * expr.c (expand_expr_real_2): Properly truncate the BIT_NOT_EXPR
3769         expansion result to bitfield precision if required.
3770
3771 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3772
3773         * config.gcc (i[3456x]86-*-netware*): Remove.
3774
3775         * gthr-nks.h: Remove.
3776         * configure.ac (enable_threads): Remove nks.
3777         * configure: Regenerate.
3778
3779         * config/i386/i386.c (ix86_encode_section_info): Remove netware
3780         reference.
3781         * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): Remove
3782         <netware.h> reference.
3783
3784         * config/i386/netware-libgcc.c,
3785         gcc/config/i386/netware-libgcc.def,
3786         gcc/config/i386/netware-libgcc.exp, gcc/config/i386/netware.c,
3787         gcc/config/i386/netware.h, gcc/config/i386/netware.opt,
3788         gcc/config/i386/nwld.c, gcc/config/i386/nwld.h,
3789         gcc/config/i386/t-netware, gcc/config/i386/t-nwld: Remove
3790
3791         * doc/extend.texi (Function Attributes,
3792         callee_pop_aggregate_return): Remove i?86-netware reference.
3793         * doc/install.texi (Configuration, --enable-threads): Remove nks.
3794
3795 2011-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3796
3797         PR target/49746
3798         Revert:
3799         2010-12-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3800
3801         * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean
3802         patterns.
3803
3804 2011-07-17  Eric Botcazou  <ebotcazou@adacore.com>
3805
3806         PR middle-end/49732
3807         * tree.c (walk_tree_1) <DECL_EXPR>: Do not walk a pointed-to type.
3808
3809 2011-07-16  Matthias Klose  <doko@ubuntu.com>
3810
3811         * doc/install.texi: Document --enable-static-libjava.
3812
3813 2011-07-15  Richard Henderson  <rth@redhat.com>
3814
3815         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
3816         Replace all three arguments by returning a VEC of edges.
3817         (add_labels_and_missing_jumps): Accept a VEC of edges, not bare
3818         pointers and counts.
3819         (fix_edges_for_rarely_executed_code): Merge ...
3820         (rest_of_handle_partition_blocks): ... into...
3821         (partition_hot_cold_basic_blocks): ... here.  Return todo items if
3822         any work was performed.
3823         (pass_partition_blocks): Clear todo_flags_finish.
3824
3825 2011-07-15  Paolo Carlini  <paolo.carlini@oracle.com>
3826             Jakub Jelinek  <jakub@redhat.com>
3827             Jonathan Wakely  <jwakely.gcc@gmail.com>
3828
3829         PR libstdc++/49745
3830         * gthr-posix.h: Do not include <unistd.h> unconditionally; use
3831         _GTHREADS_USE_MUTEX_TIMEDLOCK instead of _POSIX_TIMEOUTS.
3832
3833 2011-07-15  Jason Merrill  <jason@redhat.com>
3834
3835         PR testsuite/49741
3836         * Makefile.in ($(lang_checks_parallelized)): Allow --extra_opts
3837         rather than --tool_opts.
3838
3839 2011-07-15  Basile Starynkevitch  <basile@starynkevitch.net>
3840
3841         * doc/plugins.texi (Building GCC plugins): gengtype needs its
3842         corresponding gtype.state.
3843
3844 2011-07-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3845
3846         PR target/49723
3847         * config/pa/pa.md (casesi): Use gen_int_mode instead of GEN_INT.
3848
3849 2011-07-15  Eric Botcazou  <ebotcazou@adacore.com>
3850
3851         PR target/48220
3852         * doc/md.texi (Standard Names): Document window_save.
3853         * cfgexpand.c (expand_debug_parm_decl): New function extracted from
3854         expand_debug_expr and expand_debug_source_expr.  If the target has
3855         a window_save instruction, adjust the ENTRY_VALUE_EXP.
3856         (expand_debug_expr) <SSA_NAME>: Call expand_debug_parm_decl if the
3857         SSA_NAME_VAR is a parameter.
3858         (expand_debug_source_expr) <PARM_DECL>: Call expand_debug_parm_decl.
3859         * var-tracking.c (parm_reg_t): New type and associated vector type.
3860         (windowed_parm_regs): New variable.
3861         (adjust_insn): If the target has a window_save instruction and this
3862         is the instruction, make its effect on parameter registers explicit.
3863         (next_non_note_insn_var_location): New function.
3864         (emit_notes_in_bb): Use it instead of NEXT_INSN throughout.
3865         (vt_add_function_parameter): If the target has a window_save insn,
3866         adjust the incoming RTL and record that in windowed_parm_regs.
3867         (vt_finalize): Free windowed_parm_regs.
3868
3869 2011-07-15  Bernd Schmidt  <bernds@codesourcery.com>
3870
3871         * doc/invoke.texi (C6X Options): New section.
3872         * doc/md.texi (TI C6X family): New section.
3873         * config.gcc: Handle tic6x, in particular tic6x-*-elf and
3874         tic6x-*-uclinux.
3875         * longlong.h (add_ssaaaa, __umulsidi3, umul_ppmm,
3876         count_leading_zeros, count_trailing_zeros, UMUL_TIME, UDIV_TIME):
3877         Provide C6X definitions.
3878         * config/c6x/c6x.md: New file.
3879         * config/c6x/constraints.md: New file.
3880         * config/c6x/predicates.md: New file.
3881         * config/c6x/c6x-sched.md.in: New file.
3882         * config/c6x/c6x-sched.md: New file.
3883         * config/c6x/gensched.sh: New file.
3884         * config/c6x/c6x-mult.md.in: New file.
3885         * config/c6x/genmult.sh: New file.
3886         * config/c6x/c6x-mult.md: New file.
3887         * config/c6x/sync.md: New file.
3888         * config/c6x/c6x-protos.h: New file.
3889         * config/c6x/sfp-machine.h: New file.
3890         * config/c6x/c6x.c: New file.
3891         * config/c6x/c6x.h: New file.
3892         * config/c6x/crti.s: New file.
3893         * config/c6x/crtn.s: New file.
3894         * config/c6x/lib1funcs.asm: New file.
3895         * config/c6x/c6x-modes.def: New file.
3896         * config/c6x/genopt.sh: New file.
3897         * config/c6x/c6x.opt: New file.
3898         * config/c6x/c6x-tables.opt: New file.
3899         * config/c6x/c6x-opts.h: New file.
3900         * config/c6x/c6x-isas.def: New file.
3901         * config/c6x/elf.h: New file.
3902         * config/c6x/elf-common.h: New file.
3903         * config/c6x/uclinux-elf.h: New file.
3904         * config/c6x/t-c6x: New file.
3905         * config/c6x/t-c6x-elf: New file.
3906         * config/c6x/t-c6x-uclinux: New file.
3907         * config/c6x/t-c6x-softfp: New file.
3908         * config/c6x/gtd.c: New file.
3909         * config/c6x/gtf.c: New file.
3910         * config/c6x/ltd.c: New file.
3911         * config/c6x/ltf.c: New file.
3912         * config/c6x/ged.c: New file.
3913         * config/c6x/gef.c: New file.
3914         * config/c6x/led.c: New file.
3915         * config/c6x/lef.c: New file.
3916         * config/c6x/eqd.c: New file.
3917         * config/c6x/eqf.c: New file.
3918         * config/c6x/libgcc-c6xeabi.ver: New file.
3919
3920         Revert
3921         2003-07-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
3922         PR rtl-optimization/11320
3923         * sched-int.h (struct deps) [reg_conditional_sets]: New field.
3924         (struct sched_info) [compute_jump_reg_dependencies]: New prototype.
3925         * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to
3926         current_sched_info->compute_jump_reg_dependencies. Record which
3927         registers are used and which registers are set by the jump.
3928         Clear deps->reg_conditional_sets after a barrier.
3929         Set deps->reg_conditional_sets if the insn is a COND_EXEC.
3930         Clear deps->reg_conditional_sets if the insn is not a COND_EXEC.
3931         (init_deps): Initialize reg_conditional_sets.
3932         (free_deps): Clear reg_conditional_sets.
3933         * sched-ebb.c (compute_jump_reg_dependencies): New prototype.
3934         Mark registers live on entry of the fallthrough block and conditionally
3935         set as set by the jump. Mark registers live on entry of non-fallthrough
3936         blocks as used by the jump.
3937         * sched-rgn.c (compute_jump_reg_dependencies): New prototype.
3938         Mark new parameters as unused.
3939
3940 2011-07-14  Andrew Pinski  <pinskia@gmail.com>
3941
3942         PR tree-opt/49309
3943         * tree-mudflap.c (mf_xform_derefs_1 <case MEM_REF>):
3944         Use fold_build2_loc instead of build2.
3945         Use the correct type for the new tree.
3946
3947 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
3948
3949         PR rtl-optimization/11320
3950         * config/ia64/ia64.md (load_symptr_low): Show a MEM.
3951         * config/ia64/ia64.c (ia64_expand_load_address): Generate it.
3952
3953 2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
3954
3955         PR target/49487
3956         * config/avr/avr.md (rotl<mode>3): Generate SCRATCH instead
3957         of REG.
3958         (*rotw<mode>): Use const_int_operand for operand2.
3959         Use match_scatch for operand3.
3960         (*rotb<mode>): Ditto
3961         * config/avr/avr.c (avr_rotate_bytes): Treat SCRATCH.
3962
3963 2011-07-14  Richard Guenther  <rguenther@suse.de>
3964
3965         PR tree-optimization/49651
3966         * tree-ssa-structalias.c (get_constraint_for_1): Properly
3967         handle dereferences with subvariables.
3968
3969 2011-07-14  Richard Guenther  <rguenther@suse.de>
3970
3971         * gimple-fold.c (fold_gimple_assign): Remove operand swapping.
3972         (fold_stmt_1): Do it here directly on gimple and as a first thing.
3973
3974 2011-07-14  Richard Guenther  <rguenther@suse.de>
3975
3976         * fold-const.c (fold_binary_loc): Convert the !bool_var result,
3977         not bool_var when folding bool_var != 1 or bool_var == 0.
3978
3979 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
3980
3981         * haifa-sched.c (schedule_insns): Remove outdated comment.
3982         (schedule_block): When computing a known value for TODO_SPEC,
3983         just set it rather than using logical operations.
3984         (try_ready): Likewise.  Use a local variable rather than a
3985         pointer to TODO_SPEC.  Reorder an if statement to move the
3986         easy case to the then block.
3987         * sched-deps.c (dep_spec_p): New static function.
3988         (update_dep): Use it to decide whether to call
3989         change_spec_dep_to_hard.
3990         (get_back_and_forw_lists): Use it.
3991         (sd_resolve_dep): Likewise.
3992         (init_dep): If !USE_DEPS_LIST, use zero to initialize status.
3993         (haifa_note_mem_dep): Likewise.
3994         (check_dep): Likewise.
3995         (sd_add_dep): Also clear SPECULATIVE bits if not DO_SPECULATION.
3996         (sched_free_deps): Free in two passes.
3997
3998 2011-07-14  Richard Sandiford  <richard.sandiford@linaro.org>
3999
4000         PR middle-end/49736
4001         * expr.c (all_zeros_p): Undo bogus part of last change.
4002
4003 2011-07-14  Matthias Klose <doko@ubuntu.com>
4004
4005         * doc/extend.texi (optimize attribute): Fix typo.
4006
4007 2011-07-14  Richard Guenther  <rguenther@suse.de>
4008
4009         * gimplify.c (gimplify_expr): Only do required conversions.
4010
4011 2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
4012
4013         PR target/43746
4014         * config/avr/elf.h (TARGET_ASM_SELECT_SECTION): Remove,
4015         i.e. use default_elf_select_section.
4016         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Remove.
4017         (READONLY_DATA_SECTION_ASM_OP): Remove.
4018         (TARGET_ASM_NAMED_SECTION): Move from here...
4019         * config/avr/avr.c: ...to here.
4020         (avr_asm_init_sections): Set unnamed callback of readonly_data_section.
4021         (avr_asm_named_section): Make static.
4022
4023 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4024
4025         PR bootstrap/49739
4026         * config.gcc (extra_parts): Add crtprec32.o crtprec64.o crtprec80.o
4027         and crtfastmath.o for Linux/x86.
4028
4029 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
4030
4031         * haifa-sched.c: Include "hashtab.h"
4032         (sched_no_dce): New global variable.
4033         (INSN_EXACT_TICK, INSN_TICK_ESTIMATE, FEEDS_BACKTRACK_INSN,
4034         SHADOW_P): New macros.
4035         (last_clock_var, cycle_issued_insns): Move declarations.
4036         (must_backtrack): New static variable.
4037         (struct delay_pair): New structure.
4038         (delay_htab, delay_htab_i2): New static variables.
4039         (delay_hash_i1, delay_hash_i2, delay_i1_eq, delay_i2_eq,
4040         record_delay_slot_pair, pair_delay, add_delay_dependencies): New
4041         functions.
4042         (dep_cost_1): If delay pairs exist, try to look up the insns and
4043         use the correct pair delay if we find them.
4044         (rank-for_schedule): Tweak priority for insns that must be scheduled
4045         soon to avoid backtracking.
4046         (queue_insn): Detect conditions which force backtracking.
4047         (ready_add): Likewise.
4048         (struct sched_block_state): Add member shadows_only_p.
4049         (struct haifa_save_data): New structure.
4050         (backtrack_queue): New static variable.
4051         (mark_backtrack_feeds, copy_insn_list, save_backtrack_point,
4052         unschedule_insns_until, restore_last_backtrack_point,
4053         free_topmost_backtrack_point, free_backtrack_queue,
4054         estimate_insn_tick, estimate_shadow_tick): New functions.
4055         (prune_ready_list): New arg shadows_only_p.  All callers changed.
4056         If true, remove everything that isn't SHADOW_P.  Look up delay
4057         pairs and estimate ticks to avoid scheduling the first insn too early.
4058         (verify_shadows): New function.
4059         (schedule_block): Add machinery to enable backtracking.
4060         (sched_init): Take sched_no_dce into account when setting
4061         DF_LR_RUN_DCE.
4062         (free_delay_pairs): New function.
4063         (init_h_i_d): Initialize INSN_EXACT_TICK.
4064         * Makefile.in (haifa-sched.o): Add $(HASHTAB_H).
4065         * sched-deps.c (sd_unresolve_dep): New function.
4066         * sched-int. (struct haifa_sched_info): New fields save_state
4067         and restore_state.
4068         (struct _haifa_insn_data): New fields exact_tick, tick_estimate,
4069         feeds_backtrack_insn and shadow_p.
4070         (DO_BACKTRACKING): New value in enum SCHED_FLAGS.
4071         (sched_no_dce): Declare variable.
4072         (record_delay_slot_pair, free_delay_pairs, add_delay_dependencies,
4073         sd_unresolve_dep): Declare functions.
4074         * modulo-sched.c (sms_sched_info): Clear the two new fields.
4075         * sched-rgn.c (rgn_const_sched_info): Likewise.
4076         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
4077         * sched-ebb.c (save_ebb_state, restore_ebb_state): New functions.
4078         (ebb_sched_info): Add them for the two new fields.
4079         (add_deps_for_risky_insns): Call add_delay_dependencies.
4080
4081 2011-07-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
4082
4083         * config/rs6000/rs6000.opt (-mpointers-to-nested-functions):
4084         Rename -mr11.
4085         * config/rs6000/rs6000.c (rs6000_trampoline_init): Ditto.
4086         (rs6000_call_indirect_aix): Ditto.
4087         * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Ditto.
4088         (call_indirect_aix<ptrsize>_internal): Ditto.
4089         (call_indirect_aix<ptrsize>_nor11): Ditto.
4090         (call_indirect_aix<ptrsize>_internal2): Ditto.
4091         (call_value_indirect_aix<ptrsize>): Ditto.
4092         (call_value_indirect_aix<ptrsize>_internal): Ditto.
4093         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
4094         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
4095         * doc/invoke.texi (RS/6000 and PowerPC Options): Ditto.
4096
4097 2011-07-13  Jason Merrill  <jason@redhat.com>
4098
4099         * Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts.
4100
4101 2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4102
4103         * config/spu/spu.c (spu_init_libfuncs): Install __clrsbdi2.
4104         * config/spu/spu.md ("clrsb<mode>2"): New expander.
4105
4106 2011-07-13  Thomas Schwinge  <thomas@schwinge.name>
4107
4108         * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Use AS_ECHO instead of echo.
4109         * configure: Regenerate.
4110
4111 2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4112
4113         * config/spu/spu.c (TARGET_ASM_FILE_START): Do not define.
4114         (asm_file_start): Remove.
4115         (spu_machine_dependent_reorg): Call compute_bb_for_insn and
4116         free_bb_for_insn around code that modifies insns before
4117         restarting df analysis.
4118
4119 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4120
4121         PR target/49541
4122         * config/sol2.h (LIB_SPEC): Simplify.  Move LIB_THREAD_LDFLAGS_SPEC ...
4123         (LINK_SPEC): ... here.
4124
4125 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
4126
4127         * haifa-sched.c (struct sched_block_state): New.
4128         (schedule_block): Move some local variables into such a structure.
4129
4130 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4131
4132         * config/i386/crtprec.c: Move to ../libgcc/config/i386.
4133         * config/i386/t-crtpc: Remove.
4134         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
4135         * config.gcc (i[34567]86-*-darwin*): Remove i386/t-crtpc from
4136         tmake_file.
4137         (x86_64-*-darwin*): Likewise.
4138         (i[34567]86-*-linux*): Likewise.
4139         (x86_64-*-linux*): Likewise.
4140
4141         * config/i386/sol2.h (ENDFILE_SPEC): Redefine.
4142         Handle -mpc32, -mpc64, -mpc80.
4143
4144 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4145
4146         * config/alpha/crtfastmath.c: Move to ../libgcc/config/alpha.
4147         * config/alpha/t-crtfm: Remove.
4148         * config/i386/crtfastmath.c: Move to ../libgcc/config/i386.
4149         * config/i386/t-crtfm: Remove.
4150         * config/ia64/crtfastmath.c: Move to ../libgcc/config/ia64.
4151         * config/mips/crtfastmath.c: Move to ../libgcc/config/mips.
4152         * config/sparc/crtfastmath.c: Move to ../libgcc/config/sparc.
4153         * config/sparc/t-crtfm: Remove.
4154
4155         * config.gcc (alpha*-*-linux*): Remove alpha/t-crtfm from tmake_file.
4156         (alpha*-*-freebsd*): Likewise.
4157         (i[34567]86-*-darwin*): Remove i386/t-crtfm from tmake_file.
4158         (x86_64-*-darwin*): Likewise.
4159         (i[34567]86-*-linux*): Likewise.
4160         (x86_64-*-linux*): Likewise.
4161         (x86_64-*-mingw*): Likewise.
4162         (ia64*-*-elf*): Remove crtfastmath.o from extra_parts.
4163         (ia64*-*-freebsd*): Likewise.
4164         (ia64*-*-linux*): Likewise.
4165         (mips64*-*-linux*): Likewise.
4166         (mips*-*-linux*): Likewise.
4167         (sparc-*-linux*): Remove sparc/t-crtfm from tmake_file.
4168         (sparc64-*-linux*): Likewise.
4169         (sparc64-*-freebsd*): Likewise.
4170
4171 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4172
4173         * config/darwin-crt2.c: Move to ../libgcc/config/rs6000.
4174         * config/darwin-crt3.c: Move to ../libgcc/config.
4175         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
4176         ($(T)crt3$(objext)): Remove.
4177         * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Remove.
4178         ($(T)crt2$(objext)): Remove.
4179         * config.gcc (powerpc-*-darwin*): Remove extra_parts.
4180         (powerpc64-*-darwin*): Likewise.
4181
4182 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
4183
4184         * config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode != Pmode.
4185
4186         * config/i386/i386.md (*addsi_1_zext): Renamed to ...
4187         (addsi_1_zext): This.
4188
4189 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
4190
4191         * doc/tm.texi.in (TARGET_ASM_MERGEABLE_RODATA_PREFIX): Add hook.
4192         * doc/tm.texi: Regenerate.
4193         * target.def (mergeable_rodata_prefix): New defhookpod.
4194         * varasm.c (mergeable_string_section, mergeable_constant_section):
4195         Use it. Allocate name with alloca.
4196
4197 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
4198
4199         * doc/invoke.texi (x86): Remove -mfused-madd and add -mfma.
4200
4201 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
4202
4203         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Tighten
4204         overlap check.
4205
4206 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
4207
4208         * tree.h (categorize_ctor_elements): Remove comment.  Fix long line.
4209         (count_type_elements): Delete.
4210         (complete_ctor_at_level_p): Declare.
4211         * expr.c (flexible_array_member_p): New function, split out from...
4212         (count_type_elements): ...here.  Make static.  Replace allow_flexarr
4213         parameter with for_ctor_p.  When for_ctor_p is true, return the
4214         number of elements that should appear in the top-level constructor,
4215         otherwise return an estimate of the number of scalars.
4216         (categorize_ctor_elements): Replace p_must_clear with p_complete.
4217         (categorize_ctor_elements_1): Likewise.  Use complete_ctor_at_level_p.
4218         (complete_ctor_at_level_p): New function, borrowing union logic
4219         from old categorize_ctor_elements_1.
4220         (mostly_zeros_p): Return true if the constructor is not complete.
4221         (all_zeros_p): Update call to categorize_ctor_elements.
4222         * gimplify.c (gimplify_init_constructor): Update call to
4223         categorize_ctor_elements.  Don't call count_type_elements.
4224         Unconditionally prevent clearing for variable-sized types,
4225         otherwise rely on categorize_ctor_elements to detect
4226         incomplete initializers.
4227
4228 2011-07-13  Richard Guenther  <rguenther@suse.de>
4229
4230         * tree-vrp.c (simplify_conversion_using_ranges): Make sure
4231         the final type is integral.
4232
4233 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
4234
4235         * sched-int.h (struct _dep): Add member cost.
4236         (DEP_COST, UNKNOWN_DEP_COST): New macros.
4237         * sched-deps.c (init_dep_1): Initialize DEP_COST.
4238         * haifa-sched.c (dep_cost_1): Use and set DEP_COST.
4239         (sched_change_pattern): Reset it for dependent insns.
4240
4241 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4242
4243         * Makefile.in (CRT0STUFF_T_CFLAGS): Remove.
4244         ($(T)crt0.o, $(T)mcrt0.o, s-crt0): Remove.
4245         * config/i386/netware-crt0.c: Move to ../libgcc/config/i386.
4246         * config/i386/t-nwld (CRTSTUFF_T_CFLAGS, CRT0STUFF_T_CFLAGS): Remove.
4247         (CRT0_S, MCRT0_S): Remove.
4248         ($(T)libgcc.def, $(T)libc.def, $(T)libcpre.def, $(T)posixpre.def):
4249         Remove.
4250         (s-crt0): Remove.
4251         * config.gcc (i[3456x]86-*-netware*): Remove extra_parts.
4252
4253 2011-07-12  Eric Botcazou  <ebotcazou@adacore.com>
4254
4255         * cse.c (insert_with_costs): Put semi-colon after empty loop body
4256         on the next line.
4257         * emit-rtl.c (push_to_sequence): Likewise.
4258         * haifa-sched.c (max_issue): Likewise.
4259         * matrix-reorg.c (add_allocation_site): Likewise.
4260         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
4261         * reload.c (alternative_allows_const_pool_ref): Likewise.
4262         * sched-rgn.c (rgn_add_block): Likewise.
4263         (rgn_fix_recovery_cfg): Likewise.
4264         * tree.c (attribute_list_contained): Likewise.
4265
4266 2011-07-12  Uros Bizjak  <ubizjak@gmail.com>
4267
4268         * config/i386/i386.c: Tidy processor feature bitmasks.
4269         (m_P4_NOCONA): New.
4270
4271 2011-07-12  Andrew Pinski  <pinskia@gmail.com>
4272
4273         PR rtl-opt/49474
4274         * cprop.c (find_implicit_sets): Correct the condition.
4275
4276 2011-07-12  Richard Henderson  <rth@redhat.com>
4277
4278         PR target/49713
4279         * dwarf2out.h (dwarf_frame_regnum): Remove.
4280         * dwarf2out.c (based_loc_descr): Revert last change.  Initialize regno
4281         earlier from DWARF_FRAME_REGNUM.  Never use dbx_reg_number.
4282         * dwarf2cfi.c (dw_stack_pointer_regnum, dw_frame_pointer_regnum): New.
4283         (execute_dwarf2_frame): Initialize them.
4284         (DW_STACK_POINTER_REGNUM, DW_FRAME_POINTER_REGNUM): Remove; replace
4285         users of the macros with the variables.
4286         (expand_builtin_dwarf_sp_column): Revert last change.
4287         (expand_builtin_init_dwarf_reg_sizes): Likewise.  Compute the
4288         result of DWARF_FRAME_REGNUM into a local variable.
4289
4290 2011-07-12  Richard Henderson  <rth@redhat.com>
4291
4292         PR target/49714
4293         * config/i386/i386.c (x86_output_mi_thunk): Use
4294         machopic_indirect_call_target instead of machopic_indirection_name
4295         directly.
4296
4297 2011-07-12  Laurent GUERBY  <laurent@guerby.net>
4298             Eric Botcazou  <ebotcazou@adacore.com>
4299
4300         * prefix.h: Wrap up in extern "C" block.
4301
4302 2011-07-12  Harsha Jagasia  <harsha.jagasia@amd.com>
4303
4304         AMD bdver2 Enablement
4305         * config.gcc (i[34567]86-*-linux* | ...): Add bdver2.
4306         (case ${target}): Add bdver2.
4307         * config/i386/driver-i386.c (host_detect_local_cpu): Let
4308         -march=native recognize bdver2 processors.
4309         * config/i386/i386-c.c (ix86_target_macros_internal): Add
4310         bdver2 def_and_undef
4311         * config/i386/i386.c (struct processor_costs bdver2_cost): New
4312         bdver2 cost table.
4313         (m_BDVER2): New definition.
4314         (m_AMD_MULTIPLE): Includes m_BDVER2.
4315         (initial_ix86_tune_features): Add bdver2 tuning.
4316         (processor_target_table): Add bdver2 entry.
4317         (static const char *const cpu_names): Add bdver2 entry.
4318         (ix86_option_override_internal): Add bdver2 instruction sets.
4319         (ix86_issue_rate): Add bdver2.
4320         (ix86_adjust_cost): Add bdver2.
4321         (has_dispatch): Add bdver2.
4322         * config/i386/i386.h (TARGET_BDVER2): New definition.
4323         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver2.
4324         (enum processor_type): Add PROCESSOR_BDVER2.
4325         * config/i386/i386.md (define_attr "cpu"): Add bdver2.
4326         * config/i386/i386.opt ( mdispatch-scheduler): Add bdver2 to
4327         description.
4328
4329 2011-07-12  Richard Henderson  <rth@redhat.com>
4330
4331         PR target/49714
4332         * config/i386/i386.c (x86_output_mi_thunk): Fix mode for
4333         destination address in memory on some paths.
4334
4335 2011-07-12  Bernd Schmidt  <bernds@codesourcery.com>
4336
4337         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Mention
4338         TARGET_FUNCTION_ARG_ROUND_BOUNDARY.
4339         (TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Add hook.
4340         * function.c (locate_and_pad_parm): Take it into account.
4341         * target.def (function_arg_round_boundary): New hook.
4342         * targhooks.c (default_function_arg_round_boundary): New function.
4343         * targhooks.h (default_function_arg_round_boundary): Declare.
4344         * doc/tm.texi: Regenerate.
4345
4346 2011-07-12  Richard Guenther  <rguenther@suse.de>
4347
4348         * tree-ssa-copyrename.c (rename_ssa_copies): Zero statistics.
4349         Do not perform no-op changes.
4350
4351 2011-07-12  Richard Sandiford  <richard.sandiford@linaro.org>
4352
4353         * config/arm/predicates.md (neon_struct_operand): Make a normal
4354         predicate.
4355         (neon_struct_or_register_operand): New predicate.
4356         * config/arm/neon.md (movmisalign<mode>): Replace predicates
4357         with neon_struct_or_register_operand.
4358         (*movmisalign<mode>_neon_store, *movmisalign<mode>_neon_load): Use
4359         neon_struct_operand instead of memory_operand.
4360
4361 2011-07-12  Martin Jambor  <mjambor@suse.cz>
4362
4363         * cgraph.h (cgraph_get_node_or_alias): Removed declaration.
4364         * cgraph.c (cgraph_get_node_or_alias): Removed.
4365         (change_decl_assembler_name): Changed all calls to
4366         cgraph_get_node_or_alias to a call to cgraph_get_node.
4367         (cgraph_make_decl_local): Likewise.
4368         * lto-symtab.c (lto_symtab_resolve_symbols): Likewise.
4369         * varasm.c (default_binds_local_p_1): Likewise.
4370         (decl_binds_to_current_def_p): Likewise.
4371
4372 2011-07-12  Jakub Jelinek  <jakub@redhat.com>
4373
4374         PR tree-optimization/49712
4375         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF.
4376
4377 2011-07-11  Bernd Schmidt  <bernds@codesourcery.com>
4378
4379         * genautomata.c (add_arc): Return void.  All callers changed.
4380         (make_automaton): Remove dead code.
4381
4382 2011-07-11  Richard Henderson  <rth@redhat.com>
4383
4384         * dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New.
4385         (DW_FRAME_POINTER_REGNUM): New.
4386         (expand_builtin_init_dwarf_reg_sizes): Use unsigned for rnum.
4387         (def_cfa_1): Do not convert reg to DWARF_FRAME_REGNUM here.
4388         (dwf_regno): New.
4389         (dwarf2out_flush_queued_reg_saves, dwarf2out_frame_debug_def_cfa,
4390         dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_register,
4391         dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_expr):
4392         Use it.
4393         * dwarf2out.c (based_loc_descr): Use dwarf_frame_regnum.
4394         * dwarf2out.h (dwarf_frame_regnum): New.
4395         (struct cfa_loc): Document the domain of the reg member.
4396
4397 2011-07-11  Uros Bizjak  <ubizjak@gmail.com>
4398
4399         * config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr.
4400         Use offset everywhere.  Always assert that offset <= TRAMPOLINE_SIZE.
4401
4402 2011-07-11  Jakub Jelinek  <jakub@redhat.com>
4403
4404         PR debug/49676
4405         * dwarf2out.c (int_shift_loc_descriptor): New function.
4406         (int_loc_descriptor): If shorter, emit i as
4407         (i >> shift), shift, DW_OP_shl for suitable shift value.
4408         Similarly, try to optimize large negative values using
4409         DW_OP_neg of a positive value if shorter.
4410         (size_of_int_shift_loc_descriptor): New function.
4411         (size_of_int_loc_descriptor): Adjust to match int_loc_descriptor
4412         changes.
4413         (mem_loc_descriptor) <case CONST_INT>: Emit zero-extended constants
4414         that fit into DWARF2_ADDR_SIZE bytes as int_loc_descriptor +
4415         DW_OP_GNU_convert instead of DW_OP_GNU_const_type if the former
4416         is shorter.
4417         (resolve_addr_in_expr): Optimize DW_OP_plus_uconst with a large
4418         addend as added DW_OP_plus if it is shorter.
4419
4420 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4421
4422         * config/i386/sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define.
4423         (DTORS_SECTION_ASM_OP): Define.
4424
4425 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4426
4427         * config/dfp-bit.c, config/dfp-bit.h: Move to ../libgcc.
4428         * config/t-dfprules: Move to ../libgcc/config.
4429         * config.gcc (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
4430         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
4431         i[34567]86-*-kopensolaris*-gnu): Remove t-dfprules from tmake_file.
4432         (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
4433         Likewise.
4434         (i[34567]86-*-cygwin*): Likewise.
4435         (i[34567]86-*-mingw*,  x86_64-*-mingw*): Likewise.
4436         (powerpc-*-linux*, powerpc64-*-linux*): Likewise.
4437         * Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): Remove.
4438         (libgcc.mvars): Remove DFP_ENABLE, DFP_CFLAGS, D32PBIT_FUNCS,
4439         D64PBIT_FUNCS, D128PBIT_FUNCS.
4440
4441 2011-07-11  Richard Guenther  <rguenther@suse.de>
4442
4443         * tree-vrp.c (simplify_conversion_using_ranges): Manually
4444         translate the source value-range through the conversion chain.
4445
4446 2011-07-11  Richard Sandiford  <richard.sandiford@linaro.org>
4447
4448         * expr.c (expand_expr_real_1): Use expand_insn for movmisalign.
4449
4450 2011-07-11  Arthur Loiret  <aloiret@debian.org>
4451
4452         * config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build
4453         a bi-arch compiler defaulting to 31-bit. In this case:
4454         (tmake_file): Add s390/t-linux64.
4455         * doc/install.texi: Add s390-linux to the list of targets supporting
4456         --enable-targets=all.
4457
4458 2011-07-11  Arthur Loiret  <aloiret@debian.org>
4459             Matthias Klose <doko@debian.org>
4460
4461         * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build
4462         a tri-arch compiler defaulting to 32-bit (ABI o32). In this case:
4463         (tm_file): Add mips/linux64.h.
4464         (tmake_file): Add mips/t-linux64.
4465         (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
4466         * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT
4467         instead of hardcoded mabi=n32.
4468         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
4469         tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
4470         convention.
4471
4472 2011-07-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4473
4474         * passes.c (init_optimization_passes): Add invariant motion pass
4475         after induction variable optimization.
4476
4477 2011-07-11  Georg-Johann Lay  <avr@gjlay.de>
4478
4479         PR target/39633
4480         * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only
4481         offsets 1..5 set cc0 in a usable way.
4482
4483 2011-07-11  Romain Geissler  <romain.geissler@gmail.com>
4484
4485         * tree.h (call_expr_arg): Remove.
4486         (call_expr_argp): Likewise.
4487
4488 2011-07-11  Eric Botcazou  <ebotcazou@adacore.com>
4489
4490         * config/sparc/sparc.md (save_register_window_1): Rename to...
4491         (window_save): ...this.
4492         * config/sparc/sparc.c (emit_save_register_window): Rename to...
4493         (emit_window_save): ...this.
4494         (sparc_expand_prologue): Adjust to above renaming.
4495
4496 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
4497
4498         * config/i386/i386.c (ix86_trampoline_init): Use movl instead
4499         of movabs for x32.
4500
4501 2011-07-10  Richard Henderson  <rth@redhat.com>
4502
4503         * config/i386/i386.c (x86_output_mi_thunk): Generate rtl and
4504         run final, instead of emitting text directly.
4505
4506 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
4507
4508         * config/i386/i386.c (ix86_option_override_internal): Turn on
4509         OPTION_MASK_ISA_64BIT for TARGET_X32.  Only allow small and
4510         small PIC models for TARGET_X32.
4511
4512 2011-07-10  Hans-Peter Nilsson  <hp@axis.com>
4513
4514         PR target/49684
4515         * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Don't include
4516         $(LIBGCC2_CFLAGS).
4517
4518         PR bootstrap/49680
4519         * config/cris/cris.c (cris_asm_output_case_end): Robustify against
4520         stray notes and debug insns by using prev_nonnote_nondebug_insn
4521         instead of PREV_INSN.
4522
4523 2011-07-09  Richard Henderson  <rth@redhat.com>
4524
4525         * defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE,
4526         DWARF_TYPE_SIGNATURE_SIZE): Move from ...
4527         * dwarf2out.c: ... here.
4528         (output_all_cfis): Remove.
4529         (dwarf2out_switch_text_section): Use output_cfis directly.
4530         (size_of_locs): Export.
4531         (output_loc_sequence, output_loc_sequence_raw): Export.
4532         (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi,
4533         output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc,
4534         output_cfa_loc_raw): Move to ...
4535         * dwarfcfi.c: ... here.
4536         * dwarf2out.h: Update decls.
4537
4538 2011-07-09  Richard Henderson  <rth@redhat.com>
4539
4540         * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN,
4541         DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ...
4542         * dwarf2cfi.c: ... here.
4543         (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove.
4544         (DWARF_ROUND, DWARF_CIE_ID): Remove.
4545         * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove.
4546         (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove.
4547         (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove.
4548
4549 2011-07-09  Richard Henderson  <rth@redhat.com>
4550
4551         * dwarf2cfi.c (cie_return_save): New.
4552         (queue_reg_save): Use compare_reg_or_pc.
4553         (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column.
4554         (dwarf2out_frame_debug_expr): Likewise.
4555         (dwarf2out_frame_debug_cfa_register): Record saved reg for pc too.
4556         (initial_return_save): Likewise.
4557         (execute_dwarf2_frame): Save and restore initial return save from
4558         the cie to the fde.
4559         * config/mips/mips.c (mips_frame_set): Remove special case for
4560         DWARF_FRAME_RETURN_COLUMN.
4561
4562 2011-07-09  Richard Henderson  <rth@redhat.com>
4563
4564         * dwarf2cfi.c (lookup_cfa): Remove.
4565         (execute_dwarf2_frame): Assert queues are empty on entry.
4566         Setup initial cfa directly, not via lookup_cfa.
4567         Don't clear args_size state here.
4568
4569 2011-07-09  Richard Henderson  <rth@redhat.com>
4570
4571         * dwarf2cfi.c (add_cfi_vec): New.
4572         (add_cfi): Rename from add_fde_cfi.  Add the element to add_cfi_vec.
4573         (def_cfa_1, reg_save): Remove for_cie argument.  Update all callers.
4574         (execute_dwarf2_frame): Set add_cfi_vec.
4575
4576 2011-07-09  Richard Henderson  <rth@redhat.com>
4577
4578         * defaults.h (ASM_COMMENT_START): Move here...
4579         * dwarf2asm.c: ... from here.
4580         * dwarf2out.c, final.c, vmsdbgout.c: Remove duplicates.
4581         * toplev.c: Remove ifndef tests of ASM_COMMENT_START.
4582         * varasm.c: Likewise.
4583
4584 2011-07-09  Richard Henderson  <rth@redhat.com>
4585
4586         PR debug/49686
4587         * dwarf2cfi.c (dwarf2out_frame_debug): Don't set cfi_insn here...
4588         (create_cfi_notes): ... do it here instead.
4589
4590 2011-07-09  Jakub Jelinek  <jakub@redhat.com>
4591
4592         PR debug/49676
4593         * dwarf2out.c (size_of_int_loc_descriptor): New function.
4594         (address_of_int_loc_descriptor): Use it.
4595         (scompare_loc_descriptor): Optimize EQ/NE comparison with constant.
4596
4597 2011-07-09  Richard Henderson  <rth@redhat.com>
4598
4599         * config/pdp11/pdp11.md (define_c_enum "unspecv"): New.
4600         (prologue, epilogue): New.
4601         (return, *rts): New.
4602         (blockage, setd, seti): New.
4603         * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
4604         (TARGET_ASM_FUNCTION_EPILOGUE): Remove.
4605         (pdp11_saved_regno): New.
4606         (pdp11_expand_prologue): Rename from pdp11_output_function_prologue;
4607         generate rtl instead of text.
4608         (pdp11_expand_epilogue): Similarly from pdp11_output_function_epilogue.
4609         (pdp11_sp_frame_offset): Export.  Use pdp11_saved_regno.
4610         * config/pdp11/pdp11-protos.h: Update.
4611
4612 2011-07-09  Richard Henderson  <rth@redhat.com>
4613
4614         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
4615         try to insert an rtl prologue here.
4616         (rs6000_output_function_epilogue): Similarly.
4617         * config/rs6000/rs6000.md (prologue): Emit a barrier to
4618         satisfy !TARGET_SCHED_PROLOG.
4619         (epilogue, sibcall_epilogue): Likewise.
4620
4621 2011-07-09  Eric Botcazou  <ebotcazou@adacore.com>
4622
4623         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Move around.
4624         (FP_REG_P): Delete.
4625         (IN_OR_GLOBAL_P): Likewise.
4626
4627 2011-07-08  Jason Merrill  <jason@redhat.com>
4628
4629         PR c++/45437
4630         * gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in
4631         compound assignment.
4632
4633         * cgraph.c (cgraph_add_to_same_comdat_group): New.
4634         * cgraph.h: Declare it.
4635         * ipa.c (function_and_variable_visibility): Make sure thunks
4636         have the right visibility.
4637
4638 2011-07-08  Richard Henderson  <rth@redhat.com>
4639
4640         PR bootstrap/49680
4641         * dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after
4642         any tablejump vector.
4643
4644         PR bootstrap/49680
4645         * dwarf2cfi.c (create_cfi_notes): Flush queued saves at the
4646         end of the prologue.
4647
4648 2011-07-08  Jakub Jelinek  <jakub@redhat.com>
4649
4650         PR target/49621
4651         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use
4652         CONST0_RTX (dest_mode) instead of const0_rtx as second operand of NE.
4653         * config/rs6000/vector.md (vector_select_<mode>,
4654         vector_select_<mode>_uns): Change second operand of NE to
4655         CONST0_RTX (<MODE>mode) instead of const0_rtx.
4656         * config/rs6000/altivec.md (*altivec_vsel<mode>,
4657         *altivec_vsel<mode>_uns): Expect second operand of NE to be
4658         zero_constant of the corresponding vector mode.
4659         * config/rs6000/vsx.md (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns):
4660         Likewise.
4661
4662 2011-07-08  Sebastian Pop  <sebastian.pop@amd.com>
4663
4664         * graphite-dependences.c (build_alias_set_powerset): Remove
4665         continue from loop, add one more assert.
4666
4667 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
4668
4669         PR target/46779
4670         * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
4671         In particular, allow 8-bit values in r28 and r29.
4672         (avr_hard_regno_scratch_ok): Disallow any register that might be
4673         part of the frame pointer.
4674         (avr_hard_regno_rename_ok): Same.
4675         (avr_legitimate_address_p): Don't allow SUBREGs.
4676
4677 2011-07-08  Julian Brown  <julian@codesourcery.com>
4678
4679         * config/arm/neon.md (vec_shr_<mode>, vec_shl_<mode>): Disable in
4680         big-endian mode.
4681         (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_smin_<mode>)
4682         (reduc_smax_<mode>, reduc_umin_<mode>, reduc_umax_<mode>)
4683         (neon_vec_unpack<US>_lo_<mode>, neon_vec_unpack<US>_hi_<mode>)
4684         (vec_unpack<US>_hi_<mode>, vec_unpack<US>_lo_<mode>)
4685         (neon_vec_<US>mult_lo_<mode>, vec_widen_<US>mult_lo_<mode>)
4686         (neon_vec_<US>mult_hi_<mode>, vec_widen_<US>mult_hi_<mode>)
4687         (vec_pack_trunc_<mode>, neon_vec_pack_trunc_<mode>): Disable for Q
4688         registers in big-endian mode.
4689
4690 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
4691
4692         * genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined
4693         in terms of another.
4694         (write_attr_value): Write a cast if necessary.
4695
4696         * defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default.
4697         * doc/tm.texi.in (WORDS_BIG_ENDIAN): Mention REG_WORDS_BIG_ENDIAN.
4698         (REG_WORDS_BIG_ENDIAN): Document.
4699         * doc/tm.texi: Regenerate.
4700         * reload.c (operands_match_p): Take it into account.
4701         (reload_adjust_reg_for_mode): Likewise.
4702         * rtlanal.c (subreg_get_info): Likewise.
4703
4704 2011-07-08  Richard Guenther  <rguenther@suse.de>
4705
4706         * fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index
4707         folding.
4708
4709 2011-07-08  Kai Tietz  <ktietz@redhat.com>
4710
4711         * fold-const.c (fold_truth_andor): Factored out truth_andor
4712         label from fold_binary as function.
4713         (fold_binary_loc): Replace truth_andor lable
4714         by function fold_truth_andor.
4715
4716 2011-07-08  Kirill Yukhin  <kirill.yukhin@intel.com>
4717
4718         PR middle-end/49519
4719         * calls.c (mem_overlaps_already_clobbered_arg_p): Additional
4720         check if address is stored in register. If so - give up.
4721         (check_sibcall_argument_overlap_1): Do not perform check of
4722         overlapping when it is call to address.
4723
4724 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
4725
4726         * config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead
4727         of magic '31'.
4728
4729 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
4730
4731         * optabs.c (expand_binop): Use GET_MODE_PRECISION instead of
4732         GET_MODE_BITSIZE where appropriate.
4733         (widen_leading, expand_parity, expand_ctz, expand_ffs,
4734         expand_unop, expand_abs_nojump, expand_one_cmpl_abs_nojump,
4735         expand_float, expand_fix): Likewise.
4736         * expr.c (convert_move, convert_modes, expand_expr_real_2,
4737         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
4738         * stor-layout.c (get_mode_bounds): Likewise.
4739         * cfgexpand.c (convert_debug_memory_address, expand_debug_expr):
4740         Likewise.
4741         * convert.c (convert_to_integer): Likewise.
4742         * expmed.c (expand_shift_1): Likewise.
4743
4744         * rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against
4745         a bitsize.
4746
4747         * optabs.c (expand_binop): Tighten conditions for doubleword
4748         expansions.
4749         (widen_bswap): Assert that mode bitsize and precision are the same.
4750         * stor-layout.c (get_best_mode): Skip modes that have lower
4751         precision than bitsize.
4752         * recog.c (simplify_while_replacing): Assert that bitsize and
4753         precision are the same.
4754
4755 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4756
4757         * Makefile.in (LIBGCOV): Remove.
4758         (libgcc.mvars): Remove LIBGCOV.
4759         * libgov.c: Move to ../libgcc.
4760
4761 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4762
4763         * config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc.
4764
4765 2011-07-08  Martin Jambor  <mjambor@suse.cz>
4766
4767         * tree-sra.c (analyze_all_variable_accesses): Dump that a struture
4768         is too big for total scalarization.
4769
4770 2011-07-07  Richard Henderson  <rth@redhat.com>
4771
4772         * config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef.
4773         (DBX_DEBUGGING_INFO): Undef.
4774
4775 2011-07-07  Richard Henderson  <rth@redhat.com>
4776
4777         * dwarf2out.c (output_cfi_directive): Export.  Add FILE parameter.
4778         Handle some opcodes specially for debugging.
4779         * print-rtl.c: Include dwarf2out.h
4780         (print_rtx): Handle NOTE_INSN_CFI.
4781         * Makefile.in (print-rtl.o): Update.
4782
4783 2011-07-07  Richard Henderson  <rth@redhat.com>
4784
4785         * tree-pass.h (pass_dwarf2_frame): Declare.
4786         * passes.c (init_optimization_passes): Add it.
4787         * dwarf2cfi.c (dwarf2out_frame_debug): Make static.
4788         (create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue;
4789         make static, do not call add_cfis_to_fde.
4790         (dwarf2out_frame_debug_init, dwarf2cfi_function_init,
4791         dwarf2out_frame_init): Merge into...
4792         (execute_dwarf2_frame): ... here.  New function.
4793         (dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean.  Change
4794         saved_do_cfi_asm to a tri-state variable.
4795         (gate_dwarf2_frame, pass_dwarf2_frame): New.
4796         * dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde
4797         if it has yet to be done.  Don't call dwarf2cfi_function_init.
4798         * dwarf2out.h, debug.h: Update decls.
4799         * final.c (final_start_function): Don't call
4800         dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue.
4801         * lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init.
4802         * toplev.c (lang_dependent_init): Likewise.
4803
4804 2011-07-07  Richard Henderson  <rth@redhat.com>
4805
4806         * dwarf2out.c (fde_table, fde_table_allocated, fde_table_in_use,
4807         FDE_TABLE_INCREMENT): Replace with...
4808         (fde_vec): ... this, a new vector.
4809         (current_fde): Remove.  Replace all users with cfun->fde.
4810         (output_call_frame_info): Use FOR_EACH_VEC_ELT over fde_vec.
4811         (size_of_aranges, dwarf2out_finish): Likewise.
4812         (dwarf2out_alloc_current_fde): Break out from ...
4813         (dwarf2out_begin_prologue): ... here.
4814         (dwarf2out_frame_init): Remove.
4815         * dwarf2cfi.c: Update all users of current_fde.
4816         (dwarf2out_frame_init): Rename from dwarf2cfi_frame_init.
4817         * dwarf2out.h: Update decls.
4818         (dw_fde_node): Add fde_index member.
4819         * function.h (struct function): Add fde member.
4820
4821 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
4822             Richard Henderson  <rth@redhat.com>
4823
4824         * dwarf2cfi.c (add_cfi): Remove.
4825         (dwarf2out_cfi_label): Remove force argument.  Only generate the
4826         label name.
4827         (add_fde_cfi): Simplify the different code paths.
4828         (add_cie_cfi): New.
4829         (old_cfa, old_cfa_remember): New.
4830         (def_cfa_1, reg_save): Remove label, add for_cie parameter.
4831         (last_reg_save_label): Remove.
4832         (dwarf2out_args_size, dwarf2out_stack_adjust, queue_reg_save,
4833         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
4834         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
4835         dwarf2out_frame_debug_cfa_expression,
4836         dwarf2out_frame_debug_cfa_restore,
4837         dwarf2out_frame_debug_cfa_window_save,
4838         dwarf2out_frame_debug_expr): Remove label parameter.
4839         (cfi_label_required_p, add_cfis_to_fde): New.
4840         (dwarf2out_frame_debug_after_prologue): New.
4841         (dwarf2cfi_frame_init): Initialize old_cfa.
4842         (dwarf2out_frame_debug_restore_state): Likewise.
4843         * dwarf2out.c (dwarf2out_emit_cfi): Only do output for cfi_asm.
4844         (dwarf2out_switch_text_section): Don't clear dw_fde_current_label here.
4845         * final.c (final_start_function): Call
4846         dwarf2out_frame_debug_after_prologue.
4847
4848 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
4849             Richard Henderson  <rth@redhat.com>
4850
4851         * dwarf2cfi.c (cfi_insn): New.
4852         (dwarf2out_cfi_label): Don't emit cfi label here.
4853         (add_fde_cfi): Create a NOTE_INSN_CFI.
4854         (dwarf2out_frame_debug): Setup cfi_insn.
4855         (dwarf2out_frame_debug_init): Loop over insns creating CFI notes.
4856         (dwarf2out_cfi_begin_epilogue): Make static.
4857         (dwarf2out_frame_debug_restore_state): Make static.
4858         * dwarf2out.c (output_cfi_directive): Make static.
4859         (dwarf2out_emit_cfi): New.
4860         * dwarf2out.h: Update.
4861         * final.c (final): Remove CFI notes.
4862         (final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue,
4863         dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug.
4864         Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL.
4865         * insn-notes.def (NOTE_INSN_CFI): New.
4866         (NOTE_INSN_CFI_LABEL): New.
4867         * rtl.h (union rtunion_def): Add rt_cfi member.
4868         (XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New.
4869
4870 2011-07-07  Richard Henderson  <rth@redhat.com>
4871
4872         * dwarf2cfi.c: New file.
4873         * Makefile.in (OBJS): Add it.
4874         (GTFILES): Add dwarf2cfi.c and dwarf2out.h.
4875         * gengtype.c (open_base_files): Include dwarf2out.h.
4876         * coretypes.h (enum var_init_status): Move from ...
4877         * rtl.h: ... here.
4878         * dwarf2out.c (saved_do_cfi_asm, dwarf2out_do_frame,
4879         dwarf2out_do_cfi_asm, cie_cfi_vec, dwarf2out_cfi_label_num,
4880         expand_builtin_dwarf_sp_column, init_return_column_size,
4881         expand_builtin_init_dwarf_reg_sizes, new_cfi, add_cfi,
4882         dwarf2out_cfi_label, emit_cfa_remember, any_cfis_emitted, add_fde_cfi,
4883         lookup_cfa_1, lookup_cfa, cfa, cfa_store, cfa_remember, args_size,
4884         old_args_size, cfa_equal_p, def_cfa_1, reg_save, initial_return_save,
4885         stack_adjust_offset, barrier_args_size, compute_barrier_args_size_1,
4886         compute_barrier_args_size, dwarf2out_args_size,
4887         dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust,
4888         queued_reg_saves, reg_saved_in_data, regs_saved_in_regs,
4889         compare_reg_or_pc, record_reg_saved_in_reg, last_reg_save_label,
4890         queue_reg_save, dwarf2out_flush_queued_reg_saves,
4891         clobbers_queued_reg_save, reg_saved_in, cfa_temp,
4892         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
4893         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
4894         dwarf2out_frame_debug_cfa_expression,
4895         dwarf2out_frame_debug_cfa_restore,
4896         dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr,
4897         dwarf2out_frame_debug, dwarf2out_frame_debug_init,
4898         dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state,
4899         get_cfa_from_loc_descr): Move to dwarf2cfi.c.
4900         (dw_cfi_ref, dw_fde_ref, dw_cfi_oprnd_ref, enum dw_cfi_oprnd_type,
4901         dw_cfi_oprnd, dw_cfi_node, cfi_vec, dw_cfa_location, dw_fde_node,
4902         dw_val_ref, dw_die_ref, const_dw_die_ref, dw_loc_descr_ref,
4903         dw_loc_list_ref, enum dw_val_class, dw_vec_const, dw_val_node,
4904         dw_loc_descr_node): Move to dwarf2out.h.
4905         (current_fde, output_cfi_directive, build_cfa_loc, get_address_mode,
4906         mem_loc_descriptor): Export.
4907         (build_cfa_aligned_loc): Export.  Take CFA as a parameter.
4908         (dwarf2out_frame_init): Extract CIE generation code to
4909         dwarf2cfi_frame_init.
4910
4911 2011-07-07  Eric Botcazou  <ebotcazou@adacore.com>
4912
4913         PR target/49660
4914         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add
4915         MASK_V8PLUS, remove commented out flag and reorder.
4916
4917 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
4918
4919         PR c/49644
4920         * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
4921         one non-complex and one complex argument, call c_save_expr on both
4922         operands.
4923
4924 2011-07-07  Martin Jambor  <mjambor@suse.cz>
4925
4926         PR middle-end/49495
4927         * cgraphunit.c (verify_edge_corresponds_to_fndecl): New function.
4928         (verify_cgraph_node): Some functinality moved to
4929         verify_edge_corresponds_to_fndecl, call it.
4930
4931 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
4932
4933         * config.gcc (*local*): Remove.
4934         * doc/install-old.texi: Don't mention local configurations.
4935
4936 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
4937
4938         PR debug/49522
4939         * df-problems.c (dead_debug_reset): Remove dead_debug_uses
4940         referencing debug insns that have been reset.
4941         (dead_debug_insert_before): Don't assert reg is non-NULL,
4942         instead return immediately if it is NULL.
4943
4944 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
4945
4946         * config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa: Remove.
4947
4948 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
4949
4950         * hw-doloop.c: New file.
4951         * hw-doloop.h: New file.
4952         * Makefile.in (OBJS): Add hw-doloop.o.
4953         (hw-doloop.o): New rule.
4954         ($(obj_out_file)): Add hw-doloop.h dependency.
4955         * config/bfin/bfin.c: Include "hw-doloop.h".
4956         (loop_info, DEF_VEC_P for loop_info, loop_info_d): Remove.
4957         (bfin_dump_loops, bfin_bb_in_loop, bfin_scan_loop): Remove.
4958         (hwloop_optimize): Renamed from bfin_optimize_loop.  Argument
4959         type changed to hwloop_info.  Return bool, true if the loop was
4960         successfully optimized.  Remove code that was moved to
4961         hw-doloop.c, and adjust other parts.
4962         (hwloop_fail): New static function, containing parts that used
4963         to be in bfin_optimize_loop.
4964         (bfin_discover_loop, bfin_discover_loops, free_loops,
4965         bfin_reorder_loops): Remove.
4966         (hwloop_pattern_reg): New static function.
4967         (bfin_doloop_hooks): New variable.
4968         (bfin_reorg_loops): Remove most code, call reorg_loops.
4969         * config/bfin/bfin.md (doloop_end splitter): Also enable if
4970         loop counter is a memory_operand.
4971
4972 2011-07-07  H.J. Lu  <hongjiu.lu@intel.com>
4973
4974         * config.gcc: Support --with-multilib-list for x86 Linux targets.
4975
4976         * configure.ac: Mention x86-64 for --with-multilib-list.
4977         * configure: Regenerated.
4978
4979         * config/i386/gnu-user64.h (SPEC_64): Support x32.
4980         (SPEC_32): Likewise.
4981         (ASM_SPEC): Likewise.
4982         (LINK_SPEC): Likewise.
4983         (TARGET_THREAD_SSP_OFFSET): Likewise.
4984         (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise.
4985         (SPEC_X32): New.
4986
4987         * config/i386/i386.h (TARGET_X32): New.
4988         (TARGET_LP64): New.
4989         (LONG_TYPE_SIZE): Likewise.
4990         (POINTER_SIZE): Likewise.
4991         (POINTERS_EXTEND_UNSIGNED): Likewise.
4992         (OPT_ARCH64): Support x32.
4993         (OPT_ARCH32): Likewise.
4994
4995         * config/i386/i386.opt (mx32): New.
4996
4997         * config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New.
4998         (GLIBC_DYNAMIC_LINKERX32): Likewise.
4999         * config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise.
5000         (GLIBC_DYNAMIC_LINKERX32): Likewise.
5001
5002         * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New.
5003         (BIONIC_DYNAMIC_LINKERX32): Likewise.
5004         (GNU_USER_DYNAMIC_LINKERX32): Likewise.
5005
5006         * config/i386/t-linux64: Support TM_MULTILIB_CONFIG.
5007
5008         * doc/install.texi: Document --with-multilib-list for Linux/x86-64.
5009
5010         * doc/invoke.texi: Document -mx32.
5011
5012 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
5013
5014         * doc/invoke.texi (mwords-little-endian): Deprecate.
5015         * config/arm/arm.opt (mwords-little-endian): Likewise.
5016         * config/arm/arm.c (arm_option_override): Warn about the deprecation
5017         of -mwords-little-endian.
5018
5019 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
5020
5021         * reload1.c (choose_reload_regs): Use mode sizes to check whether
5022         an old reload register completely defines the required value.
5023
5024 2011-07-07  Richard Guenther  <rguenther@suse.de>
5025
5026         * fold-const.c (fold_unary_loc): Do not strip sign-changes
5027         for NEGATE_EXPR.
5028
5029 2011-07-07  Richard Guenther  <rguenther@suse.de>
5030
5031         * tree-vrp.c (simplify_conversion_using_ranges): New function.
5032         (simplify_stmt_using_ranges): Call it.
5033
5034 2011-07-07  Kai Tietz  <ktietz@redhat.com>
5035
5036         * tree-ssa-forwprop.c (truth_valued_ssa_name): New function.
5037         (lookup_logical_inverted_value): Likewise.
5038         (simplify_bitwise_binary_1): Likewise.
5039         (simplify_bitwise_binary): Use simplify_bitwise_binary_1.
5040
5041 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
5042
5043         * gcc.c (%[Spec]): Don't document.
5044         (struct spec_list): Update comment.
5045         (do_spec_1): Don't handle %[Spec].
5046         * doc/invoke.texi (%[@var{name}]): Remove documentation of spec.
5047
5048 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
5049
5050         * common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't
5051         default based on TARGET_ASM_NAMED_SECTION.
5052         * common/common-target.def (have_named_sections): Default to true.
5053         * common/config/default-common.c: Don't include tm.h.
5054         * common/config/picochip/picochip-common.c
5055         (TARGET_HAVE_NAMED_SECTIONS): Don't define.
5056         * common/config/m32c/m32c-common.c: Remove.
5057         * config.gcc (m32c*-*-*): Set target_has_targetm_common=no.
5058         * config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
5059         * config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
5060         * config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
5061         * config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
5062         * config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
5063         * config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
5064
5065 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
5066
5067         PR middle-end/49640
5068         * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF operands
5069         and last COMPONENT_REF operand call gimplify_expr on it if non-NULL.
5070
5071 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5072
5073         PR libmudflap/49550
5074         * gcc.c (MFWRAP_SPEC): Also wrap mmap64.
5075
5076 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5077
5078         PR target/39150
5079         * configure.ac (gcc_cv_as_hidden): Also accept
5080         x86_64-*-solaris2.1[0-9]*.
5081         (gcc_cv_as_cfi_directive): Likewise.
5082         (gcc_cv_as_comdat_group_group): Likewise.
5083         (set_have_as_tls): Likewise.
5084         * configure: Regenerate.
5085         * config.gcc (i[34567]86-*-solaris2*): Also handle
5086         x86_64-*-solaris2.1[0-9]*.
5087         * config.host (i[34567]86-*-solaris2*): Likewise.
5088         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
5089         * config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine.
5090         [USE_GLD] (ARCH_DEFAULT_EMULATION): Define.
5091         (TARGET_LD_EMULATION): Use it.
5092         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define.
5093         (SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default.
5094         * config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define.
5095         (ASM_CPU64_DEFAULT_SPEC): Define.
5096         (ASM_CPU_SPEC): Use %(asm_cpu_default).
5097         (ASM_SPEC): Redefine.
5098         (DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT.
5099         * config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce.
5100         * doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*): Document.
5101         (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]*
5102         configuration.
5103         (Specific, x86_64-*-solaris2.1[0-9]*): Document.
5104
5105 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5106
5107         * config/sol2.h (ASM_SPEC): Split into ...
5108         (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this.
5109         * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE.
5110         * config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine.
5111         (ASM_SPEC): Use ASM_SPEC_BASE.
5112         * config/sparc/sol2.h (ASM_SPEC): Redefine.
5113
5114 2011-07-07  Georg-Johann Lay  <avr@gjlay.de>
5115
5116         * config/avr/avr.md (*reload_insi): Change predicate #1 to
5117         const_int_operand.  Ditto for peep2 producing this insn.
5118         Add argument to output_reload_insisf call.
5119         (*movsi,*movsf): Add argument to output_movsisf call.
5120         (*reload_insf): New insn and new peep2 to produce it.
5121         * config/avr/avr-protos.h (output_movsisf): Change prototype.
5122         (output_reload_insisf): Change prototype.
5123         * config/avr/avr.c (avr_asm_len): New function.
5124         (output_reload_insisf): Rewrite.
5125         (output_movsisf): Change prototype.  output_reload_insisf for
5126         all CONST_INT and CONST_DOUBLE.  ALlow moving 0.0f to memory.
5127         (adjust_insn_length): Add argument to output_movsisf and
5128         output_reload_insisf call.
5129
5130 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
5131
5132         * emit-rtl.c (paradoxical_subreg_p): New function.
5133         * rtl.h (paradoxical_subreg_p): Declare.
5134         * combine.c (set_nonzero_bits_and_sign_copies, get_last_value,
5135         apply_distributive_law, simplify_comparison, simplify_set): Use it.
5136         * cse.c (record_jump_cond, cse_insn): Likewise.
5137         * expr.c (force_operand): Likewise.
5138         * rtlanal.c (num_sign_bit_copies1): Likewise.
5139         * reload1.c (eliminate_regs_1, strip_paradoxical_subreg): Likewise.
5140         * reload.c (push_secondary_reload, find_reloads_toplev): Likewise.
5141         (push_reload): Use precision to check for paradoxical subregs.
5142         * expmed.c (extract_bit_field_1): Likewise.
5143
5144         * machmode.h (HWI_COMPUTABLE_MODE_P): New macro.
5145         * combine.c (set_nonzero_bits_and_sign_copies): Use it.
5146         (find_split-point, combine_simplify_rtx, simplify_if_then_else,
5147         simplify_set, simplify_logical, expand_compound_operation,
5148         make_extraction, force_to_mode, if_then_else_cond, extended_count,
5149         try_widen_shift_mode, simplify_shift_const_1, simplify_comparison,
5150         record_value_for_reg): Likewise.
5151         * expmed.c (expand_widening_mult, expand_mult_highpart): Likewise.
5152         * simplify-rtx. c (simplify_unary_operation_1,
5153         simplify_binary_operation_1, simplify_const_relational_operation):
5154         Likewise.
5155
5156         * explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION
5157         instead of GET_MODE_BITSIZE where appropriate.
5158         * rtlanal.c (subreg_lsb_1, subreg_get_info, nonzero_bits1,
5159         num_sign_bit_copies1, canonicalize_condition, low_bitmask_len,
5160         init_num_sign_bit_copies_in_rep): Likewise.
5161         * cse.c (fold_rtx, cse_insn): Likewise.
5162         * loop-doloop.c (doloop_modify, doloop_optimize): Likewise.
5163         * simplify-rtx.c (simplify_unary_operation_1,
5164         simplify_const_unary_operation, simplify_binary_operation_1,
5165         simplify_const_binary_operation, simplify_ternary_operation,
5166         simplify_const_relational_operation, simplify_subreg): Likewise.
5167         * combine.c (try_combine, find_split_point, combine_simplify_rtx,
5168         simplify_if_then_else, simplify_set, expand_compound_operation,
5169         expand_field_assignment, make_extraction, if_then_else_cond,
5170         make_compound_operation, force_to_mode, make_field_assignment,
5171         reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine,
5172         extended_count, try_widen_shift_mode, simplify_shift_const_1,
5173         simplify_comparison, record_promoted_value, simplify_compare_const,
5174         record_dead_and_set_regs_1): Likewise.
5175
5176         Revert:
5177         * simplify-rtx.c (simplify_const_binary_operation): Use the
5178         shift_truncation_mask hook instead of performing modulo by width.
5179         Compare against mode precision, not bitsize.
5180         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
5181         Use shift_truncation_mask instead of constructing the value manually.
5182
5183 2011-07-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
5184
5185         * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): New
5186         declaration.
5187         (rs6000_save_toc_in_prologue_p): Ditto.
5188
5189         * config/rs6000/rs6000.opt (-mr11): New switch to disable loading
5190         up the static chain (r11) during indirect function calls.
5191         (-msave-toc-indirect): New undocumented debug switch.
5192
5193         * config/rs6000/rs6000.c (struct machine_function): Add
5194         save_toc_in_prologue field to note whether the prologue needs to
5195         save the TOC value in the reserved stack location.
5196         (rs6000_emit_prologue): Use TOC_REGNUM instead of 2.  If we need
5197         to save the TOC in the prologue, do so.
5198         (rs6000_trampoline_init): Don't allow creating AIX style
5199         trampolines if -mno-r11 is in effect.
5200         (rs6000_call_indirect_aix): New function to create AIX style
5201         indirect calls, adding support for -mno-r11 to suppress loading
5202         the static chain, and saving the TOC in the prologue instead of
5203         the call body.
5204         (rs6000_save_toc_in_prologue_p): Return true if we are saving the
5205         TOC in the prologue.
5206
5207         * config/rs6000/rs6000.md (STACK_POINTER_REGNUM): Add more fixed
5208         register numbers.
5209         (TOC_REGNUM): Ditto.
5210         (STATIC_CHAIN_REGNUM): Ditto.
5211         (ARG_POINTER_REGNUM): Ditto.
5212         (SFP_REGNO): Delete, unused.
5213         (TOC_SAVE_OFFSET_32BIT): Add constants for AIX TOC save and
5214         function descriptor offsets.
5215         (TOC_SAVE_OFFSET_64BIT): Ditto.
5216         (AIX_FUNC_DESC_TOC_32BIT): Ditto.
5217         (AIX_FUNC_DESC_TOC_64BIT): Ditto.
5218         (AIX_FUNC_DESC_SC_32BIT): Ditto.
5219         (AIX_FUNC_DESC_SC_64BIT): Ditto.
5220         (ptrload): New mode attribute for the appropriate load of a pointer.
5221         (call_indirect_aix32): Delete, rewrite AIX indirect function calls.
5222         (call_indirect_aix64): Ditto.
5223         (call_value_indirect_aix32): Ditto.
5224         (call_value_indirect_aix64): Ditto.
5225         (call_indirect_nonlocal_aix32_internal): Ditto.
5226         (call_indirect_nonlocal_aix32): Ditto.
5227         (call_indirect_nonlocal_aix64_internal): Ditto.
5228         (call_indirect_nonlocal_aix64): Ditto.
5229         (call): Rewrite AIX indirect function calls.  Add support for
5230         eliminating the static chain, and for moving the save of the TOC
5231         to the function prologue.
5232         (call_value): Ditto.
5233         (call_indirect_aix<ptrsize>): Ditto.
5234         (call_indirect_aix<ptrsize>_internal): Ditto.
5235         (call_indirect_aix<ptrsize>_internal2): Ditto.
5236         (call_indirect_aix<ptrsize>_nor11): Ditto.
5237         (call_value_indirect_aix<ptrsize>): Ditto.
5238         (call_value_indirect_aix<ptrsize>_internal): Ditto.
5239         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
5240         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
5241         (call_nonlocal_aix32): Relocate in the rs6000.md file.
5242         (call_nonlocal_aix64): Ditto.
5243
5244         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mr11 and
5245         -mno-r11 documentation.
5246
5247 2011-07-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
5248
5249         PR other/49658
5250         * doc/extend.texi (Compound Literals): Fix typo.
5251
5252 2011-07-06  James Greenhalgh  <james.greenhalgh@arm.com>
5253
5254         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add __ARM_FEATURE_DSP.
5255
5256 2011-07-06  Basile Starynkevitch  <basile@starynkevitch.net>
5257
5258         * configure.ac (plugin-version.h): Generate
5259         GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR,
5260         GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer
5261         macros.
5262
5263         * configure: Regenerate.
5264
5265         * doc/plugins.texi (Building GCC plugins): Mention
5266         GCCPLUGIN_VERSION ... constant macros in plugin-version.h.
5267
5268 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
5269
5270         * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro.
5271         * combine.c (make_extraction, gen_lowpart_or_truncate,
5272         apply_distributive_law, simplify_comparison,
5273         reg_truncated_to_mode, record_truncated_value): Use it.
5274         * cse.c (notreg_cost): Likewise.
5275         * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
5276         * expr.c (convert_move, convert_modes): Likewise.
5277         * optabs.c (expand_binop, expand_unop): Likewise.
5278         * postreload.c (move2add_last_label): Likewise.
5279         * regmove.c (optimize_reg_copy_3): Likewise.
5280         * rtlhooks.c (gen_lowpart_general): Likewise.
5281         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
5282
5283 2011-07-06  Joseph Myers  <joseph@codesourcery.com>
5284
5285         * config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define.
5286
5287 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
5288
5289         * cse.c (find_comparison_args): Use val_mode_signbit_set_p.
5290         * simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION.
5291         (val_mode_signbit_p, val_mode_signbit_set_p): New functions.
5292         (simplify_const_unary_operation, simplify_binary_operation_1,
5293         simplify_const_binary_operation, simplify_const_relational_operation):
5294         Use them.  Use GET_MODE_MASK for masking and sign-extensions.
5295         * combine.c (set_nonzero_bits_and_sign_copies, simplify_set,
5296         combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine,
5297         simplify_shift_const_1, simplify_comparison): Likewise.
5298         * expr.c (convert_modes): Likewise.
5299         * rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise.
5300         * expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag): Likewise.
5301         * rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare.
5302
5303         * simplify-rtx.c (simplify_ternary_operation): Remove dead code.
5304
5305 2011-07-06  Richard Guenther  <rguenther@suse.de>
5306
5307         PR tree-optimization/49645
5308         * c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global
5309         register variables.
5310         * tree-ssa-sccvn.c (vn_reference_op_eq): Disregard differences
5311         in type qualification here ...
5312         (copy_reference_ops_from_ref): ... not here.
5313         (vn_reference_lookup_3): ... or here.
5314         (copy_reference_ops_from_ref): Record decl bases as MEM[&decl].
5315         (vn_reference_lookup): Do the lookup with a valueized ao-ref.
5316
5317 2011-07-06  Ian Lance Taylor  <iant@google.com>
5318
5319         * doc/install.texi (Configuration): It's
5320         --enable-gnu-indirect-function, not --enable-indirect-function.
5321
5322 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
5323
5324         * simplify-rtx.c (simplify_const_binary_operation): Use the
5325         shift_truncation_mask hook instead of performing modulo by width.
5326         Compare against mode precision, not bitsize.
5327         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
5328         Use shift_truncation_mask instead of constructing the value manually.
5329
5330 2011-07-06  H.J. Lu  <hongjiu.lu@intel.com>
5331
5332         PR middle-end/47383
5333         * tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for
5334         address computation and convert to address_mode if needed.
5335
5336 2011-07-06  Richard Guenther  <rguenther@suse.de>
5337
5338         * tree.c (build_common_tree_nodes_2): Merge with
5339         build_common_tree_nodes.
5340         * tree.h (build_common_tree_nodes): Adjust prototype.
5341         (build_common_tree_nodes_2): Remove.
5342         * doc/tm.texi.in (lang_hooks.builtin_function): Adjust.
5343         * doc/tm.texi (lang_hooks.builtin_function): Regenerate.
5344
5345 2011-07-05  Jakub Jelinek  <jakub@redhat.com>
5346
5347         PR tree-optimization/49618
5348         * tree-eh.c (tree_could_trap_p) <case CALL_EXPR>: For DECL_WEAK
5349         t recurse on the decl.
5350         <case FUNCTION_DECL, case VAR_DECL>: For DECL_WEAK decls
5351         return true if expr isn't known to be defined in current
5352         TU or some other LTO partition.
5353
5354 2011-07-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
5355
5356         * params.def (PARAM_CASE_VALUES_THRESHOLD): New parameter to
5357         override CASE_VALUES_THRESHOLD.
5358
5359         * stmt.c (toplevel): Include params.h.
5360         (case_values_threshold): Use the --param case-values-threshold
5361         value if non-zero, otherwise use machine dependent value.
5362         (expand_case): Use case_values_threshold.
5363
5364         * Makefile.in (stmt.o): Add $(PARAMS_H) dependency.
5365
5366         * doc/invoke.texi (--param case-values-threshold): Document.
5367
5368 2011-07-05  Richard Henderson  <rth@redhat.com>
5369
5370         * dwarf2out.c (dwarf2out_cfi_label): Make static.
5371         (dwarf2out_flush_queued_reg_saves): Make static.
5372         (dwarf2out_reg_save): Remove.
5373         (dwarf2out_return_save): Remove.
5374         (dwarf2out_return_reg): Remove.
5375         (dwarf2out_reg_save_reg): Remove.
5376         (dwarf2out_def_cfa): Merge into ...
5377         (dwarf2out_frame_init): ... here.
5378         * dwarf2out.h, tree.h: Remove declarations as necessary.
5379
5380 2011-07-05  Richard Henderson  <rth@redhat.com>
5381
5382         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): Remove.
5383         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
5384         (ia64_expand_epilogue): Emit an empty FRAME_RELATED_EXPR for
5385         the alloc insn.
5386
5387         * config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove.
5388         (IA64_CHANGE_CFA_IN_EPILOGUE): Remove.
5389         (process_epilogue): Don't call dwarf2out_def_cfa.
5390
5391         * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to
5392         indicate the return address save.
5393         (process_cfa_register): Likewise.
5394
5395         * config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove.
5396         (process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it.
5397
5398         * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER
5399         for ar.pfs save at alloc insn.
5400
5401 2011-07-05  Richard Henderson  <rth@redhat.com>
5402
5403         * config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove.
5404         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
5405         (arm_expand_prologue): Use REG_CFA_REGISTER to mark the
5406         stack pointer save.
5407         (arm_unwind_emit_set): Don't recognize UNSPEC_STACK_ALIGN.
5408         (arm_unwind_emit): Walk REG_NOTES for unwinding notes.  Emit
5409         proper unwind info for a REG_CFA_REGISTER save of stack pointer.
5410         * config/arm/arm.md (UNSPEC_STACK_ALIGN): Remove.
5411
5412 2011-07-05  Richard Henderson  <rth@redhat.com>
5413
5414         * config/vax/vax.md (define_c_enum unspecv): New.  Define the
5415         VUNSPEC_* constants here instead of via define_constants.
5416         (VUNSPEC_PEM): New constant.
5417         (procedure_entry_mask): New insn.
5418         (prologue): New expander.
5419         * config/vax/vax.c (vax_add_reg_cfa_offset): New.
5420         (vax_expand_prologue): Rename from vax_output_function_prologue;
5421         emit rtl instead of text.
5422         (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
5423         (print_operand): Add 'x' prefix.
5424
5425 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
5426
5427         PR middle-end/47715
5428         * calls.c (precompute_register_parameters): Promote the function
5429         argument before checking non-legitimate constant.
5430
5431 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
5432
5433         PR tree-optimization/47654
5434         * graphite-blocking.c (pbb_strip_mine_time_depth): Do not return bool.
5435         (lst_do_strip_mine_loop): Return an int.
5436         (lst_do_strip_mine): Same.
5437         (scop_do_strip_mine): Same.
5438         (scop_do_block): Loop blocking should strip-mine at least two loops.
5439         * graphite-interchange.c (lst_interchange_select_outer): Return an int.
5440         (scop_do_interchange): Same.
5441         * graphite-poly.h (scop_do_interchange): Update declaration.
5442         (scop_do_strip_mine): Same.
5443
5444 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
5445
5446         * graphite-clast-to-gimple.c (precision_for_value): Removed.
5447         (precision_for_interval): Removed.
5448         (gcc_type_for_interval): Use mpz_sizeinbase.
5449
5450 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
5451
5452         * graphite-ppl.h (value_max): Correct computation of max.
5453
5454 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
5455
5456         * graphite-clast-to-gimple.c (clast_name_to_index): Add missing space.
5457
5458 2011-07-05  Richard Guenther  <rguenther@suse.de>
5459
5460         * c-decl.c (c_init_decl_processing): Defer building common
5461         tree nodes to c_common_nodes_and_builtins.
5462
5463 2011-07-05  Razya Ladelsky  <razya@il.ibm.com>
5464
5465         PR tree-optimization/49580
5466         * tree-cfg.c (gimple_duplicate_sese_tail): Remove handling of
5467         the loop's number of iterations.
5468         * tree-parloops.c (transform_to_exit_first_loop): Add the
5469         handling of the loop's number of iterations before the call
5470         to gimple_duplicate_sese_tail.
5471         Insert the stmt caclculating the new rhs of the loop's
5472         condition stmt to the preheader instead of iters_bb.
5473
5474 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
5475
5476         PR rtl-optimization/47449
5477         * fwprop.c (forward_propagate_subreg): Don't propagate hard
5478         register nor zero/sign extended hard register.
5479
5480 2011-07-05  Richard Guenther  <rguenther@suse.de>
5481
5482         PR tree-optimization/49518
5483         PR tree-optimization/49628
5484         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Skip
5485         irrelevant and invariant data-references.
5486         (vect_analyze_data_ref_access): For invariant loads clear the
5487         group association.
5488
5489 2011-07-04  Jakub Jelinek  <jakub@redhat.com>
5490
5491         PR rtl-optimization/49619
5492         * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification
5493         pass VOIDmode as op0_mode to recursive call, and return temp even
5494         when different from tor, just if it is not IOR of the original
5495         PLUS arguments.
5496
5497         PR rtl-optimization/49472
5498         * simplify-rtx.c (simplify_unary_operation_1) <case NEG>: When
5499         negating MULT, negate the second operand instead of first.
5500         (simplify_binary_operation_1) <case MULT>: If one operand is
5501         a NEG and the other is MULT, don't attempt to optimize by negation
5502         of the MULT operand if it only moves the NEG operation around.
5503
5504         PR debug/49602
5505         * tree-into-ssa.c (rewrite_debug_stmt_uses): Disregard
5506         get_current_def return value if it can't be trusted to be
5507         the current value of the variable in the current bb.
5508
5509 2011-07-04  Uros Bizjak  <ubizjak@gmail.com>
5510
5511         PR target/49600
5512         * config/i386/i386.md (SSE2 int->float split): Push operand 1 in
5513         general register to memory for !TARGET_INTER_UNIT_MOVES.
5514
5515 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
5516
5517         PR target/44643
5518         * config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY
5519         instead of TREE_READONLY.
5520
5521 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
5522
5523         * doc/extend.texi (AVR Built-in Functions): Update documentation
5524         of __builtin_avr_fmul*.
5525         * config/avr/avr.c (avr_init_builtins): Don't depend on AVR_HAVE_MUL.
5526         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Ditto.
5527         * config/avr/avr.md (fmul): Rename to fmul_insn.
5528         (fmuls): Rename to fmuls_insn.
5529         (fmulsu): Rename to fmulsu_insn.
5530         (fmul,fmuls,fmulsu): New expander.
5531         (*fmul.call,*fmuls.call,*fmulsu.call): New Insn.
5532         * config/avr/t-avr (LIB1ASMFUNCS): Add _fmul, _fmuls, _fmulsu.
5533         * config/avr/libgcc.S (__fmul): New function.
5534         (__fmuls): New function.
5535         (__fmulsu,__fmulsu_exit): New function.
5536
5537 2011-07-04  Richard Guenther  <rguenther@suse.de>
5538
5539         PR tree-optimization/49615
5540         * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix
5541         basic-block index check.
5542
5543 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
5544
5545         * longlong.h (count_leading_zeros, count_trailing_zeros,
5546         COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16
5547         resp. 64.
5548
5549 2011-07-03  Ira Rosen  <ira.rosen@linaro.org>
5550
5551         PR tree-optimization/49610
5552         * tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has
5553         a basic block.
5554
5555 2011-07-02  Eric Botcazou  <ebotcazou@adacore.com>
5556             Olivier Hainque  <hainque@adacore.com>
5557             Nicolas Setton  <setton@adacore.com>
5558
5559         * tree.h (TYPE_ARTIFICIAL): New flag.
5560         * dwarf2out.c (modified_type_die): Add a DW_AT_artificial attribute to
5561         the DIE of the type if it is artificial.
5562         (gen_array_type_die): Likewise.
5563         (gen_enumeration_type_die): Likewise.
5564         (gen_struct_or_union_type_die): Likewise.
5565         * lto-streamer-in.c (unpack_ts_base_value_fields): Use TYPE_ARTIFICIAL.
5566         * lto-streamer-out.c (pack_ts_base_value_fields): Likewise.
5567
5568 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
5569
5570         * tree-object-size.c (pass_through_call): Handle
5571         BUILT_IN_ASSUME_ALIGNED.
5572
5573 2011-07-01  Martin Jambor  <mjambor@suse.cz>
5574
5575         * tree-sra.c (tree_non_mode_aligned_mem_p): Also ignore MEM_REFs.
5576
5577 2011-07-01  H.J. Lu  <hongjiu.lu@intel.com>
5578
5579         PR middle-end/48016
5580         * explow.c (update_nonlocal_goto_save_area): Use proper mode
5581         for stack save area.
5582         * function.c (expand_function_start): Likewise.
5583
5584 2011-07-01  Richard Guenther  <rguenther@suse.de>
5585
5586         PR middle-end/49596
5587         * cgraph.h (varpool_all_refs_explicit_p): Not analyzed nodes
5588         may have unknown refs.
5589
5590 2011-07-01  Kai Tietz  <ktietz@redhat.com>
5591
5592         * tree-ssa-forwprop.c (simplify_bitwise_binary): Fix typo.
5593
5594 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5595
5596         * config.gcc: Obsolete alpha*-dec-osf5.1, mips-sgi-irix6.5.
5597         * doc/install.texi (Specific, alpha*-dec-osf5.1): Document it.
5598         (Specific, mips-sgi-irix6): Likewise.
5599
5600 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5601
5602         PR libmudflap/49549
5603         * doc/sourcebuild.texi (Effective-Target Keywords): Document gld.
5604
5605 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
5606
5607         * tree-pretty-print.c (dump_generic_code) <case CONSTRUCTOR>: Print
5608         [idx]= and [idx1 ... idx2]= before initializers if needed for
5609         array initializers.
5610
5611 2011-07-01  Chen Liqin  <liqin.gcc@gmail.com>
5612
5613         * config.gcc (score-*-elf): Remove score7.o.
5614         * config/score/t-score-elf: Likewise.
5615         * config/score/score.c: Merge score7 to score.c and
5616         remove forwarding functions.
5617         * config/score/score7.c: Deleted.
5618         * config/score/score7.h: Deleted.
5619
5620 2011-07-01  Richard Guenther  <rguenther@suse.de>
5621
5622         PR tree-optimization/49603
5623         * tree-vect-stmts.c (vectorizable_load): Remove unnecessary assert.
5624
5625 2011-06-30  Martin Jambor  <mjambor@suse.cz>
5626
5627         * tree-sra.c (struct access): Rename total_scalarization to
5628         grp_total_scalarization
5629         (completely_scalarize_var): New function.
5630         (sort_and_splice_var_accesses): Set total_scalarization in the
5631         representative access.
5632         (analyze_access_subtree): Propagate total scalarization accross the
5633         tree, no holes in totally scalarized trees, simplify coverage
5634         computation.
5635         (analyze_all_variable_accesses): Call completely_scalarize_var instead
5636         of completely_scalarize_record.
5637
5638 2011-06-30  Richard Henderson  <rth@redhat.com>
5639
5640         * config/i386/i386.h (X86_TUNE_DEEP_BRANCH_PREDICTION): Remove.
5641         (TARGET_DEEP_BRANCH_PREDICTION): Remove.
5642         * config/i386/i386.c: Don't include dwarf2out.h.
5643         (initial_ix86_tune_features): Remove X86_TUNE_DEEP_BRANCH_PREDICTION.
5644         (output_set_got): Don't test TARGET_DEEP_BRANCH_PREDICTION, delete
5645         all code dead thereafter.  Don't do dwarf2out_flush_queued_reg_saves.
5646         (ix86_expand_prologue): Set REG_CFA_FLUSH_QUEUE on set_got insn.
5647         (machopic_output_stub): Don't test TARGET_DEEP_BRANCH_PREDICTION.
5648
5649 2011-06-30  Richard Henderson  <rth@redhat.com>
5650
5651         * reg-notes.def (REG_CFA_FLUSH_QUEUE): New.
5652         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
5653         * final.c (final_scan_insn): Look for it, and invoke
5654         dwarf2out_frame_debug before the insn if found.
5655
5656 2011-06-30  Richard Henderson  <rth@redhat.com>
5657
5658         * dwarf2out.c (dwarf2out_frame_debug_cfa_offset): Allow PC_RTX
5659         as a source, and interpret that as DWARF_FRAME_RETURN_COLUMN.
5660
5661 2011-06-30  Richard Henderson  <rth@redhat.com>
5662
5663         * dwarf2out.c (struct reg_saved_in_data): Provide a typedef.
5664         Define a vector of this type.
5665         (regs_saved_in_regs): Use a VEC.
5666         (num_regs_saved_in_regs): Remove.
5667         (compare_reg_or_pc): New.
5668         (record_reg_saved_in_reg): Split out from...
5669         (dwarf2out_flush_queued_reg_saves): ... here.
5670         (clobbers_queued_reg_save): Update for VEC.
5671         (reg_saved_in): Likewise.
5672         (dwarf2out_frame_debug_init): Likewise.
5673         (dwarf2out_reg_save_reg): Use record_reg_saved_in_reg.
5674         (dwarf2out_frame_debug_cfa_register): Likewise.
5675
5676 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
5677
5678         PR tree-optimization/49572
5679         * tree-ssa-dom.c (initialize_hash_element) <GIMPLE_SINGLE_RHS>: Use the
5680         type of the RHS instead of that of the LHS for the expression type.
5681
5682 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
5683
5684         * df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro
5685         unconditionally.
5686
5687 2011-06-30  Richard Guenther  <rguenther@suse.de>
5688
5689         * opts.c (finish_options): Do not disable IPA-PTA during ltrans.
5690         * tree-ssa-structalias.c (create_variable_info_for): Do not
5691         add initial constraints for non-var-decls.  Properly handle
5692         globals in other ltrans partitions.
5693         (intra_create_variable_infos): Manually create constraints for
5694         the fake no-alias parameter.
5695         (ipa_pta_execute): Dump the cgraph, handle ltrans partitions properly
5696         and assert there are no clones.
5697
5698 2011-06-30  Richard Guenther  <rguenther@suse.de>
5699
5700         PR tree-optimization/46787
5701         * tree-data-ref.c (dr_address_invariant_p): Remove.
5702         (find_data_references_in_stmt): Invariant accesses are ok now.
5703         * tree-vect-stmts.c (vectorizable_load): Handle invariant loads.
5704         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
5705         invariant loads.
5706
5707 2011-06-30  Martin Jambor  <mjambor@suse.cz>
5708
5709         PR tree-optimization/49094
5710         * tree-sra.c (tree_non_mode_aligned_mem_p): New function.
5711         (build_accesses_from_assign): Use it.
5712
5713 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
5714
5715         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
5716         handling of BUILT_IN_ASSUME_ALIGNED.
5717
5718         PR debug/49364
5719         * dwarf2out.c (output_abbrev_section): Don't return early
5720         if abbrev_die_table_in_use is 1.
5721         (dwarf2out_finish): Instead don't call output_abbrev_section
5722         nor emit abbrev_section_label in that case.
5723
5724 2011-06-30  Nick Clifton  <nickc@redhat.com>
5725
5726         * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling
5727         for the V850E.
5728
5729 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
5730
5731         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
5732         handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK.
5733
5734 2011-06-30  Ira Rosen  <ira.rosen@linaro.org>
5735
5736         * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
5737         both pattern and original statements if necessary.
5738         (vect_transform_loop): Likewise.
5739         * tree-vect-patterns.c (vect_pattern_recog): Update documentation.
5740         * tree-vect-stmts.c (vect_mark_relevant): Add new argument.
5741         Mark the pattern statement only if the original statement doesn't
5742         have its own uses.
5743         (process_use): Call vect_mark_relevant with additional parameter.
5744         (vect_mark_stmts_to_be_vectorized): Likewise.
5745         (vect_get_vec_def_for_operand): Use vectorized pattern statement.
5746         (vect_analyze_stmt): Handle both pattern and original statements
5747         if necessary.
5748         (vect_transform_stmt): Don't store vectorized pattern statement
5749         in the original statement.
5750         (vect_is_simple_use_1): Use related pattern statement only if the
5751         original statement is irrelevant.
5752         * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
5753
5754 2011-06-29  Changpeng Fang  <changpeng.fang@amd.com>
5755
5756         * config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask
5757         option.
5758         * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL
5759         entry.
5760         (TARGET_AVX128_OPTIMAL): New definition.
5761         * config/i386/i386.c (initial_ix86_tune_features): Initialize
5762         X86_TUNE_AVX128_OPTIMAL entry.
5763         (ix86_option_override_internal): Enable the generation
5764         of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set.
5765         (ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128.
5766         (ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128.
5767
5768 2011-06-29  Eric Botcazou  <ebotcazou@adacore.com>
5769
5770         PR tree-optimization/49539
5771         * tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA
5772         names by means of stmt_references_abnormal_ssa_name.
5773         (associate_plusminus): Call can_propagate_from before propagating
5774         from definition statements.
5775         (ssa_forward_propagate_and_combine): Remove superfluous newline.
5776
5777 2011-06-29  Richard Guenther  <rguenther@suse.de>
5778
5779         * doc/invoke.texi: Document -scev dump modifier.
5780         * tree-pass.h (TDF_SCEV): New dump flag.
5781         * tree-dump.c (dump_option_value_in): Add scev.
5782         * tree-chrec.c: Replace all TDF_DETAILS checks with TDF_SCEV.
5783         * tree-scalar-evolution.c: Likewise.
5784
5785 2011-06-29  Nathan Sidwell  <nathan@codesourcery.com>
5786
5787         * config/arm/unwind-arm.c (enum __cxa_type_match_result): New.
5788         (cxa_type_match): Correct declaration.
5789         (__gnu_unwind_pr_common): Reconstruct additional indirection
5790         when __cxa_type_match returns succeeded_with_ptr_to_base.
5791
5792 2011-06-29  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5793
5794         PR rtl-optimization/49114
5795         * reload.c (struct replacement): Remove SUBREG_LOC member.
5796         (push_reload): Do not set it.
5797         (push_replacement): Likewise.
5798         (subst_reload): Remove dead code.
5799         (copy_replacements): Remove assertion.
5800         (copy_replacements_1): Do not handle SUBREG_LOC.
5801         (move_replacements): Likewise.
5802         (find_replacement): Remove dead code.  Use reload_adjust_reg_for_mode.
5803         Detect subregs via recursive descent instead of via SUBREG_LOC.
5804
5805 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
5806
5807         * config/avr/avr.c (avr_encode_section_info): Dispatch to
5808         default_encode_section_info.
5809
5810 2011-06-29  Richard Sandiford  <richard.sandiford@linaro.org>
5811
5812         PR tree-optimization/49545
5813         * builtins.c (get_object_alignment_1): Update function comment.
5814         Do not use DECL_ALIGN for functions, but test
5815         TARGET_PTRMEMFUNC_VBIT_LOCATION instead.
5816         * fold-const.c (get_pointer_modulus_and_residue): Don't check
5817         for functions here.
5818         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
5819
5820 2011-06-29  Jakub Jelinek  <jakub@redhat.com>
5821
5822         PR debug/49567
5823         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up for
5824         non-MODE_INT modes instead of asserting the mode has MODE_INT class.
5825
5826 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
5827
5828         PR target/34734
5829         * config/avr/avr.c (avr_handle_progmem_attribute): Move warning
5830         about uninitialized data attributed 'progmem' from here...
5831         (avr_encode_section_info): ...to this new function.
5832         (TARGET_ENCODE_SECTION_INFO): New define.
5833         (avr_section_type_flags): For data in ".progmem.data", remove
5834         section flag SECTION_WRITE.
5835
5836 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
5837
5838         * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3,
5839         _xmulhisi3_exit.
5840         * config/avr/libgcc.S (_xmulhisi3_exit): New Function.
5841         (__mulhisi3): Optimize if have MUL*.  Use XJMP instead of rjmp.
5842         (__umulhisi3): Ditto.
5843         * config/avr/avr.md (mulhisi3): New insn expender.
5844         (umulhisi3): New insn expender.
5845         (*mulhisi3_call): New insn.
5846         (*umulhisi3_call): New insn.
5847
5848 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
5849
5850         * Makefile.in (LIBGCC2_CFLAGS): Remove -D__GCC_FLOAT_NOT_NEEDED.
5851
5852 2011-06-28  Richard Henderson  <rth@redhat.com>
5853
5854         * config/arm/arm.c (thumb_pop): Rename from thumb_pushpop.  Delete
5855         all code and arguments that handled pushes.  Update all callers.
5856
5857 2011-06-28  Richard Henderson  <rth@redhat.com>
5858
5859         * config/arm/arm.c (arm_output_function_prologue): Don't call
5860         thumb1_output_function_prologue.
5861         (arm_expand_prologue): Avoid dead store.
5862         (number_of_first_bit_set): Use ctz_hwi.
5863         (thumb1_emit_multi_reg_push): New.
5864         (thumb1_expand_prologue): Merge thumb1_output_function_prologue
5865         to emit the entire prologue as rtl.
5866         (thumb1_output_interwork): Split out from
5867         thumb1_output_function_prologue.
5868         (thumb1_output_function_prologue): Remove.
5869         (arm_attr_length_push_multi): Handle thumb1.
5870         * config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New.
5871         (prologue_thumb1_interwork): New.
5872         (*push_multi): Allow thumb1; use push_mult_memory_operand.
5873         * config/arm/predicates.md (push_mult_memory_operand): New.
5874
5875 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
5876
5877         * config/sparc/sync.md (*stbar): Delete.
5878         (*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8.
5879
5880 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
5881
5882         * tree-ssa-dom.c (initialize_hash_element): Fix oversight.
5883
5884 2011-06-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5885
5886         * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove.
5887         (TARGET_64BIT_DEFAULT): Define.
5888         * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front
5889         of tm_file.
5890         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define.
5891
5892 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
5893
5894         * common.opt (in_lto_p): New Variable entry.
5895         * flags.h (in_lto_p): Move to common.opt.
5896         * gcc.c: Include params.h.
5897         (set_option_handlers): Also use common_handle_option and
5898         target_handle_option.
5899         (main): Call global_init_params, finish_params and init_options_struct.
5900         * opts.c (debug_type_names): Move from toplev.c.
5901         (print_filtered_help): Access quiet_flag through opts pointer.
5902         (common_handle_option): Return early in the driver for some options.
5903         Access in_lto_p, dwarf_version and warn_maybe_uninitialized through
5904         opts pointer.
5905         * toplev.c (in_lto_p): Move to common.opt.
5906         (debug_type_names): Move to opts.c.
5907         * Makefile.in (OBJS): Remove opts.o.
5908         (OBJS-libcommon-target): Add opts.o.
5909         (gcc.o): Update dependencies.
5910
5911 2011-06-28  Kai Tietz  <ktietz@redhat.com>
5912
5913         * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve type sinking.
5914
5915 2011-06-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5916
5917         * config/arm/vfp.md ("*divsf3_vfp"): Replace '+' constraint modifier
5918         with '=' constraint modifier.
5919         (*divdf3_vfp): Likewise.
5920         ("*mulsf3_vfp"): Likewise.
5921         ("*muldf3_vfp"): Likewise.
5922         ("*mulsf3negsf_vfp"): Likewise.
5923         ("*muldf3negdf_vfp"): Likewise.
5924
5925 2011-06-28  Nick Clifton  <nickc@redhat.com>
5926
5927         * config/mn10300/mn10300.h (LINK_SPEC): Do not use linker
5928         relaxation when performing an incremental link.
5929
5930 2011-06-28  Kai Tietz  <ktietz@redhat.com>
5931
5932         * tree-ssa-math-opts.c (execute_optimize_bswap): Search
5933         within BB from last to first.
5934
5935 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
5936
5937         * genattr-common.c: New.  Based on genattr.c.
5938         * Makefile.in (INSN_ATTR_H): Include insn-attr-common.h.
5939         (MOSTLYCLEANFILES): Add insn-attr-common.h.
5940         (opts.o): Update dependencies.
5941         (.PRECIOUS): Add insn-attr-common.h.
5942         (simple_rtl_generated_h): Add insn-attr-common.h.
5943         (build/genattr-common.o): New.
5944         (genprogrtl): Add attr-common.
5945         * genattr.c (main): Include insn-attr-common.h.  Don't generate
5946         definitions of DELAY_SLOTS or INSN_SCHEDULING.
5947         * opts.c: Include insn-attr-common.h instead of rtl.h and insn-attr.h.
5948
5949 2011-06-28  Georg-Johann Lay  <avr@gjlay.de>
5950
5951         * config.gcc (tm_file): Add elfos.h and avr/elf.h for
5952         avr-*-* and avr-*-rtems* targets.
5953
5954         * config/avr/elf.h: New file.
5955         (ASM_OUTPUT_BEFORE_CASE_LABEL): Define.
5956         (TARGET_ASM_SELECT_SECTION): Define.
5957         (INIT_SECTION_ASM_OP): Undefine.
5958         (FINI_SECTION_ASM_OP): Undefine.
5959         (READONLY_DATA_SECTION_ASM_OP): Undefine.
5960         (PCC_BITFIELD_TYPE_MATTERS): Undefine.
5961         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine.
5962         * config/avr/avr.h:
5963         (PREFERRED_DEBUGGING_TYPE): Move to elf.h.
5964         (TARGET_ASM_NAMED_SECTION): Move to elf.h.
5965         (MAX_OFILE_ALIGNMENT): Move to elf.h.
5966         (STRING_LIMIT): Move to elf.h.
5967         (ASM_DECLARE_FUNCTION_NAME): Move to elf.h.
5968         (ASM_DECLARE_OBJECT_NAME): Remove.
5969         (ESCAPES): Remove.
5970         (ASM_OUTPUT_SKIP): Remove.
5971         (DWARF2_DEBUGGING_INFO): Remove.
5972         (OBJECT_FORMAT_ELF): Remove.
5973         (USER_LABEL_PREFIX): Remove.
5974         (ASM_OUTPUT_EXTERNAL): Remove.
5975         (ASM_OUTPUT_ASCII): Remove.
5976         (TYPE_ASM_OP): Remove.
5977         (SIZE_ASM_OP): Remove.
5978         (WEAK_ASM_OP): Remove.
5979         (STRING_ASM_OP): Remove.
5980         (SET_ASM_OP): Remove.
5981         (ASM_WEAKEN_LABEL): Remove.
5982         (TYPE_OPERAND_FMT): Remove.
5983         (ASM_DECLARE_FUNCTION_SIZE): Remove.
5984         (ASM_FINISH_DECLARE_OBJECT): Remove.
5985         (NO_DOLLAR_IN_LABEL): Remove.
5986         (ASM_GENERATE_INTERNAL_LABEL): Remove.
5987         (ASM_OUTPUT_CASE_LABEL): Remove.
5988         * config/avr/avr.c (avr_asm_output_aligned_decl_common): Use
5989         ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON.
5990         (gas_output_ascii): Remove.
5991         (gas_output_limited_string): Remove.
5992         (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
5993         * config/avr/avr-protos.h
5994         (gas_output_ascii): Remove prototye.
5995         (gas_output_limited_string): Remove prototype.
5996
5997 2011-06-27  Richard Earnshaw  <rearnsha@arm.com>
5998
5999         PR target/48637
6000         * arm.c (arm_print_operand): Allow sym+offset.  Don't abort on invalid
6001         asm operands.
6002
6003 2011-06-27  Jan Hubicka  <jh@suse.cz>
6004
6005         * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of
6006         node instead of references in node.
6007
6008 2011-06-27  Richard Henderson  <rth@redhat.com>
6009
6010         * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition.
6011         * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins
6012         inside ifdef.
6013
6014 2011-06-27  Jakub Jelinek  <jakub@redhat.com>
6015
6016         * c-decl.c (union lang_tree_node): Use it in chain_next expression.
6017
6018         * builtin-types.def (BT_FN_PTR_CONST_PTR_SIZE_VAR): New.
6019         * builtins.def (BUILT_IN_ASSUME_ALIGNED): New builtin.
6020         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
6021         find_func_clobbers): Handle BUILT_IN_ASSUME_ALIGNED.
6022         * tree-ssa-ccp.c (bit_value_assume_aligned): New function.
6023         (evaluate_stmt, execute_fold_all_builtins): Handle
6024         BUILT_IN_ASSUME_ALIGNED.
6025         * tree-ssa-dce.c (propagate_necessity): Likewise.
6026         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
6027         call_may_clobber_ref_p_1): Likewise.
6028         * builtins.c (is_simple_builtin, expand_builtin): Likewise.
6029         (expand_builtin_assume_aligned): New function.
6030         * doc/extend.texi (__builtin_assume_aligned): Document.
6031
6032         PR debug/49544
6033         * cselib.c (promote_debug_loc): If cselib_preserve_constants
6034         and l has two DEBUG_INSN owned locs instead of just one, adjust
6035         the second location's setting_insn too.
6036
6037 2011-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6038
6039         PR libmudflap/38738
6040         * config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define.
6041
6042 2011-06-27  Nick Clifton  <nickc@redhat.com>
6043
6044         * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to convert
6045         bit position of highest bit set into a count of the high zero bits.
6046
6047 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
6048
6049         * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types.
6050
6051 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
6052
6053         PR lto/48492
6054         * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list
6055         to a NULL parent.
6056
6057 2011-06-27  Richard Guenther  <rguenther@suse.de>
6058
6059         PR tree-optimization/49394
6060         * passes.c (execute_one_pass): Restore current_pass after
6061         applying IPA transforms.
6062
6063 2011-06-27  Kai Tietz  <ktietz@redhat.com>
6064
6065         * tree-ssa-math-opts.c (do_shift_rotate): Zero bits
6066         out of type precision after operation.
6067         (find_bswap): Take for limit value the integer auto-promotion
6068         into account.
6069
6070 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
6071
6072         * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the
6073         forward scan as well.
6074
6075 2011-06-27  Tristan Gingold  <gingold@adacore.com>
6076
6077         PR target/44241
6078         * config/vms/vms-protos.h: New file.
6079         * config/vms/vms-crtlmap.map: New file.
6080         * config/vms/vms.c: New file.
6081         * config/vms/make-crtlmap.awk: New file.
6082         * config/vms/vms-crtl.h: File removed.
6083         * config/vms/vms-crtl-64.h: File removed.
6084         * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets.
6085         * config/alpha/vms64.h: Do not include vms-crtl-64.h
6086         * config/alpha/alpha.c (alpha_init_builtins): Remove code to
6087         clear some builtins on VMS.  Calls vms_patch_builtins.
6088         (avms_asm_output_external): Remove.
6089         * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove.
6090         (struct crtl_name_spec): Remove
6091         (DO_CTRL_NAMES): Remove.
6092         * config/ia64/vms.h (struct crtl_name_spec): Remove
6093         (DO_CTRL_NAMES): Remove.
6094         * config/ia64/ia64.c (alpha_init_builtins): Remove code to
6095         clear some builtins on VMS.  Calls vms_patch_builtins.
6096         (ia64_asm_output_external): Remove DO_CRTL_NAME.
6097         * config/ia64/vms64.h: Do not include vms-crtl-64.h
6098         * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, tm_p_file.
6099
6100 2011-06-27  Tristan Gingold  <gingold@adacore.com>
6101
6102         * config/alpha/alpha.c (alpha_end_function): Always generate .end
6103         directive on VMS.
6104
6105 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
6106
6107         * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if
6108         the function receives nonlocal gotos.
6109
6110 2011-06-27  Richard Guenther  <rguenther@suse.de>
6111
6112         PR tree-optimization/49536
6113         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
6114         For non-scalar inner types use a scalar type according to
6115         the scalar inner mode.
6116
6117 2011-06-27  Richard Guenther  <rguenther@suse.de>
6118
6119         PR tree-optimization/49365
6120         * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9.
6121
6122 2011-06-27  Richard Guenther  <rguenther@suse.de>
6123
6124         PR tree-optimization/49169
6125         * fold-const.c (get_pointer_modulus_and_residue): Don't rely on
6126         the alignment of function decls.
6127
6128 2011-06-26  Iain Sandoe  <iains@gcc.gnu.org>
6129
6130         PR target/47997
6131         * config/darwin.c (darwin_mergeable_string_section): Place string
6132         constants in '.cstring' rather than '.const' when CF/NSStrings are
6133         active.
6134
6135 2011-06-26  Eric Botcazou  <ebotcazou@adacore.com>
6136
6137         * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment.
6138         (emit_save_register_window): Likewise.
6139         (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables.
6140         (sparc_flat_expand_prologue): Add comment.  Always emit blockage.
6141         Swap back %o7/%i7 in register naming.
6142
6143 2011-06-25  Iain Sandoe  <iains@gcc.gnu.org>
6144
6145         PR driver/49371
6146         * config/darwin.c (darwin_override_options): Improve warning when
6147         mdynamic-no-pic is given together with fPIC/fpic, also warn when it
6148         is given with fpie/fPIE.
6149         * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC.
6150         * config/darwin9.h (PIE_SPEC): New.
6151
6152 2011-06-25  Basile Starynkevitch  <basile@starynkevitch.net>
6153
6154         * timevar.c (timevar_print): Increase width for display of timevar
6155         name.
6156
6157 2011-06-24  Jakub Jelinek  <jakub@redhat.com>
6158
6159         PR c++/46400
6160         * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
6161         instead of TYPE_CHAIN for chain_next for types.
6162
6163 2011-06-24  Richard Henderson  <rth@redhat.com>
6164
6165         * config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove.
6166         (create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove.
6167         * config/sparc/sparc.c (gen_create_flat_frame_1): Remove.
6168         (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove.
6169         (sparc_flat_expand_prologue): Emit individual instructions
6170         instead of one of the above.
6171
6172 2011-06-24  Easwaran Raman  <eraman@google.com>
6173
6174         PR rtl-optimization/49429
6175         PR target/49454
6176         * expr.c (emit_block_move_hints):  Mark MEM_EXPR(x) and
6177         MEM_EXPR(y) addressable if emit_block_move_via_libcall is
6178         used to copy y into x.
6179         * calls.c (initialize_argument_information): Mark
6180         an argument addressable if it is passed by invisible reference.
6181         (emit_library_call_value_1): Mark  MEM_EXPR (val) addressable
6182         if it is passed by reference.
6183
6184 2011-06-24  H.J. Lu  <hongjiu.lu@intel.com>
6185
6186         PR rtl-optimization/49504
6187         * rtlanal.c (nonzero_bits1): Properly handle addition or
6188         subtraction of a pointer in Pmode if pointers extend unsigned.
6189         (num_sign_bit_copies1): Likewise.
6190
6191 2011-06-24  Martin Jambor  <mjambor@suse.cz>
6192
6193         PR tree-optimizations/49516
6194         * tree-sra.c (sra_modify_assign): Choose the safe path for
6195         aggregate copies if we also did scalar replacements.
6196
6197 2011-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
6198
6199         PR target/49335
6200         * config/arm/predicates.md (add_operator): New.
6201         * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage in Thumb2.
6202
6203 2011-06-24  Andi Kleen  <ak@linux.intel.com>
6204
6205         * tree-sra.c (type_internals_preclude_sra_p): Add msg
6206         parameter. Split up ifs and report reason in *msg.
6207         (reject): Add.
6208         (find_var_candiate): Add msg variable.
6209         Split up ifs and report reason to reject.
6210         (find_param_candidates): Add msg variable.
6211         Pass msg to type_internals_preclude_sra_p.
6212
6213 2011-06-23  Jeff Law  <law@redhat.com>
6214
6215         PR middle-end/48770
6216         * reload.h (reload): Change to return a bool.
6217         * ira.c (ira): If requested by reload, run a fast DCE pass after
6218         reload has completed.  Fix comment typo.
6219         * reload1.c (need_dce): New file scoped static.
6220         (reload): Set reload_completed here.  Return whether or not a DCE
6221         pass after reload is needed.
6222         (delete_dead_insn): Set need_dce as needed.
6223
6224         PR middle-end/49465
6225         * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition
6226         to detect threading through joiner block.  If there was already
6227         an edge to the new target, then do not change the PHI nodes.
6228
6229 2011-06-23  Jakub Jelinek  <jakub@redhat.com>
6230
6231         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
6232         get_pointer_alignment to see if base isn't sufficiently aligned.
6233
6234 2011-06-23  Jan Hubicka  <jh@suse.cz>
6235
6236         PR tree-optimize/49373
6237         * tree-pass.h (all_late_ipa_passes): Declare.
6238         * cgraphunit.c (init_lowered_empty_function): Fix properties.
6239         (cgraph_optimize): Execute late passes; remove unreachable funcions
6240         after materialization.
6241         * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or
6242         LTOing.
6243         * passes.c (all_late_ipa_passes): Declare.
6244         (dump_passes, register_pass): Handle late ipa passes.
6245         (init_optimization_passes): Move ipa_pta to late passes; schedule
6246         fixup_cfg at beggining of all_passes.
6247         (apply_ipa_transforms): New function.
6248         (execute_one_pass): When doing simple ipa pass, apply all transforms.
6249
6250 2011-06-23  Joseph Myers  <joseph@codesourcery.com>
6251
6252         * params.c: Include common/common-target.h.  Don't include tm.h.
6253         (lang_independent_params): Move from toplev.c.
6254         (global_init_params): New.
6255         * params.h (global_init_params): Declare.
6256         * target.def (default_params): Move to common-target.def.
6257         * toplev.c (lang_independent_options): Remove.
6258         (lang_independent_params): Move to params.c.
6259         (general_init): Use global_init_params.
6260         * common/common-target.def (option_default_params): Move from
6261         target.def.
6262         * common/config/ia64/ia64-common.c: Include params.h.
6263         (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
6264         from ia64.c.
6265         * common/config/rs6000/rs6000-common.c: Include params.h.
6266         (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
6267         from rs6000.c.
6268         * common/config/sh/sh-common.c: Include params.h.
6269         (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
6270         from sh.c.
6271         * common/config/spu/spu-common.c: Include params.h.
6272         (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
6273         from spu.c.
6274         * config/ia64/ia64.c (ia64_option_default_params,
6275         TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c.
6276         * config/rs6000/rs6000.c (rs6000_option_default_params,
6277         TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c.
6278         * config/sh/sh.c (sh_option_default_params,
6279         TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c.
6280         * config/spu/spu.c (spu_option_default_params,
6281         TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c.
6282         * Makefile.in (OBJS): Remove params.o.
6283         (OBJS-libcommon-target): Add params.o.
6284         (params.o, $(common_out_object_file)): Update dependencies.
6285         * doc/tm.texi: Regenerate.
6286
6287 2011-06-23  Alan Modra  <amodra@gmail.com>
6288
6289         PR bootstrap/49383
6290         * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
6291         invocation for 2011-06-09 changes.
6292
6293 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
6294
6295         PR libgomp/49490
6296         * omp-low.c (expand_omp_for_static_nochunk): Only
6297         use n ceil/ nthreads size for the first n % nthreads threads in the
6298         team instead of all threads except for the last few ones which
6299         get less work or none at all.
6300
6301         PR debug/49496
6302         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
6303         uses.
6304
6305 2011-06-22  Richard Guenther  <rguenther@suse.de>
6306
6307         PR tree-optimization/49493
6308         * tree-ssa-structalias.c (get_constraint_for_ssa_var):
6309         Refer to the alias target of variables.
6310         (associate_varinfo_to_alias_1): Remove.
6311         (ipa_pta_execute): Do not associate aliases with anything.
6312         * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors.
6313         (cgraph_function_node): Likewise.
6314         (cgraph_function_or_thunk_node): Likewise.
6315         (varpool_variable_node): Likewise.
6316
6317 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
6318
6319         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect typo.
6320         * config.gcc (arm*-*-linux*): Default to gnu tls.
6321         (arm*-*-*): Add --with-tls option.
6322         (all_defaults): Add 'tls'.
6323
6324 2011-06-22  Richard Henderson  <rth@redhat.com>
6325
6326         * reg-notes.def (REG_CFA_WINDOW_SAVE): New.
6327         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
6328         (dwarf2out_frame_debug_cfa_window_save): Rename from
6329         dwarf2out_window_save; make static.
6330         * tree.h (dwarf2out_window_save): Don't declare.
6331
6332         * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove.
6333         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
6334         (emit_save_register_window): Rename from gen_save_register_window;
6335         emit the insn and add REG_CFA_* notes.
6336         (sparc_expand_prologue): Update to match.
6337         * config/sparc/sparc.md (save_register_window_1): Simplify from
6338         save_register_window<P:mode>.
6339
6340 2011-06-22  H.J. Lu  <hongjiu.lu@intel.com>
6341
6342         PR target/49497
6343         * config/i386/i386.md (*lea_general_2): Always allow SImode.
6344         (*lea_general_2_zext): Likewise.
6345         (imul to lea peepholes): Use const359_operand and check
6346         TARGET_PARTIAL_REG_STALL.
6347
6348         * config/i386/predicates.md (const359_operand): New.
6349
6350 2011-06-22  Michael Matz  <matz@suse.de>
6351
6352         * cgraphunit.c (assemble_thunk): Use correct return type.
6353
6354 2011-06-22  Dmitry Plotnikov  <dplotnikov@ispras.ru>
6355             Dmitry Melnik  <dm@ispras.ru>
6356
6357         * config/arm/arm.c (neon_immediate_valid_for_shift): New function.
6358         (neon_output_shift_immediate): Ditto.
6359         * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New
6360         prototype.
6361         (neon_output_shift_immediate): Ditto.
6362         * config/arm/neon.md (vashl<mode>3): Modified constraint.
6363         (vashr<mode>3_imm): New insn pattern.
6364         (vlshr<mode>3_imm): Ditto.
6365         (vashr<mode>3): Modified constraint.
6366         (vlshr<mode>3): Ditto.
6367         * config/arm/predicates.md (imm_for_neon_lshift_operand): New
6368         predicate.
6369         (imm_for_neon_rshift_operand): Ditto.
6370         (imm_lshift_or_reg_neon): Ditto.
6371         (imm_rshift_or_reg_neon): Ditto.
6372
6373         * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.
6374
6375 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
6376
6377         * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for
6378         builtin calls even if likelyvalue is not CONSTANT.
6379         Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC.
6380         Return get_value_for_expr of first operand
6381         for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}.
6382         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
6383         BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like
6384         their non-checking counterparts.
6385         (call_may_clobber_ref_p_1): Likewise.
6386         (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK
6387         like their non-checking counterparts.
6388         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
6389         Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK
6390         like their non-checking counterparts.
6391         (find_func_clobbers): Likewise.
6392         * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK
6393         like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC.
6394
6395         * dwarf2out.c (size_of_loc_descr, output_loc_operands,
6396         mark_base_types, hash_loc_operands, compare_loc_operands): Allow
6397         DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead
6398         of base type reference as argument.
6399         (resolve_addr_in_expr): Likewise.  Fix keep computation.
6400         (convert_descriptor_to_signed): Renamed to...
6401         (convert_descriptor_to_mode): ... this.  For wider types convert to
6402         unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to untyped.
6403         (typed_binop): New function.
6404         (scompare_loc_descriptor, ucompare_loc_descriptor,
6405         minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes
6406         default to unsigned type instead of signed.
6407
6408         PR debug/47858
6409         * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
6410         (gimple_build_debug_source_bind_stat): New prototype.
6411         (gimple_build_debug_source_bind): Define.
6412         (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
6413         gimple_debug_source_bind_get_value,
6414         gimple_debug_source_bind_get_value_ptr,
6415         gimple_debug_source_bind_set_var,
6416         gimple_debug_source_bind_set_value): New inlines.
6417         * gimple.c (gimple_build_debug_source_bind_stat): New function.
6418         * gimple-pretty-print.c (dump_gimple_debug): Handle
6419         GIMPLE_DEBUG_SOURCE_BIND.
6420         * sese.c (rename_uses): Handle gimple_debug_source_bind_p.
6421         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
6422         * tree-parloops.c (eliminate_local_variables,
6423         separate_decls_in_region): Likewise.
6424         (separate_decls_in_region_debug): Renamed from
6425         separate_decls_in_region_debug_bind.  Handle
6426         gimple_debug_source_bind_p.
6427         * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
6428         prototypes.
6429         (DECL_HAS_DEBUG_ARGS_P): Define.
6430         (struct tree_function_decl): Add has_debug_args_flag field.
6431         * tree.c (debug_args_for_decl): New variable.
6432         (decl_debug_args_lookup, decl_debug_args_insert): New functions.
6433         * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
6434         (rewrite_debug_stmt_uses): New function.
6435         (rewrite_stmt): Use it to rewrite debug stmt uses.
6436         * rtl.def (DEBUG_PARAMETER_REF): New.
6437         * rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
6438         * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
6439         DEBUG_PARAMETER_REF.
6440         * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
6441         * print-rtl.c (print_rtx): Likewise.
6442         * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
6443         SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
6444         debug stmts in the first bb.
6445         * tree-inline.c (remap_ssa_name): If remapping default def
6446         of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
6447         a source bind debug stmt.
6448         (remap_gimple_stmt): Handle gimple_debug_source_bind_p.
6449         (maybe_move_debug_stmts_to_successors): Likewise.
6450         (copy_debug_stmt): Likewise.  Avoid shadowing a variable.
6451         (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
6452         debug args vector from old_decl to new_decl.
6453         * ipa-prop.c (ipa_modify_call_arguments): For optimized away
6454         or modified parameters, add debug bind stmts before call
6455         setting DEBUG_EXPR_DECL which is remembered in debug args vector.
6456         * cfgexpand.c (expand_call_stmt): Call expand_debug_expr
6457         on DECL_DEBUG_EXPRs from debug args vector.
6458         (expand_debug_source_expr): New function.
6459         (expand_debug_locations): Use it for source bind insns.
6460         (expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
6461         * var-tracking.c (prepare_call_arguments): Add debug args
6462         to call_arguments if any.
6463         * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
6464         output_loc_operands, output_loc_operands_raw, resolve_addr_in_expr,
6465         compare_loc_operands): Handle DW_OP_GNU_parameter_ref.
6466         (get_ref_die_offset, parameter_ref_descriptor): New functions.
6467         (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
6468         (gen_subprogram_die): Handle parameters identified by
6469         DEBUG_PARAMETER_REF.
6470
6471 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
6472
6473         * doc/invoke.texi (ARM Options): Document -mtls-dialect option.
6474         * doc/install.texi (Configuration): Document --with-tls.
6475         * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ.
6476         (arm_call_tls_get_addr): Clean up. Assert not tls descriptor.
6477         (arm_tls_descseq_addr): New.
6478         (legitimize_tls_address): Add tlsdesc support.
6479         (arm_cannot_copy_insn_p): Check for tlscall.
6480         (arm_emit_tls_decoration): Likewise.
6481         * config/arm/arm.h (TARGET_GNU2_TLS): New.
6482         (OPTION_DEFAULT_SPECS): Add with-tls support.
6483         * config/arm/arm.md (R1_REGNUM): Define.
6484         (tlscall): New.
6485         * config/arm/arm.opt (tls_type): New enumeration type and values.
6486         (mtls-dialect): New switch.
6487         * config/arm/arm-opts.h (enum tls_type): New.
6488
6489 2011-06-21  Nicola Pero  <nicola.pero@meta-innovation.com>
6490
6491         * attribs.c (register_attribute): Added assert to check that all
6492         attribute specs are registered with a name that is not empty and
6493         does not start with '_'.
6494         (decl_attributes): Avoid the lookup of the "naked" attribute spec
6495         if the function has no attributes.
6496         * tree.c (is_attribute_with_length_p): Removed.
6497         (is_attribute_p): Removed.
6498         (private_is_attribute_p): New.
6499         (private_lookup_attribute): New.
6500         (lookup_attribute): Removed.
6501         (lookup_ident_attribute): New.
6502         (remove_attribute): Require the first argument to be in the form
6503         'text', not '__text__'.  Updated asserts.
6504         (merge_attributes): Use lookup_ident_attributes instead of
6505         lookup_attribute.
6506         (merge_dllimport_decl_attributes): Use remove_attribute.
6507         (attribute_list_contained): Likewise.
6508         (attribute_list_equal): Immediately return 1 if the arguments are
6509         identical pointers.
6510         * tree.h (is_attribute_p): Made inline.  Return a 'bool', not an
6511         'int'.  Require the first argument to be in the form 'text', not
6512         '__text__'.  Require the second argument to be an identifier.
6513         (lookup_attribute): Made inline.  Require the first argument to be
6514         in the form 'text', not '__text__'.
6515         (private_is_attribute_p, private_lookup_attribute): New.
6516         Updated comments.
6517
6518 2011-06-21  Andrew MacLeod  <amacleod@redhat.com>
6519
6520         * builtins.c: Add sync_ or SYNC__ to builtin names.
6521         * sync-builtins.def: Add sync_ or SYNC__ to builtin names.
6522         * omp-low.c: Add sync_ or SYNC__ to builtin names.
6523
6524 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
6525
6526         PR target/33049
6527         * config/avr/avr.md (extzv): New expander.
6528         (*extzv): New insn.
6529         (*extzv.qihi1, *extzv.qihi2): New insn-and-split.
6530         * config/avr/constraints.md (C04): New constraint.
6531         * doc/md.texi (Machine Constraints): Document it.
6532
6533 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
6534
6535         PR middle-end/49489
6536         * builtins.c (expand_builtin_unop): Call expand_unop with 0 as
6537         unsignedp argument instead of 1 for clrsb_optab.
6538         (fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT
6539         and < 2 * HOST_BITS_PER_WIDE_INT.  Optimize BUILT_IN_CLRSB*.
6540         (fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*.
6541         * optabs.c (widen_leading): Call widen_operand and expand_unop
6542         with 0 as unsignedp argument instead of 1 for clrsb_optab.
6543         (expand_unop): Subtract difference of mode sizes also for clrsb_optab.
6544
6545 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
6546
6547         * config/avr/avr.md (*jcindirect_jump): Fix build warning.
6548
6549 2011-06-21  Bernd Schmidt  <bernds@codesourcery.com>
6550
6551         * gensupport.c (add_define_attr): New static function.
6552         (is_predicable): Allow multi-alternative lists for the "predicable"
6553         attribute.
6554         (modify_attr_enabled_ce, alter_attrs_for_insn): New static functions.
6555         (process_one_cond_exec): Call alter_attrs_for_insn.
6556         * doc/md.texi (Defining Attributes): Mention some standard names.
6557         (Conditional Execution): Update documentation for "predicable".
6558
6559         * doc/extend.texi (__builtin_clrsb, __builtin_clrsbl,
6560         __builtin_clrsbll): Document.
6561         * doc/rtl.texi (clrsb): New entry.
6562         * optabs.c (widen_leading): Renamed from widen_clz.  New argument
6563         UNOPTAB.  All callers changed.  Use UNOPTAB instead of clz_optab.
6564         (expand_unop): Handle clrsb_optab.
6565         (init_optabs): Initialize it.
6566         * optabs.h (enum optab_index): New entry OTI_clrsb.
6567         (clrsb_optab): Define.
6568         * genopinit.c (optabs): Add an entry for it.
6569         * builtins.c (expand_builtin): Handle clrsb builtin functions.
6570         * builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL,
6571         BUILT_IN_CLRSBLL): New.
6572         * rtl.def (CLRSB): New code.
6573         * dwarf2out.c (mem_loc_descriptor): Handle it.
6574         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
6575         Use op_mode rather than mode when optimizing ffs, clz, ctz, parity
6576         and popcount.
6577         * libgcc2.c (__clrsbSI2, __clrsbDI2): New functions.
6578         * libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare.
6579         (__ctzDI2): Move declaration.
6580         * config/bfin/bfin.md (clrsbsi2): New expander.
6581         (signbitssi2): Use the CLRSB rtx.
6582         (clrsbhi2): Renamed from signbitshi2.  Use the CLRSB rtx.
6583         * config/bfin/bfin.c (bdesc_1arg): Changed accordingly.
6584
6585 2011-06-21  Richard Guenther  <rguenther@suse.de>
6586
6587         * ipa-inline-transform.c (inline_transform): Fix previous change.
6588
6589 2011-06-21  Ira Rosen  <ira.rosen@linaro.org>
6590
6591         PR tree-optimization/49478
6592         * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
6593         with constant operand.
6594
6595 2011-06-21  Richard Guenther  <rguenther@suse.de>
6596
6597         * ipa-inline-transform.c (inline_transform): Fix typo.
6598
6599 2011-06-21  Richard Guenther  <rguenther@suse.de>
6600
6601         PR tree-optimization/49483
6602         * tree-vect-stmts.c (vectorizable_assignment): Also handle
6603         VIEW_CONVERT_EXPR conversions.
6604
6605 2011-06-21  Joseph Myers  <joseph@codesourcery.com>
6606
6607         * config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
6608         * config/avr/avr-tables.opt: New file (generated).
6609         * config.gcc (avr-*-*): Use avr/avr-tables.opt.
6610         * config/avr/avr-devices.c (avr_mcu_types): Move contents to
6611         avr-mcus.def.
6612         * config/avr/avr.c (avr_help, TARGET_HELP): Remove.
6613         (avr_option_override): Don't process -mmcu= argument here.  Set
6614         avr_current_device using avr_mcu_index.
6615         (avr_file_start): Use avr_current_device->name instead of avr_mcu_name.
6616         * config/avr/avr.opt (mmcu=): Use Enum.
6617         * config/avr/t-avr (avr-devices.o): Update dependencies.
6618         ($(srcdir)/config/avr/avr-tables.opt): New.
6619         * target.def (help): Remove.
6620         * doc/tm.texi.in (TARGET_HELP): Remove.
6621         * doc/tm.texi: Regenerate.
6622         * opts.c: Don't include target.h.
6623         (common_handle_option): Don't call targetm.help.
6624         * system.h (TARGET_HELP): Poison.
6625         * Makefile.in (opts.o): Update dependencies.
6626
6627 2011-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6628
6629         * config/usegld.h: New file.
6630         * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove.
6631         (CPP_SUBTARGET_SPEC): Remove -compat-bsd support.
6632         (LIB_SPEC): Likewise.  Search /lib.
6633         (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support.
6634         (RDYNAMIC_SPEC): Handle GNU ld.
6635         [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC):
6636         Define.
6637         (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld.
6638         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define.
6639         [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine.
6640         (STACK_CHECK_STATIC_BUILTIN): Define.
6641         * config/sol2.opt (compat-bsd): Remove.
6642         * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef.
6643         * config/sol2-bi.h: New file.
6644         * config/sol2-gld.h: Remove.
6645         * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS.
6646         (NO_DBX_BNSYM_ENSYM): Remove.
6647         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
6648         (STACK_CHECK_STATIC_BUILTIN): Remove.
6649         Test USE_GLD instead of TARGET_GNU_LD.
6650         * config/i386/sol2-10.h: Rename to ...
6651         * config/i386/sol2-bi.h .. this.
6652         (SUBTARGET_EXTRA_SPECS): Redefine.
6653         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove.
6654         (MULTILIB_DEFAULTS): Remove.
6655         (DEFAULT_ARCH32_P): Define.
6656         (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove.
6657         (ARCH64_SUBDIR): Define.
6658         Test USE_GLD instead of TARGET_GNU_LD.
6659         (I386_EMULATION): Rename to ...
6660         (ARCH32_EMULATION): ... this.
6661         (X86_64_EMULATION): Rename to ...
6662         (ARCH64_EMULATION): ... this.
6663         (TARGET_LD_EMULATION): Remove.
6664         (LINK_ARCH_SPEC): Remove.
6665         * config/i386/sol2-gas.h: Remove.
6666         * config/i386/t-sol2-10: Rename to ...
6667         * config/i386/t-sol2-64: ... this.
6668         * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine.
6669         (AS_SPARC64_FLAG): Define.
6670         (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine.
6671         (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine
6672         depending on TARGET_CPU_DEFAULT.
6673         (CPP_CPU_SPEC): Redefine.
6674         (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P.
6675         (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine.
6676         (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine.
6677         (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC,
6678         ASM_ARCH_DEFAULT_SPEC): Redefine.
6679         (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
6680         LINK_ARCH_DEFAULT_SPEC.
6681         [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define.
6682         [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine.
6683         (ARCH64_SUBDIR): Define.
6684         (LINK_ARCH64_SPEC): Redefine.
6685         (CC1_SPEC): Redefine.
6686         (OPTION_DEFAULT_SPECS): Redefine.
6687         (MULTILIB_DEFAULTS): Define.
6688         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine.
6689         [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine.
6690         [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef.
6691         (NO_DBX_BNSYM_ENSYM): Remove.
6692         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
6693         (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS.
6694         (TARGET_ASM_NAMED_SECTION): Likewise.
6695         (STACK_CHECK_STATIC_BUILTIN): Remove.
6696         * config/sparc/sol2-bi.h: Remove.
6697         * config/sparc/sol2-gas-bi.h: Remove.
6698         * config/sparc/sol2-gas.h: Remove.
6699         * config/sparc/sol2-gld-bi.h: Remove.
6700         * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move
6701         common parts ...
6702         (*-*-solaris2*): ... here.
6703
6704 2011-06-21  Christian Bruel  <christian.bruel@st.com>
6705
6706         PR other/43564
6707         * ipa-inline.c (can_inline_edge_p): Check
6708         !DECL_DISREGARD_INLINE_LIMITS.
6709
6710 2011-06-21  Christian Bruel  <christian.bruel@st.com>
6711
6712         PR middle-end/49139
6713         * cgraphunit.c (process_function_and_variable_attributes): warn when
6714         always_inline functions that are not inline.
6715         * ipa-inline-transform.c (inline_transform): Always call
6716         optimize_inline.
6717         * tree-inline.c (tree_inlinable_function_p): Use error instead
6718         of sorry.
6719         (expand_call_inline): Likewise.
6720
6721 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
6722
6723         * Makefile.in (dg_target_exps): Set.
6724         (check_gcc_parallelize): Parallelize gcc testing into 10 jobs
6725         instead of 7, try to divide it more evenly.
6726
6727 2011-06-20  Changpeng Fang  <changpeng.fang@amd.com>
6728
6729         PR target/49089
6730         * config/i386/i386.c (avx256_split_unaligned_load): New definition.
6731         (avx256_split_unaligned_store): New definition.
6732         (ix86_option_override_internal): Enable avx256 unaligned load/store
6733         splitting only when avx256_split_unaligned_load/store is set.
6734
6735 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
6736
6737         * regrename.c (scan_rtx_reg): Handle the case where we write to an
6738         open chain in a smaller mode without failing the entire block.
6739
6740 2011-06-21  Alan Modra  <amodra@gmail.com>
6741
6742         * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
6743         CONST high part large-toc address.
6744         (rs6000_tls_referenced_p): Make static.
6745         * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.
6746
6747 2011-06-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
6748
6749         PR target/49385
6750         * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
6751         one of the operands is a register.
6752
6753 2011-06-20  Kai Tietz  <ktietz@redhat.com>
6754
6755         * fold-const.c (fold_binary_loc): Add missing folding for truth-not
6756         operations in combination with binary and.
6757
6758 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
6759
6760         * regrename.c (do_replace): Don't update notes.
6761
6762 2011-06-20  Alan Modra  <amodra@gmail.com>
6763
6764         * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
6765         of toc-relative address in CONST.
6766         (rs6000_delegitimize_address): Recognize changed address.
6767         (rs6000_legitimize_reload_address): Likewise.
6768         (rs6000_emit_move): Don't force these constants to memory.
6769         * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
6770         toc-relative address in CONST.
6771         (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
6772         (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
6773
6774 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
6775
6776         * longlong.h (count_leading_zeros): Use long long builtin for x86-64.
6777         (count_trailing_zeros): Likewise.
6778
6779 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
6780
6781         PR other/49325
6782         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
6783         .init_array can be used with .ctors on targets.
6784         * configure: Regenerated.
6785
6786 2011-06-18  Eric Botcazou  <ebotcazou@adacore.com>
6787
6788         * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
6789         if the element type is volatile.
6790
6791 2011-06-18  Jan Hubicka  <jh@suse.cz>
6792
6793         * lto-symtab.c (lto_varpool_replace_node): Remove code handling
6794         extra name aliases.
6795         (lto_symtab_resolve_can_prevail_p): Likewise.
6796         (lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
6797         * cgraphbuild.c (record_reference): Remove extra body alias code.
6798         (mark_load): Likewise.
6799         (mark_store): Likewise.
6800         * cgraph.h (varpool_node): Remove extra_name filed;
6801         add alias_of and extraname_alias.
6802         (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
6803         (varpool_alias_aliased_node): New inline function.
6804         (varpool_variable_node): New function.
6805         * cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
6806         * ipa-ref.c (ipa_record_reference): Allow aliases on variables.
6807         * lto-cgraph.c (lto_output_varpool_node): Update streaming.
6808         (input_varpool_node): Likewise.
6809         * lto-streamer-out.c (produce_symtab): Remove extra name aliases.
6810         (varpool_externally_visible_p): Remove extra body alias code.
6811         (function_and_variable_visibility): Likewise.
6812         * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
6813         (ipa_pta_execute): Use it.
6814         * varpool.c (varpool_remove_node): Remove extra name alias code.
6815         (varpool_mark_needed_node): Likewise.
6816         (varpool_analyze_pending_decls): Analyze aliases.
6817         (assemble_aliases): New functoin.
6818         (varpool_assemble_decl): Use it.
6819         (varpool_create_variable_alias): New function.
6820         (varpool_extra_name_alias): Rewrite.
6821         (varpool_for_node_and_aliases): New function.
6822
6823 2011-06-18  Jakub Jelinek  <jakub@redhat.com>
6824
6825         PR target/49411
6826         * config/i386/i386.c (ix86_expand_multi_arg_builtins): If
6827         last_arg_constant and last argument doesn't match its predicate,
6828         for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
6829         if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
6830         (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
6831         spelling of error message.
6832         * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
6833         vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
6834         const_0_to_255_operand instead of const_int_operand.
6835
6836         Revert:
6837         2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
6838
6839         * config/i386/sse.md (blendbits): Remove mode attribute.
6840         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
6841         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
6842         Check integer value of operand 3 in insn constraint.
6843
6844 2011-06-17  Hans-Peter Nilsson  <hp@axis.com>
6845
6846         PR rtl-optimization/48542
6847         * reload.c (find_equiv_reg): Stop looking when finding a
6848         setjmp-type call.
6849         * reload1.c (reload_as_needed): Invalidate all reload
6850         registers when crossing a setjmp-type call.
6851
6852 2011-06-16  Jeff Law  <law@redhat.com>
6853
6854         * tree-ssa-threadupdate.c (struct redirection_data): New field
6855         intermediate_edge.
6856         (THREAD_TARGET2): Define.
6857         (redirection_data_eq): Also check that the intermediate edge is equal.
6858         (lookup_redirection_data): Drop useless argument.  Extract the
6859         outgoing_edge and intermediate edge from E.  Callers updated.
6860         (copy_phi_args, update_destination_phis): New functions.
6861         (fix_duplicate_block_edges): Likewise.
6862         (create_edge_and_update_destination_phis): Duplicate all the edges
6863         hung off e->aux.  Use copy_phi_args.
6864         (create_duplicates): Use fix_duplicate_block_edges.
6865         (fixup_template_block): Likewise.
6866         (redirect_edges): If necessary, redirect the joiner block's incoming
6867         edge to the duplicate of the joiner block.
6868         (thread_block): Don't muck up loops when threading through a joiner
6869         block.
6870         (thread_through_loop_header): Handle threading through a joiner block.
6871         (mark_threaded_blocks, register_jump_thread): Likewise.
6872         * tree-flow.h (register_jump_thread): Add new argument.  Callers
6873         updated.
6874         * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
6875         (thread_across_edge): Handle threading through a joiner block.
6876
6877 2011-06-16  Martin Jambor  <mjambor@suse.cz>
6878
6879         PR tree-optimization/49343
6880         * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
6881         calculate offset, provide 2nd operand for the new COMPONENT_REF.
6882
6883 2011-06-16  Iain Sandoe  <iains@gcc.gnu.org>
6884
6885         * config/darwin-protos.h (machopic_select_rtx_section): Move to
6886         inside RTX_CODE ifdef.
6887
6888 2011-06-16  Tom de Vries  <tom@codesourcery.com>
6889
6890         PR target/45098
6891         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
6892         Disallow NULL pointer for pointer arithmetic.
6893
6894 2011-06-16  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
6895
6896         PR target/49398
6897         Revert.
6898         2011-06-10  Wei Guozhi  <carrot@google.com>
6899
6900         PR target/45335
6901         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
6902         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
6903         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
6904         related peephole2.
6905         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
6906         related peephole2.
6907         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
6908         (arm_legitimate_ldrd_p): New prototype.
6909         (arm_output_ldrd): New prototype.
6910         * config/arm/arm.c (arm_check_ldrd_operands): New function.
6911         (arm_legitimate_ldrd_p): New function.
6912         (arm_output_ldrd): New function.
6913
6914 2011-06-16  Joern Rennecke  <joern.rennecke@embecosm.com>
6915
6916         PR middle-end/46500
6917         * doc/tm.texi.in: Update Copyright date.
6918         * doc/tm.texi: Regenerate.
6919         * targhooks.c (default_setup_incoming_varargs): Replace
6920         CUMULATIVE_ARGS* argument type with cumulative_args_t.
6921         (default_pretend_outgoing_varargs_named): Likewise.
6922         (hook_pass_by_reference_must_pass_in_stack): Likewise.
6923         (hook_callee_copies_named): Likewise.
6924         (default_function_arg_advance): Likewise.
6925         (default_function_arg): Likewise.
6926         (default_function_incoming_arg): Likewise.
6927         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
6928         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
6929         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
6930         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
6931         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
6932         * targhooks.h (default_setup_incoming_varargs): Likewise.
6933         (default_pretend_outgoing_varargs_named): Likewise.
6934         (hook_pass_by_reference_must_pass_in_stack): Likewise.
6935         (hook_callee_copies_named): Likewise.
6936         (default_function_arg_advance): Likewise.
6937         (default_function_arg): Likewise.
6938         (default_function_incoming_arg): Likewise.
6939         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
6940         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
6941         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
6942         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
6943         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
6944         * target.def (pass_by_reference): Likewise.
6945         (setup_incoming_varargs, strict_argument_naming): Likewise.
6946         (pretend_outgoing_varargs_named, callee_copies): Likewise.
6947         (arg_partial_bytes, function_arg_advance, function_arg): Likewise.
6948         (function_incoming_arg): Likewise.
6949         * target.h: Don't include "tm.h" .
6950         (cumulative_args_t): New typedef.
6951         [GCC_TM_H] (get_cumulative_args): New static inline function.
6952         [GCC_TM_H] (pack_cumulative_args): Likewise.
6953         * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
6954         argument type with cumulative_args_t.
6955         (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
6956         (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
6957         * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
6958         (frv_arg_partial_bytes, frv_function_arg): Likewise.
6959         (frv_function_incoming_arg, frv_function_arg_advance): Likewise.
6960         (frv_function_arg_1): Likewise.
6961         * config/s390/s390.c (s390_pass_by_reference): Likewise.
6962         (s390_function_arg_advance, s390_function_arg): Likewise.
6963         * config/m32c/m32c.c (m32c_function_arg): Likewise.
6964         (m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
6965         (m32c_strict_argument_naming): Likewise.
6966         * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
6967         (spu_function_arg_advance): Likewise.
6968         (spu_setup_incoming_varargs): Likewise.  Make static.
6969         * config/spu/spu-protos.h (spu_setup_incoming_varargs):
6970         Remove prototype.
6971         * config/sparc/sparc.c (sparc_strict_argument_naming): Replace
6972         CUMULATIVE_ARGS* argument type with cumulative_args_t.
6973         (sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
6974         (sparc_function_arg, sparc_function_incoming_arg): Likewise.
6975         (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
6976         * config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
6977         (mep_pass_by_reference, mep_function_arg): Likewise.
6978         (mep_function_arg_advance): Likewise.
6979         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
6980         (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
6981         (m32r_function_arg, m32r_function_arg_advance): Likewise.
6982         * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
6983         * config/i386/i386.c (ix86_function_arg_advance): Likewise.
6984         (ix86_function_arg, ix86_pass_by_reference): Likewise.
6985         (ix86_setup_incoming_varargs): Likewise.
6986         * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
6987         (sh_strict_argument_naming): Likewise.
6988         (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
6989         (sh_callee_copies, sh_arg_partial_bytes): Likewise.
6990         (sh_function_arg_advance, sh_function_arg): Likewise.
6991         * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
6992         (pdp11_function_arg_advance): Likewise.
6993         * config/microblaze/microblaze.c (microblaze_function_arg_advance):
6994         Likewise.
6995         (microblaze_function_arg, function_arg_partial_bytes): Likewise.
6996         * config/avr/avr.c (avr_function_arg): Likewise.
6997         (avr_function_arg_advance): Likewise.
6998         * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
6999         (xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
7000         (xtensa_function_arg_1): Likewise.
7001         * config/stormy16/stormy16.c (xstormy16_function_arg_advance):
7002         Likewise.
7003         (xstormy16_function_arg): Likewise.
7004         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
7005         (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
7006         (fr30_function_arg_advance): Likewise.
7007         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
7008         (lm32_function_arg, lm32_function_arg_advance): Likewise.
7009         * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
7010         (moxie_function_arg, moxie_function_arg_advance): Likewise.
7011         (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
7012         * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
7013         (cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
7014         (cris_function_arg, cris_function_incoming_arg): Likewise.
7015         (cris_function_arg_advance, cris_function_arg_1): Likewise.
7016         * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
7017         (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
7018         (iq2000_function_arg, iq2000_function_arg_advance): Likewise.
7019         * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
7020         (mn10300_function_arg, mn10300_function_arg_advance): Likewise.
7021         (mn10300_arg_partial_bytes): Likewise.
7022         * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
7023         (ia64_arg_partial_bytes, ia64_function_arg): Likewise.
7024         (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
7025         (ia64_function_arg_1): Likewise.
7026         * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
7027         (m68k_function_arg): Likewise.
7028         * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
7029         (rs6000_function_arg, setup_incoming_varargs): Likewise.
7030         (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
7031         * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
7032         (picochip_function_arg, picochip_incoming_function_arg): Likewise.
7033         (picochip_arg_advance): Likewise.
7034         * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
7035         (mcore_arg_partial_bytes, mcore_function_arg): Likewise.
7036         (mcore_function_arg_advance): Likewise.
7037         * config/score/score.c (score_pass_by_reference): Likewise.
7038         (score_function_arg_advance): Likewise.
7039         (score_arg_partial_bytes): Likewise.  Make static.
7040         * config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
7041         * config/arm/arm.c (arm_arg_partial_bytes): Replace
7042         CUMULATIVE_ARGS* argument type with cumulative_args_t.
7043         (arm_function_arg, arm_function_arg_advance): Likewise.
7044         (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
7045         * config/pa/pa.c (pa_pass_by_reference): Likewise.
7046         (pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
7047         (pa_function_arg): Likewise.
7048         * config/mips/mips.c (mips_strict_argument_naming): Likewise.
7049         (mips_function_arg, mips_function_arg_advance): Likewise.
7050         (mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
7051         (mips_callee_copies, mips_setup_incoming_varargs): Likewise.
7052         * config/vax/vax.c (vax_function_arg): Likewise.
7053         (vax_function_arg_advance): Likewise.
7054         * config/h8300/h8300.c (h8300_function_arg): Likewise.
7055         (h8300_function_arg_advance): Likewise.
7056         * config/v850/v850.c (v850_pass_by_reference): Likewise.
7057         (v850_strict_argument_naming, v850_function_arg): Likewise.
7058         (v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
7059         (v850_setup_incoming_varargs): Likewise.
7060         * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
7061         (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
7062         (mmix_function_arg, mmix_pass_by_reference): Likewise.
7063         (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
7064         with const void *.
7065         * config/bfin/bfin.c (setup_incoming_varargs): Replace
7066         CUMULATIVE_ARGS* argument type with cumulative_args_t.
7067         (bfin_function_arg_advance, bfin_function_arg): Likewise.
7068         (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
7069         * calls.c (emit_call_1): Change type of args_so_far to
7070         cumulative_args_t.  Changed all callers.
7071         (initialize_argument_information): Likewise.
7072         (expand_call, emit_library_call_value_1): Use pack_cumulative_args.
7073         * dse.c (get_call_args): Likewise.
7074         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
7075         * function.c (pass_by_reference, reference_callee_copied): Likewise.
7076         (struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
7077         New member args_so_far_v.  Changed all users.
7078         * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
7079         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
7080         * config/mips/mips.c (mips_output_args_xfer): Likewise.
7081         * config/s390/s390.c (s390_call_saved_register_used): Likewise.
7082         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
7083         * config/microblaze/microblaze.c (microblaze_expand_prologue):
7084         Likewise.
7085         * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
7086         m32r_pass_by_reference.
7087
7088 2011-06-16  Ira Rosen  <ira.rosen@linaro.org>
7089
7090         * tree-vectorizer.h (vect_recog_func_ptr): Change the first
7091         argument to be a VEC of statements.
7092         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove the
7093         assert that pattern statements have to have their vector type set.
7094         * tree-vect-patterns.c (vect_recog_widen_sum_pattern):
7095         Change the first argument to be a VEC of statements.  Update
7096         documentation.
7097         (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
7098         (vect_handle_widen_mult_by_const): New function.
7099         (vect_recog_widen_mult_pattern):  Change the first argument to be a
7100         VEC of statements.  Update documentation.  Check that the constant is
7101         INTEGER_CST.  Support multiplication by a constant that fits an
7102         intermediate type - call vect_handle_widen_mult_by_const.
7103         (vect_pattern_recog_1): Update vect_recog_func_ptr and its
7104         call.  Handle additional pattern statements if necessary.
7105
7106 2011-06-16  Nick Clifton  <nickc@redhat.com>
7107
7108         PR target/49427
7109         * config.gcc: Set cpu_type to v850 for any V850 architecture.
7110         (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
7111         md_file, extra_modes, out_file and extra_options are these are all
7112         deduced from cpu_type.
7113
7114 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
7115
7116         * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
7117         truncation mask to 63.
7118
7119 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
7120
7121         PR target/49313
7122         PR target/29524
7123         * longlong.h: Add AVR support:
7124         (count_leading_zeros): New macro.
7125         (count_trailing_zeros): New macro.
7126         (COUNT_LEADING_ZEROS_0): New macro.
7127         * config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2,
7128         _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2,
7129         _parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
7130         _bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3.
7131         (LIB2FUNCS_EXCLUDE): Add _clz.
7132         * config/avr/libgcc.S (XCALL): Move up in file.
7133         (XJMP): New C Macro.
7134         (DEFUN): New asm macro.
7135         (ENDF): New asm macro.
7136         (__ffssi2): New function.
7137         (__ffshi2): New function.
7138         (__loop_ffsqi2): New function.
7139         (__ctzsi2): New function.
7140         (__ctzhi2): New function.
7141         (__clzdi2): New function.
7142         (__clzsi2): New function.
7143         (__clzhi2): New function.
7144         (__paritydi2): New function.
7145         (__paritysi2): New function.
7146         (__parityhi2): New function.
7147         (__parityqi2): New function.
7148         (__popcounthi2): New function.
7149         (__popcountsi2): New function.
7150         (__popcountdi2): New function.
7151         (__popcountqi2): New function.
7152         (__bswapsi2): New function.
7153         (__bswapdi2): New function.
7154         (__ashldi3): New function.
7155         (__ashrdi3): New function.
7156         (__lshrdi3): New function.
7157         Fix suspicous lines.
7158
7159 2011-06-16  Richard Guenther  <rguenther@suse.de>
7160
7161         * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
7162         the same as x != 0.
7163         * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0
7164         to (bool) X & 1.
7165         * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
7166         equality compares against zero for the lower bit.
7167
7168 2011-06-16  Jakub Jelinek  <jakub@redhat.com>
7169
7170         PR tree-optimization/49419
7171         * tree-vrp.c (execute_vrp): Call init_range_assertions
7172         before estimate_numbers_of_iterations, call
7173         free_number_of_iterations_estimates before calling
7174         remove_range_assertions.
7175
7176 2011-06-16  Revital Eres  <revital.eres@linaro.org>
7177
7178         * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
7179         (struct partial_schedule): Add rows_length field.
7180         (verify_partial_schedule): Check rows_length.
7181         (ps_insert_empty_row): Handle rows_length.
7182         (create_partial_schedule): Likewise.
7183         (free_partial_schedule): Likewise.
7184         (reset_partial_schedule): Likewise.
7185         (create_ps_insn): Remove rest_count argument.
7186         (remove_node_from_ps): Update rows_length.
7187         (add_node_to_ps): Update rows_length and call create_ps_insn
7188         without passing row_rest_count.
7189         (rotate_partial_schedule): Update rows_length.
7190
7191 2011-06-16  Revital Eres  <revital.eres@linaro.org>
7192
7193         * ddg.c (add_intra_loop_mem_dep): New function.
7194         (build_intra_loop_deps): Call it.
7195
7196 2011-06-13  Jeff Law  <law@redhat.com>
7197
7198         * df-problems.c (df_lr_local_compute): Manually CSE
7199         PIC_OFFSET_TABLE_REGNUM.
7200         * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
7201         (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
7202
7203 2011-06-13  Jan Hubicka  <jh@suse.cz>
7204
7205         * cgraphunit.c (handle_alias_pairs): New function.
7206         (cgraph_finalize_compilation_unit): Use it.
7207         * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
7208         as externally visible.
7209
7210 2011-06-15  Richard Guenther  <rguenther@suse.de>
7211
7212         * expr.c (expand_expr_real_2): Reduce all integral types to
7213         bitfield precision.
7214         (expand_expr_real_1): Likewise.
7215
7216 2011-06-15  Martin Jambor  <mjambor@suse.cz>
7217
7218         PR tree-optimization/48613
7219         * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
7220         ipa_node_params_vector is NULL.
7221
7222 2011-06-15  Jakub Jelinek  <jakub@redhat.com>
7223
7224         PR debug/49382
7225         * dwarf2out.c (dw_loc_list_node): Add force field.
7226         (add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming
7227         location in the list, even if it is modified before first real insn.
7228         (output_loc_list): Emit empty ranges with force flag set.
7229         (dw_loc_list): If first range of a PARM_DECL is empty, set force flag.
7230
7231 2011-06-15  Alexander Monakov  <amonakov@ispras.ru>
7232
7233         PR target/49349
7234         * sel-sched.c (find_place_for_bookkeeping): Add new parameter
7235         (fence_to_rewind).  Use it to notice when bookkeeping will be placed
7236         above a fence.  Update comments.
7237         (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
7238         placed just above it.  Do not allow NULL place_to_insert.
7239
7240 2011-06-15  Ira Rosen  <ira.rosen@linaro.org>
7241
7242         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
7243         (slpeel_tree_peel_loop_to_edge): Don't call
7244         remove_dead_stmts_from_loop.
7245         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
7246         remove irrelevant pattern statements.  For irrelevant statements
7247         check if it is the last statement of a detected pattern, use
7248         corresponding pattern statement instead.
7249         (destroy_loop_vec_info): No need to remove pattern statements,
7250         only free stmt_vec_info.
7251         (vect_transform_loop): For irrelevant statements check if it is
7252         the last statement of a detected pattern, use corresponding
7253         pattern statement instead.
7254         * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
7255         pattern statements.  Set basic block for the new statement.
7256         (vect_pattern_recog): Update documentation.
7257         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
7258         operands of pattern statements.
7259         (vectorizable_call): Fix printing.  In case of a pattern statement
7260         use the lhs of the original statement when creating a dummy
7261         statement to replace the original call.
7262         (vect_analyze_stmt): For irrelevant statements check if it is
7263         the last statement of a detected pattern, use corresponding
7264         pattern statement instead.
7265         * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
7266         statements use gsi of the original statement.
7267
7268 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
7269
7270         * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
7271         common/common-target-def.h.
7272         * target.def (default_target_flags, handle_option,
7273         supports_split_stack, optimization_table, init_struct,
7274         except_unwind_info, unwind_tables_default, have_named_sections):
7275         Move to common/common-target.def.
7276         * target.h (enum opt_levels, struct default_options): Move to
7277         common/common-target.h.
7278         * targhooks.c (default_except_unwind_info,
7279         dwarf2_except_unwind_info, sjlj_except_unwind_info,
7280         default_target_handle_option, empty_optimization_table): Move to
7281         common/common-targhooks.c.
7282         * targhooks.h (default_except_unwind_info,
7283         dwarf2_except_unwind_info, sjlj_except_unwind_info,
7284         default_target_handle_option, empty_optimization_table): Move to
7285         common/common-targhooks.h.
7286         * common/common-target-def.h: Include common/common-targhooks.h.
7287         (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
7288         defined.
7289         * common/common-target.def (handle_option, option_init_struct,
7290         option_optimization_table, default_target_flags,
7291         except_unwind_info, supports_split_stack, unwind_tables_default,
7292         have_named_sections): Move from target.def.
7293         (HOOK_PREFIX): Undefine at end of file.
7294         * common/common-target.h: Include input.h.
7295         (enum opt_levels, struct default_options): Move from target.h.
7296         * common/common-targhooks.c, common/common-targhooks.h: New.
7297         * config.gcc (target_has_targetm_common): Default to yes.
7298         (moxie*): Set target_has_targetm_common=no.
7299         (hppa*-*-*): Don't set target_has_targetm_common=yes.
7300         * doc/tm.texi: Regenerate.
7301         * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
7302         (C_TARGET_DEF_H): Add common/common-targhooks.h.
7303         (GCC_OBJS): Remove vec.o.
7304         (OBJS): Remove hooks.o and vec.o.
7305         (OBJS-libcommon-target): Add vec.o, hooks.o and
7306         common/common-targhooks.o.
7307         (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
7308         tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
7309         expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
7310         cfglayout.o, $(out_object_file), $(common_out_object_file)):
7311         Update dependencies.
7312         (common/common-targhooks.o): New.
7313         * common/config/default-common.c: Include tm.h.  Add FIXME comment.
7314         * common/config/pa/pa-common.c: Include more headers.  Take
7315         copyright dates from pa.c.
7316         (pa_option_optimization_table, pa_handle_option,
7317         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
7318         TARGET_HANDLE_OPTION): Move from pa.c.
7319         * common/config/alpha/alpha-common.c,
7320         common/config/arm/arm-common.c, common/config/avr/avr-common.c,
7321         common/config/bfin/bfin-common.c,
7322         common/config/cris/cris-common.c,
7323         common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
7324         common/config/h8300/h8300-common.c,
7325         common/config/i386/i386-common.c,
7326         common/config/ia64/ia64-common.c,
7327         common/config/iq2000/iq2000-common.c,
7328         common/config/lm32/lm32-common.c,
7329         common/config/m32c/m32c-common.c,
7330         common/config/m32r/m32r-common.c,
7331         common/config/m68k/m68k-common.c,
7332         common/config/mcore/mcore-common.c,
7333         common/config/mep/mep-common.c,
7334         common/config/microblaze/microblaze-common.c,
7335         common/config/mips/mips-common.c,
7336         common/config/mmix/mmix-common.c,
7337         common/config/mn10300/mn10300-common.c,
7338         common/config/pdp11/pdp11-common.c,
7339         common/config/picochip/picochip-common.c,
7340         common/config/rs6000/rs6000-common.c,
7341         common/config/rx/rx-common.c, common/config/s390/s390-common.c,
7342         common/config/score/score-common.c, common/config/sh/sh-common.c,
7343         common/config/sparc/sparc-common.c,
7344         common/config/spu/spu-common.c, common/config/v850/v850-common.c,
7345         common/config/vax/vax-common.c,
7346         common/config/xstormy16/xstormy16-common.c,
7347         common/config/xtensa/xtensa-common.c: New.
7348         * config/alpha/alpha.c: Include common/common-target.h.
7349         (alpha_option_optimization_table, alpha_handle_option,
7350         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7351         TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
7352         * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
7353         * config/arm/arm.c (arm_option_optimization_table,
7354         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
7355         TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
7356         arm-common.c.
7357         * config/avr/avr.c (avr_option_optimization_table,
7358         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
7359         to avr-common.c.
7360         * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
7361         (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
7362         TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
7363         * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
7364         * config/cris/cris.c (cris_option_optimization_table,
7365         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7366         TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
7367         cris-common.c.
7368         * config/fr30/fr30.c (fr30_option_optimization_table,
7369         TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
7370         to fr30-common.c.
7371         * config/frv/frv.c (frv_option_optimization_table,
7372         MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
7373         TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
7374         * config/h8300/h8300.c (h8300_option_optimization_table,
7375         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
7376         TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
7377         * config/i386/i386-protos.h (ix86_handle_option): Declare.
7378         * config/i386/i386.c: Include common/common-target.h.
7379         (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
7380         OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
7381         OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
7382         OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
7383         OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
7384         OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
7385         OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
7386         OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
7387         OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
7388         OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
7389         OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
7390         OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
7391         OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
7392         OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
7393         OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
7394         OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
7395         OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
7396         OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
7397         OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
7398         OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
7399         OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
7400         OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
7401         OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
7402         OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
7403         OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
7404         OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
7405         OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
7406         OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
7407         OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
7408         ix86_option_optimization_table, ix86_option_init_struct,
7409         ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
7410         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
7411         TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
7412         i386-common.c.
7413         * config/i386/t-i386 (i386.o): Update dependencies.
7414         * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
7415         * config/ia64/ia64.c (ia64_option_optimization_table,
7416         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
7417         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7418         ia64_handle_option): Move to ia64-common.c.
7419         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
7420         TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
7421         * config/lm32/lm32.c (lm32_option_optimization_table,
7422         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
7423         to lm32-common.c.
7424         * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
7425         m32c-common.c.
7426         * config/m32r/m32r.c (m32r_option_optimization_table,
7427         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7428         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
7429         m32r_handle_option): Move to m32r-common.c.
7430         (m32r_memory_move_cost): Remove comment referring to
7431         TARGET_HANDLE_OPTION.
7432         * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
7433         Move to m68k-common.c.
7434         * config/mcore/mcore.c (mcore_option_optimization_table,
7435         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
7436         TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
7437         * config/mep/mep.c (mep_option_optimization_table,
7438         mep_handle_option, TARGET_HANDLE_OPTION,
7439         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
7440         Move to mep-common.c.
7441         * config/microblaze/microblaze.c
7442         (microblaze_option_optimization_table,
7443         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
7444         TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
7445         * config/mips/mips.c (mips_handle_option,
7446         mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
7447         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
7448         mips-common.c.
7449         * config/mmix/mmix.c (mmix_option_optimization_table,
7450         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
7451         Move to mmix-common.c.
7452         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
7453         mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
7454         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7455         TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
7456         * config/pa/pa.c: Include common/common-target.h.
7457         (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
7458         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7459         pa_handle_option): Move to pa-common.c.
7460         (pa_option_override): Use targetm_common.except_unwind_info.
7461         (pa_asm_output_mi_thunk, pa_function_section): Use
7462         targetm_common.have_named_sections.
7463         * config/pdp11/pdp11.c (pdp11_option_optimization_table,
7464         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7465         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
7466         pdp11_handle_option, pdp11_option_init_struct): Move to
7467         pdp11-common.c.
7468         * config/picochip/picochip.c (picochip_option_optimization_table,
7469         TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
7470         TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
7471         * config/rs6000/rs6000.c: Include common/common-target.h.
7472         (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
7473         TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
7474         TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
7475         rs6000_handle_option): Move to rs6000-common.c.
7476         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
7477         * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
7478         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
7479         TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
7480         * config/s390/s390.c (processor_flags_table,
7481         s390_option_optimization_table, s390_option_init_struct,
7482         s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
7483         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
7484         TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
7485         * config/s390/s390.h (processor_flags_table): Declare.
7486         * config/score/score.c (score_option_optimization_table,
7487         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7488         TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
7489         score_handle_option): Move to score-common.c.
7490         * config/sh/sh.c (sh_option_optimization_table,
7491         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
7492         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7493         sh_handle_option, sh_option_init_struct): Move to sh-common.c.
7494         * config/sparc/sparc.c: Include common/common-target.h.
7495         (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
7496         TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
7497         * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
7498         TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
7499         spu_option_init_struct): Move to spu-common.c.
7500         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
7501         TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
7502         * config/v850/v850.c (small_memory_physical_max,
7503         v850_handle_memory_optionn v850_handle_option,
7504         v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
7505         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
7506         v850-common.c.
7507         * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c.
7508         * config/xtensa/xtensa.c (xtensa_option_optimization_table,
7509         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
7510         Move to xtensa-common.c.
7511         * cfglayout.c: Include common/common-target.h.
7512         (fixup_reorder_chain): Use targetm_common.have_named_sections.
7513         * cfgrtl.c: Include common/common-target.h.
7514         (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
7515         targetm_common.have_named_sections.
7516         * dbxout.c: Include common/common-target.h.
7517         (dbxout_function_end): Use targetm_common.have_named_sections.
7518         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
7519         targetm_common.except_unwind_info.
7520         * dwarf2out.c: Include common/common-target.h.
7521         (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
7522         dwarf2out_begin_prologue, dwarf2out_frame_init,
7523         dwarf2out_frame_finish, dwarf2out_assembly_start): Use
7524         targetm_common.except_unwind_info.
7525         * except.c: Include common/common-target.h.
7526         (init_eh, finish_eh_generation,
7527         output_one_function_exception_table): Use
7528         targetm_common.except_unwind_info.
7529         (switch_to_exception_section): Use targetm_common.have_named_sections.
7530         * explow.c: Include common/common-target.h.
7531         * expr.c: Include common/common-target.h.
7532         (build_personality_function): Use targetm_common.except_unwind_info.
7533         * function.c: Include common/common-target.h.
7534         (expand_function_end): Use targetm_common.except_unwind_info.
7535         * haifa-sched.c: Include common/common-target.h.
7536         (sched_create_recovery_edges): Use targetm_common.have_named_sections.
7537         * lto-opts.c: Include common/common-target.h instead of target.h.
7538         (lto_reissue_options): Use targetm_common.handle_option.
7539         * opts.c: Include common/common-target.h.
7540         (target_handle_option): Use targetm_common.handle_option.
7541         (init_options_struct): Update comment referring to
7542         targetm.target_option.optimization.  Use
7543         targetm_common.default_target_flags,
7544         targetm_common.unwind_tables_default and
7545         targetm_common.option_init_struct.
7546         (default_options_optimization): Use
7547         targetm_common.option_optimization_table.
7548         (finish_options): Use targetm_common.except_unwind_info,
7549         targetm_common.unwind_tables_default,
7550         targetm_common.have_named_sections and
7551         targetm_common.supports_split_stack.
7552         * toplev.c: Include common/common-target.h.
7553         (process_options): Use targetm_common.have_named_sections.
7554         * tree-tailcall.c: Include common/common-target.h.
7555         (suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info.
7556         * tree.c: Include common/common-target.h.
7557         (build_common_builtin_nodes): Use targetm_common.except_unwind_info.
7558         * varasm.c: Include common/common-target.h.
7559         (resolve_unique_section, hot_function_section,
7560         default_function_section): Use targetm_common.have_named_sections.
7561
7562 2011-06-14  Easwaran Raman  <eraman@google.com>
7563
7564         PR rtl-optimization/44194
7565         * dse.c: Include tree-flow.h
7566         (insn_info): Add new field non_frame_wild_read.
7567         (group_info): Add new fields escaped_n and escaped_p.
7568         (kill_on_calls): New variable.
7569         (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
7570         (dse_step0): Initialize kill_on_calls.
7571         (can_escape): New function.
7572         (set_usage_bits): Add additional parameter; record information
7573         about escaped locations.
7574         (record_store): Pass EXPR corresponding to MEM to set_usage_bits.
7575         (dse_step2_nospill): Set kill_on_calls based on
7576         group->escaped_n and group->escaped_n.
7577         (add_wild_read): Refactor into...
7578         (reset_active_stores): ... New function, and
7579         (free_read_records): ... New function.
7580         (add_non_frame_wild_read): New function.
7581         (scan_insn): Call add_non_frame_wild_read on non-const calls.
7582         (scan_reads_nospill): Handle instructions with non_frame_wild_read.
7583         (dse_step5_nospill): Call scan_reads_nospill for instructions
7584         marked as non_frame_wild_read.
7585         (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps.
7586
7587 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
7588
7589         * common/common-target-def.h, common/common-target.def,
7590         common/common-target.h, common/config/default-common.c,
7591         common/config/pa/pa-common.c: New files.
7592         * Makefile.in (common_out_file, common_out_object_file,
7593         COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
7594         (OBJS-libcommon-target): Include $(common_out_object_file).
7595         (prefix.o): Update dependencies.
7596         ($(common_out_object_file), common/common-target-hooks-def.h,
7597         s-common-target-hooks-def-h): New.
7598         (s-tm-texi): Also check timestamp on common-target.def.
7599         (build/genhooks.o): Update dependencies.
7600         * config.gcc (common_out_file, target_has_targetm_common): Define.
7601         * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
7602         TARGET_ALWAYS_STRIP_DOTDOT.
7603         * configure.ac (common_out_object_file): Define.
7604         (common_out_file, common_out_object_file): Substitute.
7605         (common): Create directory.
7606         * configure: Regenerate.
7607         * doc/tm.texi.in (targetm_common): Document.
7608         (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
7609         * doc/tm.texi: Regenerate.
7610         * genhooks.c (hook_array): Also include common/common-target.def.
7611         * prefix.c (tm.h): Don't include.
7612         (common/common-target.h): Include.
7613         (ALWAYS_STRIP_DOTDOT): Don't define.
7614         (update_path): Use targetm_common.always_strip_dotdot instead of
7615         ALWAYS_STRIP_DOTDOT.
7616         * system.h (ALWAYS_STRIP_DOTDOT): Poison.
7617
7618 2011-06-14  David Li  <davidxl@google.com>
7619
7620         * passes.c (execute_function_todo): Remove TODO_dump_func.
7621         (execute_one_pass): Remove TODO_dump_func.
7622         (execute_function_dump): New function.
7623         * tree-vrp.c: Remove TODO_dump_func.
7624         * regrename.c: Remove TODO_dump_func.
7625         * fwprop.c: Remove TODO_dump_func.
7626         * tree-into-ssa.c: Remove TODO_dump_func.
7627         * tree-complex.c: Remove TODO_dump_func.
7628         * tracer.c: Remove TODO_dump_func.
7629         * tree-loop-distribution.c: Remove TODO_dump_func.
7630         * postreload-gcse.c: Remove TODO_dump_func.
7631         * postreload.c: Remove TODO_dump_func.
7632         * tree-ssa-loop-ch.c: Remove TODO_dump_func.
7633         * tree-tailcall.c: Remove TODO_dump_func.
7634         * ipa-cp.c: Remove TODO_dump_func.
7635         * final.c: Remove TODO_dump_func.
7636         * tree-emutls.c: Remove TODO_dump_func.
7637         * omp-low.c: Remove TODO_dump_func.
7638         * tree-ssa-dse.c: Remove TODO_dump_func.
7639         * tree-ssa-uncprop.c: Remove TODO_dump_func.
7640         * auto-inc-dec.c: Remove TODO_dump_func.
7641         * reorg.c: Remove TODO_dump_func.
7642         * tree-ssa-copyrename.c: Remove TODO_dump_func.
7643         * tree-ssa-ccp.c: Remove TODO_dump_func.
7644         * compare-elim.c: Remove TODO_dump_func.
7645         * mode-switching.c: Remove TODO_dump_func.
7646         * modulo-sched.c: Remove TODO_dump_func.
7647         * tree-call-cdce.c: Remove TODO_dump_func.
7648         * cse.c: Remove TODO_dump_func.
7649         * web.c: Remove TODO_dump_func.
7650         * tree-stdarg.c: Remove TODO_dump_func.
7651         * lto-streamer-out.c: Remove TODO_dump_func.
7652         * tree-ssa-math-opts.c: Remove TODO_dump_func.
7653         * tree-ssa-dom.c: Remove TODO_dump_func.
7654         * tree-nrv.c: Remove TODO_dump_func.
7655         * loop-init.c: Remove TODO_dump_func.
7656         * gimple-low.c: Remove TODO_dump_func.
7657         * ipa-inline.c: Remove TODO_dump_func.
7658         * tree-ssa-sink.c: Remove TODO_dump_func.
7659         * jump.c: Remove TODO_dump_func.
7660         * ifcvt.c: Remove TODO_dump_func.
7661         * tree-ssa-loop.c: Remove TODO_dump_func.
7662         * recog.c: Remove TODO_dump_func.
7663         * dse.c: Remove TODO_dump_func.
7664         * tree-ssa-ifcombine.c: Remove TODO_dump_func.
7665         * matrix-reorg.c: Remove TODO_dump_func.
7666         * tree-eh.c: Remove TODO_dump_func.
7667         * regmove.c: Remove TODO_dump_func.
7668         * function.c: Remove TODO_dump_func.
7669         * tree-vectorizer.c: Remove TODO_dump_func.
7670         * ipa-split.c: Remove TODO_dump_func.
7671         * gcse.c: Remove TODO_dump_func.
7672         * tree-if-conv.c: Remove TODO_dump_func.
7673         * init-regs.c: Remove TODO_dump_func.
7674         * tree-ssa-phiopt.c: Remove TODO_dump_func.
7675         * implicit-zee.c: Remove TODO_dump_func.
7676         * lower-subreg.c: Remove TODO_dump_func.
7677         * bt-load.c: Remove TODO_dump_func.
7678         * tree-dfa.c: Remove TODO_dump_func.
7679         * except.c: Remove TODO_dump_func.
7680         * emit-rtl.c: Remove TODO_dump_func.
7681         * store-motion.c: Remove TODO_dump_func.
7682         * cfgexpand.c: Remove TODO_dump_func.
7683         * tree-cfgcleanup.c: Remove TODO_dump_func.
7684         * cfgcleanup.c: Remove TODO_dump_func.
7685         * tree-ssa-pre.c: Remove TODO_dump_func.
7686         * tree-sra.c: Remove TODO_dump_func.
7687         * tree-mudflap.c: Remove TODO_dump_func.
7688         * tree-ssa-copy.c: Remove TODO_dump_func.
7689         * cfglayout.c: Remove TODO_dump_func.
7690         * tree-ssa-forwprop.c: Remove TODO_dump_func.
7691         * tree-ssa-dce.c: Remove TODO_dump_func.
7692         * ira.c: Remove TODO_dump_func.
7693         * tree-ssa.c: Remove TODO_dump_func.
7694         * integrate.c: Remove TODO_dump_func.
7695         * tree-optimize.c: Remove TODO_dump_func.
7696         * tree-ssa-phiprop.c: Remove TODO_dump_func.
7697         * tree-object-size.c: Remove TODO_dump_func.
7698         * combine.c: Remove TODO_dump_func.
7699         * bb-reorder.c: Remove TODO_dump_func.
7700         * cprop.c: Remove TODO_dump_func.
7701         * var-tracking.c: Remove TODO_dump_func.
7702         * tree-profile.c: Remove TODO_dump_func.
7703         * tree-vect-generic.c: Remove TODO_dump_func.
7704         * reg-stack.c: Remove TODO_dump_func.
7705         * sched-rgn.c: Remove TODO_dump_func.
7706         * tree-ssa-structalias.c: Remove TODO_dump_func.
7707         * tree-switch-conversion.c: Remove TODO_dump_func.
7708         * tree-cfg.c: Remove TODO_dump_func.
7709         * tree-ssa-reassoc.c: Remove TODO_dump_func.
7710         * combine-stack-adj.c: Remove TODO_dump_func.
7711         * dce.c: Remove TODO_dump_func.
7712         * tree-ssanames.c: Remove TODO_dump_func.
7713         * regcprop.c: Remove TODO_dump_func.
7714
7715 2011-06-14  H.J. Lu  <hongjiu.lu@intel.com>
7716
7717         PR middle-end/47364
7718         * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
7719         and properly handle result not in Pmode.
7720
7721 2011-06-14  Robert Millan  <rmh@gnu.org>
7722
7723         * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
7724         * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
7725         `config/linux.h'.
7726
7727         * config/i386/kfreebsd-gnu64.h: New file.
7728         * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
7729         with `i386/kfreebsd-gnu64.h'.
7730
7731         * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
7732         (GNU_USER_LINK_EMULATION64): New macros.
7733         * config/i386/gnu-user64.h (LINK_SPEC): Rely on
7734         `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
7735         of hardcoding `elf_i386' and `elf_x86_64'.
7736
7737 2011-06-14  Nick Clifton  <nickc@redhat.com>
7738
7739         PR target/49403
7740         * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
7741
7742         PR target/49402
7743         * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
7744
7745 2011-06-14  Jakub Jelinek  <jakub@redhat.com>
7746
7747         PR fortran/49103
7748         * tree.h (DECL_NONSHAREABLE): Define.
7749         (struct tree_decl_common): Change decl_common_unused to
7750         decl_nonshareable_flag.
7751         * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
7752         Ignore vars with DECL_NONSHAREABLE bit set.
7753         * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
7754         on stores to automatic aggregate vars.
7755
7756         PR rtl-optimization/49390
7757         Revert:
7758         2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
7759
7760         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
7761         MEM_ALIAS_SET.
7762
7763 2011-06-14  Zdenek Dvorak  <ook@ucw.cz>
7764             Tom de Vries  <tom@codesourcery.com>
7765
7766         PR target/45098
7767         * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
7768         Document changed semantics.
7769         (max_stmt_executions, max_stmt_executions_int): Declare.
7770         * tree-data-ref.c (estimated_loop_iterations)
7771         (estimated_loop_iterations_int): Move functions...
7772         * tree-ssa-loop-niter.c (estimated_loop_iterations)
7773         (estimated_loop_iterations_int): here.
7774         (record_estimate): Change nb_iterations_upper_bound and
7775         nb_iterations_estimate semantics.
7776         (max_stmt_executions, max_stmt_executions_int): New function.
7777         * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
7778         (max_stmt_executions_tree): this.
7779         (analyze_miv_subscript): Use max_stmt_executions_tree instead of
7780         estimated_loop_iterations_tree.
7781         tree-ssa-loop-ivopts.c (avg_loop_niter): Use
7782         max_stmt_executions_int instead of estimated_loop_iterations_int.
7783         * predict.c (predict_loops): Idem.
7784         * tree-parloops.c (parallelize_loops): Idem.
7785         * tree-data-ref.c (analyze_siv_subscript_cst_affine)
7786         (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
7787         (init_omega_for_ddr_1): Idem.
7788         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
7789         (loop_prefetch_arrays): Idem
7790         * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
7791         max_stmt_executions instead of estimated_loop_iterations.
7792         * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
7793         * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
7794         instead of nb_iterations_upper_bound.
7795
7796 2011-06-13  Jan Hubicka  <jh@suse.cz>
7797
7798         * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
7799
7800 2011-06-14  Richard Henderson  <rth@redhat.com>
7801
7802         PR debug/48459
7803         * dwarf2out.c (frame_pointer_fb_offset_valid): New.
7804         (based_loc_descr): Assert it's true.
7805         (compute_frame_pointer_to_fb_displacement): Set it, rather than
7806         aborting immediately.
7807
7808 2011-06-14  Sanjin Liu  <scliu@faraday-tech.com>
7809             Mingfeng Wu  <mingfeng@faraday-tech.com>
7810
7811         * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
7812
7813 2011-06-13  Jan Hubicka  <jh@suse.cz>
7814
7815         * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
7816
7817 2011-06-13  Jan Hubicka  <jh@suse.cz>
7818
7819         * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
7820         similarly to DECL_COMDAT.
7821         * cgraphunit.c (cgraph_analyze_function): Likewise.
7822         * ipa.c (function_and_variable_visibility): Likewise.
7823
7824 2011-06-13  Jan Hubicka  <jh@suse.cz>
7825
7826         * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
7827         BINFO_VIRTUALS when streaming for ltrans unit.
7828
7829 2011-06-13  David Edelsohn  <dje.gcc@gmail.com>
7830
7831         * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
7832         (movdi_internal64): Same.
7833
7834 2011-06-13  Edmar Wienskoski  <edmar@freescale.com>
7835
7836         PR target/44618
7837         * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
7838         a set of similar patterns, where the MATCH_OPERAND for the function
7839         argument is replaced with individual references to hardware registers.
7840         (save_fpregs_<mode>): Ditto
7841         (restore_gpregs_<mode>): Ditto
7842         (return_and_restore_gpregs_<mode>): Ditto
7843         (return_and_restore_fpregs_<mode>): Ditto
7844         (return_and_restore_fpregs_aix_<mode>): Ditto
7845
7846 2011-06-13  Jan Hubicka  <jh@suse.cz>
7847
7848         * ipa-utils.c (postorder_stack): New structure.
7849         (ipa_reverse_postorder): Handle aliases.
7850
7851 2011-06-13  Jan Hubicka  <jh@suse.cz>
7852
7853         * ipa-inline.c (reset_edge_caches): Walk aliases.
7854         (update_caller_keys): Do not test inlinability of aliases.
7855         * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
7856         (do_estimate_growth): Fix typo.
7857
7858 2011-06-13  Jan Hubicka  <jh@suse.cz>
7859
7860         * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
7861         (can_remove_node_now_p): ... here; handle same comdat groups.
7862         (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
7863         (inline_call): Update use of can_remove_node_now_p.
7864
7865 2011-06-13  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
7866
7867         * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
7868         condition to disallow non-identical memory locations.
7869         (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
7870         preference to bit manipulation instructions.
7871
7872 2011-06-13  Jan Hubicka  <jh@suse.cz>
7873
7874         * cgraph.c (cgraph_for_node_thunks_and_aliases,
7875         cgraph_for_node_and_aliases): Fix thinko in recursive walking.
7876         (nonremovable_p): New function.
7877         (cgraph_can_remove_if_no_direct_calls_p): New function.
7878         (used_from_object_file_p): New functoin.
7879         (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
7880         references from aliases.
7881         * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
7882         * ipa-inline.c (check_caller_edge): New function.
7883         (want_inline_function_called_once_p): Use it; accept aliases called
7884         once, too.
7885         * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
7886
7887 2011-06-13  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
7888
7889         PR target/48454
7890         * config/arm/neon.md (vec_pack_trunc): Set the lengths
7891         correctly for the case with Quad vectors.
7892
7893 2011-06-13 Jakub Jelinek  <jakub@redhat.com>
7894            Ira Rosen  <ira.rosen@linaro.org>
7895
7896         PR tree-optimization/49352
7897         * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
7898         all, make sure loop_use_stmt after the loop is a def stmt of a used
7899         SSA_NAME that is the only one defined inside of the loop.  Don't
7900         check for COND_EXPR and GIMPLE_BINARY_RHS.
7901         (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
7902         check_reduction is true.
7903
7904 2011-06-11  Jan Hubicka  <jh@suse.cz>
7905
7906         PR middle-end/49373
7907         * ipa.c (cgraph_externally_visible_p): Check resolution info.
7908
7909 2011-06-11  Jan Hubicka  <jh@suse.cz>
7910
7911         PR middle-end/48836
7912         * ipa-inline-transform.c: Include tree-pass.h
7913         (inline_transform): Set TODO_update_ssa_only_virtuals.
7914         * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
7915
7916 2011-06-11  Jan Hubicka  <jh@suse.cz>
7917
7918         PR middle-end/49378
7919         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
7920         aliases and thunks.
7921
7922 2011-06-12  Ira Rosen  <ira.rosen@linaro.org>
7923
7924         * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
7925         Take number of iterations to peel into account for equally frequent
7926         misalignment values.
7927
7928 2011-06-11  Jan Hubicka  <jh@suse.cz>
7929
7930         * lto-streamer-out.c (produce_symtab): Stream out the newly
7931         represented aliases.
7932
7933 2011-06-11  Jan Hubicka  <jh@suse.cz>
7934
7935         * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting
7936         varying args.
7937         (ipa_update_after_lto_read): Likewise.
7938         (ipa_write_node_info): Do not sream call_with_var_arguments.
7939         (ipa_read_node_info): Likewise.
7940
7941 2011-06-11  Jan Hubicka  <jh@suse.cz>
7942
7943         * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
7944
7945 2011-06-11  Jan Hubicka  <jh@suse.cz>
7946
7947         * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
7948         (lto_symtab_resolve_can_prevail_p): Likewise.
7949         (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
7950         * cgraph.c (same_body_aliases_done): New global var.
7951         (cgraph_same_body_alias_1): Rename to ...
7952         (cgraph_create_function_alias): ... this one; reorg to new
7953         representation.
7954         (cgraph_same_body_alias): Use cgraph_create_function_alias;
7955         record references when asked to.
7956         (cgraph_add_thunk): Fix formating.
7957         (cgraph_get_node): Kill same body alias code.
7958         (cgraph_node_for_asm): Likewise.
7959         (cgraph_remove_same_body_alias): Remove.
7960         (cgraph_remove_node): Kill same body alias code.
7961         (cgraph_mark_address_taken_node): Mark also the aliased function
7962         as having address taken.
7963         (dump_cgraph_node): Dump same body aliases.
7964         (cgraph_for_node_thunks_and_aliases): Update for new alias
7965         representation.
7966         (cgraph_for_node_and_aliases): Likewise.
7967         * cgraph.h (same_body): Kll pointer.
7968         (same_body_alias): Update comment.
7969         (same_body_aliases_done): Declare.
7970         (cgraph_remove_same_body_alias): Remove declaration.
7971         (cgraph_create_function_alias): Declare.
7972         (cgraph_process_same_body_aliases): Declare.
7973         (cgraph_function_with_gimple_body_p): Check for alias.
7974         (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
7975         (cgraph_alias_aliased_node): New function.
7976         (cgraph_function_node): Update for new aliases.
7977         (cgraph_function_or_thunk_node): Likewise.
7978         * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
7979         (inline_call): Remove dead aliases.
7980         * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
7981         name hack for same body aliases.
7982         (clone_of_p): Look through aliases.
7983         (verify_cgraph_node): Verify aliases.
7984         (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
7985         (cgraph_process_same_body_aliases): New function.
7986         (process_function_and_variable_attributes): Disable weakref warning on
7987         alias.
7988         (cgraph_analyze_functions): Handle aliases.
7989         (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
7990         (assemble_thunks): Rename to ...
7991         (assemble_thunks_and_aliases): ... this one; handle aliases, too.
7992         (cgraph_expand_function): Remove alias output code.
7993         (cgraph_output_in_order): Skip aliases.
7994         (cgraph_preserve_function_body_p): Aliases don't need preserving.
7995         * ipa-ref.c (ipa_ref_use_name): Add alias reference.
7996         (ipa_record_reference): Do not assert on alias references.
7997         (ipa_ref_has_aliases_p): New function.
7998         * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
7999         (ipa_ref_has_aliases_p): Declare.
8000         * lto-cgraph.c (lto_output_node): Handle aliases.
8001         (input_node): Likewise.
8002         * lto-streamer-out.c (lto_output): Skip aliases.
8003         (produce_symtab): Kill same_body_alias code.
8004         * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
8005         (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
8006         * ipa-inline.c (update_caller_keys): Walk aliases.
8007         (inline_small_functions): Fix thinko in previous patch.
8008         * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
8009         (function_and_variable_visibility): Do not walk same body aliases.
8010         * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
8011         (ipa_pta_execute): Use it.
8012
8013 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
8014
8015         * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
8016         (*vec_dupv2df): Rename from vec_dupv2df.
8017         (vec_dupv2df): New expander.
8018
8019 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
8020
8021         * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
8022
8023 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
8024
8025         * config/i386/i386.md: Use default value in "isa" attribute.
8026         * config/i386/sse.md: Ditto.
8027         * config/i386/mmx.md: Ditto.
8028
8029 2011-06-10  Wei Guozhi  <carrot@google.com>
8030
8031         PR target/45335
8032         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
8033         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
8034         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
8035         related peephole2.
8036         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
8037         related peephole2.
8038         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
8039         (arm_legitimate_ldrd_p): New prototype.
8040         (arm_output_ldrd): New prototype.
8041         * config/arm/arm.c (arm_check_ldrd_operands): New function.
8042         (arm_legitimate_ldrd_p): New function.
8043         (arm_output_ldrd): New function.
8044
8045 2011-06-10  David Li  <davidxl@google.com>
8046
8047         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
8048         * passes.c (passr_eq): New function.
8049         (create_pass_tab): New function.
8050         (pass_traverse): New function.
8051         (dump_one_pass): New function.
8052         (dump_pass_list): New function.
8053         (dump_passes): New function.
8054
8055 2011-06-10  Jan Hubicka  <jh@suse.cz>
8056
8057         * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
8058         setting the nothrow flag.
8059         * ipa-reference.c (propagate): Skip aliases.
8060         * ipa-pure-const.c (propagate_pure_const): Skip aliases.
8061         (propagate_nothrow): Skip aliases; do not update cgraph.
8062         (local_pure_const): Do not update cgraph.
8063         * tree-profile.c (tree_profiling): Do fixup_cfg.
8064
8065 2011-06-10  Jan Hubicka  <jh@suse.cz>
8066
8067         * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
8068         (cgraph_local_node_p): ... here; handle aliases.
8069         (has_addr_references_p): Break out from ...;
8070         (cgraph_remove_unreachable_nodes) ... here.
8071
8072 2011-06-10  Jan Hubicka  <jh@suse.cz>
8073
8074         * opts.c (default_options): Enlist OPT_finline_functions_called_once.
8075         * common.opt (flag_inline_functions_called_once): Do not
8076         initialize to 1.
8077
8078 2011-06-10  Jan Hubicka  <jh@suse.cz>
8079
8080         * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
8081         (ipcp_initialize_node_lattices): Do not deal with aliases;
8082         Do not try to propagate through thunks.
8083         (ipcp_change_tops_to_bottom): Do not deal with aliases.
8084
8085 2011-06-10  Jan Hubicka  <jh@suse.cz>
8086
8087         * ipa-prop.c (ipa_write_node_info): Stream jump functions
8088         for indirect calls.
8089         (ipa_read_node_info): Likewise.
8090
8091 2011-06-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8092
8093         PR lto/49302
8094         * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
8095         (build_and_insert_call): Likewise.
8096         (build_and_insert_ref): New.
8097         (gimple_expand_builtin_pow): Minor cleanup.
8098         (gimple_expand_builtin_cabs): New.
8099         (execute_cse_sincos): Add case for BUILT_IN_CABS.
8100
8101 2011-06-10  Jan Hubicka  <jh@suse.cz>
8102
8103         * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
8104         (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
8105         (ipcp_initialize_node_lattices): We don't propagate through an aliases.
8106         (ipcp_propagate_stage): Skip aliases when propagating.
8107         (ipcp_need_redirect_p): Skip aliases.
8108         (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
8109         collect_callers_of_node.
8110         * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
8111         for aliases.
8112         (ipa_compute_jump_functions): Look through aliases.
8113
8114 2011-06-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8115
8116         * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
8117
8118 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
8119
8120         * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
8121         Adjust comments.
8122         * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
8123
8124 2011-06-10  Jan Hubicka  <jh@suse.cz>
8125
8126         * ipa-cp.c (ipcp_process_devirtualization_opportunities):
8127         Update call of gimple_get_virt_method_for_binfo.
8128         * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
8129         refuse_thunks parameter.
8130         (gimple_fold_call): Update.
8131         * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
8132
8133 2011-06-10  Jan Hubicka  <jh@suse.cz>
8134
8135         * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
8136         (not_all_callers_have_enough_arguments_p): ... this one; turn into
8137         worker for cgraph_for_node_and_aliases.
8138         (convert_callers_for_node): Break out from ...
8139         (convert_callers): ... here.
8140         (modify_function): Use collect_callers_of_node.
8141         (ipa_early_sra): Use cgraph_for_node_and_aliases.
8142
8143 2011-06-10  Richard Guenther  <rguenther@suse.de>
8144
8145         PR tree-optimization/49361
8146         * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
8147         when not already in gimple form.
8148
8149 2011-06-10  Richard Guenther  <rguenther@suse.de>
8150
8151         PR bootstrap/49344
8152         * tree-ssa-math-opts.c (convert_mult_to_fma): Use
8153         FOR_EACH_PHI_OR_STMT_USE.
8154
8155 2011-06-10  Jan Hubicka  <jh@suse.cz>
8156
8157         * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
8158         (clone_inlined_nodes): ... here.
8159         (inline_call): Use cgraph_function_or_thunk_node; redirect edge
8160         to real destination prior inlining.
8161         * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
8162         can_early_inline_edge_p, want_early_inline_function_p,
8163         want_early_inline_function_p, want_inline_small_function_p,
8164         want_inline_self_recursive_call_p, want_inline_function_called_once_p,
8165         edge_badness, update_all_callee_keys, lookup_recursive_calls,
8166         add_new_edges_to_heap, inline_small_functions, flatten_function,
8167         inline_always_inline_functions, early_inline_small_functions): Use
8168         cgraph_function_or_thunk_node.
8169         * ipa-inline-analysis.c (evaluate_conditions_for_edge,
8170         dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
8171         (do_estimate_edge_growth_1): Break out from ...
8172         (do_estimate_growth) ... here; walk aliases.
8173         (inline_generate_summary): Skip aliases.
8174
8175 2011-06-10  Richard Guenther  <rguenther@suse.de>
8176
8177         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
8178         forward when combining, visit inserted stmts when a stmt was changed.
8179
8180 2011-06-10  Paolo Carlini  <paolo.carlini@oracle.com>
8181
8182         * tree.h (error_operand_p): Add.
8183         * dbxout.c (dbxout_type_fields): Use the latter.
8184         * c-decl.c (add_stmt): Likewise.
8185         * gimplify.c (omp_add_variable, omp_notice_variable,
8186         gimplify_scan_omp_clauses): Likewise.
8187
8188 2011-06-10  Georg-Johann Lay  <avr@gjlay.de>
8189
8190         * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
8191         when a value is actually passed in regs.
8192
8193 2011-06-10  Eric Botcazou  <ebotcazou@adacore.com>
8194             Laurent Rougé  <laurent.rouge@menta.fr>
8195
8196         * doc/invoke.texi (SPARC options): Add -mflat.
8197         * config/sparc/sparc.opt: Likewise.
8198         * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
8199         (sparc_flat_expand_prologue): Declare.
8200         (sparc_flat_expand_epilogue): Likewise.
8201         * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
8202         (CPP_ENDIAN_SPEC): Replace with...
8203         (CPP_OTHER_SPEC): ...this.  Also handle -mflat and -msoft-float.
8204         (CPP_SPEC): Adjust to above change.
8205         (EXTRA_SPECS): Likewise.
8206         (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
8207         (INCOMING_REGNO): Likewise.
8208         (OUTGOING_REGNO): Likewise.
8209         (LOCAL_REGNO): Likewise.
8210         (SETUP_FRAME_ADDRESSES): Likewise.
8211         (FIXED_REGISTERS): Set 0 for %fp.
8212         (CALL_USED_REGISTERS): Likewise.
8213         (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
8214         (EXIT_IGNORE_STACK): Define to 1 unconditionally.
8215         (RETURN_ADDR_REGNUM): Define.
8216         (RETURN_ADDR_RTX): Use it.
8217         (INCOMING_RETURN_ADDR_REGNUM): Define.
8218         (INCOMING_RETURN_ADDR_RTX): Use it.
8219         (DWARF_FRAME_RETURN_COLUMN): Likewise.
8220         (EH_RETURN_REGNUM): Define.
8221         (EH_RETURN_STACKADJ_RTX): Use it.
8222         (EH_RETURN_HANDLER_RTX): Delete.
8223         (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
8224         * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
8225         Delete.
8226         (struct machine_function): Add frame_size, apparent_frame_size,
8227         frame_base_reg, frame_base_offset, n_global_fp_regs and
8228         save_local_in_regs_p fields.
8229         (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
8230         sparc_frame_base_offset, sparc_n_global_fp_regs,
8231         sparc_save_local_in_regs_p): New macros.
8232         (sparc_option_override): Error out if -fcall-saved-REG is specified
8233         for Out registers.
8234         (eligible_for_restore_insn): Fix formatting.
8235         (eligible_for_return_delay): Likewise.  Add TARGET_FLAT handling.
8236         (eligible_for_sibcall_delay): Likewise.
8237         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
8238         (sparc_legitimate_address_p): Adjust to above change.
8239         (save_global_or_fp_reg_p): New predicate.
8240         (return_addr_reg_needed_p): Likewise.
8241         (save_local_or_in_reg_p): Likewise.
8242         (sparc_compute_frame_size): Use them.  Add TARGET_FLAT handling.
8243         (SORR_SAVE, SORR_RESTORE): Delete.
8244         (sorr_pred_t): New typedef.
8245         (sorr_act_t): New enum.
8246         (save_or_restore_regs): Rename to...
8247         (emit_save_or_restore_regs): ...this.  Change type of LOW and HIGH
8248         parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
8249         ACTION_TRUE and ACTION_FALSE parameters.  Implement more general
8250         mechanism.  Add CFI information for double-word saves in 32-bit mode.
8251         (emit_adjust_base_to_offset): New function extracted from...
8252         (emit_save_or_restore_regs): ...this.  Rename the rest to...
8253         (emit_save_or_restore_regs_global_fp_regs): ...this.
8254         (emit_save_or_restore_regs_local_in_regs): New function.
8255         (gen_create_flat_frame_[123]): New functions.
8256         (sparc_expand_prologue): Use SIZE local variable.  Adjust.
8257         (sparc_flat_expand_prologue): New function.
8258         (sparc_asm_function_prologue): Add TARGET_FLAT handling.
8259         (sparc_expand_epilogue): Use SIZE local variable.  Adjust.
8260         (sparc_flat_expand_epilogue): New function.
8261         (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
8262         (output_return): Likewise.
8263         (output_sibcall): Likewise.
8264         (sparc_output_mi_thunk): Likewise.
8265         (sparc_frame_pointer_required): Likewise.
8266         (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
8267         function optimization.
8268         * config/sparc/sparc.md (flat): New attribute.
8269         (prologue): Add TARGET_FLAT handling.
8270         (save_register_window): Disable if TARGET_FLAT.
8271         (create_flat_frame_[123]): New patterns.
8272         (epilogue): Add TARGET_FLAT handling.
8273         (sibcall_epilogue): Likewise.
8274         (eh_return): New expander.
8275         (eh_return_internal): New insn and splitter.
8276         (return_internal): Add TARGET_FLAT handling.
8277         (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
8278         (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
8279         (nonlocal_goto): Add TARGET_FLAT handling.
8280         * config/sparc/t-elf: Add -mflat multilib.
8281         * config/sparc/t-leon: Likewise.
8282
8283 2011-06-10  Jan Hubicka  <jh@suse.cz>
8284
8285         * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
8286         * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
8287         (self_recursive_p): Use cgraph_function_node.
8288         (propagate_pure_const): Likewise.
8289         (propagate_nothrow): Likewise.
8290         * ipa-reference.c (ipa_reference_get_not_read_global): Use
8291         cgraph_function_node.
8292         (propagate_bits): Likewise.
8293         (propagate): Likewise.
8294
8295 2011-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
8296             Richard Earnshaw  <rearnsha@arm.com>
8297
8298         * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
8299         * config/arm/vfp.md (*arm_movdi_vfp): Delete.
8300         (*thumb2_movdi_vfp): Delete.
8301         (*arm_movdi_vfp_cortexa8): Delete.
8302         (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
8303         (*movdi_vfp_cortexa8): Likewise.
8304
8305 2011-06-10  Richard Guenther  <rguenther@suse.de>
8306
8307         * stor-layout.c (initialize_sizetypes): Give names to all
8308         sizetype kinds.
8309
8310 2011-06-10  Ira Rosen  <ira.rosen@linaro.org>
8311
8312         PR tree-optimization/49318
8313         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
8314         irrelevant pattern statements.
8315
8316 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
8317
8318         * system.h (SETJMP_VIA_SAVE_AREA): Poison.
8319
8320         PR bootstrap/49354
8321         * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
8322         to last assignment.
8323
8324 2011-06-09  Jan Hubicka  <jh@suse.cz>
8325
8326         * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
8327         do not recompute reachable flag.
8328         (cgraph_finalize_function, cgraph_analyze_functions): Set
8329         redefined_extern_inline here.
8330
8331 2011-06-09  Jan Hubicka  <jh@suse.cz>
8332
8333         * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
8334         (cgraph_only_called_directly_p): ... this one; bring offline.
8335         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
8336         varpool_used_from_object_file_p): Drop names from the declaratoin.
8337         (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
8338         collect_callers_of_node): New.
8339         (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
8340         (cgraph_edge_recursive_p): Use cgraph_function_node.
8341         * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
8342         (cgraph_node_cannot_be_local_p_1): Break out from ...
8343         (cgraph_node_can_be_local_p): ... here; walk aliases.
8344         (cgraph_for_node_thunks_and_aliases): New function.
8345         (cgraph_for_node_and_aliases): New function.
8346         (cgraph_make_node_local_1): Break out from ...
8347         (cgraph_make_node_local) ... here; use
8348         cgraph_for_node_thunks_and_aliases.
8349         (cgraph_set_nothrow_flag_1): Break out from ...
8350         (cgraph_set_nothrow_flag) ... here;
8351         use cgraph_for_node_thunks_and_aliases.
8352         (cgraph_set_const_flag_1): Break out from ...
8353         (cgraph_set_const_flag) ... here;
8354         use cgraph_for_node_thunks_and_aliases.
8355         (cgraph_set_pure_flag_1): Break out from ...
8356         (cgraph_set_pure_flag) ... here;
8357         use cgraph_for_node_thunks_and_aliases.
8358         (cgraph_propagate_frequency_1): Break out from ...
8359         (cgraph_propagate_frequency) ... here; use
8360         cgraph_for_node_thunks_and_aliases.
8361         (cgraph_used_from_object_file_p): Do not care about aliases.
8362         (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
8363         New functions.
8364         (collect_callers_of_node_1, collect_callers_of_node): New functions.
8365
8366 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
8367
8368         PR rtl-optimization/49154
8369         * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
8370         (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
8371         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
8372         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
8373         * config/cris/cris.h (cris_register_move_cost): Remove
8374         !TARGET_V32 code.  Tweak comments.
8375
8376 2011-06-09  Jan Hubicka  <jh@suse.cz>
8377
8378         * cgraphbuild.c (record_eh_tables): Mark personality function as having
8379         address taken.
8380
8381 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
8382
8383         PR rtl-optimization/49154
8384         * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
8385         is a matching slot in the hashtable, assign it to classes_ptr.
8386
8387         PR rtl-optimization/49154
8388         * doc/tm.texi.in (Register Classes): Document rule for the narrowest
8389         register classes.
8390         * doc/tm.texi: Regenerate.
8391
8392 2011-06-09  Kaz Kojima  <kkojima@gcc.gnu.org>
8393
8394         PR target/49307
8395         * config/sh/sh.md (UNSPEC_CHKADD): New.
8396         (chk_guard_add): New define_insn_and_split.
8397         (symGOT_load): Use chk_guard_add instead of blockage.
8398
8399 2011-06-09  Kai Tietz  <ktietz@redhat.com>
8400
8401         * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
8402
8403 2011-06-09  Eric Botcazou  <ebotcazou@adacore.com>
8404
8405         * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
8406
8407 2011-06-09  Wei Guozhi  <carrot@google.com>
8408
8409         PR target/46975
8410         * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
8411         (peephole2 for conditional move): Generate 16 bit instructions.
8412
8413 2011-06-09  Uros Bizjak  <ubizjak@gmail.com>
8414
8415         * config/i386/i386.md (*movdi_internal_rex64): Merge
8416         alternatives 6 and 8.
8417
8418 2011-06-09  David Li  <davidxl@google.com>
8419
8420         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
8421         * passes.c (passr_eq): New function.
8422         (create_pass_tab): New function.
8423         (pass_traverse): New function.
8424         (dump_one_pass): New function.
8425         (dump_pass_list): New function.
8426         (dump_passes): New function.
8427
8428 2011-06-09  David Li  <davidxl@google.com>
8429
8430         * tree-complex.c (tree_lower_complex): Gate cleanup.
8431         * tree-stdarg.c (check_all_va_list_escapes): Ditto.
8432         (execute_optimize_stdarg): Ditto.
8433         * tree-eh.c (execute_lower_eh_dispatch): Ditto.
8434         (execute_cleanup_eh_1): Ditto.
8435         (execute_cleanup_eh): Ditto.
8436         * gcse.c (gate_rtl_pre): Ditto.
8437         (execute_rtl_pre): Ditto.
8438         * except.c (finish_eh_generation): Ditto.
8439         (convert_to_eh_region_ranges): Ditto.
8440         * cprop.c (one_cprop_pass): Ditto.
8441
8442 2011-06-09  Bernd Schmidt  <bernds@codesourcery.com>
8443
8444         PR target/48673
8445         * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
8446         in all basic blocks.
8447
8448 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8449
8450         * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
8451         (HAVE_ENABLE_EXECUTE_STACK): Define.
8452         * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
8453         (HAVE_ENABLE_EXECUTE_STACK): Define.
8454         * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
8455         (HAVE_ENABLE_EXECUTE_STACK): Define.
8456         * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
8457         (ENABLE_EXECUTE_STACK): Remove.
8458         (HAVE_ENABLE_EXECUTE_STACK): Define.
8459         [IN_LIBGCC2]: Don't include <windows.h>.
8460         * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
8461         (HAVE_ENABLE_EXECUTE_STACK): Define.
8462         * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
8463         (HAVE_ENABLE_EXECUTE_STACK): Define.
8464         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
8465         * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
8466         (HAVE_ENABLE_EXECUTE_STACK): Define.
8467         * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
8468         (HAVE_ENABLE_EXECUTE_STACK): Define.
8469         * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
8470         (HAVE_ENABLE_EXECUTE_STACK): Define.
8471         * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
8472         (HAVE_ENABLE_EXECUTE_STACK): Define.
8473         * config/alpha/alpha.c (alpha_trampoline_init): Test
8474         HAVE_ENABLE_EXECUTE_STACK.
8475         * config/i386/i386.c (ix86_trampoline_init): Likewise.
8476         * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
8477         (sparc64_initialize_trampoline): Likewise.
8478         * libgcc2.c [L_enable_execute_stack]: Remove.
8479         * system.h (ENABLE_EXECUTE_STACK): Poison.
8480         * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
8481         * doc/tm.texi: Regenerate.
8482         * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
8483
8484 2011-06-09  Jakub Jelinek  <jakub@redhat.com>
8485
8486         PR middle-end/49308
8487         * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
8488         variable.  After resetting and rescanning insn continue with previous
8489         statement.
8490
8491 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8492
8493         * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
8494         (gcc_cv_ld_hidden): Likewise.
8495         * configure: Regenerate.
8496         * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
8497         (ix86_stack_protect_fail): Mark unused.
8498         (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
8499         * config/rs6000/rs6000.c (rs6000_assemble_visibility)
8500         [TARGET_MACHO]: Don't define.
8501         (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
8502         (TARGET_STACK_PROTECT_FAIL): Likewise.
8503         (rs6000_stack_protect_fail): Mark unused.
8504         * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
8505         USE_LINKONCE_INDIRECT.  Don't emit .hidden expicitly.
8506
8507 2011-06-08  Andi Kleen  <ak@linux.intel.com>
8508
8509         * varasm.c (get_section): Print location of other conflict
8510         for section conflicts.
8511
8512 2011-06-08  Andi Kleen  <ak@linux.intel.com>
8513
8514         * config/i386/driver-i386.c (host_detect_local_cpu):
8515         Add model 0x2d Intel CPU.
8516
8517 2011-06-08  Andi Kleen  <ak@linux.intel.com>
8518
8519         * reginfo.c (global_regs_decl): Add.
8520         (globalize_reg): Add decl parameter. Compute location.  Pass location
8521         to warnings and add inform. Store decl in global_regs_decl.
8522         * rtl.h (globalize_reg): Update prototype.
8523         * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
8524
8525 2011-06-09  Mingjie Xing  <mingjie.xing@gmail.com>
8526
8527         * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
8528
8529 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
8530
8531         PR target/49305
8532         * config/sh/predicates.md (general_movsrc_operand): Check
8533         mode for memory with indexed address for QI and HImode.
8534         (general_movdst_operand): Likewise.
8535
8536 2011-06-09  Nicola Pero  <nicola.pero@meta-innovation.com>
8537
8538         * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
8539
8540 2011-06-08  Alexandre Oliva  <aoliva@redhat.com>
8541
8542         * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
8543         (num_ssa_operands): Likewise.
8544         (op_iter_init_phiuse): Forward-declare.
8545         (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
8546
8547 2011-06-08  Nick Clifton  <nickc@redhat.com>
8548
8549         * doc/invoke.texi (ARM Options): Update description of
8550         -mthumb-interwork.
8551
8552 2011-06-08  H.J. Lu  <hongjiu.lu@intel.com>
8553
8554         * config/i386/driver-i386.c (host_detect_local_cpu): Support
8555         unknown Intel family 0x6 CPUs.
8556
8557 2011-06-08  Martin Jambor  <mjambor@suse.cz>
8558
8559         * tree-sra.c (mark_rw_status): Removed.
8560         (analyze_access_subtree): New parameter parent instead of
8561         mark_read and mark_write, propagate from that.
8562
8563 2011-06-08  Julian Brown  <julian@codesourcery.com>
8564
8565         * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
8566         for double-precision helper functions in hard-float mode if only
8567         single-precision arithmetic is supported in hardware.
8568
8569 2011-06-08  Alexander Monakov  <amonakov@ispras.ru>
8570
8571         PR rtl-optimization/49303
8572         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
8573         code_motion_path_driver returned 0 or 1.
8574         (sel_region_finish): Clear h_d_i_d.
8575
8576 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
8577
8578         * config/sh/sh.c (prepare_move_operands): Set pic register
8579         appropriately for global and local dynamic tls models even
8580         if flag_pic is unset.
8581
8582 2011-06-07  Jason Merrill  <jason@redhat.com>
8583
8584         * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
8585
8586 2011-06-07  Xinliang David Li  <davidxl@google.com>
8587         * passes.c (enable_disable_pass): Handle assembler name.
8588         (is_pass_explicitly_enabled_or_disabled): Ditto.
8589
8590 2011-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8591
8592         PR tree-optimization/48497
8593         * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
8594
8595 2011-06-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8596
8597         PR tree-optimization/46728
8598         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
8599         to use gimple_val_nonnegative_real_p.
8600         * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
8601         * gimple.h (gimple_val_nonnegative_real_p): New declaration.
8602
8603 2011-06-07  H.J. Lu  <hongjiu.lu@intel.com>
8604
8605         * config/i386/i386.md (*movsf_internal): Optimize AVX check.
8606
8607 2011-06-07  Sergey Grechanik  <mouseentity@ispras.ru>
8608
8609         * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
8610         constant vectors.
8611
8612 2011-06-07  Richard Guenther  <rguenther@suse.de>
8613
8614         * stor-layout.c (initialize_sizetypes): Initialize all
8615         sizetypes based on target definitions.
8616         (set_sizetype): Remove.
8617         * tree.c (build_common_tree_nodes): Do not call set_sizetype.
8618         * tree.h (set_sizetype): Remove.
8619
8620 2011-06-07  Nick Clifton  <nickc@redhat.com>
8621
8622         * config.gcc: Unify V850 architecture options and add support for
8623         newer V850 architectures.
8624         * config/v850/t-v850e: Delete.
8625
8626 2011-06-07  Richard Guenther  <rguenther@suse.de>
8627
8628         * tree.c (build_common_tree_nodes): Also initialize size_type_node.
8629         Call set_sizetype from here.
8630
8631 2011-06-07  Andrew Stubbs  <ams@codesourcery.com>
8632
8633         * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
8634         (*maddhisi4tb, *maddhisi4tt): New define_insns.
8635
8636 2011-06-07  Bernd Schmidt  <bernds@codesourcery.com>
8637             Andrew Stubbs  <ams@codesourcery.com>
8638
8639         * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
8640         multiplies.
8641         * doc/md.texi (Canonicalization of Instructions): Document widening
8642         multiply canonicalization.
8643
8644 2011-06-07  Jakub Jelinek  <jakub@redhat.com>
8645
8646         PR gcov-profile/49299
8647         * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
8648
8649 2011-06-07  Ira Rosen  <ira.rosen@linaro.org>
8650
8651         * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
8652         a pointer.
8653         * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
8654         vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
8655         vect_recog_pow_pattern): Likewise.
8656         (vect_pattern_recog_1): Remove declaration.
8657         (widened_name_p): Remove declaration.  Add new argument to specify
8658         whether to check that both types are either signed or unsigned.
8659         (vect_recog_widen_mult_pattern): Update documentation.  Handle
8660         unsigned patterns and multiplication by constants.
8661         (vect_pattern_recog_1): Update vect_recog_func references.  Use
8662         statement information from the statement returned from pattern
8663         detection functions.
8664         (vect_pattern_recog): Update vect_recog_func reference.
8665         * tree-vect-stmts.c (vectorizable_type_promotion): For widening
8666         multiplication by a constant use the type of the other operand.
8667
8668 2011-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
8669
8670         PR rtl-optimization/49145
8671         * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
8672
8673 2011-06-06  Jakub Jelinek  <jakub@redhat.com>
8674
8675         PR debug/49262
8676         * dwarf2out.c (native_encode_initializer): Decrement count in each
8677         iteration.
8678
8679         PR debug/49294
8680         * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
8681         non-MODE_INT modes.
8682
8683         PR c++/49264
8684         * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
8685         if stmt folded into nothing.
8686         * tree-inline.c (fold_marked_statements): If a builtin at the end of
8687         a bb folded into nothing, just update cgraph edges and move to next bb.
8688         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
8689         to be NULL.  Don't compute count and frequency if new_call is NULL.
8690
8691 2011-06-04  Diego Novillo  <dnovillo@google.com>
8692
8693         * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
8694         (cgraph.o): Likewise.
8695         (cgraphunit.o): Likewise.
8696         * cgraphunit.c: Include lto-streamer.h
8697         (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
8698         if LTO is enabled.
8699         * lto-streamer-in.c (unpack_value_fields): Call
8700         streamer_hooks.unpack_value_fields if set.
8701         (lto_materialize_tree): For unhandled nodes, first try to
8702         call lto_streamer_hooks.alloc_tree, if it exists.
8703         (lto_input_ts_decl_common_tree_pointers): Move reading of
8704         DECL_INITIAL to lto_streamer_read_tree.
8705         (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
8706         (lto_streamer_read_tree): New.
8707         (lto_reader_init): Rename from lto_init_reader.
8708         Move initialization code to lto/lto.c.
8709         * lto-streamer-out.c (pack_value_fields): Call
8710         streamer_hooks.pack_value_fields if set.
8711         (lto_output_tree_ref): For tree nodes that are not normally indexable,
8712         call streamer_hooks.indexable_with_decls_p before giving up.
8713         (lto_output_ts_decl_common_tree_pointers): Move handling
8714         for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
8715         (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
8716         lto_is_streamable.  Call lto_streamer_hooks.output_tree_header if set.
8717         (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
8718         (lto_streamer_write_tree): New.
8719         (lto_output): Call lto_streamer_init directly.
8720         (lto_writer_init): Remove.
8721         * lto-streamer.c (streamer_hooks): New.
8722         (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
8723         instead of lto_preload_common_nodes.
8724         (lto_is_streamable): Move from lto-streamer.h
8725         (lto_streamer_hooks_init): New.
8726         (streamer_hooks): New.
8727         (streamer_hooks_init): New.
8728         * lto-streamer.h (struct output_block): Forward declare.
8729         (struct lto_input_block): Likewise.
8730         (struct data_in): Likewise.
8731         (struct bitpack_d): Likewise.
8732         (struct streamer_hooks): Declare.
8733         (streamer_hooks): Declare.
8734         (lto_streamer_hooks_init): Declare.
8735         (lto_streamer_write_tree): Declare.
8736         (lto_streamer_read_tree): Declare.
8737         (streamer_hooks_init): Declare.
8738         (lto_is_streamable): Move to lto-streamer.c
8739
8740 2011-06-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8741
8742         * longlong.h (smul_ppmm): The resulting register pair contains the
8743         higher order word first.
8744
8745 2011-06-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8746
8747         PR tree-optimization/46728
8748         * builtins.c (powi_table): Remove.
8749         (powi_lookup_cost): Remove.
8750         (powi_cost): Remove.
8751         (expand_powi_1): Remove.
8752         (expand_powi): Remove.
8753         (expand_builtin_pow_root): Remove.
8754         (expand_builtin_pow): Remove.
8755         (expand_builtin_powi): Eliminate handling of constant exponent.
8756         (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
8757
8758 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
8759
8760         * cprop.c (local_cprop_pass): Don't set changed for debug insns.
8761
8762 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
8763
8764         * dce.c (reset_unmarked_insns_debug_uses): New.
8765         (delete_unmarked_insns): Skip debug insns.
8766         (prescan_insns_for_dce): Likewise.
8767         (rest_of_handle_ud_dce): Reset debug uses of removed sets.
8768         * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
8769         active reg can be found.
8770         (subst_all_stack_regs_in_debug_insn): New.  Reset debug insn then.
8771         (convert_regs_1): Use it.
8772
8773 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
8774
8775         * tree-pretty-print.c (dump_function_header): Add flags.
8776         Don't dump decl_uid with nouid.
8777         * tree-pretty-print.h (dump_function_header): Adjust.
8778         * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
8779         * passes.c (pass_init_dump_file): Pass dump_flags on.
8780         * tree-cfg.c (gimple_dump_cfg): Pass flags on.
8781
8782 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
8783
8784         PR bootstrap/49270
8785         * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
8786
8787 2011-06-06  Mikael Pettersson  <mikpe@it.uu.se>
8788
8789         PR tree-optimization/49243
8790         * calls.c (setjmp_call_p): Also check if fndecl has the
8791         returns_twice attribute.
8792
8793 2011-06-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8794
8795         * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
8796         -ffast-math etc.
8797
8798 2011-06-06  Richard Henderson  <rth@redhat.com>
8799             Georg-Johann Lay  <avr@gjlay.de>
8800
8801         PR target/42210
8802         * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
8803         New predicates.
8804         * config/avr/avr.md ("insv"): New insn expander.
8805         ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
8806         "*insv.not.io", "*insv.reg"): New insns.
8807
8808 2011-06-06  Hans-Peter Nilsson  <hp@bitrange.com>
8809
8810         PR target/49285
8811         * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
8812         to nonimmediate_operand from memory_operand for the operand that is to
8813         be forced to memory by the expander.  Lose the constraints.
8814
8815 2011-06-05  Eric Botcazou  <ebotcazou@adacore.com>
8816
8817         * config/sparc/sparc.c (output_return): Fix thinko in the output of an
8818         EH return when delayed branches are disabled.
8819
8820 2011-06-05  Uros Bizjak  <ubizjak@gmail.com>
8821
8822         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
8823         Remove MODE_TI handling.  Remove SSE1 handling in attribute "mode"
8824         calculation.
8825         (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
8826         Simplify MODE_V1DF and MODE_V2SF handling.
8827         (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
8828         Simplify MODE_SF handling.
8829
8830 2011-06-04  Jan Hubicka  <jh@suse.cz>
8831
8832         PR tree-optimization/48893
8833         PR tree-optimization/49091
8834         PR tree-optimization/49179
8835         * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
8836         Bounds check.
8837
8838 2011-06-04  Jan Hubicka  <jh@suse.cz>
8839
8840         PR lto/48954
8841         * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
8842         bitmaps.
8843
8844 2011-06-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
8845
8846         * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
8847
8848 2011-06-04  Jakub Jelinek  <jakub@redhat.com>
8849
8850         PR target/49281
8851         * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
8852         to be strictly smaller than 1 << shiftcount.
8853
8854 2011-06-04  Jan Hubicka  <jh@suse.cz>
8855
8856         PR tree-optimize/48929
8857         * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
8858         of empty predicate.
8859
8860 2011-06-04  Alexandre Oliva  <aoliva@redhat.com>
8861
8862         PR debug/48333
8863         * calls.c (emit_call_1): Prefer the __builtin declaration of
8864         builtin functions.
8865
8866 2011-06-03   Diego Novillo  <dnovillo@google.com>
8867
8868         * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
8869         (lto_input_tree_pointers): Likewise.
8870         * lto-streamer-out.c (pack_value_fields): Likewise.
8871         (lto_output_tree_pointers): Likewise.
8872         * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
8873         and OPTIMIZATION_NODE.
8874
8875 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8876
8877         * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
8878         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
8879         * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
8880         * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
8881         * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
8882         * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
8883         * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
8884         * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
8885         * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
8886         * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
8887         * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
8888         * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
8889         * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
8890         * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
8891         * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
8892         * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
8893         * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
8894         * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
8895         * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
8896         * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
8897         * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
8898         * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
8899         * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
8900         * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
8901         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
8902         * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
8903         * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
8904         * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
8905         * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
8906         * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
8907         * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
8908         * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
8909         * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
8910         * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
8911         * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
8912         * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
8913         * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
8914         * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
8915         * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
8916         * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
8917         * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
8918         * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
8919         * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
8920         * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
8921         * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
8922         * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
8923         * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
8924         * system.h (MD_UNWIND_SUPPORT): Poison.
8925         * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
8926         * doc/tm.texi: Regenerate.
8927         * unwind-dw2.c: Include md-unwind-support.h instead of
8928         MD_UNWIND_SUPPORT.
8929         * config/ia64/unwind-ia64.c: Likewise.
8930         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
8931
8932 2011-06-03  Jack Howarth  <howarth@bromo.med.uc.edu>
8933
8934         * varpool.c (varpool_extra_name_alias): Return NULL, not false.
8935
8936 2011-06-03  Richard Henderson  <rth@redhat.com>
8937             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8938
8939         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
8940         (sigill_hdlr): Correct insn, insn size.
8941         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
8942
8943 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8944
8945         * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
8946         t-slibgcc-dummy.
8947         * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
8948         * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
8949         * config/mips/t-iris: Remove.
8950         * config/mips/t-irix6: New file.
8951         * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
8952
8953 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8954
8955         * Makefile.in (LIB2ADDEHDEP): Remove.
8956         * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
8957         * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
8958         * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
8959         * config/t-darwin (LIB2ADDEHDEP): Remove.
8960         * config/t-freebsd (LIB2ADDEHDEP): Remove.
8961         * config/t-linux (LIB2ADDEHDEP): Remove.
8962
8963 2011-06-03  Diego Novillo  <dnovillo@google.com>
8964
8965         * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
8966         (lto_register_var_decl_in_symtab): Likewise.
8967         (lto_register_function_decl_in_symtab): Likewise.
8968         (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
8969         logic to uniquify_nodes.
8970
8971 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8972
8973         * config/alpha/t-osf5: Remove.
8974         * config/alpha/t-osf-pthread: Remove.
8975         * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
8976         * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
8977
8978 2011-06-03  Julian Brown  <julian@codesourcery.com>
8979
8980         * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
8981         (strongarm1110): Use strongarm tuning.
8982         * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
8983         * config/arm/arm.c (arm_strongarm_tune): New.
8984         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
8985         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
8986         (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
8987         setting, using previous defaults or 1 for Cortex-A5.
8988         (arm_option_override): Set max_insns_skipped from current tuning.
8989
8990 2011-06-03  Nathan Sidwell  <nathan@codesourcery.com>
8991
8992         * doc/install.texi (Options specification): Document --with-specs.
8993
8994 2011-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
8995
8996         * config/arm/neon.md (orndi3_neon): Actually split it.
8997
8998 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
8999
9000         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
9001         * var-tracking.c (reverse_op): Limite recurse depth to 5.
9002
9003 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
9004
9005         PR debug/47590
9006         * target.def (delay_sched2, delay_vartrack): New.
9007         * doc/tm.texi.in: Update.
9008         * doc/tm.texi: Rebuild.
9009         * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
9010         * var-tracking.c (gate_handle_var_tracking): Likewise.
9011         * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
9012         (bfin_flag_var_tracking): Drop.
9013         (output_file_start): Don't save and override flag_var_tracking.
9014         (bfin_option_override): Ditto flag_schedule_insns_after_reload.
9015         (bfin_reorg): Test original variables.
9016         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
9017         * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
9018         (ia64_flag_var_tracking): Drop.
9019         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
9020         (ia64_file_start): Don't save and override flag_var_tracking.
9021         (ia64_override_options_after_change): Ditto
9022         flag_schedule_insns_after_reload.
9023         (ia64_reorg): Test original variables.
9024         * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
9025         (picochip_flag_var_tracking): Drop.
9026         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
9027         (picochip_option_override): Don't save and override
9028         flag_schedule_insns_after_reload.
9029         (picochip_asm_file_start): Ditto flag_var_tracking.
9030         (picochip_reorg): Test original variables.
9031         * config/spu/spu.c (spu_flag_var_tracking): Drop.
9032         (TARGET_DELAY_VARTRACK): Define.
9033         (spu_var_tracking): New.
9034         (spu_machine_dependent_reorg): Call it.
9035         (asm_file_start): Don't save and override flag_var_tracking.
9036
9037 2011-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
9038
9039         PR target/49163
9040         * config/sh/predicates.md (general_movsrc_operand): Return 0
9041         for memory and memory subreg of which address is an invalid
9042         indexed address for QI and HImode.
9043         (general_movdst_operand): Likewise.
9044
9045 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
9046
9047         * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
9048         edges only, when there is a non-local label in the function.
9049         * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
9050
9051 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
9052
9053         * config/i386/constraints.md (Y3): New register constraint.
9054         * config/i386/sse.md (*vec_interleave_highv2df): Merge with
9055         *sse3_interleave_highv2df and *sse2_interleave_highv2df.
9056         (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
9057         *sse2_interleave_lowv2df.
9058
9059 2011-06-02  Julian Brown  <julian@codesourcery.com>
9060
9061         * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
9062         * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
9063         (arm_cortex_a5_tune): New.
9064
9065 2011-06-02  Julian Brown  <julian@codesourcery.com>
9066
9067         * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
9068         * config/arm/arm.c (arm_default_branch_cost): New.
9069         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
9070         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
9071         (arm_fa726_tune): Set branch_cost field using
9072         arm_default_branch_cost.
9073         * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
9074         current_tune structure.
9075         * dojump.c (tm_p.h): Include file.
9076
9077 2011-06-02  Julian Brown  <julian@codesourcery.com>
9078
9079         * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
9080         tuning.
9081         (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
9082         (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
9083         * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
9084         field.
9085         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
9086         (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
9087         (arm_fa726te_tune): Add prefer_constant_pool setting.
9088         (arm_v6t2_tune, arm_cortex_tune): New.
9089         * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
9090         prefer_constant_pool setting.
9091
9092 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
9093
9094         * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
9095         switch statement.
9096         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
9097         (*movdf_internal) <case 6,7,8>: Ditto.
9098
9099         * config/i386/constraints.md (Y4): New register constraint.
9100         * config/i386/sse.md (vec_set<mode>_0): Merge with
9101         *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
9102         (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
9103         *vec_extractv2di_1_sse.
9104         (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
9105         and *vec_concatv2di_rex64_sse.
9106
9107 2011-06-02  Stuart Henderson  <shenders@gcc.gnu.org>
9108
9109         PR target/48807
9110         * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
9111         of cgraph_local_info for null before attempting to use it.
9112
9113 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
9114
9115         * function.h (struct stack_usage): Remove dynamic_alloc_count field.
9116         (current_function_dynamic_alloc_count): Delete.
9117         * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
9118         (expand_builtin_nonlocal_goto): Remove obsolete comment.
9119         (expand_builtin_update_setjmp_buf): Remove dead code.
9120         * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
9121         * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
9122         support.
9123         * function.c (instantiate_virtual_regs): Likewise.
9124         * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
9125         for a block with a single abnormal incoming edge.
9126         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
9127         (SETJMP_VIA_SAVE_AREA): Delete.
9128         * config/sparc/sparc-protos.h (load_got_register): Declare.
9129         * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
9130         (load_got_register): Make global.
9131         (sparc_frame_pointer_required): Add 'static'.
9132         (sparc_can_eliminate): Likewise.  Call sparc_frame_pointer_required.
9133         (sparc_builtin_setjmp_frame_value): New function.
9134         * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
9135         (save_stack_nonlocal): New expander.
9136         (restore_stack_nonlocal): Likewise.
9137         (nonlocal_goto): Remove modes, adjust predicates and reimplement.
9138         (nonlocal_goto_internal): New insn.
9139         (goto_handler_and_restore): Delete.
9140         (builtin_setjmp_setup): Likewise.
9141         (do_builtin_setjmp_setup): Likewise.
9142         (setjmp): Likewise.
9143         (builtin_setjmp_receiver): New expander.
9144
9145 2011-06-01  David Li  <davidxl@google.com>
9146
9147         PR middle-end/49261
9148         * tree-pretty-print.c (dump_function_header): Format cleanup.
9149
9150 2011-06-01  Kaz Kojima  <kkojima@gcc.gnu.org>
9151
9152         PR target/49238
9153         * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
9154         needed when original operands are used for msw_skip comparison.
9155
9156 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
9157
9158         PR debug/49250
9159         * var-tracking.c (add_uses, add_stores): Don't call
9160         cselib_subst_to_values on ENTRY_VALUE.
9161
9162 2011-06-01  Diego Novillo  <dnovillo@google.com>
9163
9164         * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
9165         output_record_start with LTO_null instead of output_zero.
9166         (lto_output_ts_binfo_tree_pointers): Likewise.
9167         (lto_output_tree): Likewise.
9168         (output_eh_try_list): Likewise.
9169         (output_eh_region): Likewise.
9170         (output_eh_lp): Likewise.
9171         (output_eh_regions): Likewise.
9172         (output_bb): Likewise.
9173         (output_function): Likewise.
9174         (output_unreferenced_globals): Likewise.
9175         * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
9176         instead of NUM_TREE_CODES.
9177         (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
9178         (lto_output_int_in_range): Change << to >> when shifting VAL.
9179
9180 2011-06-01  Diego Novillo  <dnovillo@google.com>
9181
9182         * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
9183         Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
9184
9185 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
9186
9187         PR target/45074
9188         * optabs.h (valid_multiword_target_p): Declare.
9189         * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
9190         doing multi-word operations.
9191         * optabs.c (expand_binop): Likewise.
9192         (expand_doubleword_bswap): Likewise.
9193         (expand_absneg_bit): Likewise.
9194         (expand_unop): Likewise.
9195         (expand_copysign_bit): Likewise.
9196         (multiword_target_p): New function.
9197
9198 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
9199
9200         PR rtl-optimization/48830
9201         PR rtl-optimization/48808
9202         PR rtl-optimization/48792
9203         * reload.c (push_reload): Check contains_reg_of_mode.
9204         * reload1.c (strip_paradoxical_subreg): New function.
9205         (gen_reload_chain_without_interm_reg_p): Use it to handle
9206         paradoxical subregs.
9207         (emit_output_reload_insns, gen_reload): Likewise.
9208
9209 2011-06-01  David Li  <davidxl@google.com>
9210
9211         * predict.c : Change pass name
9212         * ipa.c: Ditto.
9213         * dce.c: Ditto.
9214         * tree-profile.c: Ditto.
9215         * except.c: Ditto.
9216
9217 2011-06-01  David Li  <davidxl@google.com>
9218
9219         * tree-pretty-print.c (dump_function_header): New function.
9220         * final.c (rest_of_clean_state): Use header dumper.
9221         * tree-cfg.c (gimple_dump_cfg): Use header dumper.
9222         * passes.c (pass_init_dump_file): Use header dumper.
9223
9224 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
9225
9226         * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
9227         ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
9228         popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
9229         New functions.
9230         (mem_loc_descriptor): Use them.
9231
9232         * var-tracking.c (create_entry_value): New function.
9233         (vt_add_function_parameter): Use it.
9234
9235 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9236
9237         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
9238         Include <signal.h>, <ucontext.h>.
9239         (sigill_caught): Define.
9240         (sigill_hdlr): New function.
9241         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
9242         insns can be executed.
9243         * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
9244         * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
9245
9246 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9247
9248         * config/t-slibgcc-darwin: Move to ...
9249         * config/t-slibgcc-dummy: ... this.  Clarify comments.
9250         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
9251         powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
9252         (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
9253         (i[34567]86-*-rtems*): Remove extra_parts.  Use i386/t-rtems.
9254         Remove i386/t-crtstuff from tmake_file.
9255         (i[34567]86-*-solaris2*): Remove t-svr4,
9256         t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
9257         t-slibgcc-dummy.
9258         (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
9259         (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
9260         sparc/t-crtfm from tmake_file.
9261         (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
9262         t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
9263         Remove extra_parts.
9264         * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
9265         * config/i386/t-nwld (SHLIB_LINK): Remove.
9266         * config/i386/t-rtems-i386: Rename to ...
9267         * config/i386/t-rtems: ... this.
9268         ($(T)crti.o, $(T)crtn.o): Remove.
9269         (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
9270         (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
9271         (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
9272         * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
9273         EXTRA_MULTILIB_PARTS): Remove.
9274         * config/sparc/t-sol2-64: Likewise.
9275         * config/sparc/t-sol2: Remove.
9276         * config/sparc/t-crtin: Remove.
9277         * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
9278         * config/i386/gmon-sol2.c: Remove.
9279         * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
9280         * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
9281         * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
9282         * config/i386/sol2-gc1.asm: Remove.
9283         * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
9284         * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
9285         * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
9286         * config/t-slibgcc-sld: Remove.
9287
9288 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
9289
9290         * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
9291         base_type_for_mode with op_mode instead of mode.
9292
9293 2011-06-01  Paul Brook  <paul@cpodesourcery.com>
9294
9295         * config/arm/arm-cores.def: Add cortex-r5.  Add DIV flags to
9296         Cortex-A15.
9297         * config/arm/arm-tune.md: Regenerate.
9298         * config/arm/arm-tables.opt: Regenerate.
9299         * config/arm/arm.c (FL_DIV): Rename...
9300         (FL_THUMB_DIV): ... to this.
9301         (FL_ARM_DIV): Define.
9302         (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
9303         (arm_arch_hwdiv): Remove.
9304         (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
9305         (arm_issue_rate): Add cortexr5.
9306         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
9307         __ARM_ARCH_EXT_IDIV__.
9308         (TARGET_IDIV): Define.
9309         (arm_arch_hwdiv): Remove.
9310         (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
9311         * config/arm/arm.md (tune_cortexr4): Add cortexr5.
9312         (divsi3, udivsi3): New patterns.
9313         * config/arm/thumb2.md (divsi3, udivsi3): Remove.
9314         * doc/invoke.texi: Document ARM -mcpu=cortex-r5
9315
9316 2011-06-01  Martin Jambor  <mjambor@suse.cz>
9317
9318         * ipa-utils.c (ipa_dfs_info): New field scc_no.
9319         * ipa-utils.c (searchc): Set scc_no.
9320
9321 2011-06-01  Martin Jambor  <mjambor@suse.cz>
9322
9323         * ipa-utils.c (searchc_env): New field allow_overwritable.
9324         (searchc): do not ignore edges to overwritable nodes if indicated
9325         by env->allow_overwritable.
9326         (ipa_reduced_postorder): Set env.allow_overwritable.
9327
9328 2011-06-01  Richard Guenther  <rguenther@suse.de>
9329
9330         * tree.c (free_lang_data): Do not reset boolean_type_node nor
9331         char_type_node.
9332         * lto-streamer.c (lto_record_common_node): Take node pointer,
9333         do not register types.
9334         (lto_preload_common_nodes): Explicitly skip preloading nodes
9335         that differ between frontends.
9336
9337 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
9338
9339         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
9340         NON_FLOAT_REGS.
9341
9342 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
9343
9344         * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
9345         parameter value for dump. Dump cost on outermost call only.
9346         (rs6000_memory_move_cost): Dump cost on outermost call only.
9347
9348 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
9349
9350         * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
9351         DW_OP_GNU_convert ops.
9352
9353         * cselib.c (promote_debug_loc): Allow l->next non-NULL for
9354         cselib_preserve_constants.
9355         (cselib_lookup_1): If cselib_preserve_constants,
9356         a new VALUE is being created for REG and there is a VALUE for the
9357         same register in wider mode, add another loc with lowpart SUBREG of
9358         the wider VALUE.
9359         (cselib_subst_to_values): Handle ENTRY_VALUE.
9360         * var-tracking.c  (replace_expr_with_values): Return NULL for
9361         ENTRY_VALUE too.
9362         * dwarf2out.c (convert_descriptor_to_signed): New function.
9363         (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
9364         instead of two shifts.
9365         (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
9366         the right mode if needed.
9367         (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
9368         (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
9369         convert_descriptor_to_signed.
9370         (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
9371         BSWAP, ROTATE, ROTATERT>: Handle these rtls.
9372
9373         PR target/48688
9374         * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
9375
9376 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
9377
9378         * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
9379         of X87MODEI12 and SWI48x instead of SSEMODEI24.
9380         (SWI248x): New mode iterator, rename from X87MODEI.
9381         (X87MODEI): Remove mode iterator.
9382         (X87MODEI12): Ditto.
9383         (SSEMODEI24): Ditto.
9384
9385 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
9386
9387         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
9388         * doc/invoke.texi: Document max-vartrack-expr-depth.
9389         * var-tracking.c (EXPR_DEPTH): New.
9390         (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
9391
9392 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
9393
9394         * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
9395         * config/i386/sse.md: Add n to negated FMA pattern names.
9396
9397 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
9398
9399         * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
9400
9401 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
9402
9403         * gengtype-state.c (read_state_params_structs): Initialize previous.
9404
9405 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
9406
9407         * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
9408         (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
9409
9410 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
9411
9412         * config/i386/i386.md (*movtf_internal): Avoid allocating general
9413         registers.  Penalize F*r->o alternative to prevent partial memory
9414         stalls.  Slightly penalize *roF->*r alternative.  Generate SSE
9415         CONST_DOUBLE immediates when optimizing function for size.  Do not move
9416         CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
9417         (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
9418         (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
9419         (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
9420         alternatives.
9421         (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
9422
9423         (fp_register_operand splitters): Use fp_register_operand
9424         constraint.  Do not use FP_REG_P in insn condition.
9425         (any_fp_register_operand splitters): Use any_fp_register_operand
9426         constraint.  Do not use ANY_FP_REG_P in insn condition.
9427
9428 2011-05-31  Jan Hubicka  <jh@suse.cz>
9429
9430         * cgraph.h (cgraph_inline_failed_t): Give enum a name
9431         * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
9432         (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
9433         (lto_output_edge): Use output_enum and var_len_unsigned.
9434         (lto_output_varpool_node): Likewise.
9435         (input_overwrite_node): Do not take resolution parameter;
9436         extract it from a bitpack.
9437         (input_node): Do not read resolution; use input_enum and
9438         var_len_unsigned.
9439         (input_varpool_node): Likewise.
9440         (input_edge): Likewise.
9441         (input_cgraph_1): Likewise.
9442
9443 2011-05-31  Richard Guenther  <rguenther@suse.de>
9444
9445         * gimple.c (gimple_register_canonical_type): Do not register
9446         any types via gimple_register_type.
9447
9448 2011-05-31  Jan Hubicka  <jh@suse.cz>
9449
9450         * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
9451         of thunks.
9452
9453 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
9454
9455         PR rtl-optimization/49235
9456         * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
9457         (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
9458
9459 2011-05-31  Ira Rosen  <ira.rosen@linaro.org>
9460
9461         PR tree-optimization/49093
9462         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
9463         data references.
9464
9465 2011-05-31  Dodji Seketeli  <dodji@redhat.com>
9466
9467         PR debug/49047
9468         * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
9469         for concrete functions containing the code of cloned functions.
9470
9471 2011-05-31  Richard Guenther  <rguenther@suse.de>
9472
9473         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
9474         to ...
9475         (forward_propagate_into_comparison_1): ... this.
9476         (forward_propagate_comparison): Rename to ...
9477         (forward_propagate_into_comparison): ... this.  Split out
9478         real forward propagation code to ...
9479         (forward_propagate_comparison): ... this.
9480         (forward_propagate_into_gimple_cond): Remove looping.
9481         (forward_propagate_into_cond): Likewise.
9482         (simplify_not_neg_expr): Return whether we have done something.
9483         (simplify_gimple_switch): Likewise.
9484         (tree_ssa_forward_propagate_single_use_vars): Rename to ...
9485         (ssa_forward_propagate_and_combine): ... this.  Re-structure
9486         to do a forward forward-propagation walk on BBs and a backward
9487         stmt combining walk on BBs.  Consistently re-scan changed statements.
9488         (pass_forwprop): Adjust.
9489
9490 2011-05-30  Ian Lance Taylor  <iant@google.com>
9491
9492         * godump.c (go_format_type): Correct length of name added to
9493         obstack for anonymous field.
9494
9495 2011-05-30  Kaz Kojima  <kkojima@gcc.gnu.org>
9496
9497         PR target/49186
9498         * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
9499         part of the second operand is 0.
9500
9501 2011-05-30  Uros Bizjak  <ubizjak@gmail.com>
9502
9503         * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
9504         to prevent partial memory stalls.  Do not move CONST_DOUBLEs directly
9505         to memory for !TARGET_MEMORY_MISMATCH_STALL.
9506         (*movdf_internal_rex64): Do not penalize F->r alternative.
9507         (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
9508         memory stalls.  Generate SSE and x87 CONST_DOUBLE immediates only
9509         when optimizing function for size.  Do not move CONST_DOUBLEs
9510         directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
9511         (FP move splitters): Merge {TF,XF,DF}mode splitters.  Do not handle
9512         SUBREGs.  Do not check for MEM_P operands in the insn condition,
9513         check for ANY_FP_REGNO_P instead.
9514         * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
9515         TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
9516         function for speed.
9517         * config/i386/i386.c (ix86_option_override_internal): Do not
9518         set TARGET_INTEGER_DFMODE_MOVES here.
9519
9520 2011-05-30  H.J. Lu  <hongjiu.lu@intel.com>
9521
9522         PR target/49168
9523         * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
9524
9525 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
9526
9527         * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
9528         DW_TAG_rvalue_reference_type even for
9529         -gdwarf-4 -fno-debug-types-section.
9530
9531 2011-05-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9532
9533         PR tree-optimization/46728
9534         * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
9535         (build_and_insert_binop): New.
9536         (gimple_expand_builtin_pow): Reorder args for
9537         build_and_insert_call; use build_and_insert_binop; add more
9538         optimizations for fractional exponents.
9539
9540 2011-05-30  Nathan Froyd  <froydnj@gcc.gnu.org>
9541
9542         PR bootstrap/49190
9543
9544         Revert:
9545         2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
9546
9547         * tree.h (struct tree_identifier): Inherit from tree_typed, not
9548         tree_common.
9549         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
9550         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
9551         TS_BASE instead of TS_COMMON.
9552         * varasm.c (assemble_name): Remove assert.
9553
9554 2011-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
9555
9556         * config.gcc: Keep obselete list sorted.
9557
9558 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
9559             Eric Botcazou  <ebotcazou@adacore.com>
9560
9561         * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
9562         crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
9563         there is a DRAP register and arg_pointer_rtx is the CFA pointer.
9564         (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
9565         (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
9566
9567 2011-05-30  Richard Guenther  <rguenther@suse.de>
9568
9569         * gimple.c (gimple_types_compatible_p_1): Compare record
9570         and union type members properly.
9571
9572 2011-05-30  Richard Guenther  <rguenther@suse.de>
9573
9574         PR tree-optimization/49210
9575         * ipa-split.c (split_function): Care for the case where the call
9576         result is not trivially convertible to the result holding variable.
9577
9578 2011-05-30  Richard Guenther  <rguenther@suse.de>
9579
9580         PR tree-optimization/49218
9581         * tree-vrp.c (adjust_range_with_scev): Properly check whether
9582         overflow occured.
9583
9584 2011-05-30  Richard Guenther  <rguenther@suse.de>
9585
9586         * tree-ssa-forwprop.c (forward_propagate_into_comparison):
9587         New function split out from ...
9588         (forward_propagate_into_gimple_cond): ... here.  Adjust.
9589         (forward_propagate_into_cond): Likewise.
9590         (forward_propagate_comparison): Also propagate into
9591         comparisons on assignment RHS.  Change return value to
9592         behave similar to forward_propagate_into_cond.
9593         (tree_ssa_forward_propagate_single_use_vars): Handle
9594         strict-overflow warnings properly for forward_propagate_comparison.
9595
9596 2011-05-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9597
9598         * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
9599         from plugin linker.
9600         * configure: Regenerate.
9601
9602 2011-05-30  Ira Rosen  <ira.rosen@linaro.org>
9603
9604         PR tree-optimization/49199
9605         * tree-vect-loop.c (vect_is_slp_reduction): Check that the
9606         non-reduction operands are either defined in the loop or by induction.
9607
9608 2011-05-29  Xinliang David Li  <davidxl@google.com>
9609
9610         * opts-global.c (handle_common_deferred_options): Handle new options.
9611         * passes.c (register_one_dump_file): Call register_pass_name.
9612         (execute_one_pass): Check explicit enable/disable flag.
9613         (passr_hash): New function.
9614         (passr_eq): Ditto.
9615         (register_pass_name): Ditto.
9616         (get_pass_by_name): Ditto.
9617         (pass_hash): Ditto.
9618         (pass_eq): Ditto.
9619         (enable_pass): Ditto.
9620         (disable_pass): Ditto.
9621         (is_pass_explicitly_enabled_or_disabled): Ditto.
9622
9623 2011-05-29  Uros Bizjak  <ubizjak@gmail.com>
9624
9625         * config/i386/i386.md (*movoi_internal_avx): Use
9626         standard_sse_constant_opcode for alternative 0.
9627         (*movti_internal_sse): Ditto.
9628         (*movti_internal_rex64): Use standard_sse_constant_opcode for
9629         alternative 2.
9630         (*movdi_internal_rex64): Use standard_sse_constant_opcode for
9631         sselog1 type moves.
9632         (*movsi_internal): Ditto.
9633         (*movdi_internal): Ditto.  Add ssecvt type moves.
9634
9635 2011-05-29  Eric Botcazou  <ebotcazou@adacore.com>
9636
9637         PR target/48830
9638         * rtlanal.c (simplify_subreg_regno): Adjust comment.
9639
9640 2011-05-29  Jakub Jelinek  <jakub@redhat.com>
9641
9642         PR rtl-optimization/49095
9643         * config/i386/predicates.md (plusminuslogic_operator): New predicate.
9644         * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
9645
9646 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
9647
9648         PR target/43995
9649         * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
9650         recurse_p argument.  Only follow register copies if it is set,
9651         and prevent mips_find_pic_call_symbol from recursing.
9652         (mips_find_pic_call_symbol): Add a recurse_p argument.
9653         Pass it to mips_pic_call_symbol_from_set.
9654         (mips_annotate_pic_calls): Update accordingly.
9655
9656 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
9657
9658         * emit-rtl.c (try_split): Use a loop to search for
9659         NOTE_INSN_CALL_ARG_LOCATIONs.
9660
9661 2011-05-29  Richard Guenther  <rguenther@suse.de>
9662
9663         PR tree-optimization/49217
9664         * ipa-pure-const.c (propagate_pure_const): Fix typos.
9665
9666 2011-05-28  Jan Hubicka  <jh@suse.cz>
9667
9668         * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
9669         length.
9670         (string_slot_free): Remove
9671         (create_output_block): Initialize obstack.
9672         (destroy_output_block): Free obstack.
9673         (lto_string_index): Add PERSISTENT parameter; do not duplicate
9674         the string unless it needs to be added into the hash.
9675         (lto_output_string_with_length): Add persistent attribute;
9676         handle NULL strings.
9677         (lto_output_string): Add PERSISTENT parameter.
9678         (output_string_cst, output_identifier): Simplify.
9679         (lto_output_location_bitpack): Update.
9680         (lto_output_builtin_tree): Update.
9681         * lto-streamer.h (struct output_block): Add obstack.
9682         (lto_output_string, lto_output_string_with_length): Remove
9683         declarations; functions are static now.
9684
9685 2011-05-28  Jan Hubicka  <jh@suse.cz>
9686
9687         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
9688         pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
9689         pack_ts_function_decl_value_fields, lto_output_builtin_tree,
9690         output_cfg, output_gimple_stmt): Use enum and variable length i/o.
9691         * lto-streamer-in.c (input_cfg, input_gimple_stmt,
9692         unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
9693         unpack_ts_decl_with_vis_value_fields,
9694         unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
9695         lto_get_builtin_tree): Use enum and variable length i/o.
9696         * basic-block.h (profile_status_d): Add PROFILE_LAST.
9697         * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
9698         New functions.
9699         (bp_pack_enum, bp_unpack_enum): New macros.
9700
9701 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
9702
9703         * genrecog.c: Remove redundant forward declarations.
9704
9705 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
9706
9707         * config.gcc: Deprecate mips*-*-openbsd*.
9708
9709 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
9710
9711         PR bootstrap/49195
9712         * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
9713         for match_op_dup.
9714
9715 2011-05-27  Andrew Pinski  <pinskia@gmail.com>
9716
9717         PR middle-end/48981
9718         * gengtype.c (vec_prefix_type): New function.
9719         (note_def_vec): Use vec_prefix_type and change the length
9720         attribute to be based on the prefix.
9721         * vec.c: Include coretypes.h before vec.h.
9722         (struct vec_prefix): Remove.
9723         (vec_gc_p_reserve): Change the offsetof to sizeof.
9724         (vec_gc_p_reserve_exact): Likewise.
9725         (vec_heap_p_reserve): Likewise.
9726         (vec_heap_p_reserve_exact): Likewise.
9727         (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
9728         (vec_stack_p_reserve): Change the offsetof to sizeof.
9729         (vec_stack_p_reserve_exact): Likewise.
9730         * vec.h (struct vec_prefix): New struct definition.
9731         (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
9732         (VEC_T_GTY(T,B)): Likewise.
9733         (DEF_VEC_FUNC_P(T)): Use prefix field.
9734         (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
9735         (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
9736
9737 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9738
9739         PR tree-optimization/46728
9740         * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
9741         (powi_as_mults): Add gimple_set_location.
9742         (build_and_insert_call): New.
9743         (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
9744         0.5, 0.25, 0.75, 1./3., or 1./6.
9745
9746 2011-05-27  Alexander Monakov  <amonakov@ispras.ru>
9747
9748         * doc/contrib.texi: Update copyright years.
9749         (Contributors): Add Zdenek Sojka.
9750
9751 2011-05-27  Nathan Froyd  <froydnj@codesourcery.com>
9752
9753         * c-decl.c (c_push_function_context): Copy the current statement
9754         list stack.
9755         (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
9756         (finish_struct): Call building_stmt_list_p instead of checking
9757         cur_stmt_list.
9758         * c-parser.c (c_parser_postfix_expression): Likewise.
9759         * c-typeck.c (c_end_compound_stmt): Likewise.
9760         * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
9761         * tree-iterator.c (stmt_list_cache): Change to a VEC.
9762         (alloc_stmt_list): Adjust for stmt_list_cache's new type.
9763         (free_stmt_list): Likewise.
9764         * tree.h (struct tree_statement_list): Include typed_tree instead
9765         of tree_common.
9766         * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
9767         as TS_TYPED instead of TS_COMMON.
9768
9769 2011-05-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9770             Uros Bizjak  <ubizjak@gmail.com>
9771
9772         * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
9773         (HAVE_AS_IX86_TLSGDPTL): Define.
9774         (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
9775         (HAVE_AS_IX86_TLSLDMPLT): Define.
9776         * configure: Regenerate.
9777         * config.in: Regenerate.
9778         * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
9779         * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
9780         TARGET_SUN_TLS, use @tlsgdplt or @plt.
9781         (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
9782         (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
9783         @tlsldmplt or @plt.
9784         (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
9785
9786 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
9787
9788         * sched-int.h (struct _haifa_deps_insn_data): New members cond
9789         and reverse_cond.
9790         (INSN_COND, INSN_REVERSE_COND): New macros.
9791         * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
9792         once.
9793         (sched_get_condition_with_rev): Cache the results, and look them up
9794         if possible.
9795         (sched_analyze_insn): Destroy INSN_COND of previous insns if they
9796         are clobbered by the current insn.
9797         * target.def (exposed_pipline): New sched data hook.
9798         * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
9799         * doc/tm.texi: Regenerate.
9800
9801 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9802
9803         PR tree-optimization/49170
9804         * tree-ssa-math-opts.c (execute_cse_sincos):  Add checks for
9805         sincos or cexp.
9806
9807 2011-05-27  Richard Guenther  <rguenther@suse.de>
9808
9809         PR middle-end/49189
9810         * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
9811         of comparisons.
9812
9813 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
9814
9815         * haifa-sched.c (sched_scan_info): Remove.
9816         (schedule_block): Call sched_extend_luids rather than sched_init_luids
9817         with NULL args.
9818         (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
9819         Remove functions.
9820         (sched_scan): Remove.
9821         (sched_extend_luids): Renamed from luids_extend_insn and no longer
9822         static.  All callers changed.
9823         (sched_init_insn_luid): Renamed from luids_init_insn and no longer
9824         static.  All callers changed.
9825         (sched_init_luids): Remove all arguments except the first.  All
9826         callers changed.  Don't use sched_scan.
9827         (haifa_init_h_i_d): Likewise.
9828         (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
9829         manually rather than using sched_init_luids.  Likewise with
9830         extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
9831         * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
9832         rather than sched_init_luids with NULL args.
9833         * sel-sched-ir.c (new_insns): Remove variable.
9834         (sched_scan): New static function, previously in haifa-sched.c.  Remove
9835         all arguments but the first two; all callers changed.
9836         (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
9837         rather than sched_init_luids.
9838         (sel_init_bbs): Remove second argument.  All callers changed.
9839         (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
9840         with NULL arguments.
9841         (create_insn_rtx_from_pattern): Likewise.
9842         * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
9843         * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
9844         (sched_init_insn_luid, sched_extend_luids): Declare.
9845         (sched_scan_info_def, sched_scan_info, sched_scan): Remove
9846         declarations.
9847
9848 2011-05-27  Richard Guenther  <rguenther@suse.de>
9849
9850         PR middle-end/49177
9851         * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
9852         A CMP B ? (T) true : (T) false for non-integral types T again.
9853
9854 2011-05-27  Jan Hubicka  <jh@suse.cz>
9855
9856         * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
9857         so 0 means NULL string.
9858         (lto_output_string_with_length): ... here.
9859         (lto_output_string, output_string_cst, output_identifier): Update
9860         handling of NULL strings.
9861         (lto_output_location_bitpack): New function.
9862         (lto_output_location): Use it.
9863         (lto_output_tree_ref): Use output_record_start.
9864         (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
9865         len values.
9866         * lto-streamer-in.c (string_for_index): Break out from ...; offset
9867         values by 1.
9868         (input_string_internal): ... here;
9869         (input_string_cst, input_identifier, lto_input_string): Update handling
9870         of NULL strings.
9871         (lto_input_location_bitpack): New function
9872         (lto_input_location): Use it.
9873         (unpack_ts_type_common_value_fields): Pack align & alias in var len
9874         values.
9875         * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
9876         bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
9877         (bp_pack_value): Sanity check the value range.
9878         * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
9879         New functions.
9880         * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
9881         New functions.
9882
9883 2011-05-27  Hariharan Sandanagobalane  <hariharan@picochip.com>
9884
9885         * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
9886         call_arg_location instructions down the floor.
9887
9888 2011-05-26  Vladimir Makarov  <vmakarov@redhat.com>
9889
9890         PR rtl-optimization/49154
9891         * ira.c (setup_pressure_classes): Process class without sublcasses
9892         as a candidate for pressure classes.
9893
9894 2011-05-26  Richard Sandiford  <rdsandiford@googlemail.com>
9895
9896         PR rtl-optimization/48575
9897         * genrecog.c (position_type): New enum.
9898         (position): New structure.
9899         (decision): Use position structure instead of a string.
9900         (root_pos, peep2_insn_pos_list): New variables.
9901         (next_position, compare_positions): New functions.
9902         (new_decision): Use position structures instead of strings.
9903         (maybe_both_true): Likewise.
9904         (change_state): Likewise.
9905         (write_tree): Likewise.
9906         (make_insn_sequence): Likewise.
9907
9908 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
9909
9910         * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
9911         TS_BASE instead of TS_COMMON.
9912         (find_decls_types_r): Check for TS_TYPED structure before looking at
9913         TREE_TYPE.
9914         * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
9915         Add chain field.
9916         (BLOCK_CHAIN): Use new chain field.
9917
9918 2011-05-26  Pat Haugen  <pthaugen@us.ibm.com>
9919
9920         * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
9921         moves expensive on Power7 also.
9922
9923 2011-05-26  Richard Guenther  <rguenther@suse.de>
9924
9925         * fold-const.c (fold_unary_loc): Remove bogus code.
9926
9927 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
9928
9929         * tree.h (struct tree_identifier): Inherit from tree_typed, not
9930         tree_common.
9931         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
9932         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
9933         TS_BASE instead of TS_COMMON.
9934         * varasm.c (assemble_name): Remove assert.
9935
9936 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
9937
9938         * Makefile.in (srcdirify): Change order so that libgcc_objdir is
9939         substituted first.
9940         * libgcc-std.ver: Delete file.
9941
9942 2011-05-26  Richard Guenther  <rguenther@suse.de>
9943
9944         PR tree-optimization/48702
9945         * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
9946         only when we know the base address is within bounds.
9947         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
9948         assume the base address of TARGET_MEM_REFs is in bounds.
9949
9950 2011-05-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9951
9952         PR target/49099
9953         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
9954         declaration in TARGET_SOLARIS.
9955
9956 2011-05-26  Hariharan Sandanagobalane  <hariharan@picochip.com>
9957
9958         * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
9959         The instruction is then expanded explicitly.
9960         (supported_compare): Callable instruction.
9961         (compare): Likewise.
9962
9963 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
9964
9965         PR c++/49165
9966         * gimplify.c (shortcut_cond_r): Don't special case
9967         COND_EXPRs if they have void type on one of their arms.
9968
9969 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
9970
9971         * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
9972         to reduce duplication, and to achieve a slightly more logical order
9973         of operations.
9974
9975 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
9976
9977         PR tree-optimization/49161
9978         * tree-vrp.c (struct case_info): New type.
9979         (compare_case_labels): Sort case_info structs instead of
9980         trees, and not primarily by CASE_LABEL uids but by
9981         label_for_block indexes.
9982         (find_switch_asserts): Put case labels into struct case_info
9983         array instead of TREE_VEC, adjust sorting, compare label_for_block
9984         values instead of CASE_LABELs.
9985
9986 2011-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
9987
9988         * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
9989         ("orndi3_neon"): Likewise.
9990         ("bic<mode>3_neon"): Likewise.
9991
9992 2011-05-26  Ira Rosen  <ira.rosen@linaro.org>
9993
9994         PR tree-optimization/49038
9995         * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
9996         Ensure at least one epilogue iteration if required by data
9997         accesses with gaps.
9998         * tree-vectorizer.h (struct _loop_vec_info): Add new field
9999         to mark loops that require peeling for gaps.
10000         * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
10001         (vect_get_known_peeling_cost): Take peeling for gaps into
10002         account.
10003         (vect_transform_loop): Generate epilogue if required by data
10004         access with gaps.
10005         * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
10006         loop as requiring an epilogue if there are gaps in the end of
10007         the strided group.
10008
10009 2011-05-25  Ian Lance Taylor  <iant@google.com>
10010
10011         * godump.c (go_format_type): Output the first field with a usable
10012         Go type, if any.
10013
10014 2011-05-25  Ian Lance Taylor  <iant@google.com>
10015
10016         * godump.c (go_format_type): Check for invalid type names, pointer
10017         target types, and struct field types.
10018
10019 2011-05-25  Jason Merrill  <jason@redhat.com>
10020
10021         * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
10022
10023 2011-05-25  Uros Bizjak  <ubizjak@gmail.com>
10024
10025         * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
10026
10027 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
10028
10029         * config/i386/i386.md (*movqi_extv_1)): Put back
10030         "register_operand" check in "type" calculation.
10031         (*movqi_extzv_2): Likewise.
10032
10033 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
10034
10035         * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
10036
10037 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
10038
10039         PR bootstrap/49160
10040         * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
10041         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
10042         __divxc3, __divtc3): Wrap definitions in #ifndef.
10043
10044 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
10045
10046         PR target/49142
10047         * config/i386/i386.md (*movqi_extv_1_rex64): Remove
10048         "register_operand" check and replace q_regs_operand with
10049         QIreg_operand in "type" calculation.
10050         (*movqi_extv_1): Likewise.
10051         (*movqi_extzv_2_rex64): Likewise.
10052         (*movqi_extzv_2): Likewise.
10053
10054         * config/i386/predicates.md (QIreg_operand): New.
10055
10056 2011-05-25  Richard Guenther  <rguenther@suse.de>
10057
10058         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
10059         type-based offset disambiguation, streamline MEM_REF and
10060         TARGET_MEM_REF handling.
10061
10062 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
10063
10064         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
10065         (bdesc_special_args): Add pause intrinsic.
10066
10067         * config/i386/i386.md (UNSPEC_PAUSE): New.
10068         (pause): Likewise.
10069         (*pause): Likewise.
10070         * config/i386/ia32intrin.h (__pause): Likewise.
10071
10072         * doc/extend.texi (X86 Built-in Functions): Add documentation for
10073         pause intrinsic.
10074
10075 2011-05-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10076
10077         PR tree-optimization/46728
10078         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
10079         (execute_cse_sincos): Add switch case for BUILT_IN_POW.
10080
10081 2011-05-25  Nathan Froyd  <froydnj@codesourcery.com>
10082
10083         * tree.h (struct tree_exp): Inherit from struct tree_typed.
10084         * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
10085         instead of TS_COMMON.
10086
10087 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
10088
10089         * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
10090         LIBGCC2_GNU_PREFIX is defined.
10091         (__N): New macro.
10092         (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
10093         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
10094         __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
10095         __clz_tab): Define using __N.
10096         (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
10097         COMPAT_SIMODE_TRAPPING_ARITHMETIC.
10098         * target.def (libfunc_gnu_prefix): New hook.
10099         * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
10100         (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
10101         * doc/tm.texi: Regenerate.
10102         * system.h (LIBGCC2_GNU_PREFIX): Poison.
10103         * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
10104         account.
10105         (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
10106         (init_optabs): Likewise for the bswap libfuncs.
10107         * tree.c (build_common_builtin_nodes): Likewise for complex multiply
10108         and divide.
10109         * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
10110         * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
10111         * libgcc-std.ver: Remove.
10112         * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
10113         * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
10114         libgcc-std.ver.
10115         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
10116         * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
10117         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
10118         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
10119         * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
10120         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
10121         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
10122         * config/fixed-bit.h (FIXED_OP): Define differently depending on
10123         LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
10124         (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
10125
10126 2011-05-25  Jan Hubicka  <jh@suse.cz>
10127
10128         * lto-streamer-out.c (output_record_start): Use lto_output_enum
10129         (lto_output_tree): Use output_record_start.
10130         * lto-streamer-in.c (input_record_start): Use lto_input_enum
10131         (lto_get_pickled_tree): Use input_record_start.
10132         * lto-section-in.c (lto_section_overrun): Turn into fatal error.
10133         (lto_value_range_error): New function.
10134         * lto-streamer.h (lto_value_range_error): Declare.
10135         (lto_output_int_in_range, lto_input_int_in_range): New functions.
10136         (lto_output_enum, lto_input_enum): New macros.
10137
10138 2011-05-25  Eric Botcazou  <ebotcazou@adacore.com>
10139
10140         * common.opt (flag_stack_usage_info): New variable.
10141         (-Wstack-usage): New option.
10142         * doc/invoke.texi (Warning options): Document -Wstack-usage.
10143         * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
10144         <OPT_fstack_usage>: Likewise.
10145         * toplev.c (output_stack_usage): Handle -Wstack-usage.
10146         * calls.c (expand_call): Test flag_stack_usage_info variable instead
10147         of flag_stack_usage.
10148         (emit_library_call_value_1): Likewise.
10149         * explow.c (allocate_dynamic_stack_space): Likewise.
10150         * function.c (instantiate_virtual_regs ): Likewise.
10151         (prepare_function_start): Likewise.
10152         (rest_of_handle_thread_prologue_and_epilogue): Likewise.
10153         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
10154         * config/arm/arm.c (arm_expand_prologue): Likewise.
10155         (thumb1_expand_prologue): Likewise.
10156         * config/avr/avr.c (expand_prologue): Likewise.
10157         * config/i386/i386.c (ix86_expand_prologue): Likewise.
10158         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
10159         * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
10160         * config/mips/mips.c (mips_expand_prologue): Likewise.
10161         * config/pa/pa.c (hppa_expand_prologue): Likewise.
10162         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
10163         * config/s390/s390.c (s390_emit_prologue): Likewise.
10164         * config/sh/sh.c (sh_expand_prologue): Likewise.
10165         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
10166         * config/spu/spu.c (spu_expand_prologue): Likewise.
10167
10168 2011-05-25  Richard Guenther  <rguenther@suse.de>
10169
10170         * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
10171         (gimple_canonical_types_compatible_p): Likewise.
10172
10173 2011-05-25  Jan Hubicka  <jh@suse.cz>
10174
10175         PR middle-end/49062
10176         * ipa.c (function_and_variable_visibility): Only add to same
10177         comdat group list if DECL_ONE_ONLY.
10178
10179 2011-05-25  Andrey Belevantsev  <abel@ispras.ru>
10180
10181         PR rtl-optimization/49014
10182         * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
10183
10184 2011-05-25  Jakub Jelinek  <jakub@redhat.com>
10185
10186         PR target/49128
10187         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
10188
10189 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
10190
10191         PR rtl-optimization/48757
10192         * ira-build.c (loop_with_eh_edge_p): Rename to
10193         loop_with_complex_edge_p, check edges on complexity, make function
10194         conditional.
10195         (mark_loops_for_removal): Make call of loop_with_complex_edge_p
10196         conditional.
10197
10198 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
10199
10200         * config/sparc/sparc.c (sparc_option_override): If not set by the user,
10201         force flag_ira_share_save_slots to 0.
10202
10203 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
10204
10205         * var-tracking.c (compute_cfa_pointer): Adjust head comment.
10206         (vt_initialize): Set PROLOGUE_BB unconditionally.
10207         Add block comment about CFA_BASE_RTX machinery.
10208         Reset FP_CFA_OFFSET to -1 on all invalid paths.
10209         Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
10210
10211 2011-05-24  Nicola Pero  <nicola.pero@meta-innovation.com>
10212
10213         PR objc/48187
10214         * c-parser.c (c_parser_objc_class_instance_variables): More robust
10215         parsing of syntax error in ObjC instance variable lists.  In
10216         particular, avoid an infinite loop if there is a stray ']'.
10217         Updated error message.
10218
10219 2011-05-24  Ian Lance Taylor  <iant@google.com>
10220
10221         * godump.c (go_define): Don't accept a string immediately after
10222         another operand.
10223
10224 2011-05-24  Ian Lance Taylor  <iant@google.com>
10225
10226         * godump.c (struct godump_container): Add invalid_hash field.
10227         (go_format_type): Return false if type is found in invalid_hash.
10228         (go_output_typedef): Add invalid type to invalid_hash.
10229         (go_finish): Create and delete invalid_hash.
10230
10231 2011-05-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10232
10233         PR tree-optimization/46728
10234         * tree-ssa-math-opts.c (powi_table): New.
10235         (powi_lookup_cost): New.
10236         (powi_cost): New.
10237         (powi_as_mults_1): New.
10238         (powi_as_mults): New.
10239         (gimple_expand_builtin_powi): New.
10240         (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
10241         (gate_cse_sincos): Remove sincos/cexp restriction.
10242
10243 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10244
10245         PR target/3746
10246         * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
10247         mips-tdump native.
10248         * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
10249         * mips-tdump.c: Likewise.
10250
10251 2011-05-24  H.J. Lu  <hongjiu.lu@intel.com>
10252
10253         PR target/49128
10254         * config/i386/driver-i386.c (host_detect_local_cpu): Always
10255         add -mno-XXX.  Handle FMA.
10256
10257 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
10258
10259         PR rtl-optimization/48633
10260         * ira-build.c (loop_with_eh_edge_p): New function.
10261         (mark_loops_for_removal): Use it.
10262
10263 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
10264
10265         PR rtl-optimization/48971
10266         * ira.c (setup_pressure_classes): Don't check register move cost
10267         for classes with one registers.  Don't add pressure class if there
10268         is a pressure class with the same available hard registers.
10269         Check contains_reg_of_mode.  Fix a typo in collecting
10270         temp_hard_regset.  Ignore hard registers not belonging to a class.
10271
10272 2011-05-24  Uros Bizjak  <ubizjak@gmail.com>
10273
10274         PR target/49133
10275         * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
10276
10277 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
10278             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10279
10280         PR gcov-profile/48845
10281         * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
10282
10283 2011-05-24  Richard Guenther  <rguenther@suse.de>
10284
10285         * gimple.c (compare_type_names_p): Remove for_completion_p arg.
10286         (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
10287         (gimple_types_compatible_p_1): Adjust.
10288         (iterative_hash_canonical_type): Do not bother about complete vs.
10289         incomplete types.
10290         (gimple_canonical_types_compatible_p): Likewise.
10291
10292 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10293
10294         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
10295
10296 2011-05-24  Richard Guenther  <rguenther@suse.de>
10297
10298         PR bootstrap/49078
10299         * gimple.c (gimple_register_canonical_type): Revert
10300         previous change.
10301         * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
10302         does not for a tree for the case where it matters.  Cache
10303         pointer-type alias-sets.
10304
10305 2011-05-24  Joseph Myers  <joseph@codesourcery.com>
10306
10307         * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
10308         (OBJS): Remove options.o, opts-common.o and prefix.o.
10309         (OBJS-libcommon-target): New.
10310         (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
10311         (BACKEND): Include libcommon-target.a.
10312         (MOSTLYCLEANFILES): Include libcommon-target.a.
10313         (libcommon-target.a): New.
10314         (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
10315         prefix.o.
10316
10317 2011-05-23  Joseph Myers  <joseph@codesourcery.com>
10318
10319         * optc-save-gen.awk: New.  Based on optc-gen.awk.  Don't generate
10320         parts of output shared with the driver.
10321         * optc-gen.awk: Don't generate parts of output not shared with the
10322         driver.
10323         * opth-gen.awk: Remove GCC_DRIVER conditionals.
10324         * doc/options.texi (SourcerInclude): Mention options-save.c.
10325         * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
10326         (OBJS): Add options-save.o.
10327         (options-save.c, options-save.o): New.
10328         (options.o): Update dependencies.
10329         (gcc-options.o): Remove.
10330         (mostlyclean): Remove options-save.c.
10331
10332 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
10333
10334         PR debug/49032
10335         * dbxout.c: Include cgraph.h.
10336         (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
10337         and without value expr, return NULL if no varpool node exists for
10338         it or if it is not needed.
10339         * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
10340
10341         PR c/49120
10342         * c-decl.c (start_decl): Convert expr to void_type_node.
10343
10344 2011-05-23  Richard Sandiford  <rdsandiford@googlemail.com>
10345
10346         PR rtl-optimization/48826
10347         * emit-rtl.c (try_split): When splitting a call that is followed
10348         by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
10349
10350 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
10351
10352         * cfgexpand.c (expand_debug_expr): For unused non-addressable
10353         parameters passed in memory prefer using DECL_INCOMING_RTL over
10354         the pseudos it will be copied into.
10355
10356 2011-05-23  H.J. Lu  <hongjiu.lu@intel.com>
10357
10358         PR target/47315
10359         * config/i386/i386.c (ix86_option_override_internal): Save the
10360         initial options after checking vzeroupper.
10361
10362 2011-05-23  David Li  <davidxl@google.com>
10363
10364         PR tree-optimization/48988
10365         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
10366         Initialize has_valid_pred for each pred chain.
10367
10368 2011-05-23  Richard Guenther  <rguenther@suse.de>
10369
10370         * gimple.c (gimple_types_compatible_p_1): Always compare type names.
10371         (iterative_hash_gimple_type): Always hash type names.
10372
10373 2011-05-23  Nathan Froyd  <froydnj@codesourcery.com>
10374
10375         * c-typeck.c (build_function_call_vec): Tweak call to
10376         check_function_arguments.
10377
10378 2011-05-23  Richard Guenther  <rguenther@suse.de>
10379
10380         PR tree-optimization/49115
10381         * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
10382         is not necessarily carried out, do not claim it kills the ref.
10383         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
10384
10385 2011-05-23  Richard Guenther  <rguenther@suse.de>
10386
10387         PR middle-end/15419
10388         * builtins.c (fold_builtin_memory_op): Be less restrictive about
10389         what pointer types we accept for folding.
10390
10391 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10392
10393         * gthr-gnat.c: Remove.
10394         * gthr-gnat.h: Remove.
10395         * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
10396         * config/t-freebsd (LIB2ADDEH): Likewise.
10397         * config/t-linux (LIB2ADDEH): Likewise.
10398         * config/t-sol2 (LIB2ADDEH): Likewise.
10399         * config/ia64/t-vms (LIB2ADDEH): Likewise.
10400         * configure.ac (target_thread_file): Remove gnat handling.
10401         * configure: Regenerate.
10402         * doc/install.texi (Configuration, --enable-threads): Remove gnat.
10403
10404 2011-05-23  Tristan Gingold  <gingold@adacore.com>
10405             Eric Botcazou  <ebotcazou@adacore.com>
10406
10407         * gcov.c (create_file_names): If no object directory is specified,
10408         keep the directory of the file.
10409
10410 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10411
10412         * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
10413         * configure: Regenerate.
10414
10415 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
10416
10417         PR middle-end/48973
10418         * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
10419         failed and the comparison has a single bit signed type, use
10420         constm1_rtx instead of const1_rtx for true value.
10421         (do_store_flag): If ops->type is single bit signed type, disable
10422         signel bit test optimization and pass -1 instead of 1 as last
10423         parameter to emit_store_flag_force.
10424
10425 2011-05-23  Tom de Vries  <tom@codesourcery.com>
10426
10427         PR target/45098
10428         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
10429         function.
10430         (infer_loop_bounds_from_undefined): Use new function.
10431
10432 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
10433
10434         * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
10435         (ASM_SPEC): Add a -O* option here.  Pass -O0 for -noasmopt,
10436         -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
10437         and -O0 otherwise.
10438         (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
10439
10440 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
10441
10442         * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
10443         (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
10444         returns true.
10445
10446 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
10447
10448         * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
10449
10450 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
10451
10452         * config/sparc/sparc.c (sparc_delegitimize_address): Handle
10453         UNSPEC_MOVE_PIC pattern.
10454
10455 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
10456
10457         * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
10458         (sparc-*-rtems*): Likewise.
10459         (sparc64-*-elf*): Likewise.
10460         (sparc64-*-rtems*): Likewise.
10461         (sparc*-*-solaris2*): Likewise.  Remove crti.o crtn.o extra parts.
10462         * config/sparc/t-crtin: New file.
10463         * config/sparc/t-sol2 (crti.o): Delete rule.
10464         (crtn.o): Likewise.
10465         * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
10466         * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
10467         * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
10468         (ENDFILE_SPEC): Add crtn.o.
10469
10470 2011-05-22  Tom de Vries  <tom@codesourcery.com>
10471
10472         PR middle-end/48689
10473         * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
10474         CODE_CONTAINS_STRUCT (TS_COMMON).
10475
10476 2011-05-22  Jakub Jelinek  <jakub@redhat.com>
10477
10478         PR middle-end/49029
10479         * expmed.c (extract_fixed_bit_field): Test whether target can be used
10480         only after deciding which mode to use.
10481
10482 2011-05-22  Tom de Vries  <tom@codesourcery.com>
10483
10484         PR target/45098
10485         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
10486         for call to get_shiftadd_cost.
10487
10488 2011-05-22  Uros Bizjak  <ubizjak@gmail.com>
10489
10490         PR target/49104
10491         * config/i386/cpuid.h (bit_MMXEXT): New define.
10492
10493 2011-05-22  Nick Clifton  <nickc@redhat.com>
10494
10495         * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
10496         initialisation of non-existant args[2] element.  Use args[] array
10497         not arg[] array to pass arguments to build_function_type_list.
10498
10499 2011-05-22  Ira Rosen  <ira.rosen@linaro.org>
10500
10501         PR tree-optimization/49087
10502         * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
10503
10504 2011-05-21  Jason Merrill  <jason@redhat.com>
10505
10506         PR c++/49092
10507         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
10508         static storage duration.
10509
10510 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
10511
10512         * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
10513         frame pointer.
10514
10515 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
10516
10517         * config/sparc/sparc.c (eligible_for_return_delay): Do not return
10518         false if there are call-saved registers here...
10519         (sparc_can_use_return_insn_p): ...but here instead.
10520         (save_or_restore_regs): Fix thinko.
10521         (sparc_expand_prologue): Use current_function_is_leaf.
10522         (sparc_frame_pointer_required): Likewise.
10523
10524 2011-05-21  Nick Clifton  <nickc@redhat.com>
10525
10526         PR target/49098
10527         * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
10528
10529 2011-05-21  Nicola Pero  <nicola.pero@meta-innovation.com>
10530
10531         * gengtype.c (walk_type): Implemented "atomic" GTY option.
10532         * doc/gty.texi (GTY Options): Document "atomic" GTY option.
10533
10534 2011-05-21  Joseph Myers  <joseph@codesourcery.com>
10535
10536         * opt-read.awk: New.  Split out of optc-gen.awk and opth-gen.awk.
10537         * optc-gen.awk: Move common code to opt-read.awk.
10538         * opth-gen.awk: Likewise.
10539         * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
10540
10541 2011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
10542
10543         * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
10544
10545 2011-05-20  Tom de Vries  <tom@codesourcery.com>
10546
10547         PR target/45098
10548         * tree-ssa-loop-ivopts.c: Include expmed.h.
10549         (get_shiftadd_cost): New function.
10550         (force_expr_to_var_cost): Declare forward.  Use get_shiftadd_cost.
10551
10552 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
10553
10554         PR bootstrap/49086
10555         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
10556         for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
10557
10558 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
10559
10560         * Makefile.in: Update comment referring to $(OBJS-common).
10561
10562 2011-05-20  Ian Lance Taylor  <iant@google.com>
10563
10564         * godump.c (go_output_typedef): Put enum constants in the macro
10565         hash table to avoid duplicate Go const definitions.
10566
10567 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
10568
10569         * Makefile.in (LIBDEPS): Add libcommon.a.
10570         (LIBS): Likewise.
10571         (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
10572         (OBJS-common): Remove diagnostic.o, input.o, intl.o,
10573         pretty-print.o and version.o.
10574         (OBJS-libcommon): New.
10575         (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
10576         (BACKEND): Add libcommon.a.
10577         (MOSTLYCLEANFILES): Likewise.
10578         (libcommon.a): New.
10579         (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
10580         (cpp$(exeext)): Likewise.
10581         (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
10582         pretty-print.o and input.o.
10583         (lto-wrapper$(exeext)): Don't explicitly use intl.o.
10584         (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
10585         (errors.o): Remove.
10586         (mips-tfile): Don't explicitly use version.o.
10587         (mips-tdump): Likewise.
10588         (gcov.o): Depend on $(DIAGNOSTIC_H).
10589         (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
10590         (GCOV_OBJS): Remove intl.o, version.o and errors.o.
10591         (GCOV_DUMP_OBJS): Remove version.o and errors.o.
10592         * gcov-dump.c: Include intl.h and diagnostic.h.
10593         (main): Initialize diagnostics.
10594         * gcov.c: Include diagnostic.h.
10595         (fnotice): Remove.
10596         (main): Initialize diagnostics.
10597         * lto-wrapper.c: Include diagnostic.h.
10598         (main): Initialize diagnostics.
10599
10600 2011-05-20  Michael Matz  <matz@suse.de>
10601
10602         * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
10603
10604 2011-05-20  Michael Matz  <matz@suse.de>
10605             Richard Guenther  <rguenther@suse.de>
10606
10607         * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
10608         use lto_streamer_cache_append directly instead of returning a VEC.
10609         (preload_common_node): Remove.
10610         (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
10611         track seen nodes.
10612         (lto_streamer_cache_create): Call lto_preload_common_nodes.
10613
10614 2011-05-20  Richard Guenther  <rguenther@suse.de>
10615
10616         PR tree-optimization/49079
10617         * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
10618         MEM_REFs correctly for the trailing array access detection.
10619         Special case constants the same way as decls for overall size
10620         constraining.
10621
10622 2011-05-20  Uros Bizjak  <ubizjak@gmail.com>
10623
10624         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
10625         argument expansion.
10626
10627 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
10628
10629         PR tree-optimization/49073
10630         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
10631         PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
10632         * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
10633
10634 2011-05-20  Richard Guenther  <rguenther@suse.de>
10635
10636         PR middle-end/48849
10637         * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
10638         of pointer types the same way the middle-end does.
10639
10640 2011-05-20  Richard Guenther  <rguenther@suse.de>
10641
10642         * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
10643         or pointer-to chains.  Delay all fixup to uniquify_nodes.
10644
10645 2011-05-19  Quentin Neill  <quentin.neill@amd.com>
10646
10647         * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
10648         (fma4_fmaddsub): Likewise
10649
10650 2011-05-19  Jan Hubicka  <jh@suse.cz>
10651
10652         * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
10653         (GIMPLE_TYPE_PAIR_SIZE): New macro.
10654         (type_pair_cache): New static var.
10655         (lookup_type_pair): Use fixed sized custom hash; make inline.
10656         (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
10657         calls of lookup_type_pair.
10658         (print_gimple_types_stats): Remove cache stats.
10659         (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
10660         and gtc_ob.
10661
10662 2011-05-19  Uros Bizjak  <ubizjak@gmail.com>
10663
10664         * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
10665         when TARGET_RDRND is active.
10666         (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
10667         Generate dummy SImode target register when target is NULL.
10668
10669 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
10670
10671         * config/arm/arm-fpus.def: New.
10672         * config/arm/genopt.sh: Generate Enum and EnumValue entries from
10673         arm-fpus.def.
10674         * config/arm/arm-tables.opt: Regenerate.
10675         * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
10676         (arm_option_override): Don't decode FPU name to string here.
10677         * config/arm/arm.opt (mfpu=): Use Enum.
10678         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
10679         Update dependencies.
10680
10681 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
10682
10683         * collect2.c: Include diagnostic.h.
10684         (fatal_perror, fatal, error, fancy_abort): Remove.
10685         (main): Set progname.  Call xmalloc_set_program_name and
10686         diagnostic_initialize.
10687         (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
10688         scan_libraries, resolve_lib_name): Call fatal_error instead of
10689         fatal and fatal_perror.
10690         * collect2.h (error, fatal, fatal_perror): Don't declare.
10691         * tlink.c: Include diagnostic-core.h.
10692         (recompile_files): Call fatal_error instead of fatal_perror.
10693         * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
10694         pretty-print.o and input.o.
10695         (collect2.o, tlink.o): Update dependencies.
10696
10697 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10698
10699         * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
10700
10701 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10702
10703         PR target/40483
10704         * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
10705         COMDAT group syntax, both SPARC and x86 variants.
10706         (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
10707         * configure: Regenerate.
10708         * config/sol2.h (TARGET_SOLARIS): Define.
10709         (PUSHSECTION_FORMAT): Remove.
10710         (SECTION_NAME_FORMAT): Define.
10711         * config/sol2.c: Include hashtab.h.
10712         (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
10713         expansion, using SECTION_NAME_FORMAT.
10714         (solaris_comdat_htab): New variable.
10715         (struct comdat_entry): Define.
10716         (comdat_hash): New function.
10717         (comdat_eq): New function.
10718         (solaris_elf_asm_comdat_section): New function.
10719         (solaris_define_comdat_signature): New function.
10720         (solaris_code_end): New function.
10721         * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
10722         (solaris_code_end): Declare.
10723         * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
10724         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
10725         solaris_code_end.
10726         (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
10727         Remove ATTRIBUTE_UNUSED.
10728         [!USE_GAS]: Call solaris_elf_asm_comdat_section for
10729         SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
10730         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
10731         * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
10732         * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
10733         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
10734         (PUSHSECTION_FORMAT): Remove.
10735         (SECTION_NAME_FORMAT): Redefine.
10736
10737 2011-05-19  Kai Tietz  <ktietz@redhat.com>
10738
10739         * tree-cfg.c (verify_gimple_assign_binary): Barf on
10740         TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
10741         (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
10742
10743 2011-05-19  Anatoly Sokolov  <aesok@post.ru>
10744             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10745
10746         * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
10747
10748 2011-05-19  Richard Guenther  <rguenther@suse.de>
10749
10750         PR middle-end/48985
10751         * tree-object-size.c (addr_object_size): If the pointed-to
10752         variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
10753
10754 2011-05-19  Richard Guenther  <rguenther@suse.de>
10755
10756         * gimple.c (gimple_types_compatible_p_1): Compare names of
10757         the types themselves.
10758         (iterative_hash_gimple_type): And hash them that way.
10759         (gimple_register_type_1): If we register a main variant properly
10760         initialize the leader to ourselves.
10761
10762 2011-05-19  Tom de Vries  <tom@codesourcery.com>
10763
10764         PR target/45098
10765         * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
10766         get_loop_invariant_expr_id.
10767         (get_loop_invariant_expr_id): Use get_expr_id.
10768         (parm_decl_cost): New function.
10769         (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
10770         Improve bound cost estimation.  Use different inv_expr_id for elim and
10771         express cases.
10772
10773 2011-05-19  Tom de Vries  <tom@codesourcery.com>
10774
10775         PR target/45098
10776         * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
10777         cost_base.cost == 0.
10778
10779 2011-05-18  H.J. Lu  <hongjiu.lu@intel.com>
10780
10781         PR target/49002
10782         * config/i386/sse.md
10783         (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
10784         load cast.
10785
10786 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
10787
10788         PR tree-optimization/49039
10789         * tree-vrp.c (extract_range_from_binary_expr): For
10790         MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
10791         return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
10792
10793 2011-05-18  Tom de Vries  <tom@codesourcery.com>
10794
10795         PR target/45098
10796         * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
10797
10798 2011-05-18  Uros Bizjak  <ubizjak@gmail.com>
10799
10800         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
10801         (*tls_global_dynamic_64): Ditto.
10802         (*tls_local_dynamic_base_32_gnu): Ditto.
10803         (*tls_local_dynamic_base_64): Ditto.
10804         (tls_initial_exec_64_sun): Ditto.
10805
10806 2011-05-18  Stuart Henderson  <shenders@gcc.gnu.org>
10807
10808         * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
10809         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
10810         bf592-none.
10811         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
10812         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
10813         * config/bfin/bfin.c (bfin_cpus): Add bf592.
10814         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
10815         __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
10816         * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
10817         * config/bfin/elf.h (LIB_SPEC): Add bf592.
10818
10819 2011-05-18  Joseph Myers  <joseph@codesourcery.com>
10820
10821         * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
10822         arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
10823         * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
10824         target_thread_pointer, arm_structure_size_boundary, struct
10825         float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
10826         struct abi_name, arm_all_abis): Remove.
10827         (arm_option_override) Don't process most enumerated option values here.
10828         Don't process target_fpe_name here.  Work with integer not string for
10829         structure size boundary; use separate diagnostics for each case.
10830         * config/arm/arm.h (enum float_abi_type, enum
10831         arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
10832         to arm-opts.h.
10833         (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
10834         arm_structure_size_boundary): Remove.
10835         * config/arm/arm.opt (mabi=): Use Enum and Init.
10836         (arm_abi_type): New Enum and EnumValue entries.
10837         (mfloat-abi=): Use Enum and Init.
10838         (float_abi_type): New Enum and EnumValue entries.
10839         (mfp=, mfpe=): Replace by separate Alias entries for each argument.
10840         (mfp16-format=): Use Enum and Init.
10841         (arm_fp16_format_type): New Enum and EnumValue entries.
10842         (mstructure-size-boundary=): Use UInteger and Init.
10843         (mtp=): Use Enum and Init.
10844         (arm_tp_type): New Enum and EnumValue entries.
10845
10846 2011-05-18  Richard Guenther  <rguenther@suse.de>
10847
10848         PR tree-optimization/49018
10849         * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
10850         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
10851         gimple_has_side_effects.
10852
10853 2011-05-18  Richard Guenther  <rguenther@suse.de>
10854
10855         * gimple.c (gimple_register_type_1): New function, split out from ...
10856         (gimple_register_type): ... here.  Avoid infinite recursion.
10857
10858 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
10859
10860         PR tree-optimization/41881
10861         * tree-vectorizer.h (struct _loop_vec_info): Add new field
10862         reduction_chains along with a macro for its access.
10863         * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
10864         (destroy_loop_vec_info): Free reduction chains.
10865         (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
10866         (vect_is_slp_reduction): New function.
10867         (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
10868         (vect_create_epilog_for_reduction): Support SLP reduction chains.
10869         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
10870         definition types for reduction chains.
10871         (vect_supported_load_permutation_p): Don't allow permutations for
10872         reduction chains.
10873         (vect_analyze_slp_instance): Support reduction chains.
10874         (vect_analyze_slp): Try to build SLP instance from reduction chains.
10875         (vect_get_constant_vectors):  Handle reduction chains.
10876         (vect_schedule_slp_instance): Mark the first statement of the
10877         reduction chain as reduction.
10878
10879 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
10880
10881         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
10882         names for group elements access.
10883         * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
10884         reduction chains as well.  Remove data reference and interleaving
10885         related words from the fields names.
10886         * tree-vect-loop.c (vect_transform_loop): Use new names for group
10887         elements access.
10888         * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
10889         vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
10890         vect_update_interleaving_chain, vect_same_range_drs,
10891         vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
10892         vect_verify_datarefs_alignment, vector_alignment_reachable_p,
10893         vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
10894         vect_analyze_group_access, vect_analyze_data_ref_access,
10895         vect_create_data_ref_ptr, vect_transform_strided_load,
10896         vect_record_strided_load_vectors): Likewise.
10897         * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
10898         vect_model_load_cost, vectorizable_store, vectorizable_load,
10899         vect_remove_stores, new_stmt_vec_info): Likewise.
10900         * tree-vect-slp.c (vect_build_slp_tree,
10901         vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
10902
10903 2011-05-18  Richard Guenther  <rguenther@suse.de>
10904
10905         PR middle-end/48989
10906         * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
10907         operand verification.
10908         (verify_gimple_assign_binary): Likewise.
10909         * tree-ssa.c (useless_type_conversion_p): Preserve conversions
10910         to non-1-precision BOOLEAN_TYPEs.
10911
10912 2011-05-18  Tom de Vries  <tom@codesourcery.com>
10913
10914         PR target/45098
10915         * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
10916
10917 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
10918
10919         PR tree-optimization/49000
10920         * tree-ssa.c (execute_update_addresses_taken): Call
10921         maybe_rewrite_mem_ref_base on debug stmt value.  If it couldn't
10922         be rewritten and decl has been marked for renaming, reset
10923         the debug stmt.
10924
10925 2011-05-17  Joseph Myers  <joseph@codesourcery.com>
10926
10927         * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
10928         enum_opts_set when testing if attributes have set -mfpmath=.
10929
10930 2011-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
10931
10932         * config/mips/mips.c (mips_handle_option): Remove unused variable.
10933
10934 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
10935
10936         * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
10937         info->entry with 0
10938         * tree-inline.c (maybe_inline_call_in_expr):  Initialize
10939         id.transform_lang_insert_block with NULL.
10940
10941 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
10942
10943         * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
10944         (output_fp_compare): Change args 3 and 4 to bool.
10945         (ix86_expand_call): Change arg 6 to bool.
10946         (ix86_attr_length_immediate_default): Change arg 2 to bool.
10947         (ix86_attr_length_vex_default): Change arg 3 to bool.
10948         * config/i386/i386.md: Update all uses.
10949         * config/i386/i386.c: Ditto.
10950         (ix86_flags_dependent): Change return type to bool.
10951
10952 2011-05-17  Richard Guenther  <rguenther@suse.de>
10953
10954         * gimple.c (type_hash_pair_compare): Fix comparison.
10955
10956 2011-05-17  Richard Guenther  <rguenther@suse.de>
10957
10958         * gimple.c (iterative_hash_gimple_type): Simplify singleton
10959         case some more, fix final hash value of the non-singleton case.
10960
10961 2011-05-17  Richard Guenther  <rguenther@suse.de>
10962
10963         PR bootstrap/49013
10964         Revert
10965         2011-05-16  Richard Guenther  <rguenther@suse.de>
10966
10967         * gimple.c (gimple_types_compatible_p_1): Use names of the
10968         type itself, not its main variant.
10969         (iterative_hash_gimple_type): Likewise.
10970
10971 2011-05-17  Richard Guenther  <rguenther@suse.de>
10972
10973         * gimple.c (gimple_register_canonical_type): Use the main-variant
10974         leader for computing the canonical type.
10975
10976 2011-05-17  Nick Clifton  <nickc@redhat.com>
10977
10978         * config/rx/rx.c (rx_memory_move_cost): Include cost of register
10979         moves.
10980
10981         * config/rx/rx.md: Add peephole to remove redundant extensions
10982         after loads.
10983         (bitset_in_memory): Use rx_restricted_mem_operand.
10984         (bitinvert_in_memory): Likewise.
10985         (bitclr_in_memory): Likewise.
10986
10987 2011-05-17  Kazuhio Inaoka  <kazuhiro.inaoka.ud@renesas.com>
10988             Nick Clifton  <nickc@redhat.com>
10989
10990         * config/rx/rx.md: Add peepholes to match a register move followed
10991         by a comparison of the moved register.  Replace these with an
10992         addition of zero that does both actions in one instruction.
10993
10994 2011-05-17  Jakub Jelinek  <jakub@redhat.com>
10995
10996         PR target/48986
10997         * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
10998         predicate to allow CONST_INT.
10999         (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
11000
11001 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
11002
11003         * opts-common.c (opt_enum_arg_to_value): New.
11004         * opts.h (opt_enum_arg_to_value): Declare.
11005         * config/i386/i386.opt (fpmath): Remove.
11006         (mfpmath=): Use Enum, Init and Save.
11007         (fpmath_unit): New Enum and EnumValue entries.
11008         * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
11009         name for function fpmath state.
11010         * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
11011         * config/i386/i386.c: Include diagnostic.h.
11012         (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
11013         (ix86_target_string): Take enum fpmath_unit value instead of string.
11014         (ix86_debug_options): Update call to ix86_target_string.
11015         (ix86_option_override_internal): Don't process fpmath strings here.
11016         (x86_function_specific_save, ix86_function_specific_restore):
11017         Don't handle fpmath state specially.
11018         (ix86_function_specific_print): Pass fpmath state to
11019         ix86_target_string instead of printing in this function.
11020         (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
11021         Handle enum attributes.
11022         (IX86_ATTR_ENUM, ix86_opt_enum): New.
11023         (ix86_valid_target_attribute_tree): Update option_strings
11024         handling.  Handle fpmath as enum option.
11025         (ix86_can_inline_p): Update field names for function fpmath state.
11026         (ix86_expand_builtin): Update call to ix86_target_string.
11027         * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
11028         (ix86_fpmath): Remove.
11029         * config/i386/t-i386 (i386.o): Update dependencies.
11030
11031 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
11032
11033         PR preprocessor/48677
11034         * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
11035         from decoded_options[0], not from itself.
11036
11037 2011-05-16  Uros Bizjak  <ubizjak@gmail.com>
11038
11039         * config/i386/constraints.md (z): New constraint.
11040         * config/i386/i386.c (c): New mode attribute.
11041         (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
11042         *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
11043         constraint for operand 0.
11044         (*call_vzeroupper): Ditto.
11045         (*call_rex64_ms_sysv): Ditto.  Use "rzm" constraint for operand 0.
11046         (*call_rex64_ms_sysv_vzeroupper): Ditto.
11047         (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
11048         Use "lzm" constraint for operand 0.
11049         (*call_pop_vzeroupper): Ditto.
11050         (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
11051         *sibcall_1_rex64 patterns using "P" mode iterator.  Use "Uz"
11052         constraint for operand 0.
11053         (*sibcall_vzeroupper): Ditto.
11054         (*sibcall_rex64_ms_sysv): Ditto.
11055         (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
11056         (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
11057         *sibcall_pop_1.  Use "Uz" constraint for operand 0.
11058         (*sibcall_pop_vzeroupper): Ditto.
11059         (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
11060         *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
11061         mode iterator.  Use "<c>zm" constraint for operand 1.
11062         (*call_value_vzeroupper): Ditto.
11063         (*call_value_rex64_ms_sysv): Ditto.  Use "rzm" constraint
11064         for operand 1.
11065         (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
11066         (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
11067         *call_value_pop_1.  Use "lzm" constraint for operand 1.
11068         (*call_value_pop_vzeroupper): Ditto.
11069         (*sibcall_value): Merge insn pattern from *sibcall_value_0,
11070         *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
11071         mode iterator.  Use "Uz" constraint for operand 1.
11072         (*sibcall_value_vzeroupper): Ditto.
11073         (*sibcall_value_rex64_ms_sysv): Ditto.
11074         (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
11075         (*sibcall_value_pop): Rename from *sibcall_pop_1.  Use "Uz"
11076         constraint for operand 1.
11077         (*sibcall_value_pop_vzeroupper): Ditto.
11078         (*tls_global_dynamic_64): Use constant_call_address_operand predicate
11079         and "z" constraint for operand 2.
11080         (*tls_global_dynamic_32_gnu): Ditto.
11081         (*tls_local_dynamic_base_32_gnu): Ditto.
11082         (*tls_local_dynamic_base_64): Ditto.
11083         (*tls_local_dynamic_32_once): Ditto.
11084         * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
11085         Update all callers.
11086         * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
11087
11088 2011-05-16  Richard Guenther  <rguenther@suse.de>
11089
11090         * gimple.c (gimple_types_compatible_p_1): Use names of the
11091         type itself, not its main variant.
11092         (iterative_hash_gimple_type): Likewise.
11093
11094 2011-05-16  Richard Guenther  <rguenther@suse.de>
11095
11096         * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
11097         always visit pointer target and function result and argument types.
11098
11099 2011-05-16  Jason Merrill  <jason@redhat.com>
11100
11101         PR c++/48999
11102         * tree-inline.c (copy_statement_list): Put back recursion.
11103
11104 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
11105
11106         PR target/27663
11107         PR target/41076
11108         * config/avr/predicates.md (const_8_16_24_operand): New predicate.
11109         * config/avr/avr.md ("*ior<mode>qi.byte0",
11110         "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
11111
11112 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
11113
11114         PR target/45099
11115         * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
11116         register is needed for a function argument.
11117
11118 2011-05-16  Richard Guenther  <rguenther@suse.de>
11119
11120         * gimple.c (struct type_hash_pair): New type.
11121         (type_hash_pair_compare): New function.
11122         (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
11123
11124 2011-05-16  Revital Eres  <revital.eres@linaro.org>
11125
11126         * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
11127
11128 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
11129
11130         * config/i386/i386.md (floating point move splitters): Fix
11131         usage of standard_80387_constant_p.
11132         * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
11133
11134 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
11135
11136         * config/i386/i386.md (*movdf_internal): Simplify insn condition.
11137
11138 2011-05-14  Eric Botcazou  <ebotcazou@adacore.com>
11139
11140         * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
11141         (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
11142         (tree_ssa_lim_finalize): Likewise.
11143
11144 2011-05-14  Uros Bizjak  <ubizjak@gmail.com>
11145
11146         * config/i386/constraint.md (Yd, Yx): New register constraints.
11147         * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger.  Use
11148         Yd conditional register constraint.
11149         (*movtf_internal): Use standard_sse_constant_opcode.
11150         (*movxf_internal): Merge with *movxf_internal_nointeger.  Use
11151         Yx conditional register constraint.
11152         (*movdf_internal): Merge with *movdf_internal_nointeger.  Use
11153         Yd conditional register constraint.  Use standard_sse_constant_p to
11154         check for valid SSE constants and call standard_sse_constant_opcode to
11155         output SSE insn.
11156         (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
11157         constants and call standard_sse_constant_opcode to output SSE insn.
11158         * config/i386/i386.c (ix86_option_ovverride_internal): Set
11159         TARGET_INTEGER_DFMODE_MOVES for 64bit targets.  Clear it when
11160         optimize_size is set.
11161         (standard_sse_constant_opcode): Output conditional AVX insn templates.
11162
11163 2011-05-14  Tobias Burnus  <burnus@net-b.de>
11164
11165         * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
11166
11167 2011-05-13  Martin Jambor  <mjambor@suse.cz>
11168
11169         * ipa-prop.c (ipa_cst_from_jfunc): New function.
11170         * ipa-prop.h (ipa_cst_from_jfunc): Declare.
11171         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
11172         (evaluate_conditions_for_ipcp_clone): Removed.
11173         (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
11174         * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
11175         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
11176
11177 2011-05-13  Eric Botcazou  <ebotcazou@adacore.com>
11178
11179         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
11180         * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
11181         lieu of MAY_HAVE_DEBUG_STMTS.
11182         * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
11183         debug statements if !MAY_HAVE_DEBUG_STMTS.
11184
11185 2011-05-13  Martin Thuresson  <martint@google.com>
11186
11187         PR gcov-profile/47793
11188         * libgcov.c (gcov_exit): Support relative profile paths.
11189         * doc/invoke.texi (-fprofile-dir): Update for above change.
11190
11191 2011-05-13  Richard Guenther  <rguenther@suse.de>
11192
11193         * gimple.c (gimple_canonical_types_compatible_p): Do not use
11194         type-pair caching, do not compare hashes.
11195
11196 2011-05-13  Nathan Froyd  <froydnj@codesourcery.com>
11197
11198         PR middle-end/48965
11199         * tree-cfg.c (edge_to_cases_cleanup): Return true.
11200         (verify_expr) [CASE_LABEL_EXPR]: Add checking.
11201
11202 2011-05-13  Kai Tietz  <ktietz@redhat.com>
11203
11204         * gimplify.c (gimplify_expr): Make sure operand is boolified.
11205         * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
11206         compatible type for TRUTH_NOT_EXPR.
11207
11208 2011-05-13  H.J. Lu  <hongjiu.lu@intel.com>
11209
11210         * config/i386/i386.c (ix86_save_reg): Change return type to bool.
11211         (ix86_hard_regno_mode_ok): Change return value to bool.  Use
11212         can_create_pseudo_p ().
11213
11214 2011-05-13  Richard Guenther  <rguenther@suse.de>
11215
11216         PR lto/48978
11217         * gimple.c (iterative_hash_gimple_type): Revert change in
11218         pointer target and function result and argument hashing.
11219
11220 2011-05-13  Uros Bizjak  <ubizjak@gmail.com>
11221
11222         * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
11223         (*movxf_internal_nointeger): Ditto.
11224         (*movdf_internal_rex64): Ditto.
11225         (*movdf_internal): Ditto.
11226         (*movdf_internal_nointeger): Ditto.
11227         (*movsf_internal): Ditto.
11228         (sincos splitters): Use can_create_pseudo ().
11229
11230 2011-05-13  Joseph Myers  <joseph@codesourcery.com>
11231
11232         * config/i386/i386-opts.h: New.
11233         * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
11234         ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
11235         ix86_section_threshold): Remove.
11236         (ix86_handle_option): Move MAX_CODE_ALIGN define here.  Handle
11237         OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
11238         OPT_mbranch_cost_.
11239         (ix86_option_override_internal): Don't decode strings for options
11240         other than -march=, -mtune= and -mfpmath=.  Don't allow for
11241         __attribute__ uses in remaining diagnostics for options with
11242         string arguments.  Don't check for integer arguments being negative.
11243         * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
11244         enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
11245         (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
11246         ix86_branch_cost, ix86_section_threshold): Remove.
11247         * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
11248         HeaderInclude.
11249         (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
11250         but not Var.
11251         (masm=): Use Enum and Init.
11252         (asm_dialect): New Enum and EnumValue entries.
11253         (mbranch-cost=): Use UInteger.
11254         (mlarge-data-threshold=): Use UInteger and Init.
11255         (mcmodel=): Use Enum and Init.
11256         (cmodel): New Enum and EnumValue entries.
11257         (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
11258         (mpreferred-stack-boundary=, mincoming-stack-boundary=,
11259         mregparm=): Use UInteger.
11260         (mstringop-strategy=): Use Enum and Init.
11261         (stringop_alg): New Enum and EnumValue entries.
11262         (mtls-dialect=): Use Enum and Init.
11263         (tls_dialect): New Enum and EnumValue entries.
11264         (mabi=): Use Enum and Init.
11265         (calling_abi): New Enum and EnumValue entries.
11266         (mveclibabi=): Use Enum and Init.
11267         (ix86_veclibabi): New Enum and EnumValue entries.
11268
11269 2011-05-13  Nick Clifton  <nickc@redhat.com>
11270
11271         * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
11272         * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
11273
11274 2011-05-13  Kai Tietz  <ktietz@redhat.com>
11275
11276         PR middle-end/48984
11277         * gimplify.c (gimplify_expr): Check for boolean_type_node instead
11278         for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
11279         (gimple_boolify): Check for cast for boolean_type_node instead for
11280         BOOLEAN_TYPE.
11281
11282 2011-05-13  Richard Guenther  <rguenther@suse.de>
11283
11284         PR tree-optimization/48172
11285         * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
11286         multiplying by number of iterations for equal step.
11287         (vect_create_cond_for_alias_checks): Likewise.
11288
11289 2011-05-13  Andreas Schwab  <schwab@redhat.com>
11290
11291         * configure.ac: Use AS_HELP_STRING throughout.
11292         * configure: Regenerate.
11293
11294 2011-05-12  H.J. Lu  <hongjiu.lu@intel.com>
11295
11296         * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
11297         (ix86_emit_restore_regs_using_mov): Likewise.
11298         (ix86_emit_restore_sse_regs_using_mov): Likewise.
11299
11300 2011-05-12  Anatoly Sokolov  <aesok@post.ru>
11301
11302         * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
11303         SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
11304         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
11305         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
11306         RTX_OK_FOR_OLO10_P): ...here.
11307         (sparc_mode_dependent_address_p): Use symbolic_operand instead of
11308         SYMBOLIC_CONST.
11309
11310 2011-05-12  Kai Tietz  <ktietz@redhat.com>
11311
11312         * gimplify.c (gimple_boolify): Re-boolify expression
11313         arguments even if expression type is of kind BOOLEAN_TYPE.
11314         (gimplify_boolean_expr): Removed.
11315         (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
11316         and XOR. Additional take care that we keep expression's type.
11317         * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
11318         of TRUTH_AND|OR|XOR_EXPR.
11319
11320 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
11321
11322         PR tree-optimization/48975
11323         * tree-if-conv.c (combine_blocks): Call free_bb_predicate
11324         on all bbs here and free and clear ifc_bbs at the end.
11325
11326 2011-05-12  Richard Guenther  <rguenther@suse.de>
11327
11328         * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
11329         NULLPTR_TYPE similar to VOID_TYPE.  Defer type-leader lookup
11330         until after simple checks.
11331         (gimple_types_compatible_p): Likewise.
11332         (iterative_hash_gimple_type): Always hash pointer targets
11333         and function return and argument types.
11334         (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
11335         hash TYPE_ALIGN.  Do not hash TYPE_MIN/MAX_VALUE.
11336         (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
11337         handle NULLPTR_TYPE similar to VOID_TYPE.  Handle non-aggregates
11338         completely in the simple compare section.
11339         (gimple_register_canonical_type): Query the cache again after
11340         registering.
11341
11342 2011-05-12  Richard Guenther  <rguenther@suse.de>
11343
11344         PR tree-optimization/48172
11345         * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
11346         the number of iterations from the segment size calculation.
11347         (vect_create_cond_for_alias_checks): Adjust.
11348
11349 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
11350
11351         PR debug/48967
11352         * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
11353         if validate_subreg fails.
11354
11355 2011-05-12  Hariharan Sandanagobalane  <hariharan@picochip.com>
11356
11357         * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
11358         accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
11359         early.
11360
11361 2011-05-12  DJ Delorie  <dj@redhat.com>
11362
11363         * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
11364         (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
11365         created builtin into rx_builtins array.
11366         (rx_builtin_decl): New function.
11367         (TARGET_BUITLIN_DECL): Define.  Include gt-rx.h.
11368
11369 2011-05-12  DJ Delorie  <dj@redhat.com>
11370             Nick Clifton  <nickc@redhat.com>
11371
11372         * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
11373         * config/rx/rx.c (CC_FLAG_FP): Fix comment.
11374         (rx_is_legitimate_address): Add pre-decrement and post-increment
11375         addressing in HImode and QImode.  Fix test for out of range
11376         REG+INT addressing.
11377         (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
11378         (rx_align_for_label): Test label before extracting its usage count.
11379         (rx_adjust_insn_lengths): Fix selection of insn codes.
11380         (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
11381
11382 2011-05-11  Jason Merrill  <jason@redhat.com>
11383
11384         * tree.c (type_hash_canon): Use struct tree_type_non_common.
11385
11386 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
11387
11388         * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
11389         reindent the subsequent block.
11390
11391 2011-05-11  Satoru Takabayashi  <satorux@google.com>
11392             Paul Pluzhnikov  <ppluzhnikov@google.com>
11393
11394         * doc/install.texi (Configuration): Document --with-linker-hash-style.
11395         * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
11396         * config.in: Add LINKER_HASH_STYLE.
11397         * configure.ac: Add --with-linker-hash-style.
11398         * configure: Regenerate.
11399
11400 2011-05-11  Richard Guenther  <rguenther@suse.de>
11401
11402         PR middle-end/48964
11403         * gimple.c (iterative_hash_canonical_type): Fix typo.
11404
11405 2011-05-11  Uros Bizjak  <ubizjak@gmail.com>
11406
11407         * config/i386/i386.c (legitimize_tls_address)
11408         <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
11409         expanders directly for TARGET_GNU2_TLS.  Determine pic and
11410         __tls_get_addr symbol reference here.  Update call to
11411         gen_tls_global_dynamic_{32,64} for added arguments.
11412         <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
11413         expanders directly for TARGET_GNU2_TLS.  Determine
11414         __tls_get_addr symbol reference here.  Update call to
11415         gen_tls_local_dynamic_base_{32,64} for added arguments.  Attach
11416         unique UNSPEC REG_EQUIV to libcall block.
11417         (ix86_tls_get_addr): Declare static.
11418         * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
11419         * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
11420         Do not determine pic and __tls_get_addr symbol reference here. Do not
11421         call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
11422         (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
11423         (tls_global_dynamic_64): Add operand 2.  Do not determine
11424         __tls_get_addr symbol reference here.  Do not call
11425         gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
11426         (tls_local_dynamic_base64): Ditto for operand 1.
11427
11428 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
11429
11430         * function.c (expand_function_start): Initialize stack_check_probe_note
11431         only if the generic stack checking mechanism is used.
11432
11433 2011-05-11  Richard Guenther  <rguenther@suse.de>
11434
11435         PR tree-optimization/15256
11436         * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
11437         (A & B) | C, combine (A op CST1) op CST2.
11438         (tree_ssa_forward_propagate_single_use_vars): Only bother to
11439         visit assigns that have uses.
11440
11441 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
11442
11443         * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
11444         * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
11445         (unpack_ts_type_common_value_fields): ...this.  Update comment.
11446         (unpack_value_fields): Adjust for renaming.
11447         (lto_input_ts_type_tree_pointers): Split into...
11448         (lto_input_ts_type_common_tree_pointer): ...this and...
11449         (lto_input_ts_type_non_common_tree_pointers): ...this.
11450         (lto_input_tree_pointers): Adjust for above split.
11451         * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
11452         (pack_ts_type_common_value_fields): ...this.  Update comment.
11453         (lto_output_ts_type_tree_pointers): Split into...
11454         (lto_output_ts_type_common_tree_pointers): ...this and...
11455         (lto_output_ts_type_non_common_tree_pointers): ...this.
11456         (lto_output_tree_pointers): Adjust for above split.
11457         * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
11458         TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
11459         * stor-layout.c (vector_type_mode): Adjust location of mode field.
11460         * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
11461         Define.
11462         (struct tree_type): Split into...
11463         (struct tree_type_common: ...this and...
11464         (struct tree_type_with_lang_specific): ...this and...
11465         (struct tree_type_non_common): ...this.  Adjust accessor macros
11466         accordingly.
11467         (TYPE_VALUES_RAW): Define.
11468         (union tree_node): Update for above changes.
11469         * tree.c (tree_node_structure_for_code) [tcc_type]: Return
11470         TS_TYPE_NON_COMMON.
11471         (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
11472         Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
11473         (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
11474         * treestructu.def (TS_TYPE): Remove.
11475         (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
11476         Define.
11477
11478 2011-05-11  Jakub Jelinek  <jakub@redhat.com>
11479
11480         PR debug/48159
11481         * tree-ssa.c (reset_debug_uses): New function.
11482         * tree-flow.h (reset_debug_uses): New prototype.
11483         * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
11484         * tree-loop-distribution.c (generate_loops_for_partition): Call
11485         reset_debug_uses on the stmts that will be removed.  Keep around
11486         all debug stmts, don't count them as bits in partition bitmap.
11487         (generate_builtin): Don't count debug stmts or labels as bits in
11488         partition bitmap.
11489
11490 2011-05-11  Richard Guenther  <rguenther@suse.de>
11491
11492         * gimple.c (gimple_type_hash_1): Merge with ...
11493         (gimple_type_hash): ... this.
11494         (gtc_visit): Remove mode parameter and simplify accordingly.
11495         (gimple_types_compatible_p_1): Likewise.
11496         (gimple_types_compatible_p): Likewise.
11497         (iterative_hash_gimple_type): Likewise.
11498         (visit): Likewise.
11499         (gimple_type_eq): Adjust.
11500
11501 2011-05-11  Revital Eres  <revital.eres@linaro.org>
11502
11503         * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
11504         enters the branch create an anti edge in the opposite direction
11505         to prevent the creation of reg-moves.
11506         * modulo-sched.c: Adjust comment to reflect the fact we are
11507         scheduling closing branch.
11508         (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
11509         (stage_count): New field in struct partial_schedule.
11510         (calculate_stage_count): New function.
11511         (normalize_sched_times): Rename to reset_sched_times and handle
11512         incrementing the sched time of the nodes by a constant value
11513         passed as parameter.
11514         (duplicate_insns_of_cycles): Skip closing branch.
11515         (sms_schedule_by_order): Schedule closing branch.
11516         (ps_insn_find_column): Handle closing branch.
11517         (sms_schedule): Call reset_sched_times and adjust the code to
11518         support scheduling of the closing branch.
11519         (ps_insert_empty_row): Update calls to normalize_sched_times
11520         and rotate_partial_schedule functions.
11521
11522 2011-05-11  Richard Guenther  <rguenther@suse.de>
11523
11524         PR middle-end/48953
11525         * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
11526
11527 2011-05-11  Joseph Myers  <joseph@codesourcery.com>
11528
11529         * opts.c (finish_options): Move warning settings from process_options.
11530         * toplev.c (process_options): Move warning settings to finish_options.
11531
11532 2011-05-11  Richard Guenther  <rguenther@suse.de>
11533
11534         PR tree-optimization/18041
11535         * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
11536         (simplify_bitwise_binary): ... this.  Handle operand conversions
11537         by applying them to the result instead.
11538         (tree_ssa_forward_propagate_single_use_vars): Adjust.  CSE tree code.
11539
11540 2011-05-11  Richard Guenther  <rguenther@suse.de>
11541
11542         * gimple.c (gimple_canonical_types_compatible_p): Split out
11543         from gimple_types_compatible_p and friends.  Do not recurse
11544         to pointed-to types.
11545         (gimple_canonical_type_eq): Use it.
11546         (iterative_hash_canonical_type): Split out from
11547         iterative_hash_gimple_type and friends.  Do not recurse
11548         to pointed-to types.
11549         (gimple_canonical_type_hash): Use it, allocate the hash here.
11550
11551 2011-05-11  Revital Eres  <revital.eres@linaro.org>
11552
11553         * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
11554         recognizing doloop.
11555
11556 2011-05-11  Revital Eres  <revital.eres@linaro.org>
11557
11558         * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
11559         instead of PREV_INSN.
11560
11561 2011-05-11  Revital Eres  <revital.eres@linaro.org>
11562
11563         * modulo-sched.c (sms_schedule): Support new form of doloop pattern
11564         * loop-doloop.c (doloop_condition_get): Likewise.
11565         * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
11566         (doloop_end): New.
11567         * config/arm/arm.md (*addsi3_compare0): Remove "*".
11568
11569 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
11570
11571         * tree.def (CASE_LABEL_EXPR): Add an operand.
11572         * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
11573
11574 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
11575
11576         * c-decl.c (c_override_global_bindings_to_false): Remove.
11577         (global_bindings_p): Don't check
11578         c_override_global_bindings_to_false.
11579         * c-tree.h (c_override_global_bindings_to_false): Remove.
11580         * c-typeck.c (composite_type): Don't set
11581         c_override_global_bindings_to_false.
11582
11583 2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
11584
11585         PR target/48857, 48495
11586         * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
11587         (VSX_MODE): Ditto.
11588         (VSX_MOVE_MODE): Ditto.
11589         (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
11590         VSX vector types.  Add V2DImode.
11591         (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
11592         ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
11593         (MODES_TIEABLE_P): Ditto.
11594
11595         * config/rs6000/rs6000.c (rs6000_emit_move): Use
11596         ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
11597         VSX_VECTOR_MODE.
11598         (init_cumulative_args): Ditto.
11599         (rs6000_function_arg_boundary): Ditto.
11600         (rs6000_function_arg_advance_1): Ditto.
11601         (rs6000_function_arg): Ditto.
11602         (rs6000_function_ok_for_sibcall): Ditto.
11603         (emit_frame_save): Ditto.
11604         (rs6000_function_value): Ditto.
11605         (rs6000_libcall_value): Ditto.
11606
11607 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
11608
11609         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
11610         i386/darwin-lib.h to $libgcc_tm_file.
11611         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
11612
11613 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
11614
11615         * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
11616
11617 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
11618
11619         * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
11620         * config/rs6000/rs6000-tables.opt: New file (generated).
11621         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
11622         rs6000/rs6000-tables.opt to extra_options.
11623         * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
11624         * config/rs6000/rs6000.c (rs6000_select): Remove.
11625         (processor_target_table): Move contents to rs6000-cpus.def.
11626         (darwin_rs6000_override_options): Check
11627         global_options_set.x_rs6000_cpu_index instead of
11628         rs6000_select[1].string.
11629         (rs6000_option_override_internal): Likewise.
11630         (rs6000_handle_option): Don't assert that global structures are in
11631         use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
11632         (rs6000_default_cpu): New variable.
11633         (rs6000_file_start): Set it instead of local default_cpu.  Check
11634         rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
11635         global_options_set.x_rs6000_tune_index instead of rs6000_select.
11636         (rs6000_darwin_file_start): Check rs6000_default_cpu and
11637         global_options_set.x_rs6000_cpu_index instead of rs6000_select.
11638         * config/rs6000/rs6000.h (struct rs6000_cpu_select,
11639         rs6000_select): Remove.
11640         * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
11641         Remove.
11642         (mcpu=, mtune=): Use Var, Init, Enum and Save.
11643         * config/rs6000/t-rs6000
11644         ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
11645         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
11646         global_options_set.x_rs6000_cpu_index instead of
11647         rs6000_select[1].string.
11648         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
11649         global_options_set.x_rs6000_cpu_index instead of
11650         rs6000_select[1].string.
11651
11652 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
11653
11654         * config.gcc (libgcc_tm_file): Define instead of including files
11655         from ../../libgcc/config/ in tm_file.
11656         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
11657         * configure: Regenerate.
11658         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
11659         libgcc_tm.h, cs-libgcc_tm.h): New.
11660         (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
11661         (clean): Remove libgcc_tm.h.
11662         * config/arm/symbian.h (RENAME_LIBRARY): Remove.
11663         * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
11664         * system.h (DECLARE_LIBRARY_RENAMES): Poison.
11665
11666 2011-05-10  Georg-Johann Lay  <avr@gjlay.de>
11667
11668         PR target/48896
11669         * config/avr/avr.c (avr_ret_register): Return unsigned int
11670         instead of int.
11671         (avr_function_value): Mark fn_decl_or_type as unused, don't pass
11672         it to avr_libcall_value.
11673         avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
11674         expand_expr.
11675         (avr_expand_binop_builtin): Ditto.
11676         (avr_expand_unop_builtin): Ditto.
11677
11678 2011-05-10  DJ Delorie  <dj@redhat.com>
11679
11680         * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
11681         (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
11682         * config/rx/rx.c (rx_align_for_label): Add label and
11683         uses_threshold parameters.  Do not align when the label is not
11684         used enough.
11685         * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
11686
11687 2011-05-10  Richard Guenther  <rguenther@suse.de>
11688
11689         * tree-ssa-forwprop.c (combine_conversions): Pattern-match
11690         a series of conversions and apply foldings similar to what
11691         fold-const does.
11692         (tree_ssa_forward_propagate_single_use_vars): Call it.
11693
11694 2011-05-10  Jakub Jelinek  <jakub@redhat.com>
11695
11696         PR tree-optimization/48611
11697         PR tree-optimization/48794
11698         * tree-eh.c (remove_unreachable_handlers): Don't remove regions
11699         referenced from RESX or EH_DISPATCH arguments.
11700
11701         PR debug/48928
11702         * dfp.c (decimal_to_decnumber): Handle conversion from
11703         dconst{1,2,m1,half}.
11704
11705 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
11706
11707         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
11708         for !flag_prefer_avx128.
11709         (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
11710
11711 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
11712
11713         * fold-const.c (fold_range_test): Pass LOC to build_range_check.
11714         (fold_ternary_loc): Use expr_location_or.
11715
11716 2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>
11717
11718         PR debug/48853
11719         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
11720         POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
11721         Pmode and mem_mode is not VOIDmode.
11722
11723 2011-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
11724
11725         * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
11726         TYPE_QUAL_RESTRICT): Convert to enum.
11727
11728 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
11729
11730         * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
11731         (const_pow2_1_to_8_operand): Ditto.
11732         (const_pow2_1_to_128_operand): Ditto.
11733         (const_pow2_1_to_32768_operand): Ditto.
11734         * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
11735         const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
11736         in insn constraint to check integer value of operand 3.
11737         * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
11738
11739         (PINSR_MODE): New mode iterator.
11740         (sse2p4_1): New mode attribute.
11741         (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
11742         sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
11743         iterator.  Use const_int_operand instead of
11744         const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
11745         exact_log2 in insn constraint to check integer value of operand 3.
11746
11747 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
11748
11749         * config/i386/sse.md (blendbits): Remove mode attribute.
11750         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
11751         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
11752         Check integer value of operand 3 in insn constraint.
11753
11754 2011-05-09  Richard Guenther  <rguenther@suse.de>
11755
11756         * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
11757         for diagnostics.
11758         (lto_symtab_merge): Likewise.  Do not register types here.
11759         (lto_symtab_merge_decls_2): Likewise.
11760         (lto_symtab_merge_decls_1): Likewise.
11761         * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
11762         * gimple.c (enum gtc_mode): Declare.
11763         (gimple_types_compatible_p): Make static.
11764
11765 2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11766
11767         * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
11768         temporary register to match Pmode.
11769
11770 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
11771
11772         * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
11773         and *vec_concatv4si_1_avx.
11774
11775 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
11776
11777         PR rtl-optimization/48927
11778         * ira-conflicts.c (commutative_constraint_p): Use
11779         recog_data.alternative_enabled_p to disable alternatives where
11780         "enabled" attribute is false.
11781         (get_dup_num): Ditto.
11782         * ira-lives.c (single_reg_class): Ditto.
11783         (ira_implicitly_set_insn_hard_regs): Ditto.
11784
11785 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
11786
11787         * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
11788         (dataflow_set_preserve_mem_locs): Likewise.
11789
11790 2011-05-09  Philipp Thomas  <pth@suse.de>
11791
11792         * config/mep/mep.c (mep_validate_vliw): Syntax description
11793         should not be translated.
11794
11795 2011-05-09  Joseph Myers  <joseph@codesourcery.com>
11796
11797         * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
11798         * config/mips/mips-tables.opt: New file (generated).
11799         * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
11800         * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
11801         MIPS_ARCH_OPTION_NATIVE): Define.
11802         * config/mips/mips.c (mips_cpu_info_table): Move contents to
11803         mips-cpus.def.
11804         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
11805         mips_parse_cpu): Remove.
11806         (mips_cpu_info_from_opt, mips_default_arch): New.
11807         (mips_handle_option): Don't assert that global structures are in
11808         use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
11809         (mips_option_override): Use new variables and functions to set
11810         state of these options.  Use strcmp to check for individual CPU names.
11811         * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
11812         definition.
11813         * config/mips/mips.opt (march=): Use ToLower and Enum.
11814         (mips): Use ToLower, Enum and Var.
11815         (mtune=): Use ToLower and Enum.
11816         * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
11817
11818 2011-05-08  Jan Hubicka  <jh@suse.cz>
11819
11820         * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
11821         Arrange type pairs to be UID ordered.
11822         (gimple_lookup_type_leader): Make inline.
11823
11824 2011-05-09  Nick Clifton  <nickc@redhat.com>
11825
11826         PR target/48899
11827         * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
11828         PROCESSOR_DEFAULT.
11829
11830         PR target/48897
11831         * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
11832         variable 's'.
11833
11834 2011-05-08  Chung-Lin Tang  <cltang@codesourcery.com>
11835
11836         * combine.c (simplify_comparison): Abstract out parts into...
11837         (simplify_compare_const): ... new function.
11838         (try_combine): Generalize parallel arithmetic/compare combining
11839         to call simplify_compare_const() and CANONICALIZE_COMPARE().
11840
11841 2011-05-08  Jan Hubicka  <jh@suse.cz>
11842
11843         * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
11844         (cgraph_create_virtual_clone): Call hooks once virtual clone
11845         is finished.
11846         * cgraph.h (cgraph_clone_node): Update prototype.
11847         * ipa-cp.c (ipcp_estimate_growth): Use
11848         estimate_ipcp_clone_size_and_time.
11849         * ipa-inline-transform.c (clone_inlined_nodes): Update.
11850         * lto-cgraph.c (input_node): Update.
11851         * ipa-inline.c (recursive_inlining): Update.
11852         * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
11853         (evaluate_conditions_for_known_args): Break out from ...
11854         (evaluate_conditions_for_edge): ... here.
11855         (evaluate_conditions_for_ipcp_clone): New function.
11856         (inline_node_duplication_hook): Update clone summary based
11857         on parameter map.
11858         (estimate_callee_size_and_time): Rename to ...
11859         (estimate_node_size_and_time): take NODE instead of EDGE;
11860         take POSSIBLE_TRUTHS as argument.
11861         (estimate_callee_size_and_time): Update.
11862         (estimate_ipcp_clone_size_and_time): New function.
11863         (do_estimate_edge_time): Update.
11864
11865 2011-05-08  Richard Guenther  <rguenther@suse.de>
11866
11867         PR middle-end/48908
11868         PR middle-end/48905
11869         * expmed.c (expand_shift_1): Compute adjusted constant shift
11870         amount manually.
11871
11872 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
11873
11874         * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
11875
11876 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
11877
11878         * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
11879
11880 2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
11881
11882         * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
11883
11884 2011-05-07  Jan Hubicka  <jh@suse.cz>
11885
11886         * ipa-inline-transform.c (inline_call): Account when program size
11887         decreases.
11888         * ipa-inline.c (relative_time_benefit): New function.
11889         (edge_badness): Reorganize to be power 2 based; fix thinko when
11890         computing badness for negative growth; update comments to match
11891         reality; better dumps.
11892
11893 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
11894
11895         * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
11896         type to bool and adjust comment.
11897         * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
11898         (fold_mathfn_compare): Remove calls to global_bindings_p.
11899         (fold_inf_compare): Likewise.
11900         * stor-layout.c (variable_size): Adjust call to global_bindings_p.
11901         * c-tree.h (global_bindings_p): Adjust prototype.
11902         * c-decl.c (global_bindings_p): Return bool and simplify.
11903
11904 2011-05-07  Zdenek Dvorak  <ook@ucw.cz>
11905
11906         PR tree-optimization/48837
11907         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
11908         when accumulator transformation is performed.
11909
11910 2011-05-06  Jan Hubicka  <jh@suse.cz>
11911
11912         * i386.h (ix86_tune_indices): Add
11913         X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
11914         (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
11915         * i386.c (initial_ix86_tune_features): Add
11916         X86_SOFTARE_PREFETCHING_BENEFICIAL.
11917         (software_prefetching_beneficial_p): Remove predicate.
11918         (ix86_option_override_internal): Use new macro.
11919
11920 2011-05-06  Jan Hubicka  <jh@suse.cz>
11921
11922         * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
11923
11924 2011-05-06  Jan Hubicka  <jh@suse.cz>
11925
11926         * cgraph.c (cgraph_add_thunk): Create real function node instead
11927         of alias node; finalize it and mark needed/reachale; arrange visibility
11928         to be right and add it into the corresponding same comdat group list.
11929         (dump_cgraph_node): Dump thunks.
11930         * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
11931         cgraph_function_with_gimple_body_p,
11932         cgraph_first_function_with_gimple_body,
11933         cgraph_next_function_with_gimple_body): New functions.
11934         (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
11935         New macros.
11936         * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
11937         (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
11938         * cgraphunit.c (cgraph_finalize_function): Only look into possible
11939         devirtualization when optimizing.
11940         (verify_cgraph_node): Verify thunks.
11941         (cgraph_analyze_function): Analyze thunks.
11942         (cgraph_mark_functions_to_output): Output thunks only in combination
11943         with function they are assigned to.
11944         (assemble_thunk): Turn thunk into non-thunk; don't try to turn
11945         alias into normal node.
11946         (assemble_thunks): New functoin.
11947         (cgraph_expand_function): Use it.
11948         * lto-cgraph.c (lto_output_node): Stream thunks.
11949         (input_overwrite_node): Stream in thunks.
11950         * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
11951         * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
11952         * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
11953         * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
11954         (inline_analyze_function): Do not care about thunk jump functions.
11955         (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
11956         * ipa-prop.c (ipa_prop_write_jump_functions): Use
11957         cgraph_function_with_gimple_body_p.
11958         * passes.c (do_per_function_toporder): Use
11959         cgraph_function_with_gimple_body_p.
11960         (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
11961         (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
11962         (function_called_by_processed_nodes_p): Likewise.
11963
11964 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
11965
11966         * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
11967         rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
11968         entries.
11969         (mabi=): Replace with separate entries for mabi=altivec,
11970         mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
11971         mabi=ieeelongdouble and mabi=ibmlongdouble.
11972         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
11973         check for -mabi=spe without SPE ABI support here.
11974         (rs6000_handle_option): Replace OPT_mabi_ handling with
11975         OPT_mabi_altivec and OPT_mabi_spe handling.
11976
11977 2011-05-06  Cary Coutant  <ccoutant@google.com>
11978
11979         * dwarf2out.c (contains_subprogram_definition): New function.
11980         (should_move_die_to_comdat): Call it.
11981
11982 2011-05-06  Jeff Law  <law@redhat.com>
11983
11984         * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
11985         remove_ctrl_stmt_and_useless_edges.
11986         (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
11987         (fixup_template_block, thread_single_edge): Likewise.
11988         (mark_threaded_blocks): Use THREAD_TARGET.
11989
11990 2011-05-06  Alan Modra  <amodra@gmail.com>
11991
11992         PR target/48900
11993         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
11994         const0_rtx as the arg to the dummy __tls_get_addr libcall.
11995
11996 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
11997
11998         * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
11999         constraint modifier to "r".
12000
12001 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
12002
12003         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
12004         fall through for OPT_mcmodel_.
12005
12006 2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12007
12008         * config/s390/s390.c (s390_asm_trampoline_template): Comment
12009         instruction sizes.
12010         (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
12011
12012 2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
12013
12014         PR target/47930
12015         * config/arm/arm.opt (marm): Document it.
12016         (mthumb): Reject negative variant.
12017
12018 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
12019
12020         PR target/48898
12021         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
12022         Fix typo in "ccvt" variable name.
12023
12024 2011-05-06  Tristan Gingold  <gingold@adacore.com>
12025
12026         PR target/48895
12027         * config/vms/vms-ar.c (main): Remove cwd variable.
12028
12029 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
12030
12031         PR debug/48902
12032         * var-tracking.c (prepare_call_arguments): Move else before #endif.
12033
12034 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
12035
12036         * except.c (sjlj_emit_dispatch_table): Call build_case_label.
12037         * gimplify.c (gimplify_switch_expr): Likewise.
12038         * omp-low.c (expand_omp_sections): Likewise.
12039         * tree-eh.c (lower_try_finally_switch): Likewise.
12040         (lower_eh_dispatch): Likewise.
12041         * tree.h (build_case_label): Declare.
12042         * tree.c (build_case_label): Define.
12043
12044 2011-05-05  Jason Merrill  <jason@redhat.com>
12045
12046         PR c++/40975
12047         * tree-inline.c (copy_tree_r): Use copy_statement_list.
12048         (copy_statement_list): Don't recurse.
12049         * stor-layout.c (copy_self_referential_tree_r): Don't allow
12050         STATEMENT_LIST.
12051
12052 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
12053
12054         * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
12055         through from -mfpu= handling.
12056         * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
12057
12058 2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>
12059
12060         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
12061         POST_MODIFY.
12062
12063 2011-05-05  Steve Ellcey  <sje@cup.hp.com>
12064
12065         * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
12066         for 11.31.
12067         (hppa[12]*-*-hpux11*): Ditto.
12068         (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
12069         * config/ia64/hpux-unix2003.h: New.
12070         * config/pa/pa-hpux1131.opt: New.
12071         * config/pa/pa-hpux1131.h: New.
12072         * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
12073         * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
12074         * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
12075
12076 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
12077
12078         PR debug/48853
12079         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
12080         instead of mode as 3rd argument to recursive call.
12081         (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
12082         emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
12083         VOIDmode.
12084         (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
12085         don't give up if mode is Pmode and mem_mode is not VOIDmode.
12086         (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
12087         use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
12088
12089 2011-05-05  Julian Brown  <julian@codesourcery.com>
12090
12091         * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
12092         parenthesis in D-register case.
12093
12094 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
12095
12096         * opt-functions.awk (var_type_struct): Handle Enum options.
12097         * optc-gen.awk: Don't check range of variables of character type.
12098         * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
12099         rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
12100         rs6000_sdata_name, rs6000_explicit_options): Remove.
12101         (rs6000_option_override_internal): Check for -malign-power here.
12102         Use global_options_set instead of rs6000_explicit_options.
12103         (rs6000_parse_fpu_option): Remove.
12104         (rs6000_handle_option): Access variables via opts and opts_set
12105         pointers.  Use error_at and warning_at.  Add fall-through
12106         comments.  Don't handle OPT_mcmodel_, OPT_maix_struct_return,
12107         OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
12108         OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
12109         OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
12110         here.  Don't use rs6000_parse_fpu_option.
12111         * config/rs6000/rs6000.h (fpu_type): Remove declaration.
12112         * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
12113         rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
12114         (mrecip=): Use Var.
12115         (mspe): Use Var and Save.
12116         (mtraceback=): Use Enum and Var.
12117         (rs6000_traceback_type): New Enum and EnumValue entries.
12118         (mfloat-gprs=): Use Enum, Var and Save.
12119         (rs6000_float_gprs): New Enum and EnumValue entries.
12120         (mlong-double-): use Var and Save.
12121         (msched-costly-dep=, minsert-sched-nops=): Use Var.
12122         (malign-): Use Enum and Var.
12123         (rs6000_alignment_flags): New Enum and EnumValue entries.
12124         (mfpu=): Use Enum.
12125         (fpu_type_t): New Enum and EnumValue entries.
12126         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
12127         global_options_set instead of rs6000_explicit_options.
12128         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
12129         global_options_set instead of rs6000_explicit_options.
12130         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
12131         global_options_set instead of rs6000_explicit_options.
12132         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
12133         global_options_set instead of rs6000_explicit_options.
12134         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
12135         global_options_set instead of rs6000_explicit_options.
12136         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
12137         global_options_set instead of rs6000_explicit_options.
12138         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
12139         definition.
12140         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
12141         global_options_set instead of rs6000_explicit_options.
12142         * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
12143         (rs6000_cmodel): New Enum and EnumValue entries.
12144         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
12145         global_options_set instead of rs6000_explicit_options.
12146         * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
12147         (mtls-size=): Use Enum and Var.
12148         (rs6000_tls_size): New Enum and EnumValue entries.
12149
12150 2011-05-05  Michael Matz  <matz@suse.de>
12151
12152         * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
12153         * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
12154         * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
12155         * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
12156         * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
12157         * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
12158         * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
12159         * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
12160         * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
12161         * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
12162         * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
12163         * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
12164         * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
12165         * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
12166         * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
12167         * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
12168
12169 2011-05-05  Richard Guenther  <rguenther@suse.de>
12170
12171         * expmed.c (expand_variable_shift): Rename to ...
12172         (expand_shift_1): ... this.  Take an expanded shift amount.
12173         For rotates recurse directly not building trees for the shift amount.
12174         (expand_variable_shift): Wrap around expand_shift_1.
12175         (expand_shift): Adjust.
12176
12177 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
12178
12179         * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
12180
12181 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
12182
12183         * tree.h (get_pending_sizes): Remove prototype.
12184         (put_pending_size): Likewise.
12185         (put_pending_sizes): Likewise.
12186         * stor-layout.c (pending_sizes): Delete.
12187         (get_pending_sizes): Likewise.
12188         (put_pending_size): Likewise.
12189         (put_pending_sizes): Likewise.
12190         (variable_size): Do not call put_pending_size and tidy up.
12191         * function.h (struct function): Remove dont_save_pending_sizes_p.
12192         * lto-streamer-in.c (input_function): Do not stream it.
12193         * lto-streamer-out.c (output_function): Likewise.
12194         * tree-inline.c (initialize_cfun): Do not copy it.
12195         * c-decl.c (store_parm_decls): Do not set it.
12196         * omp-low.c (create_task_copyfn): Likewise.
12197         * tree-optimize.c (tree_rest_of_compilation): Likewise.
12198
12199 2011-05-05  Uros Bizjak  <ubizjak@gmail.com>
12200
12201         * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
12202         conditions.
12203         (*movdf_internal): Ditto.
12204         (*movdf_internal_nointeger): Ditto.
12205         (*movsf_internal): Ditto.
12206
12207 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
12208
12209         * c-decl.c (finish_decl): Don't call get_pending_sizes.
12210         (grokparm): Add parameter expr.  Pass it to grokdeclarator.
12211         (push_parm_decl): Add parameter expr.  Pass it to grokdeclarator.
12212         (c_variable_size): Remove.
12213         (grokdeclarator): Use save_expr instead of c_variable_size.  Don't
12214         call put_pending_sizes.
12215         (get_parm_info): Add parameter expr.  Use it to set
12216         arg_info->pending_sizes.
12217         (store_parm_decls): Use arg_info->pending_sizes instead or calling
12218         get_pending_sizes.
12219         * c-parser.c (c_parser_parms_declarator): Update call to
12220         c_parser_parms_list_declarator.
12221         (c_parser_parms_list_declarator): Take parameter expr.  Update
12222         call to push_parm_decl.  Update recursive call.  Don't call
12223         get_pending_sizes.  Update calls to get_parm_info.
12224         (c_parser_objc_method_definition): Update calls to
12225         c_parser_objc_method_decl and objc_start_method_definition.
12226         (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
12227         (c_parser_objc_method_decl): Add parameter expr.  Update call to
12228         grokparm.
12229         (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
12230         * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
12231         (get_parm_info, grokparm, push_parm_decl): Update prototypes.
12232
12233 2011-05-05  Michael Hope  <michael.hope@linaro.org>
12234
12235         PR pch/45979
12236         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
12237         __ARM_EABI__ hosts.
12238
12239 2011-05-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12240
12241         * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
12242         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
12243         (spu_output_mi_thunk): New function.
12244
12245 2011-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12246
12247         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
12248         targetm.asm_out.print_operand.
12249         * config/sol2.c: Include target.h.
12250
12251 2011-05-04  Jan Hubicka  <jh@suse.cz>
12252
12253         * ipa-inline.c (reset_edge_caches): New function.
12254         (update_caller_keys): Add check_inlinablity_for; do not
12255         reset edge caches; remove now unnecesary loop.
12256         (update_callee_keys): Add comments; reset node_growth_cache of callee.
12257         (update_all_callee_keys): Likewise.
12258         (inline_small_functions): Sanity check cache; update code
12259         recomputing it.
12260
12261 2011-05-04  Bernd Schmidt  <bernds@codesourcery.com>
12262
12263         PR rtl-optimization/47612
12264         * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
12265         as the last insn of the sequence to be moved.
12266
12267 2011-05-04  Tobias Burnus  <burnus@net-b.de>
12268
12269         PR fortran/48864
12270         * doc/invoke.texi (Ofast): Document that it
12271         enables Fortran's -fno-protect-parens.
12272
12273 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
12274
12275         * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
12276
12277 2011-05-04  Eric Botcazou  <ebotcazou@adacore.com>
12278
12279         * stor-layout.c (variable_size): Do not issue errors.
12280
12281 2011-05-04  Richard Guenther  <rguenther@suse.de>
12282
12283         * coverage.c (tree_coverage_counter_ref): Use integer_type_node
12284         for array-ref indices.
12285         (tree_coverage_counter_addr): Likewise.
12286         (build_fn_info_type): Use size_int for index types.
12287         (build_gcov_info): Likewise.
12288
12289 2011-05-04  Richard Guenther  <rguenther@suse.de>
12290
12291         * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
12292         to build_int_cst.
12293         * c-typeck.c (really_start_incremental_init): Use bitsize_int
12294         for constructor indices.
12295         (push_init_level): Likewise.
12296
12297 2011-05-04  Richard Guenther  <rguenther@suse.de>
12298
12299         * explow.c (promote_mode): Move variable declarations before code.
12300
12301 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
12302
12303         * tree.h (build_function_type_array): Declare.
12304         (build_varargs_function_type_array): Declare.
12305         (build_function_type_vec, build_varargs_function_type_vec): Define.
12306         * tree.c (build_function_type_array_1): New function.
12307         (build_function_type_array): New function.
12308         (build_varargs_function_type_array): New function.
12309
12310 2011-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
12311
12312         * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
12313         before setting STMT_VINFO_TYPE.
12314
12315 2011-05-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12316
12317         * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
12318         instead of spu_pass_by_reference.
12319
12320 2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12321
12322         * calls.c (emit_library_call_value_1): Invoke
12323         promote_function_mode hook on libcall arguments.
12324         * explow.c (promote_function_mode, promote_mode): Handle TYPE
12325         argument being NULL.
12326         * targhooks.c (default_promote_function_mode): Lisewise.
12327         * config/s390/s390.c (s390_promote_function_mode): Likewise.
12328         * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
12329
12330         * doc/tm.texi: Document that TYPE argument might be NULL.
12331
12332 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
12333
12334         * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
12335
12336 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
12337
12338         From Bernd Schmidt
12339         * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
12340
12341 2011-05-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12342
12343         * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
12344         (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
12345         Move ...
12346         * mips-tfile.c: ... here.
12347         Don't include coretypes.h, tm.h, filenames.h.
12348         (saber_stop): Remove definition and all calls.
12349         [__SABER__]: Remove.
12350         (__LINE__): Remove default.
12351         (Size_t, Ptrdiff_t): Remove definitions.
12352         Replace by size_t, ptrdiff_t.
12353         [!MIPS_DEBUGGING_INFO]: Remove.
12354         (SHASH_SIZE, THASH_SIZE): Remove defaults.
12355         (progname): Add const.
12356         (STATIC): Remove.
12357         Replace all uses by static.
12358         (ALIGN_SYMTABLE_OFFSET): Remove default.
12359         * mips-tdump.c: Don't include coretypes.h, tm.h.
12360         Remove !MIPS_IS_STAB guard.
12361         * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
12362         $(TM_H), filenames.h dependencies.
12363         (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
12364
12365 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
12366
12367         From Jie Zhang
12368         *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
12369         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
12370
12371 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
12372
12373         From Bernd Schmidt
12374         * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
12375         account and save/restore RETS.
12376         (PROFILE_BEFORE_PROLOGUE): Define.
12377         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character.  Correct
12378         the push insn to use predecrement.
12379
12380 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
12381
12382         From Jie Zhang
12383         * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
12384
12385 2011-05-04  Nick Clifton  <nickc@redhat.com>
12386
12387         * config/mn10300/mn10300.c: Include cfgloop.h.
12388         (DUMP): New macro.
12389         (mn10300_insert_setlb_lcc): New function.  Inserts a SETLB and a
12390         Lcc or a FLcc insn into the instruction stream.
12391         (mn10300_block_contains_call): New function.  Returns true if the
12392         given basic block contains a CALL insn.
12393         (mn10300_loop_contains_call_insn): New function.  Returns true if
12394         the given loop contains a CALL insn.
12395         (mn10300_scan_for_setlb_lcc): New function.  Finds opportunities
12396         to use the SETLB and Lcc or FLcc insns.
12397         (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
12398         (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
12399         * config/mn10300/mn10300.opt (msetlb): New option.  Used to
12400         disable the SETLB optimization.
12401         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
12402         __SETLB__ or __NO_SETLB__.
12403         * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
12404         (movsf_internal): Handle MDR register.
12405         (cmpsi): Make visible.
12406         (setlb): New pattern.
12407         (Lcc): New pattern.
12408         (FLcc): New pattern.
12409
12410 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
12411
12412         PR target/48860
12413         * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
12414         for reg<->xmm moves.
12415         * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
12416         (vec_concatv2di_rex64_sse): Ditto.
12417         (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
12418         (*vec_extractv2di_1_rex64): Ditto.
12419
12420         Revert:
12421         2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
12422
12423         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
12424         reg<->xmm moves.
12425         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
12426
12427 2011-05-04  Richard Guenther  <rguenther@suse.de>
12428
12429         * tree.h (int_const_binop): Remove notrunc argument.
12430         * fold-const.c (int_const_binop): Remove notrunc argument.  Always
12431         create integer constants that are properly truncated.
12432         (extract_muldiv_1): Expand one notrunc int_const_binop caller.
12433         (const_binop): Remove zero notrunc argument to int_const_binop.
12434         (size_binop_loc): Likewise.
12435         (fold_div_compare): Likewise.
12436         (maybe_canonicalize_comparison_1): Likewise.
12437         (fold_comparison): Likewise.
12438         (fold_binary_loc): Likewise.
12439         (multiple_of_p): Likewise.
12440         * expr.c (store_constructor): Likewise.
12441         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
12442         (maybe_fold_stmt_addition): Likewise.
12443         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
12444         * stor-layout.c (layout_type): Likewise.
12445         * tree-data-ref.c (tree_fold_divides_p): Likewise.
12446         * tree-sra.c (build_ref_for_offset): Likewise.
12447         (build_user_friendly_ref_for_offset): Likewise.
12448         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
12449         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
12450         * tree-ssa-loop-niter.c (inverse): Likewise.
12451         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
12452         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
12453         * tree-switch-conversion.c (check_range): Likewise.
12454         (build_constructors): Likewise.
12455         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
12456         * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
12457         (extract_range_from_assert): Likewise.
12458         (vrp_int_const_binop): Likewise.
12459         (extract_range_from_binary_expr): Likewise.
12460         (extract_range_from_unary_expr): Likewise.
12461         (check_array_ref): Likewise.
12462         (find_case_label_range): Likewise.
12463         (simplify_div_or_mod_using_ranges): Likewise.
12464         * tree-cfg.c (group_case_labels_stmt): Use double-ints for
12465         comparing case labels for merging.
12466
12467 2011-05-03  Mark Wielaard  <mjw@redhat.com>
12468
12469         * dwarf2out.c (debug_str_hash_forced): Removed.
12470         (gen_label_for_indirect_string): Removed.
12471         (get_debug_string_label): Removed.
12472         (AT_string_form): Generate label directly.
12473         (output_indirect_string): Test indirect_string_node for
12474         DW_FORM_strp instead of checking label and refcount.
12475         (prune_indirect_string): Removed.
12476         (prune_unused_types): Don't check debug_str_hash_forced or
12477         call prune_indirect_string.
12478
12479 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
12480
12481         PR other/48093
12482         * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
12483
12484 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
12485
12486         PR debug/47994
12487         PR debug/47919
12488         * combine.c (try_combine): Skip debug insns at m_split tests.
12489
12490 2011-04-26  Mark Wielaard  <mjw@redhat.com>
12491
12492         PR42288
12493         * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
12494         when info_section_emitted.
12495
12496 2011-05-03  Joseph Myers  <joseph@codesourcery.com>
12497
12498         * config/mips/mips-opts.h: New.
12499         * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
12500         to mips-opts.h.
12501         (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
12502         (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
12503         or OPT_mr10k_cache_barrier_ here.  Access mips_cache_flush_func
12504         via opts pointer.
12505         * config/mips/mips.h (enum mips_code_readable_setting): Move to
12506         mips-opts.h.
12507         (mips_abi, mips_code_readable): Don't declare.
12508         * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
12509         (mabi=): Use Enum and Var.
12510         (mips_abi): New Enum and EnumValue entries.
12511         (mcode-readable=): Use Enum and Var.
12512         (mips_code_readable_setting): New Enum and EnumValue entries.
12513         (mr10k-cache-barrier=): Use Enum and Var.
12514         (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
12515
12516 2011-05-03  Jan Hubicka  <jh@suse.cz>
12517
12518         * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
12519         replace hash by pointer map.
12520         (cgraph_node_set_element_def, cgraph_node_set_element,
12521         const_cgraph_node_set_element, varpool_node_set_element_def,
12522         varpool_node_set_element, const_varpool_node_set_element): Remove.
12523         (free_cgraph_node_set, free_varpool_node_set): New function.
12524         (cgraph_node_set_size, varpool_node_set_size): Use vector size.
12525         * tree-emutls.c: Free varpool node set.
12526         * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
12527         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
12528         debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
12529         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
12530         dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
12531         Move here from ipa.c; implement using pointer_map
12532         * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
12533         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
12534         debug_cgraph_node_set, varpool_node_set_new,
12535         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
12536         dump_varpool_node_set, debug_varpool_node_set):
12537         Move to ipa-uitls.c.
12538         * passes.c (ipa_write_summaries): Update.
12539
12540 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
12541
12542         From Mike Frysinger:
12543         * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
12544         bf542/bf544/bf547/bf548/bf549.
12545
12546 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
12547
12548         * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
12549
12550 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
12551
12552         From Bernd Schmidt:
12553         * config/bfin/bfin.md (MOVCC): New mode_macro.
12554         (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
12555         movsicc_insn1, movsicc_insn2 and movsicc and macroized.  Remove
12556         comments from generated assembly.
12557
12558 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
12559
12560         From Bernd Schmidt
12561         * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
12562         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
12563         * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
12564         * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
12565         * config/bfin/lib1funcs.asm (___muldi3): New function.
12566
12567 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
12568
12569         * config/stormy16/stormy16 (xstormy16_init_builtins): Call
12570         build_function_type_list instead of build_function_type.
12571         Rearrange initialization of `args' to do so.
12572
12573 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
12574
12575         * config/i386/i386.c (ix86_code_end): Call build_function_type_list
12576         instead of build_function_type.
12577
12578 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
12579
12580         * config/rs6000/rs6000.c (spe_init_builtins): Call
12581         build_function_type_list instead of build_function_type.
12582         (paired_init_builtins, altivec_init_builtins): Likewise.
12583         (builtin_function_type): Likewise.
12584
12585 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
12586
12587         * config/sh/sh.c (sh_media_init_builtins): Call
12588         build_function_type_list instead of build_function_type.
12589
12590 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
12591
12592         * config/sparc/sparc.c (sparc_file_end): Call
12593         build_function_type_list instead of build_function_type.
12594
12595 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
12596
12597         * config/alpha/alpha.c (alpha_init_builtins): Call
12598         build_function_type_list instead of build_function_type.
12599
12600 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
12601
12602         * config/xtensa/xtensa.c (xtensa_init_builtins): Call
12603         build_function_type_list instead of build_function_type.
12604
12605 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
12606
12607         * config/iq2000/i2000.c (iq2000_init_builtins): Call
12608         build_function_type_list instead of build_function_type.
12609         Delete `endlink' variable.
12610
12611 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
12612
12613         * config/avr/avr.c (avr_init_builtins): Call
12614         build_function_type_list instead of build_function_type.
12615
12616 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
12617
12618         * config/picochip/picochip.c (picochip_init_builtins): Call
12619         build_function_type_list instead of build_function_type.
12620         Delete `endlink' variable.
12621
12622 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
12623
12624         * config/bfin/bfin.c (bfin_init_builtins): Call
12625         build_function_type_list instead of build_function_type.
12626
12627 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
12628
12629         From Bernd Schmidt
12630         * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
12631         that's not CONST_INT.  Seemingly redundant check is due to PR39768.
12632
12633 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
12634
12635         From Jie Zhang:
12636         * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
12637         libbffastfp overrides libgcc when -mfast-fp.
12638
12639 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
12640
12641         Originally from Bernd Schmidt
12642         * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
12643         * config/bfin/bfin.c (override_options): Test it and error if
12644         TARGET_FDPIC.
12645
12646 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
12647
12648         Originally From Bernd Schmidt
12649         * config/bfin/bfin.c (override_options): Disable -fstack-limit for
12650         FD-PIC.
12651
12652 2011-05-03  Jeff Law  <law@redhat.com>
12653
12654         * tree-ssa-threadupdate.c (THREAD_TARGET): define.
12655         (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
12656         (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
12657         than accessing AUX field directly.  Free the AUX field before
12658         clearing it.
12659         (thread_block, thread_through_loop_header): Likewise.
12660         (thread_single_edge, mark_threaded_blocks): Likewise.
12661         (redirect_edges): Delay clearing the AUX field.  Free the AUX field.
12662         (register_jump_thread): Do not attempt to thread to a NULL edge.
12663
12664 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
12665
12666         * function.c (init_function_start): Call decide_function_section.
12667         * varasm.c (decide_function_section): New function.
12668         (assemble_start_function): When not using
12669         flag_reorder_blocks_and_partition, don't compute in_cold_section_p
12670         or first_function_block_is_cold.
12671         * rtl.h (decide_function_section): Declare.
12672
12673 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
12674             Jakub Jelinek  <jakub@redhat.com>
12675
12676         PR target/48774
12677         * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
12678         only succeed if req_mode is the same as set_mode.
12679
12680 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
12681
12682         * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
12683         * genemit.c (gen_exp): Handle RETURN.
12684         * emit-rtl.c (verify_rtx_sharing): Likewise.
12685         (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
12686         * rtl.c (copy_rtx): RETURN is shared.
12687         * rtl.h (enum global_rtl_index): Add GR_RETURN.
12688         (ret_rtx): New.
12689         * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
12690         * config/s390/s390.c (s390_emit_epilogue): Likewise.
12691         * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
12692         * config/cris/cris.c (cris_expand_return): Likewise.
12693         * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
12694         * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
12695         rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
12696         * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
12697         * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
12698         Likewise.
12699         * config/v850/v850.c (expand_epilogue): Likewise.
12700         * config/bfin/bfin.c (bfin_expand_call): Likewise.
12701         * config/arm/arm.md (epilogue): Likewise.
12702         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
12703         * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
12704         variable to ret_reg.
12705
12706 2011-05-03  Richard Guenther  <rguenther@suse.de>
12707
12708         PR lto/48846
12709         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
12710         Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
12711         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
12712
12713 2011-05-03  Richard Guenther  <rguenther@suse.de>
12714
12715         * c-decl.c (grokdeclarator): Instead of looking at
12716         TREE_OVERFLOW check if the constant fits in the index type.
12717
12718 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
12719
12720         * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
12721         (vec_store_lanes<mode><mode>): Likewise.
12722
12723 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
12724
12725         * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
12726         * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
12727         convert_optab_index values.
12728         (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
12729         * genopinit.c (optabs): Initialize the new optabs.
12730         * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
12731         * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
12732         (expand_STORE_LANES): New functions.
12733         * tree.h (build_array_type_nelts): Declare.
12734         * tree.c (build_array_type_nelts): New function.
12735         * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
12736         (vect_model_load_cost): Likewise.
12737         (vect_store_lanes_supported, vect_load_lanes_supported)
12738         (vect_record_strided_load_vectors): Declare.
12739         * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
12740         (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
12741         (vect_transform_strided_load): Split out statement recording into...
12742         (vect_record_strided_load_vectors): ...this new function.
12743         * tree-vect-stmts.c (create_vector_array, read_vector_array)
12744         (write_vector_array, create_array_ref): New functions.
12745         (vect_model_store_cost): Add store_lanes_p argument.
12746         (vect_model_load_cost): Add load_lanes_p argument.
12747         (vectorizable_store): Try to use store-lanes functions for
12748         interleaved stores.
12749         (vectorizable_load): Likewise load-lanes and loads.
12750         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
12751         to vect_model_store_cost.
12752         (vect_build_slp_tree): Likewise vect_model_load_cost.
12753
12754 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
12755
12756         * hooks.h (hook_bool_mode_uhwi_false): Declare.
12757         * hooks.c (hook_bool_mode_uhwi_false): New function.
12758         * target.def (array_mode_supported_p): New hook.
12759         * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
12760         * doc/tm.texi: Regenerate.
12761         * stor-layout.c (mode_for_array): New function.
12762         (layout_type): Use it.
12763         * config/arm/arm.c (arm_array_mode_supported_p): New function.
12764         (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
12765
12766 2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
12767
12768         PR target/48723
12769         * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
12770         for -fstack-check if the size to allocate is negative.
12771
12772 2011-05-02  Lawrence Crowl  <crowl@google.com>
12773
12774         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
12775         (timevar_cond_start): New for starting a timer only when it is not
12776         already running.
12777         (timevar_cond_stop): New for stopping a timer when it was not already
12778         running.
12779
12780         * timevar.c (timevar_stop): Enable start/stop timers to start again.
12781         (timevar_cond_start): New as above.
12782         (timevar_cond_stop): New as above.
12783
12784         * timevar.def: Add start/stop timers for compiler phases,
12785         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
12786         TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
12787         and TV_PHASE_FINALIZE.
12788         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
12789         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
12790         TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
12791         Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
12792         Make unused TV_OVERLOAD into a start/stop timer.
12793
12794         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
12795         Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
12796         to indicate that they are start/stop timers.
12797
12798         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
12799         Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
12800         Move initialization to do_compile.
12801         (do_compile): Add initialization from above.
12802         Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
12803
12804         * c-decl.c (c_write_global_declarations): Add start/stop of
12805         TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
12806
12807         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
12808         or TV_PARSE_INLINE, as appropriate.
12809         (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
12810         (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
12811
12812 2011-05-02  Jason Merrill  <jason@redhat.com>
12813
12814         PR c++/40975
12815         * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
12816
12817 2011-05-02  Simon Martin  <simartin@users.sourceforge.net>
12818
12819         PR c/35445
12820         * c-decl.c (finish_decl): Only create a composite if the types are
12821         compatible.
12822
12823 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
12824
12825         * config/fr30/fr30-protos.h (Mmode): Don't define.
12826         * config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
12827         definition where used.
12828         * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
12829         define.  Expand definitions where used.
12830         * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
12831         Expand definitions where used.
12832         * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
12833         rx_function_arg, rx_function_arg_advance,
12834         rx_function_arg_boundary): Expand definitions of those macros.
12835         * config/v850/v850-protos.h (Mmode): Don't define.  Expand
12836         definition where used.
12837
12838 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
12839
12840         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
12841         reg<->xmm moves.
12842         (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
12843         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
12844         with *movv2sf_internal_rex64_avx.
12845         (*movv2sf_internal): Merge with *movv2sf_internal_avx.
12846         * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
12847         Use %v prefix in insn mnemonic to handle TARGET_AVX.
12848         (*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
12849         "vex" in "prefix" attribute calculation.
12850         (*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.
12851
12852 2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>
12853
12854         PR target/47951
12855         * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
12856         inputs match the output.
12857
12858 2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>
12859
12860         PR target/47955
12861         * config/m68k/m68k.c (m68k_expand_prologue): Set
12862         current_function_static_stack_size.
12863
12864 2011-05-02   Jan Hubicka  <jh@suse.cz>
12865
12866         * lto-streamer.c (lto_streamer_cache_insert_1,
12867         lto_streamer_cache_lookup, lto_streamer_cache_create,
12868         lto_streamer_cache_delete): Use pointer map instead of hashtable.
12869         * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
12870
12871 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
12872
12873         * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
12874         config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
12875         config/m68k/t-opts: New files.
12876         * config/m68k/m68k-tables.opt: New file (generated).
12877         * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
12878         extra_options and m68k/t-opts to tmake_file.
12879         * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
12880         (all_isas): Initialize using m68k-isas.def.
12881         (all_microarchs): Initialize using m68k-microarchs.def.
12882         (m68k_find_selection): Remove.
12883         (m68k_handle_option): Don't assert that global structures are in
12884         use.  Use error_at.  Access variables via opts pointer.  Don't
12885         handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
12886         directly for -m68020-40 and -m68020-60.
12887         (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
12888         m68k_tune_entry here.
12889         * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
12890         to m68k-opts.h.
12891         (m68k_library_id_string): Remove declaration.
12892         * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
12893         (m68k_library_id_string): New Variable.
12894         (march=, mcpu=, mtune=): Use Enum and Var.
12895
12896 2011-05-02  Richard Guenther  <rguenther@suse.de>
12897
12898         * varasm.c (output_constructor_regular_field): Compute zero-based
12899         index with double-ints.  Make sure to ICE instead of producing
12900         wrong code.
12901         * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
12902         in asserts.  Properly use a signed type.
12903
12904 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
12905
12906         * config/i386/sse.md (V): New mode iterator.
12907         (V_128): Rename from SSEMODE.  Make V2DF mode conditional on
12908         TARGET_SSE2.
12909         (V_256): Rename from AVX256MODE.
12910         (VF): Make V4SF mode unconditional.  Add TARGET_SSE instruction
12911         condition to all users.
12912         (VF1): Ditto.
12913         (VF2): Make V2DF mode unconditional.  Add TARGET_SSE2 instruction
12914         condition to all users.
12915         (VF_128): Make V4SF mode unconditional.
12916         (VF_256): Rename from AVX256MODEF2P.
12917         (VI4F_128): Rename from SSEMODE4S.
12918         (VI8F_128): Rename from SSEMODE2D.
12919         (VI4F_256): Rename from AVX256MODE8P.
12920         (VI8F_256): Rename from AVX256MODE4P.
12921         (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
12922         (ssescalarmodesuffix): Remove SF and DF modes.
12923         (SSEMODE124): Remove.
12924         (SSEMODE1248): Ditto.
12925         (SSEMODEF2P): Ditto.
12926         (AVXMODEF2P): Ditto.
12927         (AVXMODEFDP): Ditto.
12928         (AVXMODEFSP): Ditto.
12929         (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
12930         unconditional.
12931         (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO.  Make V4SF mode
12932         unconditional.
12933         (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
12934         xop_pcmov_<mode>256.  Use V mode iterator.
12935
12936         Adjust RTX patterns globally for renamed mode attributes.
12937
12938 2011-05-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12939
12940         * haifa-sched.c (sched_emit_insn): Emit insn before first
12941         non-scheduled insn.  Inform back-end about new insn.  Add
12942         new insn to scheduled_insns list.
12943
12944 2011-05-02  Richard Guenther  <rguenther@suse.de>
12945
12946         PR tree-optimization/48822
12947         * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
12948         (process_scc): Indicate which iteration we start.
12949
12950 2011-05-02  Jan Hubicka  <jh@suse.cz>
12951
12952         * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
12953         (lto_section_overrun): New.
12954         * lto-section-out.c (append_block): Rename to ...
12955         (lto_append_block): ... this one; export.
12956         (lto_output_1_stream): Move lto lto-streamer.h
12957         (lto_output_data_stream): Update.
12958         * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
12959         (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
12960         functions.
12961
12962 2011-05-02  Richard Guenther  <rguenther@suse.de>
12963
12964         * tree.c (tree_code_counts): New global array.
12965         (record_node_allocation_statistics): Count individual tree codes.
12966         (dump_tree_statistics): Dump individual code stats.
12967
12968 2011-05-01  Jan Hubicka  <jh@suse.cz>
12969
12970         * ipa-inline.c (caller_growth_limits): Fix thinko when
12971         looking for largest stack frame.
12972         * ipa-inline.h (dump_inline_summary): Declare.
12973         * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
12974         on stack usage.
12975         (dump_inline_summary): Export.
12976         (debug_inline_summary): Declare as DEBUG_FUNCTION.
12977
12978 2011-05-01  Anatoly Sokolov  <aesok@post.ru>
12979
12980         * reginfo.c (memory_move_cost): Change rclass argument type form
12981         'enum reg_class' to reg_class_t.
12982         * reload.h (memory_move_cost): Update prototype.
12983         * postreload.c reload_cse_simplify_set): Change type dclass var to
12984         reg_class_t.
12985         * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
12986         Update prototype.
12987         (ira_allocate_and_set_costs): Change aclass argument type form
12988         'enum reg_class' to reg_class_t.
12989         * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
12990         Change aclass argument type to reg_class_t.
12991         (update_conflict_hard_reg_costs): Change type aclass and pref vars
12992         to reg_class_t.
12993         * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
12994         memory_move_cost call.
12995
12996         * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
12997         'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
12998         Change type tmp var to reg_class_t.
12999
13000 2011-04-30  Jan Hubicka  <jh@suse.cz>
13001
13002         * ipa-inline.c (can_inline_edge_p): Disregard limits when
13003         inlining into function with flatten attribute.
13004         (want_inline_small_function_p): Be more realistic about inlining
13005         cold calls where callee size grows.
13006
13007 2011-04-30  Jan Hubicka  <jh@suse.cz>
13008
13009         * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
13010         flags.
13011
13012 2011-04-30  Anatoly Sokolov  <aesok@post.ru>
13013
13014         * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
13015         PRINT_OPERAND_PUNCT_VALID_P): Remove.
13016         * config/sparc/sparc-protos.h (print_operand): Remove declaration.
13017         * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
13018         TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
13019         (print_operand): Rename to...
13020         (sparc_print_operand): ...this. Make static. Adjust
13021         sparc_print_operand function call.
13022         (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
13023         functions.
13024
13025 2011-04-30  Jan Hubicka  <jh@suse.cz>
13026
13027         PR middle-end/48752
13028         * ipa-inline.c (early_inliner): Disable when doing late
13029         addition of function.
13030
13031 2011-04-30  Jakub Jelinek  <jakub@redhat.com>
13032
13033         * dwarf2out.c (get_address_mode): New inline.
13034         (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
13035         if not dwarf_strict emit
13036         DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
13037         desirable.  Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
13038         UNSIGNED_FLOAT, FIX and UNSIGNED_FIX.  Just return NULL for
13039         FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
13040         (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
13041         dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
13042         mem_loc_descriptor callers.
13043         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
13044         output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
13045         Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
13046         DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
13047         (base_types): New variable.
13048         (get_base_type_offset, calc_base_type_die_sizes,
13049         base_type_for_mode, mark_base_types, base_type_cmp,
13050         move_marked_base_types): New functions.
13051         (calc_die_sizes): Assert that die_offset is 0 or equal to
13052         next_die_offset.
13053         (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
13054         others defer to mem_loc_descriptor.  Adjust mem_loc_descriptor
13055         callers.  If not dwarf_strict, call mem_loc_descriptor even for
13056         non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
13057         (gen_subprogram_die): Don't give up on call site parameters
13058         with non-integral or large integral modes.  Adjust
13059         mem_loc_descriptor callers.
13060         (prune_unused_types): Call prune_unused_types_mark on base_types
13061         vector entries.
13062         (resolve_addr): Call mark_base_types.
13063         (dwarf2out_finish): Call move_marked_base_types.
13064
13065         PR tree-optimization/48809
13066         * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
13067         type.
13068         (gen_inbound_check): Don't compute index_expr - range_min in utype
13069         again, instead reuse SSA_NAME initialized in build_arrays.
13070         Remove two useless gsi_for_stmt calls.
13071
13072 2011-04-29  Jeff Law  <law@redhat.com>
13073
13074         * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
13075
13076 2011-04-29  Martin Jambor  <mjambor@suse.cz>
13077
13078         * cgraph.h (cgraph_postorder): Remove declaration.
13079         * ipa-utils.h (ipa_free_postorder_info): Declare.
13080         (ipa_reverse_postorder): Likewise.
13081         * cgraphunit.c: Include ipa-utils.h.
13082         (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
13083         * ipa-inline.c: Include ipa-utils.h.
13084         (ipa_inline): Update call to ipa_reverse_postorder.
13085         * ipa-pure-const.c (propagate_pure_const): Update call to
13086         ipa_reduced_postorder and ipa_print_order.  Call
13087         ipa_free_postorder_info to clean up.
13088         (propagate_nothrow): Likewise.
13089         * ipa-reference.c (propagate): Removed a useless call to
13090         ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
13091         and ipa_print_order.  Call ipa_free_postorder_info to clean up.
13092         * ipa.c: Include ipa-utils.h.
13093         (ipa_profile): Update call to ipa_reverse_postorder.
13094         (cgraph_postorder): Moved to...
13095         * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
13096         (ipa_utils_print_order): Renamed to ipa_print_order.
13097         (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
13098         comments.
13099         (ipa_free_postorder_info): New function.
13100         * passes.c: Include ipa-utils.h.
13101         (do_per_function_toporder): Update call to ipa_reverse_postorder.
13102         (ipa_write_summaries): Likewise.
13103         * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
13104         (cgraphunit.o): Likewise.
13105         (ipa.o): Likewise.
13106         (ipa-inline.o): Likewise.
13107
13108 2011-04-29  Jan Hubicka  <jh@suse.cz>
13109
13110         * gcc.dg/tree-ssa/inline-10.c: New testcase.
13111         * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
13112         * ipa-inline.h (clause_t): Turn into unsigned int.
13113         * ipa-inline-analysis.c (add_clause): Do more simplification.
13114         (and_predicates): Shortcut more cases.
13115         (predicates_equal_p): Move forward; check that clauses are properly
13116         ordered.
13117         (or_predicates): Shortcut more cases.
13118         (edge_execution_predicate): Rewrite as...
13119         (set_cond_stmt_execution_predicate): ... this function; handle
13120         __builtin_constant_p.
13121         (set_switch_stmt_execution_predicate): New .
13122         (compute_bb_predicates): New.
13123         (will_be_nonconstant_predicate): Update TODO.
13124         (estimate_function_body_sizes): Use compute_bb_predicates
13125         and free them later, always try to estimate if stmt is constant.
13126         (estimate_time_after_inlining, estimate_size_after_inlining):
13127         Gracefully handle optimized out edges.
13128         (read_predicate): Fix off by one error.
13129
13130 2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>
13131
13132         * Makefile.in (ENABLE_MAINTAINER_RULES): New.
13133
13134 2011-04-27  Xinliang David Li  <davidxl@google.com>
13135
13136         * tree-profile.c (init_ic_make_global_vars): Set
13137         tls attribute on ic vars.
13138         * coverage.c (coverage_end_function): Initialize
13139         function_list with zero.
13140
13141 2011-04-29  Richard Guenther  <rguenther@suse.de>
13142
13143         * builtins.c (fold_builtin_classify_type): Use integer_type_node
13144         for the type of the result.
13145         (fold_builtin_isascii): Likewise.
13146         (fold_builtin_toascii): Use integer_type_node where appropriate.
13147         (fold_builtin_logb): Likewise.
13148         (fold_builtin_frexp): Likewise.
13149         (fold_builtin_strstr): Likewise.
13150         (fold_builtin_strpbrk): Likewise.
13151         (fold_builtin_fputs): Likewise.
13152         (fold_builtin_sprintf): Likewise.
13153         (fold_builtin_snprintf): Likewise.
13154         (fold_builtin_printf): Likewise.
13155         (do_mpfr_remquo): Use a proper type for the assigned constant.
13156         (do_mpfr_lgamma_r): Likewise.
13157         * dwarf2out.c (resolve_one_addr): Use size_int.
13158         * except.c (init_eh): Likewise.
13159         (assign_filter_values): Use integer_type_node for filter values.
13160         (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
13161         indices.
13162         * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
13163         for EH region numbers.
13164         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
13165         for the shift amount.
13166
13167 2011-04-29  Richard Guenther  <rguenther@suse.de>
13168
13169         * expr.h (expand_shift): Rename to ...
13170         (expand_variable_shift): ... this.
13171         (expand_shift): Take a constant shift amount.
13172         * expmed.c (expand_shift): Rename to ...
13173         (expand_variable_shift): ... this.
13174         (expand_shift): New wrapper around expand_variable_shift.
13175         * expr.c (convert_move, emit_group_load_1, emit_group_store,
13176         optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
13177         expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
13178         * expmed.c (store_fixed_bit_field, extract_bit_field_1,
13179         extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
13180         expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
13181         extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
13182         emit_store_flag_1, emit_store_flag): Likewise.
13183         * builtins.c (expand_builtin_signbit): Likewise.
13184         * calls.c (load_register_parameters): Likewise.
13185         * function.c (assign_parm_setup_block): Likewise.
13186         * lower-subreg.c (resolve_shift_zext): Likewise.
13187         * optabs.c (widen_bswap, expand_abs_nojump,
13188         expand_one_cmpl_abs_nojump, expand_float): Likewise.
13189         * spu/spu.c (spu_expand_extv): Likewise.
13190         * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
13191
13192 2011-04-29  Richard Guenther  <rguenther@suse.de>
13193
13194         * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
13195         for the remapped region number.
13196         * predict.c (build_predict_expr): Use integer_type_node for the
13197         predict kind.
13198         * fold-const.c (fold_binary_loc): Use integer_type_node for
13199         the shift amount.  Use a proper type for the PLUS_EXPR operand.
13200
13201 2011-04-29  Michael Matz  <matz@suse.de>
13202
13203         * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
13204         other trees that just builtins.
13205         (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
13206
13207 2011-04-29  Richard Guenther  <rguenther@suse.de>
13208
13209         * tree-nested.c (get_trampoline_type): Use size_int.
13210         (get_nl_goto_field): Likewise.
13211         * tree-eh.c (lower_try_finally_switch): Use integer_type_node
13212         for all indexes.
13213         (lower_eh_constructs_2): Likewise.
13214         (lower_resx): Likewise.
13215         (lower_eh_dispatch): Likewise.
13216         * tree-mudflap.c (mf_build_string): Use size_int.
13217         (mudflap_register_call): Use integer_type_node for the flag.
13218         (mudflap_enqueue_constant): Use size_int.
13219         * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
13220         instead of rebuilding it.
13221
13222 2011-04-29  Richard Guenther  <rguenther@suse.de>
13223
13224         * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
13225         Handle OBJ_TYPE_REF.
13226         (find_func_aliases_for_call): Use it more consistently.
13227
13228 2011-04-29  Alexandre Oliva  <aoliva@redhat.com>
13229
13230         * haifa-sched.c (last_nondebug_scheduled_insn): New.
13231         (rank_for_schedule): Use it.
13232         (schedule_block): Set it.
13233
13234 2011-04-28  David Li  <davidxl@google.com>
13235
13236         * tree.c (crc32_string): Use crc32_byte.
13237         (crc32_byte): New function.
13238         * tree.h (crc32_byte): New function.
13239         * gcov.c (read_graph_file): Handle new cfg_cksum.
13240         (read_count_file): Ditto.
13241         * profile.c (instrument_values): Ditto.
13242         (get_exec_counts): Ditto.
13243         (read_profile_edge_counts): Ditto.
13244         (compute_branch_probabilities): Ditto.
13245         (compute_value_histograms): Ditto.
13246         (branch_prob): Ditto.
13247         (end_branch_prob): Ditto.
13248         * coverage.c (read_counts_file): Ditto.
13249         (get_coverage_counts): Ditto.
13250         (tree_coverage_counter_addr): Ditto.
13251         (coverage_checksum_string): Ditto.
13252         (coverage_begin_output): Ditto.
13253         (coverage_end_function): Ditto.
13254         (build_fn_info_type): Ditto.
13255         (build_fn_info_value): Ditto.
13256         * libgcov.c (gcov_exit): Ditto.
13257         * gcov-dump.c (tag_function): Ditto.
13258         (compute_checksum): Remove.
13259
13260 2011-04-29  Alan Modra  <amodra@gmail.com>
13261
13262         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
13263         unspec plus offset.  Tidy macho code.
13264
13265 2011-04-29  Martin Jambor  <mjambor@suse.cz>
13266
13267         * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
13268         node instead of a decl.  Update all callers.
13269         * cgraph.h: Update declaration.
13270
13271 2011-04-28  Ira Rosen  <ira.rosen@linaro.org>
13272
13273         PR tree-optimization/48765
13274         * tree-vectorizer.h (vect_make_slp_decision): Return bool.
13275         * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
13276         to indicate if loop aware SLP is being used.  Scan the statements
13277         and update the vectorization factor according to the type of
13278         vectorization before statement analysis.
13279         (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
13280         pass it to vect_analyze_loop_operations.
13281         (vectorizable_reduction): Set number of copies to 1 in case of pure
13282         SLP statement.
13283         * tree-vect-stmts.c (vectorizable_conversion,
13284         vectorizable_assignment, vectorizable_shift,
13285         vectorizable_operation, vectorizable_type_demotion,
13286         vectorizable_type_promotion, vectorizable_store, vectorizable_load):
13287         Likewise.
13288         (vectorizable_condition): Move the check that it is not SLP
13289         vectorization before the number of copies check.
13290         * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
13291         to vectorize the loop using SLP.
13292
13293 2011-04-28  Jakub Jelinek  <jakub@redhat.com>
13294
13295         PR middle-end/48597
13296         * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
13297         inline asm.
13298
13299 2011-04-28  Joseph Myers  <joseph@codesourcery.com>
13300
13301         * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
13302         *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
13303         (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
13304         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
13305         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
13306         linux*.h headers.
13307         * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
13308         * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
13309         * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
13310         * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
13311         * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
13312         * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
13313         REG_NAME.
13314         * config/i386/linux.h (REG_NAME): Don't define.
13315         * config/i386/linux64.h (REG_NAME): Don't define.
13316         * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
13317         Undefine before defining.
13318
13319 2011-04-28  Jan Hubicka  <jh@suse.cz>
13320
13321         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
13322         nonconstant_names array.
13323         (estimate_function_body_sizes): Build nonconstant_names array; handle
13324         BUILT_IN_CONSTANT_P.
13325
13326 2011-04-28  Richard Guenther  <rguenther@suse.de>
13327
13328         PR bootstrap/48804
13329         Revert
13330         2011-04-28  Richard Guenther  <rguenther@suse.de>
13331
13332         * tree-ssa-structalias.c (solve_constraints): Build succ graph
13333         as late as possible.
13334
13335 2011-04-28  Richard Guenther  <rguenther@suse.de>
13336
13337         * tree-ssa-structalias.c (dump_constraint): Don't end the line.
13338         (debug_constraint): Do it here.
13339         (dump_constraints): And here.
13340         (rewrite_constraints): And here.
13341         (dump_constraint_edge): Remove.
13342         (dump_constraint_graph): Rewrite to produce DOT output.
13343         (solve_constraints): Build succ graph as late as possible.
13344         Dump constraint graphs before and after solving.
13345
13346 2011-04-28  Richard Guenther  <rguenther@suse.de>
13347
13348         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
13349         New function split out from ...
13350         (find_func_aliases): ... here.  Call it.
13351         (find_func_aliases_for_call): Likewise.
13352
13353 2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
13354
13355         * internal-fn.h (internal_fn_name_array): Declare.
13356         (internal_fn_flags_array): Likewise.
13357
13358 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
13359
13360         * config/i386/i386.md (ssemodesuffix):  Merge with ssevecsize,
13361         ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
13362         Move from sse.md.
13363         (ssemodefsuffix): Remove.
13364         (ssevecmodesuffix): New mode attribute.
13365         (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
13366         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
13367         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
13368         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
13369         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
13370         *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
13371         *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
13372         ssemodesuffix mode attribute.
13373         (float splitters): Use ssevecmodesuffix mode attribute.
13374         * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
13375         (sseinsmode): Rename from avxvecmode.
13376         (avxsizesuffix): Rename from avxmodesuffix.
13377         (sseintvecmode): Rename from avxpermvecmode.
13378         (ssedoublevecmode): Rename from ssedoublesizemode.
13379         (ssehalfvecmode): Rename from avxhalfvecmode.
13380         (ssescalarmode): Rename from avxscalarmode.
13381         (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
13382         templates for ssemodesuffix mode attribute.
13383         (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
13384         mode attribute.
13385
13386         Adjust RTX patterns globally for renamed mode attributes.
13387
13388 2011-04-27  Jan Hubcika  <jh@suse.cz>
13389
13390         * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
13391         * ipa-inline-analysis.c: Include alloc-pool.h.
13392         (edge_predicate_pool): New.
13393         (trye_predicate_p): New function
13394         (false_predicate_p): New function.
13395         (add_clause): Sanity check that false clauses are "optimized";
13396         never add clauses to predicate that is already known to be false.
13397         (and_predicate): Use flase_predicate_p.
13398         (evaulate_predicate): Rename to ...
13399         (evaluate_predicate): ... this one; update all callers; assert
13400         that false is not listed among possible truths.
13401         (dump_predicate): Use true_predicate_p.
13402         (account_size_time): Use false_predicate_p.
13403         (evaulate_conditions_for_edge): Rename to ...
13404         (evaluate_conditions_for_edge) ... this one.
13405         (edge_set_predicate): New function.
13406         (inline_edge_duplication_hook): Duplicate edge predicates.
13407         (inline_edge_removal_hook): Free edge predicates.
13408         (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
13409         (dump_inline_summary): Update.
13410         (estimate_function_body_sizes): Set edge predicates.
13411         (estimate_calls_size_and_time): Handle predicates.
13412         (estimate_callee_size_and_time): Update.
13413         (remap_predicate): Add toplev_predicate; update comment.
13414         (remap_edge_predicates): New function.
13415         (inline_merge_summary): Compute toplev predicate; update.
13416         (read_predicate): New function.
13417         (read_inline_edge_summary): Use it.
13418         (inline_read_section): Likewise.
13419         (write_predicate): New function.
13420         (write_inline_edge_summary): Use it.
13421         (inline_write_summary): Likewise.
13422         (inline_free_summary): Free alloc pool and edge summary vec.
13423
13424 2011-04-27  Richard Guenther  <rguenther@suse.de>
13425
13426         * tree-ssa-structalias.c (changed_count): Remove.
13427         (changed): Use a bitmap.
13428         (unify_nodes): Adjust.
13429         (do_sd_constraint): Likewise.
13430         (do_ds_constraint): Likewise.
13431         (do_complex_constraint): Likewise.
13432         (solve_graph): Likewise.
13433
13434 2011-04-27  Jan Hubicka  <jh@suse.cz>
13435
13436         * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
13437
13438 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
13439
13440         * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
13441         (avx_vperm2f128_*_operand): Ditto.
13442         * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
13443         Use avx_vpermilp_parallel in insn condition.
13444         (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
13445         Use avx_vperm2f128_parallel in insn condition.
13446
13447 2011-04-27  Richard Guenther  <rguenther@suse.de>
13448
13449         * Makefile.in (tree-ssa-structalias.o): Remove
13450         gt-tree-ssa-structalias.h dependency.
13451         (GTFILES): Remove tree-ssa-structalias.c.
13452         * tree.c (allocate_decl_uid): New function.
13453         (make_node_stat): Use it.
13454         (copy_node_stat): Likewise.
13455         * tree.h (allocate_decl_uid): Declare.
13456         * tree-ssa-alias.h (delete_alias_heapvars): Remove.
13457         * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
13458         * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
13459         * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
13460         * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
13461         (struct heapvar_map): Likewise.
13462         (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
13463         heapvar_insert): Likewise.
13464         (make_heapvar_for): Rename to ...
13465         (make_heapvar): ... this.  Simplify.
13466         (fake_var_decl_obstack): New global var.
13467         (build_fake_var_decl): New function.
13468         (make_constraint_from_heapvar): Adjust.
13469         (handle_lhs_call): Likewise.
13470         (create_function_info_for): Likewise.
13471         (intra_create_variable_infos): Likewise.
13472         (init_alias_vars): Allocate fake_var_decl_obstack.
13473         (init_alias_heapvars, delete_alias_heapvars): Remove.
13474         (compute_points_to_sets): Do not call init_alias_heapvars.
13475         (ipa_pta_execute): Likewise.
13476         (delete_points_to_sets): Free fake_var_decl_obstack.
13477
13478 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13479
13480         * config/spu/divmovti4.c (union qword_UTItype): New data type.
13481         (si_from_UTItype, si_to_UTItype): New functions.
13482         (__udivmodti4): Use them to implement type-punning.
13483         * config/spu/multi3.c (union qword_TItype): New data type.
13484         (si_from_TItype, si_to_TItype): New functions.
13485         (__multi3): Use them to implement type-punning.
13486
13487 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13488
13489         * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
13490
13491 2011-04-27  Jan Hubicka  <jh@suse.cz>
13492
13493         * ipa-prop.c (function_insertion_hook_holder): New holder.
13494         (ipa_add_new_function): New function.
13495         (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
13496         Register/deregister holder.
13497
13498 2011-04-27  Richard Guenther  <rguenther@suse.de>
13499
13500         PR tree-optimization/48772
13501         * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
13502
13503 2011-04-27  Richard Guenther  <rguenther@suse.de>
13504
13505         * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
13506         TARGET_MEM_REF handling.
13507
13508 2011-04-27  Nick Clifton  <nickc@redhat.com>
13509
13510         * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
13511         ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
13512         (REG_CLASS_NAMES): Likewise.
13513         (REG_CLASS_CONTENTS): Likewise.
13514         (EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
13515         (ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
13516         (FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
13517         (FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
13518         (EVEN_REGS): New macro.  Alias for QUAD_REGS.
13519         * config/frv/frv.c (frv_secondary_reload_class): Remove use of
13520         duplicate register classes.
13521         (frv_class_likely_spilled_p): Likewise.
13522         (frv_register_move_cost): Likewise.
13523
13524         * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
13525         end of the regno_reg_class array.
13526
13527 2011-04-27  Jakub Jelinek  <jakub@redhat.com>
13528
13529         PR c/48742
13530         * c-typeck.c (build_binary_op): Don't wrap arguments if
13531         int_operands is true.
13532
13533 2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>
13534
13535         PR target/48767
13536         * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
13537         targetm.calls.must_pass_in_stack for void type.
13538
13539 2011-04-26  Jan Hubicka  <jh@suse.cz>
13540
13541         * cgraphbuild.c (build_cgraph_edges): Update call
13542         of cgraph_create_edge and cgraph_create_indirect_edge.
13543         * cgraph.c (cgraph_create_edge_including_clones,
13544         cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
13545         cgraph_update_edges_for_call_stmt_node): Do not take nest
13546         argument; do not initialize call_stmt_size/time.
13547         (dump_cgraph_node): Do not dump nest.
13548         (cgraph_clone_edge): Do not take loop_nest argument;
13549         do not propagate it; do not clone call_stmt_size/time.
13550         (cgraph_clone_node): Likewise.
13551         (cgraph_create_virtual_clone): Update.
13552         * cgraph.h (struct cgraph_edge): Remove
13553         call_stmt_size/call_stmt_time/loop_nest.
13554         (cgraph_create_edge, cgraph_create_indirect_edge,
13555         cgraph_create_edge_including_clones, cgraph_clone_node): Update
13556         prototype.
13557         * tree-emutls.c (gen_emutls_addr): Update.
13558         * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
13559         loop_nest; handle indirect calls, too.
13560         (clone_inlined_nodes): Do not care about updating inline summaries.
13561         * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
13562         * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
13563         stream call_stmt_size/call_stmt_time/loop_nest.
13564         * ipa-inline.c (edge_badness): Update.
13565         (ipa_inline): dump summaries after inlining.
13566         * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
13567         New.
13568         (inline_edge_summary): New function.
13569         * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
13570         (inline_edge_removal_hook): Handle edge summaries.
13571         (inline_edge_duplication_hook): New hook.
13572         (inline_summary_alloc): Alloc hooks.
13573         (initialize_growth_caches): Do not register removal hooks.
13574         (free_growth_caches); Do not free removal hook.
13575         (dump_inline_edge_summary): New function.
13576         (dump_inline_summary): Use it.
13577         (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
13578         (inline_update_callee_summaries): New function.
13579         (inline_merge_summary): Use it.
13580         (do_estimate_edge_time, do_estimate_edge_growth): Update.
13581         (read_inline_edge_summary): New function.
13582         (inline_read_section): Use it.
13583         (write_inline_edge_summary): New function.
13584         (inline_write_summary): Use it.
13585         (inline_free_summary): Free edge new holders.
13586         * tree-inline.c (copy_bb): Update.
13587
13588 2011-04-26  Jason Merrill  <jason@redhat.com>
13589
13590         * tree-eh.c (lower_try_finally_switch): Create the label along with
13591         the CASE_LABEL_EXPR.
13592
13593 2011-04-26  David S. Miller  <davem@davemloft.net>
13594             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13595
13596         * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
13597         * configure: Regenerate.
13598
13599 2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
13600
13601         PR target/48258
13602         * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
13603         reduction.
13604         (VEC_reduc): New code iterator and splitters for vector reduction.
13605         (VEC_reduc_name): Ditto.
13606         (VEC_reduc_rtx): Ditto.
13607         (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
13608         (reduc_<VEC_reduc_name>_v4sf): Ditto.
13609
13610         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
13611         support for extracting SF on VSX.
13612
13613         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
13614         generating xscvspdp.
13615         (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
13616         (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
13617         double add, minimum, maximum vector reduction.
13618         (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
13619         (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
13620         optimize double vector reduction.
13621         (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
13622
13623 2011-04-26  Joseph Myers  <joseph@codesourcery.com>
13624
13625         * config/fr30/fr30.h (inhibit_libc): Don't define.
13626         * config/m32r/m32r-protos.h: Correct comment.
13627         * config/v850/v850.h (GHS_default_section_names,
13628         GHS_current_section_names): Use tree, not union tree_node *.
13629
13630 2011-04-26  Xinliang David Li  <davidxl@google.com>
13631
13632         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
13633         * c-family/c-opts.c (c_common_handle_option): Set
13634         warn_maybe_uninitialized.
13635         * opts.c (common_handle_option): Ditto.
13636         * common.opt:  New option.
13637         * tree-ssa.c (warn_uninit): Add one more parameter.
13638         (warn_uninitialized_var): Pass warning code.
13639         * tree-flow.h: Interface change.
13640
13641 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13642
13643         * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
13644         (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
13645         (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
13646
13647 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13648
13649         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
13650         * config/mips/mips.opt (mmips-tfile): Remove.
13651
13652         * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
13653         mips-tdump reference to ...
13654         (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
13655         * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
13656         reference by Tru64 UNIX.
13657
13658 2011-04-26  Jakub Jelinek  <jakub@redhat.com>
13659
13660         PR debug/48768
13661         * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
13662         is error_mark_node, set value to NULL.
13663
13664         PR tree-optimization/48734
13665         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
13666         if return value from maybe_fold_*_comparsions isn't something
13667         the code is prepared to handle.
13668
13669 2011-04-26  Uros Bizjak  <ubizjak@gmail.com>
13670
13671         * config/i386/predicates.md (ext_QIreg_operand): Remove extra
13672         mode check.
13673         (ext_QIreg_nomode_operands): Remove.
13674         * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
13675         (*andsi_1): Ditto.
13676         (*andhi_1): Ditto.
13677
13678 2011-04-26  Andrew Stubbs  <ams@codesourcery.com>
13679
13680         * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
13681
13682 2011-04-26  Richard Guenther  <rguenther@suse.de>
13683
13684         * c-typeck.c (build_unary_op): Do not expand array-refs via
13685         pointer arithmetic.  Only adjust qualifiers for function types.
13686
13687 2011-04-26  Richard Guenther  <rguenther@suse.de>
13688
13689         PR middle-end/48694
13690         * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
13691         * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
13692         compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
13693         with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
13694
13695 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
13696
13697         * doc/extend.texi: Document __underlying_type.
13698
13699 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
13700
13701         * config/rs6000/titan.md (automata_option "progress"): Remove.
13702
13703 2011-04-25  Jeff Law  <law@redhat.com>
13704
13705         * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
13706
13707 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
13708
13709         * system.h (ENUM_BITFIELD): Remove.
13710
13711 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
13712             Eric Botcazou  <ebotcazou@adacore.com>
13713
13714         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
13715         for STORE_FLAG_VALUE==-1 case.
13716
13717 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
13718
13719         PR target/43804
13720         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
13721         LEGITIMATE_PIC_OPERAND_P.
13722
13723 2011-04-24  Jan Hubicka  <jh@suse.cz>
13724
13725         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
13726         WPA hack.
13727         * ipa-prop.h (ipa_get_param, ipa_is_param_used,
13728         ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
13729         ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
13730         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
13731         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
13732         Sanity check predicate length.
13733         (remap_predicate): Likewise; sanity check jump functions.
13734         (inline_read_section, inline_write_summary): Sanity check
13735         predicate length.
13736
13737 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
13738
13739         PR other/48748
13740         * doc/extend.texi (Type Traits): Document __is_standard_layout,
13741         __is_literal_type, and __is_trivial; update throughout about
13742         possibly cv-qualified void types.
13743
13744 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
13745
13746         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
13747         testsuite and make it version agnostic.
13748
13749 2011-04-22  Jan Hubicka  <jh@suse.cz>
13750
13751         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
13752
13753 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
13754
13755         PR c/48685
13756         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
13757         to VOID_TYPE even around MODIFY_EXPR.
13758
13759 2011-04-22  Mike Stump  <mikestump@comcast.net>
13760
13761         * gensupport.c (read_md_rtx): Fix typo in comment.
13762         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
13763         comment.
13764
13765 2011-04-22  Jan Hubicka  <jh@suse.cz>
13766
13767         * gengtype.c (open_base_files): Add ipa-inline.h include.
13768         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
13769         ipa-prop.c; update all uses.
13770         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
13771         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
13772         merge summary of inlined function into former caller.
13773         * ipa-inline.c (max_benefit): Remove.
13774         (edge_badness): Compensate for removal of benefits.
13775         (update_caller_keys): Use
13776         reset_node_growth_cache/reset_edge_growth_cache.
13777         (update_callee_keys): Likewise.
13778         (update_all_callee_keys): Likewise.
13779         (inline_small_functions): Do not collect max_benefit; do not reset
13780         estimated_growth; call free_growth_caches and initialize_growth_caches.
13781         * ipa-inline.h (struct condition, type clause_t, struct predicate,
13782         struct size_time_entry): New structures.
13783         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
13784         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
13785         and estimated_growth.
13786         (edge_growth_cache_entry): New structure.
13787         (node_growth_cache, edge_growth_cache): New global vars.
13788         (estimate_growth): Turn into inline.
13789         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
13790         initialize_growth_caches, free_growth_caches): Declare.
13791         (estimate_edge_growth): Rewrite.
13792         (estimate_edge_time): Implement as inline cache lookup.
13793         (reset_node_growth_cache, reset_edge_growth_cache): New inline
13794         functions.
13795         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
13796         (NUM_CONDITIONS): New constant.
13797         (predicate_conditions): New enum.
13798         (IS_NOT_CONSTANT): New constant.
13799         (edge_removal_hook_holder): New var.
13800         (node_growth_cache, edge_growth_cache): New global vars.
13801         (true_predicate, single_cond_predicate, false_predicate,
13802         not_inlined_predicate, add_condition, add_clause, and_predicates,
13803         or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
13804         dump_clause, dump_predicate, account_size_time,
13805         evaulate_conditions_for_edge): New functions.
13806         (inline_summary_alloc): Move to heap.
13807         (inline_node_removal_hook): Clear condition and entry vectors.
13808         (inline_edge_removal_hook): New function.
13809         (initialize_growth_caches, free_growth_caches): New function.
13810         (dump_inline_summary): Update.
13811         (edge_execution_predicate): New function.
13812         (will_be_nonconstant_predicate): New function.
13813         (estimate_function_body_sizes): Compute BB and constantness predicates.
13814         (compute_inline_parameters): Do not clear estimated_growth.
13815         (estimate_edge_size_and_time): New function.
13816         (estimate_calls_size_and_time): New function.
13817         (estimate_callee_size_and_time): New function.
13818         (remap_predicate): New function.
13819         (inline_merge_summary): New function.
13820         (do_estimate_edge_time): New function based on...
13821         (estimate_edge_time): ... this one.
13822         (do_estimate_edge_growth): New function.
13823         (do_estimate_growth): New function based on....
13824         (estimate_growth): ... this one.
13825         (inline_analyze_function): Analyze after deciding on jump functions.
13826         (inline_read_section): New function.
13827         (inline_read_summary): Use it.
13828         (inline_write_summary): Write all the new data.
13829         * ipa-prop.c (ipa_get_param_decl_index): Export.
13830         (ipa_lattice_from_jfunc): Move here from ipa-cp.c
13831         * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
13832         Declare.
13833         (ipa_get_lattice): Move here from ipa-cp.c
13834         * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
13835         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
13836         * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
13837         cgraph_edge_inlinable_p): Remove.
13838         * cgraphunit.c: Include ipainline.h
13839         (cgraph_process_new_functions): Update call of
13840         compute_inline_parameters.
13841
13842 2011-04-22  Richard Guenther  <rguenther@suse.de>
13843
13844         * tree.c (build_int_cst): Properly create canonicalized integer
13845         constants.
13846         (build_int_cst_type): Remove scary comments.
13847
13848 2011-04-22  Xinliang David Li  <davidxl@google.com>
13849
13850         * toplev.c (process_options): Enable -Werror=coverage-mismatch
13851         by default when -Wno-error is not specified.
13852         * opts-global.c (decode_options): Remove call to
13853         control_warning_options.
13854
13855 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
13856
13857         PR tree-optimization/48717
13858         * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
13859         ~A + A optimizations use build_int_cst_type instead of build_int_cst.
13860
13861 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
13862
13863         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
13864         definition where used.
13865
13866 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
13867
13868         PR c/48716
13869         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
13870         TREE_STATIC variables declared inside of some OpenMP construct.
13871
13872 2011-04-22  Martin Jambor  <mjambor@suse.cz>
13873
13874         PR middle-end/48585
13875         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
13876
13877 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
13878
13879         PR c/36750
13880         * c-typeck.c (pop_init_level): Do not warn about initializing
13881         with ` = {0}'.
13882
13883 2011-04-22  Alan Modra  <amodra@gmail.com>
13884
13885         * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
13886         when returning call_cookie.
13887         (rs6000_function_ok_for_sibcall): Allow sibcalls via function
13888         pointers, to functions with no more vector args than the current
13889         function, and some non-local calls for ABI_V4.
13890         * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
13891         sibcall_nonlocal_aix64): Combine to ..
13892         (sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
13893         (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
13894         (sibcall_value_nonlocal_aix<mode>): ..likewise.
13895         (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
13896         (sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
13897         operand.
13898         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
13899         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
13900         sibcall_value_symbolic_64): Delete.
13901
13902 2011-04-21  Xinliang David Li  <davidxl@google.com>
13903
13904         * cgraph.h: Remove pid.
13905         * cgraph.c: Remove pid.
13906         * value-prof.c (init_node_map): New function.
13907         (del_node_map): New function.
13908         (find_func_by_funcdef_no): New function.
13909         (gimple_ic_transform): Call new function.
13910         * cgraphunit.c (cgraph_finalize_function): Remove pid.
13911         * function.c (get_last_funcdef_no): New function.
13912         * function.h (get_last_funcdef_no): New function.
13913         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
13914         to libgcov function.
13915         (tree-profiling): Call node map init and delete function.
13916
13917 2011-04-21  Ian Lance Taylor  <iant@google.com>
13918
13919         * godump.c (go_format_type): Use exported Go name for anonymous
13920         field name.
13921
13922 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
13923
13924         * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
13925         Call builtin_function_type_list instead of builtin_function_type.
13926         (UNARY, BINARY, TRINARY, QUAD): Likewise.
13927
13928 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
13929
13930         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
13931         build_function_type_list instead of build_function_type.
13932         Delete variable `endlink'.
13933
13934 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
13935
13936         * config/s390/s390.c (s390_init_builtins): Call
13937         build_function_type_list instead of build_function_type.
13938
13939 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
13940
13941         * config/ia64/ia64.c (ia64_init_builtins): Call
13942         build_function_type_list instead of builtin_function_type.
13943
13944 2011-04-21  Easwaran Raman  <eraman@google.com>
13945
13946         * cfgexpand.c (stack_var): Remove OFFSET...
13947         (add_stack_var): ...and its reference here...
13948         (expand_stack_vars): ...and here.
13949         (stack_var_cmp): Sort by descending order of size.
13950         (partition_stack_vars): Change heuristic.
13951         (union_stack_vars): Fix to reflect changes in partition_stack_vars.
13952         (dump_stack_var_partition): Add newline after each partition.
13953
13954 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
13955             Jeff Law  <law@redhat.com>
13956
13957         * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
13958         * gengtype.c (matching_file_name_substitute): Likewise.
13959
13960 2011-04-21  Richard Guenther  <rguenther@suse.de>
13961
13962         PR lto/48703
13963         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
13964
13965 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
13966
13967         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
13968
13969 2011-04-21  Richard Guenther  <rguenther@suse.de>
13970
13971         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
13972         file name.
13973
13974 2011-04-21  Richard Guenther  <rguenther@suse.de>
13975
13976         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
13977         MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
13978         Use DECL_P, not SSA_VAR_P.
13979         (ptr_derefs_may_alias_p): Likewise.
13980         (ptr_deref_may_alias_ref_p_1): Likewise.
13981         (decl_refs_may_alias_p): Likewise.
13982         (refs_may_alias_p_1): Likewise.
13983         (ref_maybe_used_by_call_p_1): Likewise.
13984         (call_may_clobber_ref_p_1): Likewise.
13985         (indirect_ref_may_alias_decl_p): Assume indirect refrences
13986         are either MEM_REF or TARGET_MEM_REF.
13987         (indirect_refs_may_alias_p): Likewise.
13988         * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
13989         for MEM_EXPR of indirect calls.
13990
13991 2011-04-21  Tristan Gingold  <gingold@adacore.com>
13992
13993         * vmsdbgout.c (write_srccorr): Compute file length from the string.
13994         (dst_file_info_struct): Remove flen field.
13995         (lookup_filename): Remove code that set flen field.
13996
13997 2011-04-21  Tristan Gingold  <gingold@adacore.com>
13998
13999         * config/ia64/ia64.c (ia64_start_function): Add a guard.
14000
14001 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
14002
14003         PR target/48708
14004         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
14005         vec_extract and vec_concat for non-SSE4_1 targets.
14006
14007 2011-04-21  Richard Guenther  <rguenther@suse.de>
14008
14009         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
14010         return statements.
14011
14012 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
14013
14014         * config/i386/cygming.h (union tree_node, TREE): Don't define or
14015         undefine.
14016         (FILE): Don't undefine.
14017
14018 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
14019
14020         * config/alpha/alpha.c (struct machine_function): Use rtx, not
14021         struct rtx_def *.
14022         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
14023         struct rtx_def *.
14024         * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
14025         * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
14026         * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
14027         rtx_def *.
14028         * config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
14029         definitions where used.
14030         * config/microblaze/microblaze.h (struct microblaze_args): Use
14031         rtx, not struct rtx_def *.
14032         * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
14033         rtx_def *.
14034         * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
14035         * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
14036         * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
14037         not struct rtx_def *.
14038         * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
14039         struct rtx_def *.
14040         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
14041         rtx_def *.
14042         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
14043
14044 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
14045
14046         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
14047         operand_equal_p to compare DR_BASE_ADDRESSes.
14048         (vect_check_interleaving): Likewise.
14049
14050 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
14051
14052         PR target/46329
14053         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
14054         for all Neon struct constants.
14055
14056 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
14057
14058         * target.def (legitimate_constant_p): New hook.
14059         * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
14060         (TARGET_LEGITIMATE_CONSTANT_P): ...this.
14061         * doc/tm.texi: Regenerate.
14062         * hooks.h (hook_bool_mode_rtx_true): Declare.
14063         * hooks.c (hook_bool_mode_rtx_true): Define.
14064         * system.h (LEGITIMATE_CONSTANT_P): Poison.
14065         * calls.c (precompute_register_parameters): Replace uses of
14066         LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
14067         (emit_library_call_value_1): Likewise.
14068         * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
14069         (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
14070         * ira-costs.c (scan_one_insn): Likewise.
14071         * recog.c (general_operand, immediate_operand): Likewise.
14072         * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
14073         * reload1.c (init_eliminable_invariants): Likewise.
14074
14075         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
14076         mode argument.
14077         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
14078         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
14079         argument.
14080         (TARGET_LEGITIMATE_CONSTANT_P): Define.
14081         * config/alpha/predicates.md (input_operand): Update call to
14082         alpha_legitimate_constant_p.
14083
14084         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
14085         * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
14086         (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
14087         * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14088         (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
14089         (arm_legitimate_constant_p): New functions.
14090         (arm_cannot_force_const_mem): Make static.
14091
14092         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
14093
14094         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
14095         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
14096         * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
14097         instead of bfin_legitimate_constant_p.
14098         (bfin_legitimate_constant_p): Make static.  Add a mode argument.
14099         (TARGET_LEGITIMATE_CONSTANT_P): Define.
14100
14101         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
14102
14103         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
14104
14105         * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
14106         * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
14107         * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14108         (frv_legitimate_constant_p): Make static.  Add a mode argument.
14109
14110         * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
14111         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
14112         * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
14113
14114         * config/i386/i386-protos.h (legitimate_constant_p): Delete.
14115         * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
14116         * config/i386/i386.c (legitimate_constant_p): Rename to...
14117         (ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
14118         argument.
14119         (ix86_cannot_force_const_mem): Update accordingly.
14120         (ix86_legitimate_address_p): Likewise.
14121         (TARGET_LEGITIMATE_CONSTANT_P): Define.
14122         * config/i386/i386.md: Update commentary.
14123
14124         * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
14125         * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
14126         * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14127         (ia64_legitimate_constant_p): Make static.  Add a mode argument.
14128
14129         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
14130
14131         * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
14132         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
14133         * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14134         (lm32_legitimate_constant_p): Make static.  Add a mode argument.
14135
14136         * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
14137         * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
14138         * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
14139
14140         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
14141         * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14142         (m32r_legitimate_constant_p): New function.
14143
14144         * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
14145         * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
14146         LEGITIMATE_CONSTANT_P.
14147         (LEGITIMATE_CONSTANT_P): Delete.
14148         * config/m68k/m68k.c (m68k_expand_prologue): Call
14149         m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
14150         (m68k_legitimate_constant_p): New function.
14151         * config/m68k/m68k.md: Update comments.
14152
14153         * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
14154         * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14155         (mcore_legitimate_constant_p): New function.
14156
14157         * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
14158         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
14159         * config/mep/mep.c (mep_legitimate_constant_p): Make static.
14160         Add a mode argument.
14161         (mep_legitimate_address): Update accordingly.
14162         (TARGET_LEGITIMATE_CONSTANT_P): Define.
14163
14164         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
14165         Delete.
14166         * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
14167         * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
14168         static.  Check OP's mode for VOIDmode.
14169         (microblaze_legitimate_constant_p): New function.
14170         (TARGET_LEGITIMATE_CONSTANT_P): Define.
14171
14172         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
14173         * config/mips/mips.c (mips_legitimate_constant_p): New function.
14174         (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
14175         (TARGET_LEGITIMATE_CONSTANT_P): Define.
14176         * config/mips/predicates.md: Update comments.
14177
14178         * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
14179         * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
14180         * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14181         (mmix_legitimate_constant_p): Make static, return a bool, and take
14182         a mode argument.
14183         (mmix_print_operand_address): Update accordingly.
14184
14185         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
14186         Delete.
14187         * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
14188         * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
14189         static.  Add a mode argument.
14190         (TARGET_LEGITIMATE_CONSTANT_P): Define.
14191
14192         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
14193
14194         * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
14195         * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14196         (pa_legitimate_constant_p): New function.
14197
14198         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
14199
14200         * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
14201         * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14202         (pdp11_legitimate_constant_p): New function.
14203
14204         * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
14205         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14206         (rs6000_legitimate_constant_p): New function.
14207
14208         * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
14209         (rx_legitimate_constant_p): ...this.
14210         * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
14211         * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
14212         (rx_legitimate_constant_p): ...this.
14213         (TARGET_LEGITIMATE_CONSTANT_P): Define.
14214         * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
14215
14216         * config/s390/s390-protos.h (legitimate_constant_p): Delete.
14217         * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
14218         * config/s390/s390.c (legitimate_constant_p): Rename to...
14219         (s390_legitimate_constant_p): ...this.  Make static, return a bool,
14220         and add a mode argument.
14221         (TARGET_LEGITIMATE_CONSTANT_P): Define.
14222
14223         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
14224
14225         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
14226         * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14227         (sh_legitimate_constant_p): New function.
14228
14229         * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
14230         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
14231         * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14232         (legitimate_constant_p): Rename to...
14233         (sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
14234         argument.
14235         (constant_address_p): Update accordingly.
14236
14237         * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
14238         argument and return a bool.
14239         * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
14240         * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14241         (spu_legitimate_constant_p): Add a mode argument and return a bool.
14242         (spu_rtx_costs): Update accordingly.
14243         * config/spu/predicates.md (vec_imm_operand): Likewise.
14244
14245         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
14246
14247         * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
14248         * config/v850/v850.c (v850_legitimate_constant_p): New function.
14249         (TARGET_LEGITIMATE_CONSTANT_P): Define.
14250
14251         * config/vax/vax-protos.h (legitimate_constant_p): Delete.
14252         * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
14253         * config/vax/vax.c (legitimate_constant_p): Likewise.
14254
14255         * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
14256         * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14257         (xtensa_legitimate_constant_p): New function.
14258
14259 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
14260
14261         * target.def (cannot_force_const_mem): Add a mode argument.
14262         * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
14263         * doc/tm.texi: Regenerate.
14264         * hooks.h (hook_bool_mode_rtx_false): Declare.
14265         * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
14266         (hook_bool_mode_const_rtx_true): Likewise.
14267         (hook_bool_mode_rtx_false): New function.
14268         * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
14269         to be non-VOID.  Update call to cannot_force_const_mem.
14270         (find_reloads): Update accordingly.
14271         * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
14272         * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
14273         argument.
14274         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
14275         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
14276         * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
14277         * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
14278         * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
14279         * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
14280         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
14281         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
14282         (m68k_cannot_force_const_mem): ...this new function.
14283         * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
14284         argument.
14285         (mips_const_insns, mips_legitimize_const_move): Update calls.
14286         (mips_secondary_reload_class): Likewise.
14287         * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
14288         (pa_cannot_force_const_mem): ...this new function.
14289         * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
14290         (rs6000_cannot_force_const_mem): ...this new function.
14291         * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
14292         argument.
14293         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
14294         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
14295         to...
14296         (xtensa_cannot_force_const_mem): ...this new function.
14297
14298 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
14299
14300         * config/mips/mips.c (mips16_build_function_stub): Call
14301         build_function_type_list instead of build_function_type.
14302         (mips16_build_call_stub): Likewise.
14303
14304 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
14305
14306         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
14307         instead of build_function_type.
14308
14309 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
14310
14311         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
14312         instead of build_function_type.
14313
14314 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
14315
14316         PR target/48678
14317         * config/i386/i386.md (insv): Change operand 0 constraint to
14318         "register_operand".  Change operand 1 and 2 constraint to
14319         "const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
14320         * config/i386/sse.md (sse4_1_pinsrb): Export.
14321         (sse2_pinsrw): Ditto.
14322         (sse4_1_pinsrd): Ditto.
14323         (sse4_1_pinsrq): Ditto.
14324         * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
14325         * config/i386/i386.c (ix86_expand_pinsr): New.
14326
14327 2011-04-20  Easwaran Raman  <eraman@google.com>
14328
14329         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
14330         containing union type only with -fstrict-aliasing.
14331
14332 2011-04-20  Jim Meyering  <meyering@redhat.com>
14333
14334         Remove useless if-before-free tests.
14335         * calls.c (expand_call, save_area): Likewise.
14336         * cfgcleanup.c (try_forward_edges): Likewise.
14337         * collect2.c (collect_execute): Likewise.
14338         * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
14339         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
14340         * coverage.c (coverage_checksum_string): Likewise.
14341         * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
14342         * cselib.c (cselib_init): Likewise.
14343         * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
14344         (df_set_clean_cfg): Likewise.
14345         * function.c (free_after_compilation): Likewise.
14346         * gcc.c (do_spec_1, main): Likewise.
14347         * gcov.c (create_file_names): Likewise.
14348         * gensupport.c (identify_predicable_attribute): Likewise.
14349         * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
14350         * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
14351         * haifa-sched.c (haifa_finish_h_i_d): Likewise.
14352         * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
14353         * ipa-pure-const.c (local_pure_const): Likewise.
14354         * ipa-reference.c (propagate): Likewise.
14355         * ira-costs.c (free_ira_costs): Likewise.
14356         * ira.c (free_register_move_costs, build_insn_chain): Likewise.
14357         * matrix-reorg.c (mat_free): Likewise.
14358         * prefix.c (get_key_value): Likewise.
14359         * profile.c (compute_value_histograms): Likewise.
14360         * reload1.c (free_reg_equiv): Likewise.
14361         * sched-deps.c (free_deps): Likewise.
14362         * sel-sched-ir.c (fence_clear): Likewise.
14363         * sese.c (set_rename, if_region_set_false_region): Likewise.
14364         * tree-data-ref.c (free_rdg): Likewise.
14365         * tree-eh.c (lower_try_finally): Likewise.
14366         * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
14367         * tree-ssa-live.c (delete_var_map): Likewise.
14368         * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
14369         * tree-ssa-pre.c (phi_trans_add): Likewise.
14370
14371 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
14372
14373         PR tree-optimization/48611
14374         * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
14375         beyond ERT_MUST_NOT_THROW region.
14376
14377 2011-04-20  Catherine Moore  <clm@codesourcery.com>
14378
14379         * config/mips/mips.opt (mfix-24k): New.
14380         * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
14381         * config/mips/mips.md (length): Increase by 4 for stores if
14382         fixing 24K errata.
14383         * config/mips/mips.c (mips_reorg_process_insns): Do not allow
14384         all noreorder if fixing 24K errata.
14385         * doc/invoke.texi: Document mfix-24k.
14386
14387 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
14388
14389         * config/arm/arm.c (arm_legitimize_reload_address): For NEON
14390         quad-word modes, reduce to 9-bit index range when above 1016 limit.
14391
14392 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
14393
14394         * config/arm/arm.c (arm_gen_constant): Move movw support ....
14395         (const_ok_for_op): ... to here.
14396
14397 2011-04-20  Kai Tietz  <ktietz@redhat.com>
14398
14399         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
14400         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
14401
14402 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
14403
14404         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
14405
14406 2011-04-20  Richard Guenther  <rguenther@suse.de>
14407
14408         PR tree-optimization/47892
14409         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
14410         are if-convertible.
14411
14412 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
14413
14414         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
14415
14416 2011-04-20  Tristan Gingold  <gingold@adacore.com>
14417
14418         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
14419
14420 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
14421
14422         PR target/18145
14423
14424         * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
14425         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
14426         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
14427         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
14428         (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
14429
14430         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
14431         New prototype.
14432
14433         * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
14434         (avr_asm_named_section, avr_asm_output_aligned_common,
14435         avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
14436         New functions to update...
14437         (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
14438         (avr_asm_init_sections): Overwrite section callbacks for
14439         data_section, bss_section.
14440         (avr_file_start): Move output of __do_copy_data, __do_clear_bss
14441         from here to...
14442         (avr_file_end): ...here.
14443
14444 2011-04-20  Richard Guenther  <rguenther@suse.de>
14445
14446         PR middle-end/48695
14447         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
14448         objects and types here.  Adjust for their offset before comparing.
14449
14450 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
14451
14452         * tree-vect-stmts.c (vectorizable_store): Only chain one related
14453         statement per copy.
14454
14455 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
14456
14457         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
14458         (GIMPLE_H): Include $(INTERNAL_FN_H).
14459         (OBJS-common): Add internal-fn.o.
14460         (internal-fn.o): New rule.
14461         * internal-fn.def: New file.
14462         * internal-fn.h: Likewise.
14463         * internal-fn.c: Likewise.
14464         * gimple.h: Include internal-fn.h.
14465         (GF_CALL_INTERNAL): New gf_mask.
14466         (gimple_statement_call): Put fntype into a union with a new
14467         internal_fn field.
14468         (gimple_build_call_internal): Declare.
14469         (gimple_build_call_internal_vec): Likewise.
14470         (gimple_call_same_target_p): Likewise.
14471         (gimple_call_internal_p): New function.
14472         (gimple_call_internal_fn): Likewise.
14473         (gimple_call_fntype): Return null for internal calls.
14474         (gimple_call_set_fntype): Assert that the function is not internal.
14475         (gimple_call_set_fn): Likewise.
14476         (gimple_call_set_fndecl): Likewise.
14477         (gimple_call_set_internal_fn): New function.
14478         (gimple_call_addr_fndecl): Handle null functions.
14479         (gimple_call_return_type): Likewise null types.
14480         * gimple.c (gimple_build_call_internal_1): New function.
14481         (gimple_build_call_internal): Likewise.
14482         (gimple_build_call_internal_vec): Likewise.
14483         (gimple_call_same_target_p): Likewise.
14484         (gimple_call_flags): Handle calls to internal functions.
14485         (gimple_call_fnspec): New function.
14486         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
14487         (gimple_has_side_effects): Handle null functions.
14488         (gimple_rhs_has_side_effects): Likewise.
14489         (gimple_call_copy_skip_args): Handle calls to internal functions.
14490         * cfgexpand.c (expand_call_stmt): Likewise.
14491         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
14492         * gimple-fold.c (gimple_fold_call): Handle null functions.
14493         (gimple_fold_stmt_to_constant_1): Don't fold
14494         calls to internal functions.
14495         * gimple-low.c (gimple_check_call_args): Handle calls to internal
14496         functions.
14497         * gimple-pretty-print.c (dump_gimple_call): Likewise.
14498         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
14499         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
14500         (do_warn_unused_result): Likewise.
14501         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
14502         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
14503         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
14504         the target of a call.
14505         (initialize_hash_element): Update accordingly.
14506         (hashable_expr_equal_p): Use gimple_call_same_target_p.
14507         (iterative_hash_hashable_expr): Handle calls to internal functions.
14508         (print_expr_hash_elt): Likewise.
14509         * tree-ssa-pre.c (can_value_number_call): Likewise.
14510         (eliminate): Handle null functions.
14511         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
14512         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
14513         (find_func_aliases): Likewise.
14514         * value-prof.c (gimple_ic_transform): Likewise.
14515         (gimple_indirect_call_to_profile): Likewise.
14516         * lto-streamer-in.c (input_gimple_stmt): Likewise.
14517         * lto-streamer-out.c (output_gimple_stmt): Likewise.
14518
14519 2011-04-19  Jan Hubicka  <jh@suse.cz>
14520
14521         * ipa-inline-transform.c (save_inline_function_body): Add comments.
14522         * ipa-inline.c (inline_small_functions): Compute summaries first,
14523         populate heap later.
14524
14525 2011-04-19  Jan Hubicka  <jh@suse.cz>
14526
14527         * cgraph.h (save_inline_function_body): Remove.
14528         * ipa-inline-transform.c: New file, broke out of...
14529         * ipa-inline.c: ... this one; Update toplevel comment.
14530         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
14531         make global.
14532         (update_noncloned_frequencies): Move to ipa-inline-transform.c
14533         (cgraph_mark_inline_edge): Rename to inline_call; move to
14534         ipa-inline-transform.c.
14535         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
14536         move to ipa-inline-transform.c
14537         (recursive_inlining, inline_small_functions, flatten_function,
14538         ipa_inline, inline_always_inline_functions,
14539         early_inline_small_functions): Update.
14540         (inline_transform): Move to ipa-inline-transform.c.
14541         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
14542         Declare.
14543         * Makefile.in (ipa-inline-transform.o): New file.
14544         * cgraphunit.c (save_inline_function_body): Move to
14545         ipa-inline-transform.c
14546
14547 2011-04-19  DJ Delorie  <dj@redhat.com>
14548
14549         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
14550         registers if we already know there aren't any.
14551         (m32c_emit_epilogue): Don't emit a barrier here.
14552         (m32c_emit_eh_epilogue): Likewise.
14553         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
14554         operands at expand time.
14555         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
14556         int" wchar type.
14557         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
14558         duplicates.  Provide aliases instead.
14559         * config/m32c/prologue.md (eh_return): Emit a barrier here.
14560         (eh_epilogue): Add a "(return)" here as a hint to other parts of
14561         the compiler.
14562
14563 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
14564
14565         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
14566         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
14567         (general_or_i64_p, sparc_register_move_cost): New function.
14568
14569 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14570
14571         * doc/install.texi (Configuration, --enable-threads): Remove mach.
14572         Add lynx, mipssde.  Sort table.
14573
14574 2011-04-19  Xinliang David Li  <davidxl@google.com>
14575
14576         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
14577         not negative.
14578
14579 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
14580
14581         PR target/48678
14582         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
14583         is a SUBREG with non-MODE_INT mode inside of it.
14584
14585 2011-04-19  Martin Jambor  <mjambor@suse.cz>
14586
14587         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
14588         also according to actual contants.
14589         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
14590         (gimple_fold_call): Use it.
14591         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
14592
14593 2011-04-19  Martin Jambor  <mjambor@suse.cz>
14594
14595         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
14596         non-pointer assignments.
14597
14598 2011-04-19  Martin Jambor  <mjambor@suse.cz>
14599
14600         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
14601         account anc_offset and otr_type from the indirect edge info.
14602         * ipa-prop.c (get_ancestor_addr_info): New function.
14603         (compute_complex_ancestor_jump_func): Assignment analysis moved to
14604         get_ancestor_addr_info, call it.
14605         (ipa_note_param_call): Do not initialize information about polymorphic
14606         calls, return the indirect call graph edge.  Remove the last
14607         parameter, adjust all callers.
14608         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
14609         parameters.  Initialize polymorphic information in the indirect edge.
14610
14611 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
14612
14613         PR lto/48148
14614         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
14615         the types if they have different enumeration identifiers.
14616
14617 2011-04-19  Jan Hubicka  <jh@suse.cz>
14618
14619         * cgraph.h (cgraph_optimize_for_size_p): Declare.
14620         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
14621         * predict.c (cgraph_optimize_for_size_p): Break out from ...
14622         (optimize_function_for_size_p) ... here.
14623
14624 2011-04-19  Richard Guenther  <rguenther@suse.de>
14625
14626         PR lto/48207
14627         * tree.c (free_lang_data): Do not reset the decl-assembler-name
14628         langhook.
14629
14630 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
14631
14632         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
14633         if DECL_NO_INLINE_WARNING_P is set on the function.
14634
14635 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
14636
14637         PR fortran/47976
14638         * reload1.c (inc_for_reload): Return void. All callers changed.
14639         (emit_input_reload_insns): Don't try to delete previous output
14640         reloads to a register, or record spill_reg_store for autoincs.
14641
14642 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
14643
14644         * gengtype.h: Updated copyright year.
14645         (struct input_file_st): Add inpisplugin field.
14646         (type_fileloc): New function.
14647         * gengtype.c
14648         (write_typed_struct_alloc_def): Add gcc_assert.
14649         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
14650         (write_typed_alloc_defns): Don't output for plugin files.
14651         (input_file_by_name): Clear inpisplugin field.
14652         (main): Set inpisplugin field for plugin files.
14653
14654 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
14655
14656         * gengtype-state.c (string_eq): New.
14657         (read_state): Use string_eq instead of strcmp when creating the
14658         state_ident_tab.
14659
14660 2011-04-19  Wei Guozhi  <carrot@google.com>
14661
14662         PR target/47855
14663         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
14664         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
14665         linkage.
14666         * config/arm/constraints.md (Uu): New constraint.
14667         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
14668
14669 2011-04-19  Tristan Gingold  <gingold@adacore.com>
14670
14671         * config.gcc (-*-*-*vms): Added.
14672         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
14673         definitions moved.
14674         * config/vms/vms-ld.c: New file.
14675         * config/vms/vms-ar.c: New file.
14676         * config/vms/t-vmsnative: New file.
14677
14678 2011-04-18  Xinliang David Li  <davidxl@google.com>
14679
14680         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
14681
14682 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
14683
14684         PR middle-end/48661
14685         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
14686         if TREE_TYPE (v) is non-NULL.
14687
14688         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
14689         gimple_get_virt_mehtod_for_binfo.
14690         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
14691         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
14692         callers.
14693         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
14694
14695 2011-04-18  Michael Matz  <matz@suse.de>
14696             Steve Ellcey  <sje@cup.hp.com>
14697
14698         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
14699         use its mode as source mode if it isn't VOIDmode.
14700
14701 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
14702
14703         * doc/passes.texi: Fill crossref nodes.
14704
14705 2011-04-18  Jim Meyering  <meyering@redhat.com>
14706
14707         Fix doubled-word typos in comments and strings
14708         * config/alpha/vms-unwind.h: s/for for/for/
14709         * config/arm/unwind-arm.h: Likewise.
14710         * config/microblaze/microblaze.c: Likewise.
14711         * config/sh/constraints.md: s/in in/in/
14712         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
14713
14714 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
14715
14716         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
14717         (AVX_FLOAT_MODE_P): Ditto.
14718         (AVX128_VEC_FLOAT_MODE_P): Ditto.
14719         (AVX256_VEC_FLOAT_MODE_P): Ditto.
14720         (AVX_VEC_FLOAT_MODE_P): Ditto.
14721         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
14722         (UNSPEC_MASKSTORE): Ditto.
14723         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
14724         Merge from <sse>_movmsk<ssemodesuffix> and
14725         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
14726         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
14727         iterator.
14728         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
14729         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
14730         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
14731
14732 2011-04-18  Jan Hubicka  <jh@suse.cz>
14733
14734         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
14735
14736         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
14737         (want_inline_function_called_once_p): Break out the logic from
14738         ipa_inline.
14739         (edge_badness): Ensure that profile is not misupdated.
14740         (lookup_recursive_calls): Prioritize by call frequencies.
14741         (inline_small_functions): Move program size estimates here;
14742         actually process whole queue even when unit growth has been
14743         met. (to properly compute inline_failed reasons and for the
14744         case unit size decrease.) Revisit comments on recursive inlining.
14745         (ipa_inline): Remove unit summary code; first inline hot calls
14746         of functions called once, cold calls next.
14747         (order, nnodes): Remove unused variables.
14748         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
14749         (GTFILES): Remove ipa-inline.c
14750         * sel-sched.c (fill_insns): Silence uninitialized var warning.
14751
14752 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
14753
14754         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
14755
14756 2011-04-18  Jie Zhang  <jie@codesourcery.com>
14757             Richard Earnshaw  <rearnsha@arm.com>
14758
14759         * arm.c (neon_builtin_type_bits): Remove.
14760         (typedef enum neon_builtin_mode): New.
14761         (T_MAX): Don't define.
14762         (typedef enum neon_builtin_datum): Remove bits, codes[],
14763         num_vars and base_fcode.  Add mode, code and fcode.
14764         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
14765         VAR10): Change accordingly.
14766         (neon_builtin_data[]): Change accordingly
14767         (arm_init_neon_builtins): Change accordingly.
14768         (neon_builtin_compare): Remove.
14769         (locate_neon_builtin_icode): Remove.
14770         (arm_expand_neon_builtin): Change accordingly.
14771
14772         * arm.h (enum arm_builtins): Move to ...
14773         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
14774
14775         * arm.c (arm_builtin_decl): Declare.
14776         (TARGET_BUILTIN_DECL): Define.
14777         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
14778         (arm_builtin_decls[]): New.
14779         (arm_init_neon_builtins): Store builtin declarations in
14780         arm_builtin_decls[].
14781         (arm_init_tls_builtins): Likewise.
14782         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
14783         (arm_builtin_decl): New.
14784
14785 2011-04-18  Richard Guenther  <rguenther@suse.de>
14786
14787         * tree.c (upper_bound_in_type): Build properly canonicalized
14788         INTEGER_CSTs.
14789         (lower_bound_in_type): Likewise.
14790
14791 2011-04-18  Richard Guenther  <rguenther@suse.de>
14792
14793         * gimple.h (gimple_call_addr_fndecl): New function.
14794         (gimple_call_fndecl): Use it.
14795         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
14796         for direct calls.
14797         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
14798         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
14799
14800 2011-04-18  Richard Guenther  <rguenther@suse.de>
14801
14802         PR middle-end/48650
14803         * tree.c (build_string): STRING_CST is now derived from tree_typed.
14804
14805 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
14806
14807         PR lto/48492
14808         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
14809         DECL_IN_CONSTANT_POOL without RTL.
14810
14811 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
14812             Ira Rosen  <ira.rosen@linaro.org>
14813
14814         PR target/48252
14815         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
14816         to match neon_vzip/vuzp/vtrn_internal.
14817         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
14818         outputs explicitly dependent on both inputs.
14819         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
14820
14821 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
14822
14823         PR tree-optimization/48616
14824         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
14825         whether the shift is by scalar or vector based on whether all SLP
14826         scalar stmts have the same rhs.
14827
14828 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
14829
14830         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
14831         memory operands.
14832
14833 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
14834
14835         PR target/43700
14836         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
14837         registers.
14838
14839 2011-04-17  Jan Hubicka  <jh@suse.cz>
14840
14841         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
14842         * cgrpahunit.c (cgraph_finalize_function): Do not set
14843         finalized_by_frontend.
14844         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
14845         finalized_by_frontend.
14846
14847 2011-04-17  Jan Hubicka  <jh@suse.cz>
14848
14849         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
14850         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
14851         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
14852         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
14853         method.
14854         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
14855         gimple-fold.c
14856         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
14857
14858 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
14859
14860         PR lto/48538
14861         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
14862         is non-null before accessing it.
14863         (input_cgraph): Remove trailing spaces.
14864
14865 2011-04-17  Revital Eres  <revital.eres@linaro.org>
14866
14867         * params.def (sms-min-sc): New param flag.
14868         * modulo-sched.c (sms_schedule): Use it.
14869         * doc/invoke.texi (sms-min-sc): Document it.
14870
14871 2011-04-17  Jan Hubicka  <jh@suse.cz>
14872
14873         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
14874         present, also set gimple_call_set_cannot_inline.
14875         * ipa-inline.c: Update toplevel comment.
14876         (MAX_TIME): Remove.
14877         (cgraph_clone_inlined_nodes): Fix linebreaks.
14878         (cgraph_check_inline_limits): Restructure to ...
14879         (caller_growth_limits): ... this one; be more tolerant
14880         on growth in nested inline chains; add explanatory comment;
14881         fix stack accounting thinko introduced by previous patch.
14882         (cgraph_default_inline_p): Remove.
14883         (report_inline_failed_reason): New function.
14884         (can_inline_edge_p): New function.
14885         (can_early_inline_edge_p): New function.
14886         (leaf_node_p): Move upwards in file.
14887         (want_early_inline_function_p): New function.
14888         (want_inline_small_function_p): New function.
14889         (want_inline_self_recursive_call_p): New function.
14890         (cgraph_edge_badness): Rename to ...
14891         (edge_badness) ... this one; fix linebreaks.
14892         (update_edge_key): Update call of edge_baddness; add
14893         detailed dump about queue updates.
14894         (update_caller_keys): Use can_inline_edge_p and
14895         want_inline_small_function_p.
14896         (cgraph_decide_recursive_inlining): Rename to...
14897         (recursive_inlining): Use can_inline_edge_p and
14898         want_inline_self_recursive_call_p; simplify and remove no longer
14899         valid FIXME.
14900         (cgraph_set_inline_failed): Remove.
14901         (add_new_edges_to_heap): Use can_inline_edge_p and
14902         want_inline_small_function_p.
14903         (cgraph_decide_inlining_of_small_functions): Rename to ...
14904         (inline_small_functions): ... this one; cleanup; use
14905         can/want predicates; cleanup debug ouput; work edges till fibheap
14906         is exhausted and do not stop once unit growth is reached; remove
14907         later loop processing remaining edges.
14908         (cgraph_flatten): Rename to ...
14909         (flatten_function): ... this one; use can_inline_edge_p
14910         and can_early_inline_edge_p predicates.
14911         (cgraph_decide_inlining): Rename to ...
14912         (ipa_inline): ... this one; remove unreachable nodes before
14913         inlining functions called once; simplify the pass.
14914         (cgraph_perform_always_inlining): Rename to ...
14915         (inline_always_inline_functions): ... this one; use
14916         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
14917         (cgraph_decide_inlining_incrementally): Rename to ...
14918         (early_inline_small_functions): ... this one; simplify
14919         using new predicates; cleanup; make dumps prettier.
14920         (cgraph_early_inlining): Rename to ...
14921         (early_inliner): newer inline regular functions into always-inlines;
14922         fix updating of call stmt summaries.
14923         (pass_early_inline): Update for new names.
14924         (inline_transform): Fix formating.
14925         (gate_cgraph_decide_inlining): Rename to ...
14926         (pass_ipa_inline): ... this one.
14927         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
14928         * ipa-inline-analysis.c (dump_inline_summary): Update.
14929         (compute_inline_parameters): Do not compute disregard_inline_limits;
14930         look for mismatching arguments.
14931         (estimate_growth): Fix handlig of non-trivial self recursion.
14932         (inline_read_summary): Do not read info->disregard_inline_limits.
14933         (inline_write_summary): Do not write info->disregard_inline_limits.
14934         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
14935         and move all checks into can_inline_edge_p predicate; re-enable code
14936         comparing optimization levels.
14937         (expand_call_inline): Do not test inline_forbidden_into_p.
14938         * Makefile.in (ipa-inline.o): Update arguments.
14939
14940 2011-04-17  Revital Eres  <revital.eres@linaro.org>
14941
14942         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
14943
14944 2011-04-17  Revital Eres  <revital.eres@linaro.org>
14945
14946         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
14947
14948 2011-04-17  Michael Matz  <matz@suse.de>
14949
14950         PR tree-optimization/48622
14951         PR lto/48645
14952         * ipa-inline-analysis.c (inline_read_summary): Read size/time
14953         in same order as they're written.
14954
14955 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14956
14957         * config/pa/predicates.md: Reorganize and simplify predicates.
14958         Eliminate duplicate code checks.
14959         (arith_operand): Rename to arith14_operand
14960         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
14961         * config/pa/pa.md: Use renamed operands.
14962         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
14963         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
14964         arith11_operand, adddi3_operand, indexed_memory_operand,
14965         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
14966         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
14967         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
14968         move_dest_operand, move_src_operand, prefetch_cc_operand,
14969         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
14970         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
14971         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
14972         div_operand, int5_operand, movb_comparison_operator,
14973         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
14974         arith_double_operand, ireg_operand, lhs_lshift_operand,
14975         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
14976         integer_store_memory_operand): Likewise.
14977         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
14978         (integer_store_memory_operand, read_only_operand,
14979         function_label_operand, borx_reg_operand,
14980         non_hard_reg_operand): Likewise.
14981         (eq_neq_comparison_operator): Delete unused operator.
14982         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
14983         function_label_operand.
14984         (emit_move_sequence): Likewise.
14985
14986 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
14987
14988         * config/i386/sse.md (sseunpackmode): New mode attribute.
14989         (ssepackmode): Ditto.
14990         (vec_pack_trunc_<mode>): Macroize expander from
14991         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
14992         (vec_unpacks_lo_<mode>): Macroize expander from
14993         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
14994         (vec_unpacks_hi_<mode>): Macroize expander from
14995         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
14996         (vec_unpacku_lo_<mode>): Macroize expander from
14997         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
14998         (vec_unpacku_hi_<mode>): Macroize expander from
14999         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
15000         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
15001         ix86_expand_sse4_unpack.
15002         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
15003
15004 2011-04-16  Jan Hubicka  <jh@suse.cz>
15005
15006         * cgraphbuild.c: Include ipa-inline.h.
15007         (reset_inline_failed): Use initialize_inline_failed.
15008         * cgraph.c: Include ipa-inline.h.
15009         (cgraph_create_node_1): Do not initialize estimated_growth.
15010         (initialize_inline_failed): More to ipa-inline-analysis.c
15011         (dump_cgraph_node): Do not dump inline flags.
15012         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
15013         and disregard_inline_limits flags.
15014         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
15015         time, size, estimated_growth.
15016         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
15017         Update.
15018         * cgraphunit.c (cgraph_decide_is_function_needed): Use
15019         DECL_DISREGARD_INLINE_LIMITS.
15020         (cgraph_analyze_function): Do not initialize
15021         node->local.disregard_inline_limits.
15022         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
15023         inlinable, versionable and disregard_inline_limits.
15024         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
15025         cgraph_check_inline_limits, cgraph_default_inline_p,
15026         cgraph_edge_badness, update_caller_keys, update_callee_keys,
15027         add_new_edges_to_heap): Update.
15028         (cgraph_decide_inlining_of_small_function): Update; set
15029         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
15030         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
15031         cgraph_decide_inlining_incrementally): Update.
15032         * ipa-inline.h (inline_summary): Add inlinable, versionable,
15033         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
15034         time, size and estimated_growth parameters.
15035         (estimate_edge_growth): Update.
15036         (initialize_inline_failed): Declare.
15037         * ipa-split.c: Include ipa-inline.h
15038         (execute_split_functions): Update.
15039         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
15040         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
15041         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
15042         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
15043         estimated_growth to INT_MIN.
15044         (inline_node_duplication_hook): Likewise.
15045         (dump_inline_summary): Dump new fields.
15046         (compute_inline_parameters): Update.
15047         (estimate_edge_time, estimate_time_after_inlining,
15048         estimate_size_after_inlining, estimate_growth, inline_read_summary,
15049         inline_write_summary):
15050         (initialize_inline_failed): Move here from cgraph.c.
15051         * tree-sra.c: Include ipa-inline.h.
15052         (ipa_sra_preliminary_function_checks): Update.
15053         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
15054         ipa-inline.h.
15055
15056 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
15057
15058         * config/i386/sse.md (V16): New mode iterator.
15059         (VI1, VI8): Ditto.
15060         (AVXMODEQI, AVXMODEDI): Remove.
15061         (sse2, sse3): New mode attribute.
15062         (mov<mode>): Use V16 mode iterator.
15063         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
15064         (push<mode>1): Use V16 mode iterator.
15065         (movmisalign<mode>): Ditto.
15066         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
15067         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
15068         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
15069         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
15070         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
15071         avx_movdqu<avxmodesuffix>.
15072         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
15073         *avx_movdqu<avxmodesuffix>.
15074         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
15075         avx_lddqu<avxmodesuffix>.
15076         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
15077         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
15078         avx_movnt<AVXMODEDI:mode>.
15079         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
15080         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
15081
15082 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
15083
15084         PR target/48629
15085         * haifa-sched.c (prune_ready_list, schedule_block): Use
15086         sched_pressure_p rather than flag_sched_pressure.
15087
15088 2011-04-15  Pat Haugen  <pthaugen@us.ibm.com>
15089
15090         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
15091         cgraph_get_node instead of cgraph_get_create_node.
15092
15093 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
15094
15095         * cfgexpand.c (expand_debug_expr): Use
15096         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
15097
15098 2011-04-15  Michael Matz  <matz@suse.de>
15099
15100         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
15101         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
15102         * function.c (gimplify_parameters): Ditto.
15103         * gimplify.c (gimplify_vla_decl): Ditto.
15104
15105         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
15106         (gimple_call_set_alloca_for_var): New inline function.
15107         (gimple_call_alloca_for_var_p): Ditto.
15108         * gimple.c (gimple_build_call_from_tree): Remember
15109         CALL_ALLOCA_FOR_VAR_P state.
15110         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
15111
15112         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
15113         calls if they were for VLA objects.
15114
15115 2011-04-15  Martin Jambor  <mjambor@suse.cz>
15116
15117         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
15118         of ADR_EXPRs.
15119
15120 2011-04-15  Martin Jambor  <mjambor@suse.cz>
15121
15122         PR middle-end/48601
15123         * tree-emutls.c (lower_emutls_function_body): Call
15124         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
15125         result is non-NULL.
15126
15127 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
15128
15129         * c-decl.c (detect_field_duplicates): Call
15130         objc_detect_field_duplicates instead of objc_get_interface_ivars.
15131
15132 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
15133
15134         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
15135         * gimple.c (gimple_asm_clobbers_memory_p): Define.
15136         * ipa-pure-const.c (check_stmt): Call it.
15137         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
15138
15139 2011-04-15  Richard Guenther  <rguenther@suse.de>
15140
15141         PR tree-optimization/48290
15142         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
15143         Properly decide inhibiting propagation based on the valueized
15144         operand.  Do loop-closed SSA form preserving here ...
15145         (init_copy_prop): ... not here.
15146
15147 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
15148
15149         PR target/48612
15150         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
15151         (*ieee_smax<mode>3): Likewise.
15152
15153 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15154
15155         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
15156         Replace match_operand with match_dup for the third operand in
15157         these expanders.
15158
15159 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
15160
15161         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
15162         to track processing of conditionals.  Update all callers.
15163         (try_combine, simplify_if_then_else): Update.
15164
15165 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
15166
15167         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
15168         -fsched-pressure.
15169
15170 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
15171
15172         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
15173         instead of match_operand for operand 3.
15174
15175 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
15176
15177         * recog.h (insn_operand_data): Add an "allows_mem" field.
15178         * genoutput.c (output_operand_data): Initialize it.
15179         * optabs.c (maybe_legitimize_operand_same_code): New function.
15180         (maybe_legitimize_operand): Use it when matching the original
15181         op->value.
15182
15183 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
15184
15185         * gimplify.c: Fix issues in comments throughout.
15186         (voidify_wrapper_expr): Fix long line.
15187         (build_stack_save_restore): Likewise.
15188         (gimplify_loop_expr): Likewise.
15189         (gimplify_compound_lval): Likewise.
15190         (gimplify_init_ctor_eval): Likewise.
15191         (gimplify_modify_expr_rhs): Likewise.
15192         (omp_notice_threadprivate_variable): Likewise.
15193
15194 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
15195
15196         * cfgexpand.c (expand_call_stmt): Convert the function type to the
15197         original one if this is not a builtin function.
15198
15199 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
15200
15201         PR target/48605
15202         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
15203         offset it as needed based on top 2 bits in operands[3], change
15204         MEM mode to SFmode and mask those 2 bits away from operands[3].
15205
15206 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
15207
15208         * c-parser.c (c_parser_objc_protocol_definition): Updated for
15209         change from objc_declare_protocols() to objc_declare_protocol().
15210
15211 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
15212
15213         * config/i386/sse.md (sse4_1): New mode attribute.
15214         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
15215         avx_blend<ssemodesuffix><avxmodesuffix> and
15216         sse4_1_blend<ssemodesuffix> using VF mode iterator.
15217         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
15218         avx_blendv<ssemodesuffix><avxmodesuffix> and
15219         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
15220         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
15221         avx_dp<ssemodesuffix><avxmodesuffix> and
15222         sse4_1_dp<ssemodesuffix> using VF mode iterator.
15223         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
15224         (sse4_1_packusdw): Merge with *avx_packusdw.
15225         (sse4_1_pblendvb): Merge with *avx_pblendvb.
15226         (sse4_1_pblendw): Merge with *avx_pblendw.
15227         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
15228         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
15229         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
15230         VF mode iterator.
15231         (sse4_1_round<ssescalarmodesuffix>): Merge with
15232         *avx_round<ssescalarmodesuffix>.
15233         (aesenc): Merge with *avx_aesenc.
15234         (aesenclast): Merge with *avx_aesenclast.
15235         (aesdec): Merge with *avx_aesdec.
15236         (aesdeclast): Merge with *avx_aesdeclast.
15237         (pclmulqdq): Merge with *pclmulqdq.
15238         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
15239         New predicate.
15240         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
15241
15242 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
15243
15244         PR middle-end/48608
15245         * cfgexpand.c (get_decl_align_unit): Renamed to ...
15246         (align_local_variable): This.  Update DECL_ALIGN.
15247         (add_stack_var): Updated.
15248         (expand_one_stack_var): Likewise.
15249
15250 2011-04-14  Richard Guenther  <rguenther@suse.de>
15251
15252         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
15253         Remove.
15254         (dse_initialize_block_local_data, dse_leave_block,
15255         record_voperand_set, get_stmt_uid): Likewise.
15256         (dse_possible_dead_store_p): Allow any kind of killing stmt.
15257         (dse_optimize_stmt): Remove voperand set handling code.
15258         Simplify and improve to handle any kind of killing stmt.
15259         (dse_record_phi): Remove.
15260         (dse_enter_block): Simplify.
15261         (tree_ssa_dse): Likewise.
15262         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
15263
15264 2011-04-14  Jan Hubicka  <jh@suse.cz>
15265
15266         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
15267         * cgraph.h (struct inline_summary): Move to ipa-inline.h
15268         (cgraph_local_info): Remove inline_summary.
15269         * ipa-cp.c: Include ipa-inline.h.
15270         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
15271         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
15272         accesor.
15273         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
15274         (input_overwrite_node): Do not set inline summary.
15275         (input_node): Do not stream inline summary.
15276         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
15277         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
15278         growth; we do not have inline parameters computed for that anyway.
15279         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
15280         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
15281         (inline_summary_t): New type and VECtor.
15282         (debug_inline_summary, dump_inline_summaries): Declare.
15283         (inline_summary): Use VOCtor.
15284         (estimate_edge_growth): Kill hack computing call stmt size directly.
15285         * lto-section-in.c (lto_section_name): Add inline section.
15286         * ipa-inline-analysis.c: Include lto-streamer.h
15287         (node_removal_hook_holder, node_duplication_hook_holder): New holders
15288         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
15289         (inline_summary_vec): Define.
15290         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
15291         dump_inline_summaries): New functions.
15292         (estimate_function_body_sizes): Properly compute size/time of outgoing
15293         calls.
15294         (compute_inline_parameters): Alloc inline_summary; do not compute
15295         size/time of incomming calls.
15296         (estimate_edge_time): Avoid missing time summary hack.
15297         (inline_read_summary): Read inline summary info.
15298         (inline_write_summary): Write inline summary info.
15299         (inline_free_summary): Free all hooks and inline summary vector.
15300         * lto-streamer.h: Add LTO_section_inline_summary section.
15301         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
15302         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
15303
15304 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
15305
15306         * tree-vectorizer.h (vect_strided_store_supported): Add a
15307         HOST_WIDE_INT argument.
15308         (vect_strided_load_supported): Likewise.
15309         (vect_permute_store_chain): Return void.
15310         (vect_transform_strided_load): Likewise.
15311         (vect_permute_load_chain): Delete.
15312         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
15313         count argument.  Check that the count is a power of two.
15314         (vect_strided_load_supported): Likewise.
15315         (vect_permute_store_chain): Return void.  Update after above changes.
15316         Assert that the access is supported.
15317         (vect_permute_load_chain): Likewise.
15318         (vect_transform_strided_load): Return void.
15319         * tree-vect-stmts.c (vectorizable_store): Update calls after
15320         above interface changes.
15321         (vectorizable_load): Likewise.
15322         (vect_analyze_stmt): Don't check for strided powers of two here.
15323
15324 2011-04-14  Richard Guenther  <rguenther@suse.de>
15325
15326         PR tree-optimization/48590
15327         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
15328         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
15329         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
15330         BUILT_IN_STACK_SAVE.
15331         * tree-ssa-dce.c (propagate_necessity): Handle
15332         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
15333
15334 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
15335
15336         * c-parser.c (c_parser_objc_class_declaration): Updated call to
15337         objc_declare_class.
15338
15339 2011-04-14  Richard Guenther  <rguenther@suse.de>
15340
15341         * tree.h (get_object_alignment_1): Declare.
15342         * builtins.c (get_object_alignment_1): Split out worker from ...
15343         (get_object_alignment): ... here.
15344         * fold-const.c (get_pointer_modulus_and_residue): Use
15345         get_object_alignment_1.
15346
15347 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
15348
15349         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
15350         type parameter.
15351         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
15352         parameter.  Generalise code to handle arrays as well as vectors.
15353         (vect_setup_realignment): Update accordingly.
15354         * tree-vect-stmts.c (vectorizable_store): Likewise.
15355         (vectorizable_load): Likewise.
15356
15357 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
15358
15359         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
15360         within the per-copy loop.
15361
15362 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
15363
15364         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
15365         in the dump file.
15366
15367 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
15368
15369         * doc/options.texi (Negative): Explicitly mention that the
15370         Negative chain must be circular.
15371
15372 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
15373
15374         * function.h (block_chainon): Declare.
15375         * function.c (block_chainon): Define.
15376
15377 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
15378             Eric Weddington  <eric.weddington@atmel.com>
15379             Georg-Johann Lay  <avr@gjlay.de>
15380
15381         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
15382         New Includes
15383         (avr_init_builtins, avr_expand_builtin,
15384         avr_expand_delay_cycles, avr_expand_unop_builtin,
15385         avr_expand_binop_builtin ): New functions.
15386         (avr_builtin_id): New enum
15387         (struct avr_builtin_description): New struct
15388         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
15389         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
15390
15391         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
15392         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
15393         UNSPECV_DELAY_CYCLES): new enumeration values
15394         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
15395         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
15396         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
15397         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
15398         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
15399         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
15400         "fmulsu"): New insns
15401
15402         * config/avr/avr-c.c: fix line endings
15403         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
15404         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
15405         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
15406         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
15407         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
15408
15409         * doc/extend.texi (AVR Built-in Functions): New node
15410         (Target Builtins): Add documentation of AVR
15411         built-in functions.
15412
15413 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
15414
15415         PR target/44643
15416         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
15417         alone. Error if non-const data has attribute progmem.
15418
15419 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
15420
15421         * tree.h (struct tree_constructor): Include tree_typed instead of
15422         tree_common.
15423         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
15424         TS_TYPED instead of TS_COMMON.
15425
15426 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
15427
15428         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
15429         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
15430         (sse2_psadbw): Merge with *avx_psadbw.
15431         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
15432         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
15433         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
15434         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
15435         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
15436         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
15437         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
15438         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
15439         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
15440         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
15441         (ssse3_palignrti): Merge with *avx_palignrti.
15442
15443 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
15444
15445         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
15446         * tree-ssanames.c (fini_ssanames): VEC_free it.
15447         (make_ssa_name_fn): Update for VECness of free_ssanames.
15448         (release_ssa_name, release_dead_ssa_names): Likewise.
15449         * tree.h (struct tree_ssa_name): Include tree_typed instead of
15450         tree_common.
15451         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
15452         TS_TYPED instead of TS_COMMON.
15453
15454 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
15455
15456         * postreload-gcse.c (gcse_after_reload_main): Add calls to
15457         statistics_counter_event.
15458         * tree-ssa-copyrename.c (stats): Define.
15459         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
15460         statistics_counter_event.
15461         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
15462         (bswap_stats, widen_mul_stats): Define.
15463         (insert_reciprocals): Increment rdivs_inserted.
15464         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
15465         rfuncs_inserted.  Add calls to statistics_counter_event.
15466         (execute_cse_sincos_1): Increment inserted.
15467         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
15468         statistics_counter_event.
15469         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
15470         of bswap_stats.  Add calls to statistics_counter_event.
15471         (convert_mult_to_widen): Increment widen_mults_inserted.
15472         (convert_plusminus_to_widen): Increment maccs_inserted.
15473         (convert_mult_to_fma): Increment fmas_inserted.
15474         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
15475         calls to statistics_counter_event.
15476
15477 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
15478
15479         PR rtl-optimization/48455
15480         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
15481         `temp_costs->mem_cost'.
15482
15483 2011-04-13  Jan Hubicka  <jh@suse.cz>
15484
15485         * ipa-inline.h: New file.
15486         * ipa-inline-analysis.c: New file. Broken out of ...
15487         * ipa-inline.c: ... this file; update toplevel comment;
15488         include ipa-inline.h
15489         (inline_summary): Move to ipa-inline.h
15490         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
15491         ipa-inline-analysis.c.
15492         (cgraph_estimate_time_after_inlining): Rename to
15493         estiamte_time_after_inlining; move to ipa-inline-analysis.c
15494         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
15495         to estimate_edge_growth.
15496         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
15497         rename to estimate_size_after_inlining.
15498         (cgraph_mark_inline_edge): Update for new naming convention.
15499         (cgraph_check_inline_limits): Likewise.
15500         (cgraph_edge_badness): Likewise.
15501         (cgraph_decide_recursive_inlining): Likewise.
15502         (cgraph_decide_inlining_of_small_functions): Likewise.
15503         (cgraph_decide_inlining_incrementally): Likewise.
15504         (cgraph_estimate_growth): Rename to estimate_growth; move to
15505         ipa-inline-analysis.c.
15506         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
15507         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
15508         (compute_inline_parameters): Likewise.
15509         (compute_inline_parameters_for_current): Likewise.
15510         (pass_inline_parameters): Likewise.
15511         (inline_indirect_intraprocedural_analysis): Likewise.
15512         (analyze_function): Rename to inline_analyze_function; likewise.
15513         (add_new_function): Move to ipa-inline-analysis.c.
15514         (inline_generate_summary): Likewise.
15515         (inline_read_summary): Likewise.
15516         (inline_write_summary): Likewise.
15517         * Makefile.in (ipa-inline-analysis.c): New file.
15518
15519 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15520
15521         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
15522         * configure: Regenerate.
15523
15524 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
15525
15526         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
15527         instead of tree_common.
15528         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
15529         Likewise.
15530         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
15531         TS_TYPED rather than TS_COMMON.
15532         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
15533
15534 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
15535
15536         PR target/45263
15537         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
15538         r20 around calls of __tablejump_elpm__
15539
15540 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
15541
15542         PR middle-end/48591
15543         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
15544         NULL.
15545         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
15546
15547 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
15548
15549         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
15550         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
15551         (cfi_vec): New typedef.
15552         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
15553         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
15554         (cie_cfi_vec): New static variable.
15555         (cie_cfi_head): Delete.
15556         (add_cfi): Accept a cfi_vec * as first argument. All callers and
15557         declaration changed. Use vector rather than list operations.
15558         (new_cfi): Don't initialize the dw_cfi_next field.
15559         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
15560         rather than list operations.
15561         (lookup_cfa): Use vector rather than list operations.
15562         (output_cfis): New argument upto. Accept a cfi_vec rather than
15563         a dw_cfi_ref list head as argument. All callers changed.
15564         Iterate over the vector using upto as a maximum index.
15565         (output_all_cfis): New static function.
15566         (output_fde): Use vector rather than list operations. Use the
15567         new upto argument for output_cfis rather than manipulating a
15568         list.
15569         (dwarf2out_begin_prologue): Change initializations to match
15570         new struct members.
15571         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
15572         from the vector length rather than searching for the end of a list.
15573         Use output_all_cfis.
15574         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
15575
15576 2011-04-13  Nick Clifton  <nickc@redhat.com>
15577
15578         * config/rx/rx.md (movmemsi): Do not use this pattern when
15579         volatile pointers are involved.
15580
15581 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
15582
15583         * config/i386/sse.md (pinsrbits): Remove.
15584         (sse2_packsswb): Merge with *avx_packsswb.
15585         (sse2_packssdw): Merge with *avx_packssdw.
15586         (sse2_packuswb): Merge with *avx_packuswb.
15587         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
15588         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
15589         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
15590         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
15591         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
15592         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
15593         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
15594         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
15595         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
15596         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
15597         (sse2_loadld): Merge with *avx_loadld.
15598         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
15599         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
15600         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
15601         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
15602         (vec_concatv2di): Merge with *vec_concatv2di_avx.
15603
15604 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
15605
15606         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
15607         calling TREE_CHAIN.
15608         * print-tree.c (print_node): Likewise.
15609         * tree-inline.c (copy_tree_r): Likewise.
15610         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
15611         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
15612         instead of TS_COMMON.
15613         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
15614         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
15615         (copy_node_stat): Zero TREE_CHAIN only if necessary.
15616         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
15617         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
15618         ...and these...
15619         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
15620         * tree.h: ...here.
15621         (TREE_CHAIN): Check for a TS_COMMON structure.
15622         (TREE_TYPE): Check for a TS_TYPED structure.
15623
15624 2011-04-12  Pat Haugen  <pthaugen@us.ibm.com>
15625
15626         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
15627         cgraph_get_create_node instead of cgraph_node.
15628
15629 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
15630
15631         * c-parser.c (c_parser_initelt): Updated call to
15632         objc_build_message_expr.
15633         (c_parser_postfix_expression): Likewise.
15634
15635 2011-04-12  Kai Tietz  <ktietz@redhat.com>
15636
15637         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
15638         MASK_MS_BITFIELD_LAYOUT bit.
15639
15640 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
15641
15642         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
15643         assert it is always true.
15644         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
15645         moves.
15646
15647 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
15648
15649         * c-parser.c (c_lex_one_token): Rewritten conditional used when
15650         compiling Objective-C to be more efficient.
15651
15652 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
15653
15654         * opts-common.c (decode_cmdline_options_to_array): Remove variable
15655         argv_copied.
15656
15657 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
15658
15659         * recog.h, genoutput.c, optabs.c: Revert last patch.
15660
15661 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
15662
15663         PR target/48090
15664         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
15665
15666 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
15667
15668         * recog.h (insn_operand_data): Add an "allows_mem" field.
15669         * genoutput.c (output_operand_data): Initialize it.
15670         * optabs.c (maybe_legitimize_operand_same_code): New function.
15671         (maybe_legitimize_operand): Use it when matching the original
15672         op->value.
15673
15674 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
15675
15676         * genpreds.c (process_define_predicate): Move most processing
15677         to gensupport.c.  Continue to validate the expression.
15678         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
15679         (process_define_predicate): Move processing to gensupport.c.
15680         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
15681         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
15682         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
15683         argument.
15684         (valid_predicate_name_p): New function, split out from old
15685         genpreds.c:process_define_predicate.
15686         (process_define_predicate): New function, combining code from
15687         old genpreds.c and genrecog.c functions.
15688         (process_rtx): Call it for DEFINE_PREDICATE and
15689         DEFINE_SPECIAL_PREDICATE.
15690
15691 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
15692
15693         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
15694         size of a '%A' memory reference.
15695         (T_DREG, T_QREG): New neon_builtin_type_bits.
15696         (arm_init_neon_builtins): Assert that the load and store operands
15697         are neon_struct_operands.
15698         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
15699         (NEON_ARG_MEMORY): New builtin_arg.
15700         (neon_dereference_pointer): New function.
15701         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
15702         Handle NEON_ARG_MEMORY.
15703         (arm_expand_neon_builtin): Update after above interface changes.
15704         Use NEON_ARG_MEMORY for loads and stores.
15705         * config/arm/predicates.md (neon_struct_operand): New predicate.
15706         * config/arm/iterators.md (V_two_elem): Tweak formatting.
15707         (V_three_elem): Use BLKmode for accesses that have no associated mode.
15708         (V_four_elem): Tweak formatting.
15709         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
15710         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
15711         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
15712         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
15713         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
15714         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
15715         (neon_vst4<mode>): Replace pointer operand with a memory operand.
15716         Use %A in the output template.
15717         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
15718         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
15719         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
15720         the width of the memory access.  Remove post-increment.
15721         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
15722
15723 2011-04-12  Nick Clifton  <nickc@redhat.com>
15724
15725         * config/v850/v850.c (expand_prologue): Do not use the CALLT
15726         instruction for interrupt handlers if the target is the basic V850
15727         architecture.
15728         (expand_epilogue): Likewise.
15729
15730 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
15731
15732         PR rtl-optimization/48549
15733         * combine.c (propagate_for_debug): Also stop after BB_END of
15734         this_basic_block.  Process LAST and just stop processing after it.
15735         (combine_instructions): If last_combined_insn has been deleted,
15736         set last_combined_insn to its PREV_INSN.
15737
15738 2011-04-12  Richard Guenther  <rguenther@suse.de>
15739
15740         PR tree-optimization/46076
15741         * gimple.h (struct gimple_statement_call): Add fntype field.
15742         (gimple_call_fntype): Adjust.
15743         (gimple_call_set_fntype): New function.
15744         * gimple.c (gimple_build_call_1): Set the call function type.
15745         * gimplify.c (gimplify_call_expr): Preserve the function
15746         type the frontend used for the call.
15747         (gimplify_modify_expr): Likewise.
15748         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
15749         function type.
15750         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
15751         function type.
15752         * tree-ssa.c (useless_type_conversion_p): Function pointer
15753         conversions are useless.
15754
15755 2011-04-12  Martin Jambor  <mjambor@suse.cz>
15756
15757         * cgraph.h (cgraph_node): Remove function declaration.
15758         (cgraph_create_node): Declare.
15759         (cgraph_get_create_node): Likewise.
15760         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
15761         Updated all callers.
15762         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
15763         the decl does not already exist.  Call cgraph_get_create_node instead
15764         of cgraph_node.
15765         (cgraph_get_create_node): New function.
15766         (cgraph_same_body_alias): Update comment.
15767         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
15768         assert it does not return NULL.
15769         (cgraph_update_edges_for_call_stmt): Likewise.
15770         (cgraph_clone_edge): Likewise.
15771         (cgraph_create_virtual_clone): Likewise.
15772         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
15773         instead of cgraph_node.
15774         (cgraph_add_new_function): Call cgraph_create_node or
15775         cgraph_get_create_node instead of cgraph_node.
15776         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
15777         instead of cgraph_node.
15778         (record_eh_tables): Likewise.
15779         (mark_address): Likewise.
15780         (mark_load): Likewise.
15781         (build_cgraph_edges): Call cgraph_get_create_node instead
15782         of cgraph_node.
15783         (rebuild_cgraph_edges): Likewise.
15784         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
15785         instead of cgraph_node.
15786         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
15787         cgraph_node.
15788         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
15789         cgraph_create_node instead of cgraph_node.
15790         * c-decl.c (finish_function): Call cgraph_get_create_node instead
15791         of cgraph_node.
15792         * lto-cgraph.c (input_node): Likewise.
15793         * lto-streamer-in.c (input_function): Likewise.
15794         * varasm.c (mark_decl_referenced): Likewise.
15795         (assemble_alias): Likewise.
15796
15797 2011-04-12  Martin Jambor  <mjambor@suse.cz>
15798
15799         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
15800         instead of cgraph_node and assert it does not return NULL.
15801         * lto-streamer-in.c (lto_read_body): Likewise.
15802         * omp-low.c (new_omp_context): Likewise.
15803         (create_task_copyfn): Likewise.
15804         * tree-emutls.c (lower_emutls_function_body): Likewise.
15805         * matrix-reorg.c (transform_allocation_sites): Likewise.
15806
15807 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
15808
15809         PR c/48552
15810         * c-typeck.c (build_asm_expr): Error out on attempts to use
15811         void type outputs or inputs for constraints that allow reg or
15812         don't allow memory.
15813
15814 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
15815             Richard Earnshaw  <rearnsha@arm.com>
15816
15817         PR target/48250
15818         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
15819         to use sign-magnitude offsets. Reject unsupported unaligned
15820         cases. Add detailed description in comments.
15821         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
15822         condition from TARGET_32BIT to TARGET_ARM.
15823
15824 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
15825
15826         * tree.h (struct typed_tree): New.
15827         (struct tree_common): Include it instead of tree_base.
15828         (TREE_TYPE): Update for new location of type field.
15829         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
15830         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
15831         (union tree_node): Add typed field.
15832         * treestruct.def (TS_TYPED): New.
15833         * lto-streamer.c (check_handled_ts_structures): Handle it.
15834         * tree.c (MARK_TS_TYPED): New macro.
15835         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
15836
15837 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
15838
15839         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
15840         (force_nonfallthru): Do not alter the loop nest if no basic block
15841         was created.
15842
15843 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
15844
15845         * config/i386/sse.md (VI): New mode iterator.
15846         (SSEMODEI): Remove.
15847         (AVX256MODEI): Ditto.
15848         (AVXMODEF4P): Ditto.
15849         (avxvecpsmode): Ditto.
15850         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
15851         (sse2_andnot<mode>3): New expander.
15852         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
15853         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
15854         (<any_logic:code><mode>3): Use VI mode iterator.
15855         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
15856         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
15857         (*andnottf3): Handle AVX three-operand constraints.
15858         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
15859
15860 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
15861             Robert Millan  <rmh@gnu.org>
15862
15863         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
15864         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
15865         GNU_USER_DYNAMIC_LINKER64): Define.
15866         (REG_NAME): Don't undefine.
15867         (MD_UNWIND_SUPPORT): Undefine.
15868         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
15869         (REG_NAME): Don't undefine.
15870         (MD_UNWIND_SUPPORT): Undefine.
15871         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
15872
15873 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
15874
15875         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
15876         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
15877
15878 2011-04-11  Xinliang David Li  <davidxl@google.com>
15879
15880         * value-profile.c (check_ic_target): New function.
15881         (gimple_ic_transform): Sanity check indirect call target.
15882         * gimple-low.c (gimple_check_call_args): Interface change.
15883         (gimple_check_call_matching_types): New function.
15884         * tree-inline.c (tree_can_inline_p): Call new function.
15885
15886 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
15887
15888         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
15889         tree-pretty-print.h & realmpfr.h.
15890
15891 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
15892
15893         PR middle-end/48464
15894         * ira.c (setup_pressure_classes): Fix typo in loop condition.
15895         (setup_allocno_and_important_classes): Ditto.
15896
15897 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
15898
15899         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
15900         GNU_USER_DYNAMIC_LINKER.
15901         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
15902         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15903         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
15904         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
15905         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
15906         GNU_USER_TARGET_OS_CPP_BUILTINS.
15907         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
15908         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15909         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
15910         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15911         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
15912         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
15913         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
15914         GNU_USER_TARGET_OS_CPP_BUILTINS.
15915         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
15916         GNU_USER_DYNAMIC_LINKER.
15917         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
15918         GNU_USER_TARGET_OS_CPP_BUILTINS.
15919         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
15920         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15921         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
15922         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15923         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
15924         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
15925         GNU_USER_DYNAMIC_LINKER64): Remove.
15926         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
15927         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15928         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
15929         GNU_USER_DYNAMIC_LINKER.
15930         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
15931         GNU_USER_TARGET_OS_CPP_BUILTINS.
15932         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
15933         GNU_USER_TARGET_OS_CPP_BUILTINS.
15934         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
15935         to GNU_USER_TARGET_OS_CPP_BUILTINS.
15936         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
15937         GNU_USER_TARGET_OS_CPP_BUILTINS.
15938         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
15939         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
15940         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
15941         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
15942         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15943         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
15944         GNU_USER_DYNAMIC_LINKER.
15945         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
15946         GNU_USER_TARGET_OS_CPP_BUILTINS.
15947         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
15948         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15949         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
15950         GNU_USER_DYNAMIC_LINKER.
15951         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
15952         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15953         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
15954         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15955         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
15956         GNU_USER_DYNAMIC_LINKER.
15957         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
15958         GNU_USER_DYNAMIC_LINKERN32.
15959         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
15960         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
15961         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
15962         GNU_USER_DYNAMIC_LINKER32.
15963         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
15964         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15965         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
15966         GNU_USER_DYNAMIC_LINKER.
15967         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
15968         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15969         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
15970         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15971         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
15972         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
15973         GNU_USER_DYNAMIC_LINKER32.
15974         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
15975         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
15976         GNU_USER_DYNAMIC_LINKER.
15977         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
15978         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15979         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
15980         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
15981         GNU_USER_DYNAMIC_LINKER64.
15982         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
15983         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15984         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
15985         GNU_USER_DYNAMIC_LINKER.
15986         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
15987         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15988         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
15989         GNU_USER_DYNAMIC_LINKER.
15990         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
15991         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15992         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
15993         GNU_USER_DYNAMIC_LINKER32.
15994         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
15995         GNU_USER_DYNAMIC_LINKER64.
15996         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
15997         GNU_USER_DYNAMIC_LINKER64.
15998         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
15999         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
16000         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
16001         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
16002         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
16003
16004 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
16005
16006         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
16007         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
16008         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
16009         GNU_USER_DYNAMIC_LINKER.
16010         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
16011         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
16012         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
16013         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
16014         GNU_USER_DYNAMIC_LINKER64.
16015         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
16016         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
16017         GNU_USER_LINK_EMULATION.
16018         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
16019         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
16020         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
16021         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
16022         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
16023         CPP_SPEC, CC1_SPEC): Remove.
16024         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
16025         (GNU_USER_DYNAMIC_LINKER): Define.
16026         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
16027         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
16028         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
16029         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
16030         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
16031         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
16032         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
16033         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
16034         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
16035         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
16036         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
16037         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
16038         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
16039         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
16040         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
16041         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
16042         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
16043         GNU_USER_DYNAMIC_LINKER.
16044         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
16045         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
16046         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
16047         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
16048         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
16049         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
16050         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
16051         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
16052         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
16053         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
16054
16055 2011-04-11  Kai Tietz  <ktietz@redhat.com>
16056
16057         PR target/9601
16058         PR target/11772
16059         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
16060         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
16061         comment.
16062         (ix86_is_msabi_thiscall): Removed.
16063         (ix86_is_type_thiscall): Likewise.
16064         (ix86_get_callcvt): New function.
16065         (ix86_comp_type_attributes): Simplify check.
16066         (ix86_function_regparm): Use ix86_get_callcvt for calling
16067         convention attribute checks.
16068         (ix86_return_pops_args): Likewise.
16069         (ix86_static_chain): Likewise.
16070         (x86_this_parameter): Likewise.
16071         (x86_output_mi_thunk): Likewise.
16072         (ix86_function_type_abi): Optimize check for types without attributes.
16073         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
16074         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
16075         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
16076         by flag-values.
16077         (IX86_BASE_CALLCVT): Helper macro.
16078         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
16079         Use ix86_get_callcvt for calling convention attribute checks and avoid
16080         symbol-decoration for stdcall in TARGET_RTD case.
16081         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
16082         Likewise.
16083         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
16084         for declaration.
16085
16086 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
16087
16088         * config/i386/sse.md (VI_128): New mode iterator.
16089         (VI12_128): Rename from SSEMODE12.
16090         (VI14_128): Rename from SSEMODE14.
16091         (VI124_128): New mode iterator.
16092         (VI24_128): Rename from SSEMODE248.
16093         (VI248_128): Rename from SSEMODE248.
16094         (SSEMODE124C8): Remove.
16095         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
16096         (*sse2_<plusminus_insn><mode>3): Merge with
16097         *avx_<plusminus_insn><mode>3.
16098         (*mulv8hi3): Merge with *avx_mulv8hi3.
16099         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
16100         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
16101         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
16102         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
16103         (ashr<mode>3): Merge with *avx_ashr<mode>3.
16104         (lshr<mode>3): Merge with *avx_lshr<mode>3.
16105         (ashl<mode>3): Merge with *avx_ashl<mode>3.
16106         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
16107         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
16108         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
16109         (*<smaxmin:code>v8hi3): Ditto.
16110         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
16111         (*<smaxmin:code>v16qi3): Ditto.
16112         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
16113         (*sse2_eq<mode>3): Ditto.
16114         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
16115         (*sse2_gt<mode>3): Ditto.
16116         (vcondv2di): Split out of vcond<mode>.
16117         (vconduv2di): Split out of vcondu<mode>.
16118
16119 2011-04-11  Richard Guenther  <rguenther@suse.de>
16120
16121         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
16122         before calling tree_low_cst.
16123
16124 2011-04-11  Richard Guenther  <rguenther@suse.de>
16125
16126         * stor-layout.c (layout_type): Compute all array index size operations
16127         in the original type.
16128         (initialize_sizetypes): Add comment.
16129         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
16130
16131 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
16132
16133         * common.opt (Tbss=, Tdata=, Ttext=): New options.
16134
16135 2011-04-11  Martin Jambor  <mjambor@suse.cz>
16136
16137         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
16138         of cgraph_node, handle NULL return value.
16139         (cgraph_global_info): Likewise.
16140         (cgraph_rtl_info): Likewise.
16141         * tree-inline.c (estimate_num_insns): Likewise.
16142         * gimplify.c (unshare_body): Likewise.
16143         (unvisit_body): Likewise.
16144         (gimplify_body): Likewise.
16145         * predict.c (optimize_function_for_size_p): Likewise.
16146         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
16147         (call_may_clobber_ref_p_1): Likewise.
16148         * varasm.c (function_section_1): Likewise.
16149         (assemble_start_function): Likewise.
16150
16151 2011-04-11  Martin Jambor  <mjambor@suse.cz>
16152
16153         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
16154         of cgraph_node.
16155         * final.c (rest_of_clean_state): Likewise.
16156         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
16157         * passes.c (pass_init_dump_file): Likewise.
16158         (execute_all_ipa_transforms): Likewise.
16159         (function_called_by_processed_nodes_p): Likewise.
16160         * predict.c (maybe_hot_frequency_p): Likewise.
16161         (probably_never_executed_bb_p): Likewise.
16162         (compute_function_frequency): Likewise.
16163         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
16164         (unnest_nesting_tree_1): Likewise.
16165         (lower_nested_functions): Likewise.
16166         * tree-optimize.c (execute_fixup_cfg): Likewise.
16167         (tree_rest_of_compilation): Likewise.
16168         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
16169         * tree-sra.c (ipa_early_sra): Likewise.
16170         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
16171         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
16172         * ipa.c (record_cdtor_fn): Likewise.
16173         * ipa-inline.c (cgraph_early_inlining): Likewise.
16174         (compute_inline_parameters_for_current): Likewise.
16175         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
16176         * ipa-pure-const.c (local_pure_const): Likewise.
16177         * ipa-split.c (split_function): Likewise.
16178         (execute_split_functions): Likewise.
16179         * cgraphbuild.c (build_cgraph_edges): Likewise.
16180         (rebuild_cgraph_edges): Likewise.
16181         (cgraph_rebuild_references): Likewise.
16182         (remove_cgraph_callee_edges): Likewise.
16183         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
16184         (verify_cgraph_node): Likewise.
16185         (cgraph_analyze_functions): Likewise.
16186         (cgraph_preserve_function_body_p): Likewise.
16187         (save_inline_function_body): Likewise.
16188         (save_inline_function_body): Likewise.
16189         * tree-inline.c (copy_bb): Likewise.
16190         (optimize_inline_calls): Likewise.
16191
16192 2011-04-11  Martin Jambor  <mjambor@suse.cz>
16193
16194         PR tree-optimization/48195
16195         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
16196         ipa_check_create_edge_args.
16197         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
16198         ipa_check_create_edge_args.
16199         * ipa-inline.c (inline_generate_summary): Do not call
16200         ipa_check_create_node_params and ipa_check_create_edge_args.
16201         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
16202         ipa_check_create_edge_args.
16203
16204 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
16205
16206         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
16207         instead of loop.
16208         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
16209         * function.c (record_hard_reg_sets): Likewise.
16210         * ira.c (compute_regs_asm_clobbered): Likewise.
16211         * sched-deps.c (sched_analyze_1): Likewise.
16212         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
16213
16214 2011-04-09  Xinliang David Li  <davidxl@google.com>
16215
16216         PR tree-optimization/PR48484
16217         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
16218         has_valid_pred lazily
16219
16220 2011-04-09  Duncan Sands  <baldrick@free.fr>
16221
16222         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
16223
16224 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
16225
16226         * combine.c (combine_validate_cost): Adjust comments.  Set registered
16227         cost of I0 to zero at the end, if any.
16228
16229 2011-04-08  Xinliang David Li  <davidxl@google.com>
16230
16231         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
16232         to insane profile data.
16233
16234 2011-04-08  Xinliang David Li  <davidxl@google.com>
16235
16236         * ipa-cp.c (ipcp_update_profiling): Correct
16237          negative scale factor due to insane profile data.
16238
16239 2011-04-08  Xinliang David Li  <davidxl@google.com>
16240
16241         * final.c (dump_basic_block_info): New function.
16242         (final): Dump basic block.
16243         (final_scan_insn): Remove old dump.
16244
16245 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
16246
16247         PR target/47829
16248         * config.gcc (i386-*-freebsd): Disable unwind table generation for
16249         crtbegin/crtend.
16250
16251 2011-04-08  Michael Matz  <matz@suse.de>
16252
16253         PR middle-end/48389
16254         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
16255         functions.
16256         (rebuild_jump_labels): Call rebuild_jump_labels_1.
16257         * rtl.h (rebuild_jump_labels_chain): Declare.
16258         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
16259         insns inserted on edges.
16260
16261 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
16262
16263         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
16264         * config/arm/arm-arches.def: New.
16265         * config/arm/arm-opts.h: New.
16266         * config/arm/genopt.sh: New.
16267         * config/arm/arm-tables.opt: New (generated).
16268         * config/arm/arm.c (arm_handle_option, arm_target_help,
16269         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
16270         (all_architectures): Get most table contents from arm-arches.def.
16271         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
16272         arm_selected_tune here.
16273         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
16274         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
16275         (march=, mcpu=, mtune=): Use Enum and Var.
16276         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
16277         (arm.o): Update dependencies.
16278
16279 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
16280
16281         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
16282         of header_file.
16283         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
16284         (write_typed_alloc_defns): Likewise.
16285         (main): Calls write_typed_alloc_defns with output_header.
16286
16287 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
16288
16289         PR inline-asm/48435
16290         * ira-color.c (setup_profitable_hard_regs): Add comments.
16291         Don't take prohibited hard regs into account.
16292         (setup_conflict_profitable_regs): Rename to
16293         get_conflict_profitable_regs.
16294         (check_hard_reg_p): Check prohibited hard regs.
16295
16296 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
16297
16298         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
16299         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
16300         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
16301
16302 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16303
16304         PR target/48366
16305         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
16306         move from floating point to shift amount register.
16307         (emit_move_sequence): Remove secondary reload support for floating
16308         point to shift amount amount register copies.
16309         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
16310         amount register copies.
16311         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
16312         register, return false if mode isn't a scalar integer mode.
16313         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
16314
16315 2011-04-08  Richard Guenther  <rguenther@suse.de>
16316
16317         * gimple.c (gimple_call_flags): Remove kludge.
16318
16319 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
16320
16321         * sel-sched.c (sel_region_init): Move call to
16322         sel_setup_region_sched_flags after setup_current_loop_nest.
16323
16324 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
16325
16326         PR rtl-optimization/48272
16327         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
16328         init_insn_reg_pressure_info.  Adjust a caller.
16329         * sched-int.h (init_insn_reg_pressure_info): Declare.
16330         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
16331         when sched-pressure is enabled.
16332
16333 2011-04-08  Richard Guenther  <rguenther@suse.de>
16334
16335         * gimple.c (gimple_set_modified): Do not queue calls to
16336         MODIFIED_NORETURN_CALLS here ...
16337         * tree-ssa-operands.c (update_stmt_operands): ... but here.
16338
16339 2011-04-08  Richard Guenther  <rguenther@suse.de>
16340
16341         PR lto/48467
16342         * toplev.c (lang_dependent_init): Do not open asm_out_file
16343         in WPA mode, nor perform debug machinery initialization.
16344         (finalize): Do not unlink asm_out_file in WPA mode.
16345
16346 2011-04-08  Richard Guenther  <rguenther@suse.de>
16347
16348         * gimple.h (gimple_call_fntype): New function.
16349         (gimple_call_return_type): Use it.
16350         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
16351         * gimple-low.c (gimple_check_call_args): Likewise.
16352         * gimple.c (gimple_call_flags): Likewise.
16353         (gimple_call_arg_flags): Likewise.
16354         (gimple_call_return_flags): Likewise.
16355         * tree-cfg.c (verify_gimple_call): Likewise.
16356         (do_warn_unused_result): Likewise.
16357         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
16358         * value-prof.c (gimple_ic_transform): Fix fndecl check.
16359
16360 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
16361
16362         PR rtl-optimization/48235
16363         * sel-sched.c (code_motion_process_successors): Recompute the last
16364         insn in basic block if control flow changed.
16365         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
16366         Update condition for ilist_remove.
16367
16368 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
16369
16370         PR rtl-optimization/48302
16371         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
16372         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
16373         it to record added preheader blocks.
16374         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
16375         on to sel_add_loop_preheaders.
16376         (sel_region_init): Move call to setup_current_loop_nest after
16377         sel_init_bbs.
16378
16379 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
16380
16381         PR target/48273
16382         * cfgloop.h (loop_has_exit_edges): New helper.
16383         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
16384         non-clonable.
16385         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
16386         that have no exit edges.
16387
16388 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
16389
16390         PR rtl-optimization/48442
16391         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
16392         all callers.  Adjust assert.
16393
16394 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
16395
16396         PR tree-optimization/48377
16397         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
16398         is_packed to true even for types with smaller TYPE_ALIGN than
16399         TYPE_SIZE.
16400
16401 2011-04-08  Richard Guenther  <rguenther@suse.de>
16402
16403         PR bootstrap/48513
16404         * doc/tm.texi: Re-generate.
16405
16406 2011-04-08  Wei Guozhi  <carrot@google.com>
16407
16408         PR target/47855
16409         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
16410         * config/arm/arm.c (arm_attr_length_push_multi): New function.
16411         * config/arm/arm.md (*push_multi): Change the length computation to
16412         call a C function.
16413
16414 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
16415
16416         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
16417         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
16418         * doc/tm.texi: Regenerate.
16419         * system.h (ASM_OUTPUT_BSS): Poison.
16420         * varasm.c (asm_output_bss): Remove function.
16421         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
16422
16423         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
16424         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
16425         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
16426         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
16427         Likewise.
16428         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
16429         Likewise.
16430         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
16431         Likewise.
16432         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
16433
16434 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
16435
16436         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
16437         EnumValue lines.
16438
16439 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
16440
16441         * config/m68k/m68k.c (m68k_handle_option): Don't handle
16442         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
16443         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
16444         OPT_mcpu32.
16445         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
16446         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
16447         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
16448         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
16449         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
16450         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
16451         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
16452         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
16453         options.  Don't map other m68k options manually.  Don't handle
16454         old-style options as canonical.
16455         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
16456         * doc/install.texi (m68k-*-*): Document binutils version requirement.
16457
16458 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
16459
16460         * basic-block.h (force_nonfallthru): Move to...
16461         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
16462         (force_nonfallthru): ...here.
16463         * cfghooks.c (force_nonfallthru): New function.
16464         * cfgrtl.c (force_nonfallthru): Rename into...
16465         (rtl_force_nonfallthru): ...this.
16466         (commit_one_edge_insertion): Do not set AUX field.
16467         (commit_edge_insertions): Do not discover new basic blocks.
16468         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
16469         (cfg_layout_rtl_cfg_hooks): Likewise.
16470         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
16471         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
16472         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
16473
16474 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
16475
16476         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
16477         Remove macros.
16478
16479 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
16480
16481         * config/i386/sse.md: Update copyright year.
16482         (avxcvtvecmode): Remove.
16483         (sse_movhlps): Merge with *avx_movhlps.
16484         (sse_movlhps): Merge with *avx_movlhps.
16485         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
16486         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
16487         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
16488         (sse_loadhps): Merge with *avx_loadhps.
16489         (sse_storelps): Merge with *avx_storelps.
16490         (sse_loadlps): Merge with *avx_loadlps.
16491         (sse_movss): Merge with *avx_movss.
16492         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
16493         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
16494         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
16495         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
16496         (vec_set<mode>_0): Ditto.
16497         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
16498         (sse4_1_insertps): Merge with *avx_insertps.
16499         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
16500         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
16501         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
16502         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
16503         (sse2_storehpd): Merge with *avx_storehpd.
16504         (sse2_loadhpd): Merge with *avx_loadhpd.
16505         (sse2_loadlpd): Merge with *avx_loadlpd.
16506         (sse2_movsd): Merge with *avx_movsd.
16507         (*vec_concatv2df): Merge with *vec_concatv2df.
16508
16509 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
16510
16511         PR debug/48343
16512         * combine.c (combine_instructions): Add last_combined_insn,
16513         update it if insn is after it, pass it to all try_combine calls.
16514         (try_combine): Add last_combined_insn parameter, pass it instead of
16515         i3 to propagate_for_debug.
16516
16517 2011-04-07  Nick Clifton  <nickc@redhat.com>
16518
16519         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
16520         to handle MDR <-> data register transfers.
16521         (movhi_internal): Likewise.
16522
16523 2011-04-07  Alan Modra  <amodra@gmail.com>
16524
16525         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
16526         previous stack info.
16527
16528 2011-04-07  Tom de Vries  <tom@codesourcery.com>
16529
16530         PR target/43920
16531         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
16532         flow_find_cross_jump.  Swap variables to implement backward replacement.
16533         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
16534
16535 2011-04-07  Tom de Vries  <tom@codesourcery.com>
16536
16537         PR target/43920
16538         * cfgcleanup.c (walk_to_nondebug_insn): New function.
16539         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
16540         and bb2.
16541         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
16542         src1 or src2.  Redirect edges to the last basic block.  Update
16543         frequency and count on multiple basic blocks in case of fallthru.
16544
16545 2011-04-07  Tom de Vries  <tom@codesourcery.com>
16546
16547         PR target/43920
16548         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
16549         function.
16550         (old_insns_match_p): Change return type.  Replace return false/true
16551         with return dir_none/dir_both.  Use can_replace_by.
16552         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
16553         direction from dir_p.  Register replacement direction in dir, last_dir
16554         and afterlast_dir.  Handle new return type of old_insns_match_p using
16555         merge_dir.  Return replacement direction in dir_p.
16556         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
16557         return type of old_insns_match_p.
16558         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
16559         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
16560         flow_find_cross_jump.
16561         * basic-block.h (enum replace_direction): New type.
16562         (flow_find_cross_jump): Add parameter to declaration.
16563
16564 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
16565
16566         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
16567         (AVXMODEDCVTPS2DQ): Ditto.
16568         (VEC_FLOAT_MODE): Ditto.
16569         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
16570         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
16571         (<any_logic:code><mode>3): Use VF mode iterator.
16572         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
16573         Use VF mode iterator.
16574         (copysign<mode>3): Use VF mode iterator.
16575         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
16576         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
16577         (*<any_logic:code><MODEF:mode>3): Merge with
16578         *avx_<any_logic:code><MODEF:mode>3.
16579         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
16580         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
16581         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
16582         (avx_cvtdq2ps<avxmodesuffix>): Remove.
16583         (sse2_cvtdq2ps): Use %v modifier.
16584         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
16585         (avx_cvtps2dq<avxmodesuffix>): Remove.
16586         (sse2_cvtps2dq): Use %v modifier.
16587         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
16588         (avx_cvttps2dq<avxmodesuffix>): Remove.
16589         (sse2_cvttps2dq): Use %v modifier.
16590         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
16591         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
16592         (sse2_cvtsd2siq): Fix insn template.
16593         (sse2_cvtsd2siq_2): Ditto.
16594         (sse2_cvttsd2siq): Ditto.
16595         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
16596         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
16597
16598 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
16599
16600         * gcov-io.c: Use GCC Runtime Library Exception.
16601
16602 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
16603
16604         PR debug/48466
16605         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
16606         as base_reg whatever register reg has been eliminated to, instead
16607         of hardcoding STACK_POINTER_REGNUM.
16608
16609 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
16610
16611         * doc/tm.texi.in: Document C target hooks as separate from general
16612         target hooks.
16613         * doc/tm.texi: Regenerate.
16614         * genhooks.c (struct hook_desc): Add docname field.
16615         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
16616         docname field.
16617         (hook_array): Include c-target.def.
16618         (emit_documentation): Use docname field in output.
16619         (emit_init_macros): Take docname argument.  Only emit definitions
16620         for hooks matching docname.
16621         (main): Expect additional arguments in all cases.  Pass argument
16622         to emit_init_macros.
16623         * target.def: Move initial macro definitions and comments to
16624         target-hooks-macros.h.
16625         (gcc_targetcm): Move to c-family/c-target.def.
16626         * target.h (targetcm): Move declaration to c-family/c-target.h.
16627         * targhooks.c (default_handle_c_option): Move to
16628         c-family/c-opts.c.
16629         * targhooks.h (default_handle_c_option): Move declaration to
16630         c-family/c-common.h.
16631         * target-hooks-macros.h: New file.
16632         * config.gcc (target_has_targetcm): Define and use to add to
16633         c_target_objs and cxx_target_objs.
16634         * config/default-c.c: New file.
16635         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
16636         of target.h and target-def.h.
16637         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
16638         (darwin_objc_construct_string, darwin_cfstring_ref_p,
16639         darwin_check_cfstring_format_arg): Make static.
16640         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
16641         TARGET_STRING_OBJECT_REF_TYPE_P,
16642         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
16643         * config/darwin-protos.h (darwin_objc_construct_string,
16644         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
16645         declare.
16646         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
16647         TARGET_STRING_OBJECT_REF_TYPE_P,
16648         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
16649         * config/t-darwin (darwin-c.o): Update dependencies.
16650         * system.h (TARGET_HAS_TARGETCM): Poison.
16651         * Makefile.in (TARGET_H): Update.
16652         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
16653         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
16654         (default-c.o): New target.
16655         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
16656         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
16657         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
16658         c-target.def.
16659         (build/genhooks.o): Update dependencies.
16660
16661 2011-04-06  Richard Guenther  <rguenther@suse.de>
16662
16663         * ipa-inline.c (enum inlining_mode): Remove.
16664         (cgraph_flatten): Use some other token.
16665         (cgraph_edge_early_inlinable_p): New function, split out from ...
16666         (cgraph_perform_always_inlining): New function, split out from ...
16667         (cgraph_decide_inlining_incrementally): ... here.
16668         (cgraph_mark_inline_edge): Adjust.
16669         (cgraph_early_inlining): Re-structure.
16670         (pass_early_inline): Require SSA form.
16671
16672 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
16673             Julian Brown  <julian@codesourcery.com>
16674             Mark Shinwell  <shinwell@codesourcery.com>
16675
16676         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
16677         LO_REGS only for Thumb-1.
16678         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
16679         be used in short instructions when optimising for size on Thumb-2.
16680
16681 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
16682
16683         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
16684         associated with user returns to be preserved.
16685
16686 2011-04-06  Tristan Gingold  <gingold@adacore.com>
16687
16688         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
16689         symbol_queue_size, DBXOUT_DECR_NESTING,
16690         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
16691         if XCOFF_DEBUGGING_INFO.
16692
16693 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
16694
16695         * config/i386/i386.md (attribute isa): New.
16696         (attribute enabled): New.
16697         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
16698         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
16699         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
16700         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
16701         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
16702         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
16703         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
16704         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
16705
16706         * config/i386/sse.md (VF): New mode iterator.
16707         (VF1): Ditto.
16708         (VF2): Ditto.
16709         (VF_128): Ditto.
16710         (SSEMODEF4): Remove.
16711         (attribute sse): Handle V8SF and V4DF modes.
16712         (<absneg:code><mode>2): Use VF mode iterator.
16713         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
16714         mode iterator.
16715         (<plusminus_insn><mode>3): Use VF mode iterator.
16716         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
16717         Use VF mode iterator.
16718         (<sse>_vm<plusminus_insn><mode>3): Merge with
16719         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
16720         (mul<mode>3): Use VF mode iterator.
16721         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
16722         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
16723         mode iterator.
16724         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
16725         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
16726         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
16727         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
16728         mode iterator.
16729         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
16730         Use VF1 mode iterator.
16731         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
16732         (sqrt<VF2:mode>2): New expander.
16733         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
16734         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
16735         and sqrtv2df2.  Use VF mode iterator.
16736         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
16737         mode iterator.
16738         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
16739         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
16740         Use VF1 mode iterator.
16741         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
16742         (<smaxmin:code><mode>3): Use VF mode iterator.
16743         (*<smaxmin:code><mode>3_finite): Merge with
16744         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
16745         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
16746         (<sse>_vm<smaxmin:code><mode>2): Merge with
16747         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
16748         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
16749         mode iterator.
16750         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
16751         mode iterator.
16752         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
16753         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
16754         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
16755         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
16756         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
16757         VF mode iterator.
16758         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
16759         Use VF_128 mode iterator.
16760         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
16761         mode iterator.
16762         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
16763         VF_128 mode iterator.
16764         (vcond<mode>): Use VF mode iterator.
16765         * config/i386/predicates.md (sse_comparison_operator): Merge with
16766         avx_comparison_float_operator.  Do not declare as special_predicate.
16767         * config/i386/i386.c (struct builtin_description): Update for renamed
16768         compare patterns.
16769         (ix86_expand_args_builtin): Ditto.
16770         (ix86_expand_sse_compare_mask): Ditto.
16771
16772 2011-04-06  Richard Guenther  <rguenther@suse.de>
16773
16774         * tree-inline.c (estimate_num_insns): For calls simply account
16775         for all passed arguments and a used return value.
16776
16777 2011-04-06  Richard Guenther  <rguenther@suse.de>
16778
16779         PR tree-optimization/47663
16780         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
16781         call_stmt_time fields.
16782         (cgraph_edge_inlinable_p): Declare.
16783         (cgraph_edge_recursive_p): New inline function.
16784         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
16785         (cgraph_clone_edge): Copy it.
16786         * ipa-inline.c (cgraph_estimate_edge_time): New function.
16787         Account for call stmt time.
16788         (cgraph_estimate_time_after_inlining): Take edge argument.
16789         (cgraph_estimate_edge_growth): Account call stmt size.
16790         (cgraph_estimate_size_after_inlining): Take edge argument.
16791         (cgraph_mark_inline_edge): Adjust.
16792         (cgraph_check_inline_limits): Likewise.
16793         (cgraph_recursive_inlining_p): Remove.
16794         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
16795         (cgraph_decide_recursive_inlining): Take edge argument and
16796         adjust.
16797         (cgraph_decide_inlining_of_small_functions): Do not avoid
16798         diags for recursive inlining here.
16799         (cgraph_flatten): Adjust.
16800         (cgraph_decide_inlining_incrementally): Likewise.
16801         (estimate_function_body_sizes): Remove call cost handling.
16802         (compute_inline_parameters): Initialize caller edge call costs.
16803         (cgraph_estimate_edge_growth): New function.
16804         (cgraph_estimate_growth): Use it.
16805         (cgraph_edge_badness): Likewise.
16806         (cgraph_check_inline_limits): Take an edge argument.
16807         (cgraph_decide_inlining_of_small_functions): Adjust.
16808         (cgraph_decide_inlining): Likewise.
16809         * tree-inline.c (estimate_num_insns): Only account for call
16810         return value if it is used.
16811         (expand_call_inline): Avoid diagnostics on recursive inline
16812         functions here.
16813         * lto-cgraph.c (lto_output_edge): Output edge call costs.
16814         (input_edge): Input edge call costs.
16815
16816 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16817
16818         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
16819
16820 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
16821
16822         * doc/invoke.texi (Spec Files): Fix typo.
16823
16824 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
16825
16826         * profile.c (branch_prob): Move declaration of local variable.  Remove
16827         obsolete ??? comment.  Expand the location explicitly instead of using
16828         the LOCATION_FILE and LOCATION_LINE macros.
16829
16830 2011-04-06  Wei Guozhi  <carrot@google.com>
16831
16832         PR target/47855
16833         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
16834         (arm_cond_branch): Likewise.
16835         (arm_cond_branch_reversed): Likewise.
16836         (arm_jump): Likewise.
16837         (push_multi): Likewise.
16838         * config/arm/constraints.md (Py): New constraint.
16839
16840 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
16841
16842         PR bootstrap/48471
16843         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
16844         Move these...
16845         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
16846         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
16847         #ifdef DBX_DEBUGGING_INFO.
16848
16849 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
16850
16851         PR bootstrap/48403
16852         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
16853         if old and new states differ.
16854
16855 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
16856
16857         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
16858         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
16859         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
16860         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
16861         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
16862         mcfv4e): Use Alias.
16863         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
16864         ColdFire options to -mcpu= options.
16865
16866 2011-04-05  Jeff Law  <law@redhat.com>
16867
16868         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
16869         check if BB is a successor of LOOP->header and return
16870         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
16871
16872 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
16873
16874         * cprop.c (struct reg_use): Remove.
16875         (reg_use_table): Make an array of RTX.
16876         (find_used_regs, constprop_register, local_cprop_pass,
16877         bypass_block): Simplify users of reg_use_table.
16878         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
16879         on one of the uses found by find_used_regs.
16880
16881 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
16882
16883         PR bootstrap/48469
16884         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
16885         declaration.
16886
16887 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
16888
16889         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
16890         as an rtx.
16891         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
16892
16893 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
16894
16895         PR middle-end/48441
16896         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
16897
16898 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
16899
16900         * combine.c: Include obstack.h.
16901         (struct insn_link): Define.
16902         (uid_log_links): Adjust type.
16903         (FOR_EACH_LOG_LINK): New macro.
16904         (insn_link_obstack): Declare.
16905         (alloc_insn_link): Define.
16906         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
16907         type of link variables.
16908         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
16909         (try_combine, record_promoted_values, distribute_notes): Likewise.
16910         (distribute_links): Likewise.  Tweak prototype.
16911         (clear_log_links): Delete.
16912         (adjust_for_new_dest): Call alloc_insn_link.
16913         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
16914
16915 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
16916
16917         * gcse.c (modify_mem_list): Convert to an array of VECs.
16918         (canon_modify_mem_list, compute_transp): Tweak formatting.
16919         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
16920         (load_killed_in_block_p): Likewise.
16921         (record_last_mem_set_info): Likewise.
16922         (clear_modify_mem_tables): Likewise.
16923
16924 2011-04-05  Tom de Vries  <tom@codesourcery.com>
16925
16926         PR middle-end/48461
16927         * function.c (emit_use_return_register_into_block): Only define if
16928         HAVE_return.
16929
16930 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
16931
16932         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
16933
16934 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
16935
16936         * config/rx/rx-opts.h: New.
16937         * config/rx/rx.c (rx_cpu_type): Remove.
16938         (rx_handle_option): Don't assert that global structures are in
16939         use.  Access variables via opts pointer.  Defer most handling of
16940         OPT_mint_register_.  Use error_at.
16941         (rx_option_override): Handle deferred OPT_mint_register_ here.
16942         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
16943         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
16944         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
16945         (rx_cpu_types): New Enum and EnumValue entries.
16946         (mint-register=): Use Defer and use Var accordingly.
16947
16948 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
16949
16950         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
16951         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
16952         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
16953         Move these...
16954         (debug_free_queue, debug_nesting, symbol_queue_index):
16955         ...and these...
16956         * dbxout.c: ...to here.  Make static.
16957
16958 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
16959
16960         * gcse.c (modify_pair): Define.  Define a VEC of it.
16961         (canon_modify_mem_list): Convert to an array of VECs.
16962         (free_insn_expr_list_list): Delete.
16963         (clear_modify_mem_tables): Call VEC_free instead.
16964         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
16965         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
16966         (canon_list_insert, compute_transp): Likewise.
16967
16968 2011-04-05  Tom de Vries  <tom@codesourcery.com>
16969
16970         PR target/43920
16971         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
16972         for size.
16973
16974 2011-04-05  Tom de Vries  <tom@codesourcery.com>
16975
16976         PR target/43920
16977         * function.c (emit_use_return_register_into_block): New function.
16978         (thread_prologue_and_epilogue_insns): Use
16979         emit_use_return_register_into_block.
16980
16981 2011-04-05  Tom de Vries  <tom@codesourcery.com>
16982
16983         PR target/43920
16984         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
16985         insn.
16986
16987 2011-04-05  Tom de Vries  <tom@codesourcery.com>
16988
16989         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
16990
16991 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
16992
16993         * config/arm/arm.md (define_constants for unspec): Replace with
16994         define_c_enum.
16995         (define_constants for unspecv): Replace with define_c_enum.
16996         * config/arm/neon.md (define_constants for unspec): Replace with
16997         define_c_enum.
16998
16999 2011-04-04  Richard Henderson  <rth@redhat.com>
17000
17001         PR bootstrap/48400
17002         * dwarf2out.c (output_line_info): Always emit line info from
17003         at least one section.
17004         (dwarf2out_init): Create text_section_line_info here ...
17005         (set_cur_line_info_table): ... not here.
17006
17007 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
17008
17009         PR target/48380
17010         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
17011         not called.
17012
17013         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
17014
17015 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
17016
17017         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
17018         (expr_equiv_p): Remove.
17019         (insert_set_in_table): Look at <dest, src> pair instead of expr.
17020         (hash_scan_set): Update call to insert_set_in_table.
17021         (dump_hash_table): Dump <dest, src> pair.
17022         (lookup_set): Simplify.  Lookup <dest, src> pair.
17023         (compute_transp): Remove, fold heavily simplified code into...
17024         (compute_local_properties): ...here.  Expect COMP and TRANSP
17025         unconditionally.
17026         (find_avail_set): Take set directly from struct expr.
17027         (find_bypass-set): Likewise.
17028         (bypass_block): Likewise.
17029         (cprop_insn): Likewise.  Remove redundant INSN_P test.
17030
17031         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
17032         checks on form of COND from find_implicit_sets to here.
17033         (find_implicit_sets): Cleanup control flow. Split critical edges
17034         if it exposes implicit sets.  Allocate/resize implicit_sets as
17035         necessary.
17036         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
17037         changed something.  Run df_analyze after find_implicit_sets if any
17038         edges were split.  Do not allocate implicit_sets here.
17039
17040         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
17041         (gcse_obstack): Renamed to cprop_obstack.
17042         (GNEW, GNEWVEC, GNEWVAR): Remove.
17043         (gmalloc): Remove.
17044         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
17045         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
17046         (gcse_alloc): Likewise, and rename to cprop_alloc.
17047         (alloc_gcse_men, free_gcse_mem): Remove.
17048         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
17049         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
17050         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
17051
17052         * cprop.c (oprs_not_set_p): Remove.
17053         (mark_set, mark_clobber): Remove.
17054         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
17055         (reg_not_set_p): New function.
17056         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
17057         (cprop_insn): Likewise.
17058         (cprop_jump): Use FOR_EACH_EDGE.
17059
17060 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
17061
17062         PR bootstrap/48403
17063         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
17064         (rank_for_schedule): Use scheduled_insns vector instead of
17065         last_scheduled_insn.
17066         (ok_for_early_queue_removal): Likewise.
17067         (queue_to_ready): Search forward in nonscheduled_insns_begin if
17068         we have a dbg_cnt.
17069         (choose_ready): Likewise.
17070         (commit_schedule): Use VEC_iterate.
17071         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
17072         a dbg_cnt, use it and ensure the first insn is in the ready list.
17073         (haifa_sched_init): Allocate scheduled_insns.
17074         (sched_extend_ready_list): Don't allocate it; reserve space.
17075         (haifa_sched_finish): Free it.
17076
17077 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
17078
17079         * optc-gen.awk: Always remove type from Variable entry before
17080         recording in var_seen.
17081
17082 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
17083
17084         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
17085         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
17086         call to tidy_fallthru_edges.
17087
17088 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
17089
17090         * doc/options.texi (ToLower): Document.
17091         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
17092         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
17093         * opts.h (cl_option): Add cl_tolower field.
17094         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
17095         arguments with lowercase strings.
17096         * config/rx/rx.opt (mcpu=): Add ToLower.
17097         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
17098         argument.
17099
17100 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
17101
17102         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
17103
17104 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
17105
17106         * config/vax/vax.c: Include reload.h.
17107
17108 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
17109
17110         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
17111         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
17112         (sparc_preferred_reload_class): New function.
17113
17114 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
17115
17116         PR debug/48401
17117         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
17118         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
17119
17120 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
17121
17122         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
17123         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
17124
17125 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
17126
17127         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
17128         (ASM_OUTPUT_ALIGNED_BSS): Define.
17129
17130 2011-04-03  Michael Matz  <matz@suse.de>
17131
17132         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
17133         and next_slot members.
17134         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
17135         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
17136         (lto_streamer_cache_append): Declare.
17137         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
17138         unsigned index, remove offset parameter, ensure that we append
17139         or update existing entries.
17140         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
17141         parameter, update next_slot for append.
17142         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
17143         parameter.
17144         (lto_streamer_cache_insert_at): Likewise.
17145         (lto_streamer_cache_append): New function.
17146         (lto_streamer_cache_lookup): Use unsigned index.
17147         (lto_streamer_cache_get): Likewise.
17148         (lto_record_common_node): Don't test tree_node_can_be_shared.
17149         (preload_common_node): Adjust call to lto_streamer_cache_insert.
17150         (lto_streamer_cache_delete): Don't free offsets member.
17151         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
17152         (lto_output_string_with_length): Use lto_output_data_stream.
17153         (lto_output_tree_header): Remove ix parameter, don't write it.
17154         (lto_output_builtin_tree): Likewise.
17155         (lto_write_tree): Adjust callers to above, don't track and write
17156         offset, write unsigned index.
17157         (output_unreferenced_globals): Don't emit all global vars.
17158         (write_global_references): Use unsigned indices.
17159         (lto_output_decl_state_refs): Likewise.
17160         (write_symbol): Likewise.
17161         * lto-streamer-in.c (lto_input_chain): Move earlier.
17162         (input_function): Use unsigned index.
17163         (input_alias_pairs): Don't read and then ignore all global vars.
17164         (lto_materialize_tree): Remove ix_p parameter, don't read index,
17165         don't pass it back, use lto_streamer_cache_append.
17166         (lto_register_var_decl_in_symtab): Use unsigned index.
17167         (lto_register_function_decl_in_symtab): Likewise.
17168         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
17169         index.
17170         (lto_get_builtin_tree): Don't read index, use
17171         lto_streamer_cache_append.
17172         (lto_read_tree): Adjust call to lto_materialize_tree.
17173
17174         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
17175         don't use function calls in arguments to MIN.
17176
17177         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
17178         twice.
17179
17180         * gimple.c (gimple_type_leader_entry): Mark deletable.
17181
17182 2011-04-03  Alan Modra  <amodra@gmail.com>
17183
17184         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
17185
17186 2011-04-03  Michael Matz  <matz@suse.de>
17187
17188         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
17189         an integer.
17190         * tree.h (tree_decl_non_common.vindex): Adjust comment.
17191
17192 2011-04-03  Michael Matz  <matz@suse.de>
17193
17194         * cgraphbuild.c (record_reference): Canonicalize constructor values.
17195         * gimple-fold.c (canonicalize_constructor_val): Accept being called
17196         without function context.
17197         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
17198         current_function_decl and cfun.
17199
17200 2011-04-03  Michael Matz  <matz@suse.de>
17201
17202         * tree.c (decl_init_priority_insert): Don't create entry for
17203         default priority.
17204         (decl_fini_priority_insert): Ditto.
17205         (fields_compatible_p, find_compatible_field): Remove.
17206         * tree.h (fields_compatible_p, find_compatible_field): Remove.
17207         * gimple.c (gimple_compare_field_offset): Adjust block comment.
17208
17209 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
17210
17211         * combine.c (try_combine): Remove useless local variable.
17212
17213 2011-04-03  Richard Guenther  <rguenther@suse.de>
17214             Ira Rosen  <ira.rosen@linaro.org>
17215
17216         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
17217         non-variable offsets and compare the remaining bases of the two
17218         accesses instead of looking for exact same data-ref.
17219
17220 2011-04-02  Kai Tietz  <ktietz@redhat.com>
17221
17222         PR target/48416
17223         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
17224
17225         * i386.c (ix86_is_msabi_thiscall): New helper function.
17226         (ix86_is_type_thiscall): New helper function.
17227         (ix86_comp_type_attributes): Handle thiscall for method-functions
17228         special.
17229         (init_cumulative_args): Likewise.
17230         (find_drap_reg): Likewise.
17231         (ix86_static_chain): Likewise.
17232         (x86_this_parameter): Likewise.
17233         (x86_output_mi_thunk): Likewise.
17234
17235 2011-04-01  Olivier Hainque  <hainque@adacore.com>
17236             Nicolas Setton  <setton@adacore.com>
17237             Eric Botcazou  <ebotcazou@adacore.com>
17238
17239         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
17240         (add_gnat_descriptive_type_attribute): New function.
17241         (gen_array_type_die): Call it.
17242         (gen_enumeration_type_die): Likewise.
17243         (gen_struct_or_union_type_die): Likewise.
17244         (modified_type_die): Likewise.
17245         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
17246         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
17247         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
17248
17249 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
17250
17251         PR bootstrap/48148
17252         * dwarf2out.c (resolve_addr): Don't call force_decl_die
17253         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
17254
17255         Revert:
17256         2011-03-17  Richard Guenther  <rguenther@suse.de>
17257
17258         PR bootstrap/48148
17259         * lto-cgraph.c (input_overwrite_node): Clear the abstract
17260         origin for decls in other ltrans units.
17261         (input_varpool_node): Likewise.
17262
17263 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
17264
17265         PR middle-end/48335
17266         * expr.c (expand_assignment): Handle all possibilities
17267         if TO_RTX is CONCAT.
17268         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
17269         (store_split_bit_field): If SUBREG_REG (op0) or
17270         op0 itself has smaller mode than word, return it
17271         for offset 0 and const0_rtx for out-of-bounds stores.
17272         If word is const0_rtx, skip it.
17273
17274 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
17275
17276         * config/h8300/h8300.c (print_operand_address): Rename to...
17277         (h8300_print_operand_address): ...this. Make static. Adjust comments.
17278         Call h8300_print_operand and h8300_print_operand_address instead of
17279         print_operand and print_operand_address. Declare.
17280         (print_operand): Renake to...
17281         (h8300_print_operand): ...this. Make static. Adjust comments.
17282         Call h8300_print_operand instead of print_operand. Declare.
17283         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
17284         (h8300_register_move_cost): Likewise.
17285         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
17286         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
17287         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
17288         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
17289         * config/h8300/h8300-protos.h (print_operand): Delete.
17290         (print_operand_address): Delete.
17291
17292 2011-04-01  Richard Henderson  <rth@redhat.com>
17293
17294         PR 48400
17295         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
17296         in strict mode before dwarf4.  Re-order tests to early out
17297         before switching sections.
17298
17299 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
17300
17301         * config/h8300/constraints.md: New file.
17302         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
17303         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
17304         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
17305         * config/h8300/predicates.md (bit_operand): Likewise.
17306         (incdec_operand): Use satisfies_constraint_M and
17307         satisfies_constraint_O.  Don't use C code block.
17308         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
17309         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
17310         (compute_mov_length): Use satisfies_constraint_G.
17311         (fix_bit_operand): Use satisfies_constraint_U.
17312         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
17313         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
17314         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
17315         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
17316         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
17317         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
17318         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
17319         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
17320         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
17321         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
17322         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
17323         (EXTRA_MEMORY_CONSTRAINT): Delete.
17324
17325 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
17326             Michael Meissner  <meissner@linux.vnet.ibm.com>
17327
17328         PR target/48262
17329         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
17330         operands, as per the specifications.
17331
17332         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
17333         (vec_extract_evenv4sf): Ditto.
17334         (vec_extract_evenv8hi): Ditto.
17335         (vec_extract_evenv16qi): Ditto.
17336         (vec_extract_oddv4si): Ditto.
17337
17338 2011-03-31  Mark Wielaard  <mjw@redhat.com>
17339
17340         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
17341         high_pc attribute if the CU has no associated code. Only output
17342         DW_AT_entry_pc for CU if not generating strict dwarf and
17343         dwarf_version < 4.
17344
17345 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
17346
17347         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
17348         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
17349         out of ...
17350         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
17351         * final.c (final_start_function): Call the new function rather
17352         than using a NULL argument for dwarf2out_frame_debug.
17353
17354         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
17355         that contains the prologue.
17356
17357         * haifa-sched.c (queue_insn): New arg REASON.  All callers
17358         changed.  Print it in debugging output.
17359
17360         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
17361
17362         * sched-ebb.c (begin_schedule_ready): Remove second argument.
17363         Split most of the code into...
17364         (begin_move_insn): ... here.  New function.
17365         (ebb_sched_info): Add a pointer to it.
17366         * haifa-sched.c (scheduled_insns): New static variable.
17367         (sched_extend_ready_list): Allocate it.
17368         (schedule_block): Use it to record the order of scheduled insns.
17369         Perform RTL changes to move insns only after all scheduling
17370         decisions have been made.
17371         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
17372         begin_move_insn field.
17373         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
17374         * sched-int.h (struct haifa_sched_info): Remove second argument
17375         from begin_schedule_ready hook.  Add new member begin_move_insn.
17376         * sched-rgn.c (begin_schedule_ready): Remove second argument.
17377         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
17378
17379         * haifa-sched.c (prune_ready_list): New function, broken out of
17380         schedule_block.
17381         (schedule_block): Use it.
17382
17383 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17384
17385         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
17386
17387 2011-04-01  Kai Tietz  <ktietz@redhat.com>
17388
17389         * config.gcc (*-*-mingw*): Allow as option the
17390         posix threading model.
17391         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
17392         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
17393         definition.
17394         (CPP_SPEC): Add pthread/no-pthread handling.
17395         (LIB_SPEC): Likewise.
17396         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
17397         (LIB_SPEC): Likewise.
17398         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
17399         flag to pass -pthread option for shared libgcc build.
17400         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
17401         for shared libgcc build.
17402         * config/i386/t-mingw-pthread: New file.
17403         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
17404         New define to enable use of library pthread by default.
17405         * config/i386/mingw.opt (pthread): New driver option.
17406         (no-pthread): New driver option.
17407         * config/i386/cygming.opt: Make sure trailing empty line is retained.
17408         * config/i386/mingw-w64.opt: Likewise.
17409
17410 2011-04-01  Gary Funck  <gary@intrepid.com>
17411
17412         * c-decl.c (grokdeclarator): Fix formatting.
17413
17414 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
17415
17416         * expr.c (emit_block_move_via_movmem): Use n_generator_args
17417         instead of n_operands.
17418         (set_storage_via_setmem): Likewise.
17419         * optabs.c (maybe_gen_insn): Likewise.
17420         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
17421         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
17422         (mips_expand_builtin_direct): Likewise.
17423         * config/spu/spu.c (expand_builtin_args): Likewise.
17424
17425 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
17426
17427         * recog.h (insn_data_d): Add n_generator_args.
17428         * genoutput.c (data): Likewise.
17429         (output_insn_data): Print it.
17430         (max_opno, num_dups): Delete.
17431         (scan_operands): Just fill in "d->operand[...]".
17432         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
17433
17434 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
17435
17436         * gensupport.h (pattern_stats): New structure.
17437         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
17438         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
17439         (max_operand_1, max_operand_vec): Delete.
17440         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
17441
17442 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
17443
17444         * emit-rtl.c (emit_pattern_after_setloc): New function.
17445         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
17446         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
17447         (emit_pattern_after): New function.
17448         (emit_insn_after, emit_jump_insn_after): Call it.
17449         (emit_call_insn_after, emit_debug_insn_after): Likewise.
17450         (emit_pattern_before_setloc): New function.
17451         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
17452         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
17453         Likewise.
17454         (emit_pattern_before): New function.
17455         (emit_insn_before, emit_jump_insn_before): Call it.
17456         (emit_call_insn_before, emit_debug_insn_before): Likewise.
17457
17458 2011-03-31  Richard Henderson  <rth@redhat.com>
17459
17460         * dwarf2out.c (dw_separate_line_info_ref): Remove.
17461         (dw_separate_line_info_entry): Remove.
17462         (enum dw_line_info_opcode): New.
17463         (dw_line_info_entry): Use it.
17464         (dw_line_info_table, dw_line_info_table_p): New.
17465         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
17466         (line_info_table, line_info_label_num): Remove.
17467         (line_info_table_in_use): Remove.
17468         (separate_line_info_table): Remove.
17469         (separate_line_info_table_allocated): Remove.
17470         (separate_line_info_table_in_use): Remove.
17471         (LINE_INFO_TABLE_INCREMENT): Remove.
17472         (line_info_label_num): New.
17473         (cur_line_info_table): New.
17474         (text_section_line_info, cold_text_section_line_info): New.
17475         (separate_line_info): New.
17476         (SEPARATE_LINE_CODE_LABEL): Remove.
17477         (print_dwarf_line_table): Remove.
17478         (debug_dwarf): Don't dump it.
17479         (output_one_line_info_table): New.
17480         (output_line_info): Use it.
17481         (new_line_info_table): New.
17482         (set_cur_line_info_table): New.
17483         (dwarf2out_switch_text_section): Use it.
17484         (dwarf2out_begin_function): Likewise.
17485         (push_dw_line_info_entry): New.
17486         (dwarf2out_source_line): Rewrite for new line info tables.
17487         (dwarf2out_init): Remove dead initailizations.
17488
17489 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
17490
17491         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
17492         various flags.
17493         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
17494         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
17495         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
17496         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
17497         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
17498         * opt-functions.awk (flag_init, switch_bit_fields): New.
17499         (switch_flags): Don't handle flags moved to bit-fields.  Don't
17500         generate CL_MISSING_OK or CL_SAVE.
17501         * optc-gen.awk: Update to generate bit-field output as well as
17502         flags field.
17503         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
17504         bit-field instead of CL_REJECT_DRIVER flag.
17505         * opts-common.c (generate_canonical_option,
17506         decode_cmdline_option): Use bit-fields instead of CL_* flags.
17507         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
17508         instead of CL_REJECT_NEGATIVE flag.
17509         * toplev.c (print_switch_values): Use cl_report bit-field instead
17510         of CL_REPORT flag.
17511
17512 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
17513
17514         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
17515         a zero minimum index only if it is redundant.
17516
17517 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
17518
17519         PR rtl-optimization/48381
17520         * ira-color.c (assign_hard_reg): Use hard reg set intersection
17521         instead of ira_class_hard_reg_index for calculating conflicting
17522         hard registers.
17523
17524 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
17525
17526         * cprop.c: Clean up hash table building.
17527         (reg_avail_info): Remove.
17528         (oprs_available_p): Remove.
17529         (record_last_reg_set_info): Remove.
17530         (record_last_set_info): Remove.
17531         (reg_available_p): New function.
17532         (gcse_constant_p): Do not treat unfolded conditions as constants.
17533         (make_set_regs_unavailable): New function.
17534         (hash_scan_set): Simplify with new reg_available_p.
17535         (compute_hash_table_work): Traverse insns stream only once.
17536         Do not compute reg_avail_info. Traverse insns in reverse order.
17537         Record implicit sets after recording explicit sets from the block.
17538
17539 2011-03-31  Michael Matz  <matz@suse.de>
17540
17541         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
17542
17543 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
17544
17545         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
17546         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
17547         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
17548         (h8300_mode_dependent_address_p): New function.
17549         (h8300_get_index): Make static.
17550
17551 2011-03-31  Jeff Law  <law@redhat.com>
17552
17553         * reload1.c (elimination_effects): Fix typo in recent change.
17554
17555         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
17556         typo potentially leading to null pointer dereference.
17557
17558         * caller-save.c (new_saved_hard_reg): Eliminate return value.
17559         (setup_save_areas): Corresponding changes to avoid useless
17560         assignments.
17561
17562         * jump.c (reversed_comparison_code_parts): Avoid successive return
17563         statements when REVERSE_CONDITION is defined.
17564
17565         * expr.c (expand_assignment): Avoid useless assignments.
17566         (expand_expr_real_1): Likewise.
17567         (expand_expr_real_2): Avoid useless statements.
17568
17569         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
17570
17571         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
17572
17573         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
17574         statements.
17575
17576         * stmt.c (expand_expr_stmt): Avoid useless assignment.
17577
17578 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
17579
17580         PR target/47109
17581         * doc/tm.texi.in (TARGET_VERSION): Remove.
17582         * doc/tm.texi: Regenerate.
17583         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
17584         * collect2.c (main): Don't use TARGET_VERSION.
17585         * mips-tdump.c (main): Don't use TARGET_VERSION.
17586         * mips-tfile.c (main): Don't use TARGET_VERSION.
17587         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
17588         * config/rs6000/vxworksae.h: Remove.
17589         * config/alpha/alpha.h (TARGET_VERSION): Remove.
17590         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
17591         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
17592         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
17593         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
17594         * config/arm/arm.h (TARGET_VERSION): Remove.
17595         * config/arm/coff.h (TARGET_VERSION): Remove.
17596         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
17597         * config/arm/elf.h (TARGET_VERSION): Remove.
17598         * config/arm/freebsd.h (TARGET_VERSION): Remove.
17599         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
17600         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
17601         * config/arm/pe.h (TARGET_VERSION): Remove.
17602         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
17603         * config/arm/semi.h (TARGET_VERSION): Remove.
17604         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
17605         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
17606         * config/arm/vxworks.h (TARGET_VERSION): Remove.
17607         * config/avr/avr.h (TARGET_VERSION): Remove.
17608         * config/bfin/bfin.h (TARGET_VERSION): Remove.
17609         * config/fr30/fr30.h (TARGET_VERSION): Remove.
17610         * config/frv/frv.h (TARGET_VERSION): Remove.
17611         * config/h8300/h8300.h (TARGET_VERSION): Remove.
17612         * config/i386/cygwin.h (TARGET_VERSION): Remove.
17613         * config/i386/darwin.h (TARGET_VERSION): Remove.
17614         * config/i386/darwin64.h (TARGET_VERSION): Remove.
17615         * config/i386/djgpp.h (TARGET_VERSION): Remove.
17616         * config/i386/freebsd.h (TARGET_VERSION): Remove.
17617         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
17618         * config/i386/gnu.h (TARGET_VERSION): Remove.
17619         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
17620         * config/i386/i386elf.h (TARGET_VERSION): Remove.
17621         * config/i386/linux.h (TARGET_VERSION): Remove.
17622         * config/i386/linux64.h (TARGET_VERSION): Remove.
17623         * config/i386/lynx.h (TARGET_VERSION): Remove.
17624         * config/i386/mingw32.h (TARGET_VERSION): Remove.
17625         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
17626         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
17627         * config/i386/netware.h (TARGET_VERSION): Remove.
17628         * config/i386/nto.h (TARGET_VERSION): Remove.
17629         * config/i386/openbsd.h (TARGET_VERSION): Remove.
17630         * config/i386/vxworks.h (TARGET_VERSION): Remove.
17631         * config/ia64/elf.h (TARGET_VERSION): Remove.
17632         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
17633         * config/ia64/hpux.h (TARGET_VERSION): Remove.
17634         * config/ia64/linux.h (TARGET_VERSION): Remove.
17635         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
17636         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
17637         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
17638         * config/lm32/lm32.h (TARGET_VERSION): Remove.
17639         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
17640         * config/m32c/m32c.h (TARGET_VERSION): Remove.
17641         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
17642         * config/m32r/m32r.h (TARGET_VERSION): Remove.
17643         * config/m68k/linux.h (TARGET_VERSION): Remove.
17644         * config/m68k/m68k.h (TARGET_VERSION): Remove.
17645         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
17646         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
17647         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
17648         * config/mep/mep.h (TARGET_VERSION): Remove.
17649         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
17650         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
17651         * config/mips/iris6.h (MACHINE_TYPE): Remove.
17652         * config/mips/linux.h (TARGET_VERSION): Remove.
17653         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
17654         * config/mips/vxworks.h (TARGET_VERSION): Remove.
17655         * config/mmix/mmix.h (TARGET_VERSION): Remove.
17656         * config/mn10300/linux.h (TARGET_VERSION): Remove.
17657         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
17658         * config/pa/pa.h (TARGET_VERSION): Remove.
17659         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
17660         * config/picochip/picochip.h (TARGET_VERSION): Remove.
17661         * config/rs6000/aix.h (TARGET_VERSION): Remove.
17662         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
17663         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
17664         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
17665         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
17666         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
17667         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
17668         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
17669         * config/rs6000/linux.h (TARGET_VERSION): Remove.
17670         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
17671         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
17672         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
17673         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
17674         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
17675         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
17676         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
17677         * config/s390/linux.h (TARGET_VERSION): Remove.
17678         * config/s390/s390.h (TARGET_VERSION): Remove.
17679         * config/s390/tpf.h (TARGET_VERSION): Remove.
17680         * config/score/score.h (TARGET_VERSION): Remove.
17681         * config/sh/linux.h (TARGET_VERSION): Remove.
17682         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
17683         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
17684         * config/sh/sh.h (TARGET_VERSION): Remove.
17685         * config/sh/sh64.h (TARGET_VERSION): Remove.
17686         * config/sh/superh.h (TARGET_VERSION): Remove.
17687         * config/sh/vxworks.h (TARGET_VERSION): Remove.
17688         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
17689         * config/sparc/linux.h (TARGET_VERSION): Remove.
17690         * config/sparc/linux64.h (TARGET_VERSION): Remove.
17691         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
17692         TARGET_NAME32, TARGET_NAME): Remove.
17693         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
17694         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
17695         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
17696         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
17697         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
17698         * config/spu/spu.h (TARGET_VERSION): Remove.
17699         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
17700         * config/v850/v850.h (TARGET_VERSION): Remove.
17701         * config/vax/linux.h (TARGET_VERSION): Remove.
17702         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
17703         * config/xtensa/elf.h (TARGET_VERSION): Remove.
17704         * config/xtensa/linux.h (TARGET_VERSION): Remove.
17705
17706 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
17707
17708         PR target/48142
17709         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
17710         frame-related from frame-unrelated adjustments to the stack pointer.
17711
17712 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
17713
17714         * common.opt (fdebug-types-section): Move earlier.
17715         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
17716
17717 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
17718
17719         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
17720         var.
17721
17722 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
17723
17724         * tree.h (CASE_CHAIN): Define.
17725         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
17726         (gimple_redirect_edge_and_branch): Likewise.
17727
17728 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
17729
17730         PR middle-end/48367
17731         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
17732         calculation.
17733
17734 2011-03-30  Jeff Law  <law@redhat.com>
17735
17736         * PR bootstrap/48371
17737         * reload1.c (reload): Fix botch in last change.
17738
17739         * reload.h (struct reload): Fix typo introduced in last change.
17740
17741 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
17742
17743         * config/arm/arm.opt (mhard-float, msoft-float): Mark
17744         Undocumented.  Remove help text.
17745         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
17746         -mhard-float.
17747
17748 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
17749
17750         * doc/options.texi (NegativeAlias): Document.
17751         (Alias): Mention NegativeAlias.
17752         * opt-functions.awk: Handle NegativeAlias.
17753         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
17754         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
17755         * opts.h (CL_NEGATIVE_ALIAS): Define.
17756         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
17757         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
17758         OPT_mspe_.
17759         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
17760         Alias entries.
17761         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
17762         mno-spe and mno-isel instead of mspe=no and -misel=no.
17763
17764 2011-03-29  Mark Wielaard  <mjw@redhat.com>
17765
17766         * common.opt (fdebug-types-section): New flag.
17767         * doc/invoke.texi: Document new -fno-debug-types-section flag.
17768         * dwarf2out.c (use_debug_types): New define.
17769         (struct die_struct): Mark die_id with GTY desc use_debug_types.
17770         (print_die): Guard output of type unit signatures using
17771         use_debug_types.
17772         (build_abbrev_table): Replace assert of dwarf_version >= 4
17773         with assert on use_debug_types.
17774         (size_of_die): Likewise.
17775         (unmark_dies): Likewise.
17776         (value_format): Decide AT_ref_external form on use_debug_types.
17777         (output_die): Replace dwarf_version version check guard with
17778         use_debug_types where appropriate.
17779         (modified_type_die): Likewise.
17780         (gen_reference_type_die): Likewise.
17781         (dwarf2out_start_source_file): Likewise.
17782         (dwarf2out_end_source_file): Likewise.
17783         (prune_unused_types_walk_attribs): Likewise.
17784         (dwarf2out_finish): Likewise.
17785
17786 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
17787
17788         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
17789
17790 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
17791
17792         PR rtl-optimization/48332
17793         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
17794         mode of input operand N and modeN to its actual mode.
17795
17796 2011-03-30  Jeff Law  <law@redhat.com>
17797
17798         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
17799         define accessor macro.
17800         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
17801         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
17802         (reg_equiv_init): Likewise.
17803         (reg_equivs_size): New variable.
17804         (reg_equiv_init_size): Remove.
17805         (allocate_initial_values): Move prototype to here from....
17806         * integrate.h (allocate_initial_values): Remove prototype.
17807         * integrate.c: Include reload.h.
17808         (allocate_initial_values): Corresponding changes.
17809         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
17810         (fix_reg_equiv_init, no_equiv): Corresponding changes.
17811         (update_equiv_regs): Corresponding changes.
17812         (ira): Corresponding changes.
17813         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
17814         (push_secondary_reload): Corresponding changes.
17815         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
17816         (make_memloc, find_reloads_address): Corresponding changes.
17817         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
17818         (find_reloads_address_1): Corresponding changes.
17819         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
17820         (refers_to_regno_for_reload_p): Corresponding changes.
17821         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
17822         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
17823         * reload1.c: Include ggc.h.
17824         (grow_reg_equivs): New function.
17825         (replace_pseudos_in, reload): Corresponding changes.
17826         (calculate_needs_all_insns, alter_regs): Corresponding changes.
17827         (eliminate_regs_1, elimination_effects): Corresponding changes.
17828         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
17829         (delete_output_reload): Likewise.
17830         * caller-save.c (mark_referenced_regs): Corresponding changes.
17831         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
17832         * frv/predicates.md (frv_load_operand): Corresponding changes.
17833         * microblaze/microblaze.c (double_memory_operand): Corresponding
17834         changes.
17835         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
17836         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
17837         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
17838         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
17839         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
17840         changes.
17841         * pa/pa.c (emit_move_sequence): Corresponding changes.
17842         * vax/vax.c (nonindexed_address_p): Corresponding changes.
17843
17844 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
17845
17846         PR target/47551
17847         * config/arm/arm.c (coproc_secondary_reload_class): Handle
17848         structure modes.  Don't check neon_vector_mem_operand for
17849         vector or structure modes.
17850
17851 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
17852             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
17853
17854         PR target/43590
17855         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
17856         operand 1 and reshuffle the operands to match.
17857         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
17858
17859 2011-03-30  Christian Schüler  <cschueler@gmx.de>
17860
17861         PR driver/48208
17862         * config/c.opt (F): Added 'Driver' to -F option.
17863
17864         PR driver/48260
17865         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
17866           handler function.
17867         * config/darwin.opt: Added '-arch' option.
17868
17869 2011-03-30  Nick Clifton  <nickc@redhat.com>
17870
17871         * config/rx/rx.md: Add peepholes and patterns to combine
17872         extending loads and simple arithmetic instructions.
17873         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
17874         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
17875         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
17876         modes to use pre-decrement and post-increment addressing.
17877         (rx_is_restricted_memory_address): Add range checking of REG+INT
17878         addresses.
17879         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
17880         (rx_memory_move_cost): Adjust cost of stores.
17881         (rx_adjust_insn_length): New function.
17882
17883 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
17884
17885         PR c/48305
17886         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
17887         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
17888         matching arg00/arg01 types.
17889
17890 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
17891
17892         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
17893         last_location to UNKNOWN_LOCATION.
17894
17895 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
17896
17897         PR target/48349
17898         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
17899         FLOAT_SSE_REGS.
17900
17901 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
17902             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17903
17904         PR bootstrap/48337
17905         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
17906         Init(PROCESSOR_V7).
17907         (sparc_cpu): Likewise.
17908         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
17909         PROCESSOR_V7.
17910
17911 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
17912
17913         PR target/48336
17914         PR middle-end/48342
17915         PR rtl-optimization/48345
17916         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
17917         hard regs for given mode from profitable regs when doing secondary
17918         allocation.
17919
17920 2011-03-29  Jeff Law  <law@redhat.com>
17921
17922         PR bootstrap/48327
17923         * tree-ssa-threadupdate.c (struct redirection_data): Remove
17924         do_not_duplicate field.
17925         (lookup_redirection_data): Corresponding changes.
17926         (create_duplicates): Always create a template block.
17927         (redirect_edges): Remove code which reused the original block
17928         when it was going to become unreachable code.
17929         (thread_block): Don't set do_not_duplicate field.
17930
17931 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
17932
17933         * lto-opts.c (register_user_option_p, lto_register_user_option):
17934         Make type argument unsigned.
17935         * lto-streamer.h (lto_register_user_option): Make type argument
17936         unsigned.
17937         * opth-gen.awk: Make CL_* macros unsigned.
17938         * opts-common.c (find_opt): Make lang_mask argument unsigned.
17939         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
17940         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
17941         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
17942         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
17943         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
17944         (find_opt): Make lang_mask argument unsigned.
17945
17946 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
17947
17948         PR rtl-optimization/48331
17949         PR rtl-optimization/48334
17950         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
17951         for any used algorithm.
17952
17953 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
17954
17955         * ira-conflicts.c (build_object_conflicts): Add unused attribute
17956         to parent_max.
17957
17958 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
17959
17960         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
17961         (alpha_option_override): Don't set alpha_sr_alias_set.
17962         (emit_frame_store_1): Use gen_frame_mem rather than calling
17963         set_mem_alias_set.
17964         (alpha_expand_epilogue): Ditto.
17965
17966 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
17967
17968         PR tree-optimization/48290
17969         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
17970         vectorization, check that relevant phis in the basic block after
17971         the inner loop are really inner loop's exit phis.
17972
17973 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
17974
17975         PR debug/48190
17976         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
17977         (cached_dw_loc_list_def): New structure.
17978         (cached_dw_loc_list): New typedef.
17979         (cached_dw_loc_list_table): New variable.
17980         (cached_dw_loc_list_table_hash): New function.
17981         (cached_dw_loc_list_table_eq): Likewise.
17982         (add_location_or_const_value_attribute): Take a bool cache_p.
17983         Cache the list when the parameter is true.
17984         (gen_formal_parameter_die): Update caller.
17985         (gen_variable_die): Likewise.
17986         (dwarf2out_finish): Likewise.
17987         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
17988         while generating debug info for the decl.
17989         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
17990         (dwarf2out_init): Initialize cached_dw_loc_list_table.
17991         (resolve_addr): Cache the result of resolving a chain of
17992         location lists.
17993
17994 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
17995
17996         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
17997         conflict object hard regset nodes have intersecting hard reg sets.
17998
17999         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
18000         after regstat_init_n_sets_and_refs.
18001
18002         * ira.c: Add more comments at the top.
18003         (setup_stack_reg_pressure_class, setup_pressure_classes):
18004         Add comments how we compute the register pressure classes.
18005         (setup_allocno_and_important_classes): Add more comments.
18006         (setup_class_translate_array, reorder_important_classes)
18007         (setup_reg_class_relations): Add comments.
18008
18009         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
18010         start of the file.
18011
18012         * ira-color.c: Add 2011 to the Copyright line.
18013         (assign_hard_reg):  Add more comments.
18014         (improve_allocation): Ditto.
18015
18016         * ira-costs.c: Add 2011 to the Copyright line.
18017         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
18018         comments.
18019         (setup_regno_cost_classes_by_mode): Ditto.
18020
18021         Initial patches from ira-improv branch:
18022
18023         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
18024
18025         * ira-build.c (ira_create_object): Remove initialization of
18026         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
18027         (ira_create_allocno): Remove initialization of
18028         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
18029         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
18030         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
18031         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
18032         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
18033         Initialize ALLOCNO_ADD_DATA.
18034         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
18035         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
18036         ALLOCNO_REG.
18037         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
18038         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
18039
18040         * ira.c (ira_reallocate): Remove.
18041         (setup_pressure_classes): Call
18042         ira_init_register_move_cost_if_necessary.  Use
18043         ira_register_move_cost instead of ira_get_register_move_cost.
18044         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
18045         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
18046
18047         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
18048         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
18049         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
18050         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
18051         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
18052         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
18053         Fix formatting.
18054         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
18055         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
18056         (struct allocno_color_data): New.
18057         (allocno_color_data_t): New typedef.
18058         (allocno_color_data): New definition.
18059         (ALLOCNO_COLOR_DATA): New macro.
18060         (struct object_color_data): New.
18061         (object_color_data_t): New typedef.
18062         (object_color_data): New definition.
18063         (OBJECT_COLOR_DATA): New macro.
18064         (update_copy_costs, calculate_allocno_spill_cost): Call
18065         ira_init_register_move_cost_if_necessary.  Use
18066         ira_register_move_cost instead of ira_get_register_move_cost.
18067         (move_spill_restore, update_curr_costs): Ditto.
18068         (allocno_spill_priority): Make it inline.
18069         (color_pass): Allocate and free allocno_color_dat and object_color_data.
18070         (struct coalesce_data, coalesce_data_t): New.
18071         (allocno_coalesce_data): New definition.
18072         (ALLOCNO_COALESCE_DATA): New macro.
18073         (merge_allocnos, coalesced_allocno_conflict_p): Use
18074         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
18075         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
18076         (coalesce_allocnos): Ditto.
18077         (setup_coalesced_allocno_costs_and_nums): Ditto.
18078         (collect_spilled_coalesced_allocnos): Ditto.
18079         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
18080         (setup_slot_coalesced_allocno_live_ranges): Ditto.
18081         (coalesce_spill_slots): Ditto.
18082         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
18083         free allocno_coalesce_data.
18084
18085         * ira-conflicts.c: Fix formatting.
18086         (process_regs_for_copy): Call
18087         ira_init_register_move_cost_if_necessary.  Use
18088         ira_register_move_cost instead of ira_get_register_move_cost.
18089         (build_object_conflicts): Optimize.
18090
18091         * ira-costs.c (record_reg_classes): Optimize.  Call
18092         ira_init_register_move_cost_if_necessary.  Use
18093         ira_register_move_cost, ira_may_move_in_cost, and
18094         ira_may_move_out_cost instead of ira_get_register_move_cost and
18095         ira_get_may_move_cost.
18096         (record_address_regs): Ditto.
18097         (scan_one_insn): Optimize.
18098         (find_costs_and_classes): Optimize.
18099         (process_bb_node_for_hard_reg_moves): Call
18100         ira_init_register_move_cost_if_necessary.  Use
18101         ira_register_move_cost instead of ira_get_register_move_cost.
18102
18103         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
18104         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
18105         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
18106         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
18107         definitions.
18108         (ira_initiate_emit_data, ira_finish_emit_data)
18109         (create_new_allocno): New functions.
18110         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
18111         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
18112         Use ira_register_move_cost instead of ira_get_register_move_cost.
18113
18114         * ira-int.h: Fix some comments.
18115         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
18116         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
18117         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
18118         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
18119         add_data.
18120         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
18121         bitfield after mode.  Make hard_regno a short int.  Make
18122         hard_regno short.  Remove first_coalesced_allocno and
18123         next_coalesced_allocno.  Move mem_optimized_dest_p,
18124         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
18125         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
18126         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
18127         temp, colorable_p.  Add new member add_data.
18128         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
18129         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
18130         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
18131         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
18132         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
18133         (ALLOCNO_ADD_DATA): New macro.
18134         (ira_emit_data_t): New typedef.
18135         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
18136         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
18137         from struct ira_allocno.
18138         (ALLOCNO_EMIT_DATA): New macro.
18139         (ira_allocno_emit_data, allocno_emit_reg): New.
18140         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
18141         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
18142         (OBJECT_ADD_DATA): New macro.
18143         (ira_reallocate): Remove.
18144         (ira_initiate_emit_data, ira_finish_emit_data): New.
18145         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
18146         (ira_init_register_move_cost_if_necessary): New.
18147         (ira_object_conflict_iter_next): Merge into
18148         ira_object_conflict_iter_cond.
18149         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
18150
18151         * ira-live.c (process_single_reg_class_operands): Call
18152         ira_init_register_move_cost_if_necessary.  Use
18153         ira_register_move_cost instead of ira_get_register_move_cost.
18154
18155         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
18156
18157         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
18158
18159         * ira-costs.c: Fix formatting.
18160         (cost_classes, cost_classes_num): Remove.
18161         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
18162         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
18163         (cost_classes_del, cost_classes_htab): New.
18164         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
18165         (initiate_regno_cost_classes, setup_cost_classes): New.
18166         (setup_regno_cost_classes_by_aclass): New.
18167         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
18168         (record_reg_classes): Use regno_cost_classes instead of
18169         cost_classes.  Move checking opposite operand up.
18170         (record_address_regs): Use regno_cost_classes
18171         instead of cost_classes.
18172         (scan_one_insn): Ditto.  Use always general register.
18173         (print_allocno_costs): Use regno_cost_classes instead of
18174         cost_classes.
18175         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
18176         (find_costs_and_classes): Set up cost classes for each registers.
18177         Use also their mode for this.  Use regno_cost_classes instead of
18178         cost_classes.
18179         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
18180         cost_classes.
18181         (free_ira_costs, ira_init_costs): Don't use cost_classes.
18182         (ira_costs, ira_set_pseudo_classes): Call
18183         initiate_regno_cost_classes and finish_regno_cost_classes.
18184
18185         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
18186
18187         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
18188
18189         * target.def (ira_cover_classes): Remove.
18190
18191         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
18192
18193         * doc/tm.texi.in: Ditto.
18194
18195         * ira-conflicts.c: Remove mentioning cover classes from the file.
18196         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
18197         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
18198
18199         * targhooks.c (default_ira_cover_classes): Remove.
18200
18201         * targhooks.h (default_ira_cover_classes): Ditto.
18202
18203         * haifa-sched.c: Remove mentioning cover classes from the file.
18204         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
18205         ira_pressure_classes and ira_pressure_classes_num instead of
18206         ira_reg_class_cover_size and ira_reg_class_cover.  Use
18207         sched_regno_pressure_class instead of sched_regno_cover_class.
18208         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
18209         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
18210
18211         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
18212         classes from the file.
18213         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
18214         (struct object_hard_regs, struct object_hard_regs_node): New.
18215         (struct ira_object): New members profitable_hard_regs,
18216         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
18217         (struct ira_allocno): Rename cover_class to aclass.  Rename
18218         cover_class_cost and updated_cover_class_cost to class_cost and
18219         updated_class_cost.  Remove splay_removed_p and
18220         left_conflict_size.  Add new members colorable_p.
18221         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
18222         (ALLOCNO_COLORABLE_P): New macro.
18223         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
18224         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
18225         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
18226         (OBJECT_...): Rename parameter C to O.
18227         (OBJECT_PROFITABLE_HARD_REGS): New macro.
18228         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
18229         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
18230         (struct target_ira_int): New members x_ira_max_memory_move_cost,
18231         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
18232         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
18233         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
18234         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
18235         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
18236         x_ira_reg_class_subunion.
18237         (ira_max_memory_move_cost, ira_max_register_move_cost)
18238         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
18239         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
18240         (ira_important_class_nums, ira_reg_class_superunion): New macros.
18241         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
18242         (ira_reg_class_union): Rename to ira_reg_class_subunion.
18243         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
18244         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
18245         (ira_tune_allocno_costs_and_cover_classes): Rename to
18246         ira_tune_allocno_costs.
18247         (ira_debug_hard_regs_forest): New.
18248         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
18249         (ira_object_conflict_iter_next): Fix comments.
18250         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
18251         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
18252         cover_class to aclass.
18253         (ira_allocate_and_accumulate_costs): Ditto.
18254         (ira_allocate_and_set_or_copy_costs): Ditto.
18255
18256         * opts.c (decode_options): Remove ira_cover_class check.
18257
18258         * ira-color.c: Remove mentioning cover classes from the file.  Use
18259         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
18260         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
18261         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
18262         (splay-tree.h): Remove include.
18263         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
18264         before copy_freq_compare_func.
18265         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
18266         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
18267         New definitions.
18268         (hard_regs_roots, hard_regs_node_vec): Ditto.
18269         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
18270         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
18271         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
18272         (create_new_object_hard_regs_node): Ditto.
18273         (add_new_object_hard_regs_node_to_forest): Ditto.
18274         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
18275         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
18276         Ditto.
18277         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
18278         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
18279         (remove_unused_object_hard_regs_nodes): Ditto.
18280         (enumerate_object_hard_regs_nodes): Ditto.
18281         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
18282         (object_hard_regs_subnode_t): Ditto.
18283         (struct object_hard_regs_subnode): Ditto.
18284         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
18285         (setup_object_hard_regs_subnode_index): Ditto.
18286         (get_object_hard_regs_subnodes_num): Ditto.
18287         (form_object_hard_regs_nodes_forest): Ditto.
18288         (finish_object_hard_regs_nodes_tree): Ditto.
18289         (finish_object_hard_regs_nodes_forest): Ditto.
18290         (allocnos_have_intersected_live_ranges_p): Rename to
18291         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
18292         (pseudos_have_intersected_live_ranges_p): Rename to
18293         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
18294         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
18295         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
18296         (update_copy_costs): Remove assert.  Skip cost update if the hard
18297         reg does not belong the class.
18298         (assign_hard_reg): Process only profitable hard regs.
18299         (uncolorable_allocnos_num): Make it scalar.
18300         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
18301         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
18302         and ira_reg_class_max_nregs.
18303         (bucket_allocno_compare_func): Check frequency first.
18304         (sort_bucket): Add compare function as a parameter.
18305         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
18306         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
18307         (push_allocno_to_stack): Rewrite for checking new allocno
18308         colorability.
18309         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
18310         (push_only_colorable): Pass new parameter to sort_bucket.
18311         (push_allocno_to_spill): Remove.
18312         (allocno_spill_priority_compare): Make it inline and rewrite.
18313         (splay_tree_allocate, splay_tree_free): Remove.
18314         (allocno_spill_sort_compare): New function.
18315         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
18316         build and use splay tree.  Choose first allocno in uncolorable
18317         allocno bucket to spill.  Remove setting spill cost.
18318         (all_conflicting_hard_regs): Remove.
18319         (setup_allocno_available_regs_num): Check only profitable hard
18320         regs.  Print info about hard regs nodes.
18321         (setup_allocno_left_conflicts_size): Remove.
18322         (put_allocno_into_bucket): Don't call
18323         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
18324         (improve_allocation): New.
18325         (color_allocnos): Call setup_profitable_hard_regs,
18326         form_object_hard_regs_nodes_forest, improve_allocation,
18327         finish_object_hard_regs_nodes_forest.  Setup spill cost.
18328         (print_loop_title): Use pressure classes.
18329         (color_allocnso): Ditto.
18330         (do_coloring): Remove allocation and freeing splay_tree_node_pool
18331         and allocnos_for_spilling.
18332         (ira_sort_regnos_for_alter_reg): Don't setup members
18333         {first,next}_coalesced_allocno.
18334         (color): Remove allocating and freeing removed_splay_allocno_vec.
18335         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
18336         prohibited_class_mode_regs.
18337
18338         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
18339         formatting.
18340         (update_allocno_pressure_excess_length): Use pressure classes.
18341         (inc_register_pressure, dec_register_pressure): Check for pressure
18342         class.
18343         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
18344         pressure class.  Use ira_reg_class_nregs instead of
18345         ira_reg_class_max_nregs.
18346         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
18347         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
18348         (single_reg_class): Use ira_reg_class_nregs instead of
18349         ira_reg_class_max_nregs.
18350         (process_bb_node_lives): Use pressure classes.
18351
18352         * ira-emit.c: Remove mentioning cover classes from the file.  Use
18353         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
18354         (change_loop): Use pressure classes.
18355         (modify_move_list): Call ira_set_allocno_class instead of
18356         ira_set_allocno_cover_class.
18357
18358         * ira-build.c: Remove mentioning cover classes from the file.  Use
18359         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
18360         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
18361         ALLOCNO_UPDATED_CLASS_COST instead of
18362         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
18363         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
18364         (ira_create_allocno): Remove initialization of
18365         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
18366         ALLOCNO_COLORABLE_P.
18367         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
18368         Update conflict regs for the objects.
18369         (create_cap_allocno): Remove assert.  Don't propagate
18370         ALLOCNO_AVAILABLE_REGS_NUM.
18371         (ira_free_allocno_costs): New function.
18372         (finish_allocno): Change a part of code into call of
18373         ira_free_allocno_costs.
18374         (low_pressure_loop_node_p): Use pressure classes.
18375         (object_range_compare_func): Don't compare classes.
18376         (setup_min_max_conflict_allocno_ids): Ditto.
18377
18378         * loop-invariant.c: Remove mentioning cover classes from the file.
18379         Use ira_pressure_classes and ira_pressure_classes_num instead of
18380         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
18381         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
18382         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
18383         Use reg_allocno_class instead of reg_cover_class.
18384         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
18385         STACK_REG_COVER_CLASS.
18386         (get_regno_cover_class): Rename to get_regno_pressure_class.
18387         (move_loop_invariants): Initialize and finalize regstat.
18388
18389         * ira.c: Remove mentioning cover classes from the file.  Add
18390         comments about coloring without cover classes.  Use ALLOCNO_CLASS
18391         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
18392         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
18393         setup_class_subset_and_memory_move_costs.
18394         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
18395         (setup_cover_and_important_classes): Rename to
18396         setup_allocno_and_important_classes.
18397         (setup_class_translate_array): New.
18398         (setup_class_translate): Call it for allocno and pressure classes.
18399         (cover_class_order): Rename to allocno_class_order.
18400         (comp_reg_classes_func): Use ira_allocno_class_translate instead
18401         of ira_class_translate.
18402         (reorder_important_classes): Set up ira_important_class_nums.
18403         (setup_reg_class_relations): Set up ira_reg_class_superunion.
18404         (print_class_cover): Rename to print_classes.  Add parameter.
18405         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
18406         Print pressure classes too.
18407         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
18408         setup_reg_subclasses.
18409         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
18410         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
18411         (setup_prohibited_class_mode_regs): Use
18412         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
18413         (clarify_prohibited_class_mode_regs): New function.
18414         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
18415         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
18416         (ira_init_once): Initialize them.
18417         (free_register_move_costs): Process them.
18418         (ira_init): Move calls of find_reg_classes and
18419         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
18420         Call clarify_prohibited_class_mode_regs.
18421         (ira_no_alloc_reg): Remove.
18422         (too_high_register_pressure_p): Use pressure classes.
18423
18424         * sched-deps.c: Remove mentioning cover classes from the file.
18425         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
18426         ira_pressure_classes and ira_pressure_classes_num instead of
18427         ira_reg_class_cover_size and ira_reg_class_cover.
18428         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
18429         sched_regno_pressure_class instead of sched_regno_cover_class.
18430         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
18431         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
18432
18433         * ira.h: Add 2010 to Copyright.
18434         (ira_no_alloc_reg): Remove external.
18435         (struct target_ira): Rename x_ira_hard_regno_cover_class,
18436         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
18437         x_ira_class_translate to x_ira_hard_regno_allocno_class,
18438         x_ira_allocno_classes_num, x_ira_allocno_classes, and
18439         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
18440         x_ira_pressure_classes, x_ira_pressure_class_translate, and
18441         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
18442         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
18443         x_ira_no_alloc_regs.
18444         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
18445         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
18446         ira_allocno_classes_num and ira_allocno_classes.
18447         (ira_class_translate): Rename to ira_allocno_class_translate.
18448         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
18449         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
18450         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
18451         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
18452         (ira_no_alloc_regs): New.
18453
18454         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
18455         classes from the file.  Use ALLOCNO_CLASS instead of
18456         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
18457         ALLOCNO_COVER_CLASS_COST.
18458         (regno_cover_class): Rename to regno_aclass.
18459         (record_reg_classes): Use ira_reg_class_subunion instead of
18460         ira_reg_class_union.
18461         (record_address_regs): Check overflow.
18462         (scan_one_insn): Ditto.
18463         (print_allocno_costs): Print total mem cost fore regional allocation.
18464         (print_pseudo_costs): Use REG_N_REFS.
18465         (find_costs_and_classes): Use classes intersected with them on the
18466         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
18467         ira_reg_class_union.  Use ira_allocno_class_translate and
18468         regno_aclass instead of ira_class_translate and regno_cover_class.
18469         Modify code for finding regno_aclass.  Setup preferred classes for
18470         the next pass.
18471         (setup_allocno_cover_class_and_costs): Rename to
18472         setup_allocno_class_and_costs.  Use regno_aclass instead of
18473         regno_cover_class.  Use ira_set_allocno_class instead of
18474         ira_set_allocno_cover_class.
18475         (init_costs, finish_costs): Use regno_aclass instead of
18476         regno_cover_class.
18477         (ira_costs): Use setup_allocno_class_and_costs instead of
18478         setup_allocno_cover_class_and_costs.
18479         (ira_tune_allocno_costs_and_cover_classes): Rename to
18480         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
18481         by processing objects.  Use ira_reg_class_max_nregs instead of
18482         ira_reg_class_nregs.
18483
18484         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
18485
18486         * sched-int.h: Remove mentioning cover classes from the file.
18487         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
18488
18489         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
18490         classes from the file.
18491         (struct reg_pref): Rename coverclass into allocnoclass.
18492         (reg_cover_class): Rename to reg_allocno_class.
18493
18494         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
18495
18496         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
18497
18498         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
18499
18500         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
18501
18502         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
18503
18504         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
18505
18506         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
18507
18508         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
18509
18510         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
18511
18512         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
18513
18514         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
18515         (i386_ira_cover_classes): Ditto.
18516
18517         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
18518
18519         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
18520
18521         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
18522
18523         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
18524
18525         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
18526
18527         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
18528
18529         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
18530         (mips_ira_cover_classes): Ditto.
18531
18532         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
18533
18534         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
18535
18536         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
18537
18538         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
18539
18540         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
18541
18542         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
18543         (IRA_COVER_CLASSES_VSX): Ditto.
18544
18545         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
18546         (rs6000_ira_cover_classes): Ditto.
18547
18548         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
18549
18550         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
18551
18552         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
18553
18554         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
18555
18556         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
18557
18558         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
18559
18560         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
18561
18562         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
18563
18564         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
18565
18566         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
18567
18568 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
18569
18570         PR debug/48253
18571         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
18572         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
18573         dw_fde_unlikely_section_end_label, cold_in_std_section,
18574         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
18575         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
18576         fields.
18577         (output_fde): Use dw_fde_second_{begin,end} if second is
18578         true, otherwise dw_fde_{begin,end}.
18579         (output_call_frame_info): Test dw_fde_second_begin != NULL
18580         instead of dw_fde_switched_sections.
18581         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
18582         fields, initialize new fields.  Initialize in_std_section
18583         unconditionally from the first partition.
18584         (dwarf2out_end_epilogue): Don't override dw_fde_end when
18585         dw_fde_second_begin is non-NULL.
18586         (dwarf2out_switch_text_section): Stop initializing removed
18587         dw_fde_struct fields, initialize new fields, initialize
18588         also dw_fde_end here.  Set dw_fde_switch_cfi even when
18589         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
18590         (struct var_loc_list_def): Add last_before_switch field.
18591         (arange_table, arange_table_allocated, arange_table_in_use,
18592         ARANGE_TABLE_INCREMENT, add_arange): Removed.
18593         (size_of_aranges): Count !in_std_section and !second_in_std_section
18594         hunks in fdes, instead of looking at arange_table_in_use.
18595         (output_aranges): Add aranges_length argument, don't call
18596         size_of_aranges here.  Instead of using aranges_table*
18597         emit ranges for fdes when !in_std_section resp.
18598         !second_in_std_section.
18599         (dw_loc_list): Break ranges crossing section switch.
18600         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
18601         use dw_fde_second_end instead of dw_fde_end as end of last range.
18602         (gen_subprogram_die): Don't call add_arange.  Use
18603         dw_fde_{begin,end} for first partition and if switched
18604         section dw_fde_second_{begin,end} for the second.
18605         (var_location_switch_text_section_1,
18606         var_location_switch_text_section): New functions.
18607         (dwarf2out_begin_function): Initialize cold_text_section even
18608         when function_section () isn't text_section.
18609         (prune_unused_types): Don't walk arange_table.
18610         (dwarf2out_finish): Don't needlessly test
18611         flag_reorder_blocks_and_partition when testing cold_text_section_used.
18612         If info_section_emitted, call size_of_aranges and if it indicates
18613         non-empty .debug_aranges, call output_aranges with the computed
18614         size.  Stop using removed dw_fde_struct fields, use
18615         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
18616         for second.
18617
18618         PR debug/48203
18619         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
18620         create ENTRY_VALUE if incoming or address of incoming's MEM
18621         is a hard REG.
18622         * dwarf2out.c (mem_loc_descriptor): Don't emit
18623         DW_OP_GNU_entry_value of DW_OP_fbreg.
18624         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
18625         on ENTRY_VALUE is able to find the canonical parameter VALUE.
18626         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
18627         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
18628         ENTRY_VALUE_EXPs.
18629         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
18630         is a REG_P or MEM_P with REG_P address, compute hash directly
18631         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
18632         (preserve_only_constants): Don't clear VALUES forwaring
18633         ENTRY_VALUE to some other VALUE.
18634
18635 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
18636
18637         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
18638         instead of GEN_INT.
18639
18640 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
18641
18642         * cfgexpand.c (expand_gimple_cond): Always set the source location and
18643         block before expanding the statement.
18644         (expand_gimple_stmt_1): Likewise.  Set them here...
18645         (expand_gimple_stmt): ...and not here.  Tidy.
18646         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
18647         unknown.
18648
18649 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
18650
18651         * Makefile.in: New rule for cprop.o.
18652         * gcse.c: Move constant/copy propagation to cprop.c.
18653         (compute_local_properties): Only handle expression tables.
18654         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
18655         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
18656         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
18657         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
18658         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
18659         compute_cprop_data, find_used_regs, try_replace_reg,
18660         find_avail_set, cprop_jump, constprop_register, cprop_insn,
18661         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
18662         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
18663         find_bypass_set, reg_killed_on_edge, bypass_block,
18664         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
18665         execute_rtl_cprop, pass_rtl_cprop): Move to...
18666         * cprop.c: ...here.  New file, constant/copy propagation for RTL
18667         moved from gcse.c to here with minor cleanups in duplicated code.
18668
18669 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
18670
18671         * config/i386/i386.c (flag_opts): Fix a typo in
18672         -mavx256-split-unaligned-store.
18673
18674 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
18675
18676         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
18677         LIBCALL_VALUE): Remove macros.
18678         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
18679         TARGET_FUNCTION_VALUE_REGNO_P): Define.
18680         (h8300_function_value, h8300_libcall_value,
18681         h8300_function_value_regno_p): New functions.
18682
18683 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
18684
18685         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
18686
18687 2011-03-28  Jeff Law  <law@redhat.com>
18688
18689         * tree-ssa-threadupdate.c (redirect_edges): Call
18690         create_edge_and_update_destination_phis as needed.
18691         (create_edge_and_update_destination_phis): Accept new BB argument.
18692         All callers updated.
18693         (thread_block): Do not update the profile when threading around
18694         intermediate blocks.
18695         (thread_single_edge): Likewise.
18696         (determine_bb_domination_status): If BB is not a successor of the
18697         loop header, return NONDOMINATING.
18698         (register_jump_thread): Note when we register a jump thread around
18699         an intermediate block.
18700         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
18701         (thread_across_edge): Use it.
18702
18703 2011-03-28  Tristan Gingold  <gingold@adacore.com>
18704
18705         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
18706         when for_return is 2.
18707
18708 2011-03-28  Jeff Law  <law@redhat.com>
18709
18710         * var-tracking.c (canonicalize_values_mark): Delete unused
18711         lhs assignment.
18712         (canonicalize_values_star, set_variable_part): Likewise.
18713         (clobber_variable_part, delete_variable_part): Likewise.
18714
18715 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
18716
18717         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
18718
18719 2011-03-28  Martin Jambor  <mjambor@suse.cz>
18720
18721         * tree-inline.c (expand_call_inline): Do not check that destination
18722         node is analyzed.
18723         (optimize_inline_calls): Assert that destination node is analyzed.
18724         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
18725         not call tree_lowering_passes.
18726         * cgraph.h (cgraph_analyze_function): Declare.
18727         * cgraphunit.c (cgraph_analyze_function): Make public.
18728
18729 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
18730
18731         * config/sparc/sparc-opts.h: New.
18732         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
18733         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
18734         (sparc_option_override): Store processor_type enumeration rather
18735         than string in cpu_default.  Remove name and enumeration from
18736         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
18737         without using sparc_select.  Use target_flags_explicit instead of
18738         fpu_option_set.
18739         * config/sparc/sparc.h (enum processor_type): Move to
18740         sparc-opts.h.
18741         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
18742         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
18743         HeaderInclude entry.
18744         (mcpu=, mtune=): Use Var and Enum.
18745         (sparc_processor_type): New Enum and EnumValue entries.
18746
18747 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18748             Iain Sandoe  <iains@gcc.gnu.org>
18749
18750         PR target/48245
18751         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
18752
18753 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
18754
18755         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
18756         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
18757         Insert new statements at it in lieu of STMT.
18758         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
18759         * tree-vect-stmts.c (vectorizable_store): Likewise.
18760         (vectorizable_load): Likewise.
18761
18762 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
18763
18764         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
18765         (divtf3): Ditto.
18766         (multf3): Ditto.
18767         (subtf3): Ditto.
18768
18769 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
18770
18771         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
18772         unaligned 256bit load/store.
18773         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
18774         (*avx_movdqu<avxmodesuffix>): Likewise.
18775
18776 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18777
18778         PR target/48288
18779         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
18780         * config/pa/pa.md (iordi3): Use new predicate in expander.
18781         (iorsi3): Likewise.
18782
18783 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
18784
18785         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
18786         FUNCTION_VALUE_REGNO_P): Remove macros.
18787         * config/mips/mips-protos.h (mips_function_value): Remove.
18788         * config/mips/mips.c (mips_function_value): Rename to...
18789         (mips_function_value_1): ... this. Make static.  Handle receiving
18790         the function type in 'fn_decl_or_type' argument.
18791         (mips_function_value, mips_libcall_value,
18792         mips_function_value_regno_p): New function.
18793         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
18794         TARGET_FUNCTION_VALUE_REGNO_P): Define.
18795
18796 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
18797
18798         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
18799         and -mavx256-split-unaligned-store.
18800         (ix86_option_override_internal): Split 32-byte AVX unaligned
18801         load/store by default.
18802         (ix86_avx256_split_vector_move_misalign): New.
18803         (ix86_expand_vector_move_misalign): Use it.
18804
18805         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
18806         -mavx256-split-unaligned-store.
18807
18808         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
18809         256bit load/store.  Generate unaligned store on misaligned memory
18810         operand.
18811         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
18812         256bit load/store.
18813         (*avx_movdqu<avxmodesuffix>): Likewise.
18814
18815         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
18816         -mavx256-split-unaligned-store.
18817
18818 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
18819
18820         PR target/38598
18821         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
18822         Update commentary.
18823
18824 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
18825
18826         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
18827         opno arguments with an expand_operand.  Use create_input_operand.
18828         (mips_prepare_builtin_target): Delete.
18829         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
18830         functions.
18831         (mips_expand_builtin_direct): Use create_output_operand and
18832         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
18833         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
18834         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
18835
18836 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
18837
18838         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
18839         function.
18840         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
18841
18842 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
18843
18844         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
18845         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
18846         basic blocks and call commit_edge_insertions directly.
18847         (fixup_abnormal_edges): Move from here to...
18848         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
18849         on the edges and return whether some have actually been inserted.
18850         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
18851         compensation code.
18852
18853 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
18854
18855         PR rtl-optimization/48144
18856         * sel-sched-ir.c (merge_history_vect): Factor out from ...
18857         (merge_expr_data): ... here.
18858         (av_set_intersect): Rename to av_set_code_motion_filter.
18859         Update all callers.  Call merge_history_vect when an expression
18860         is found in both sets.
18861         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
18862
18863 2011-03-26  Alan Modra  <amodra@gmail.com>
18864
18865         * config/rs6000/predicates.md (word_offset_memref_op): Handle
18866         cmodel medium addresses.
18867         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
18868         64-bit gpr loads and stores.
18869         (rs6000_secondary_reload_ppc64): New function.
18870         * config/rs6000/rs6000-protos.h: Declare it.
18871         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
18872
18873 2011-03-26  Alan Modra  <amodra@gmail.com>
18874
18875         PR target/47487
18876         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
18877         GNU Go in traceback table.
18878
18879 2011-03-25  Richard Henderson  <rth@redhat.com>
18880
18881         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
18882         if there are exactly 6 operands.
18883         (set_storage_via_setmem): Similarly.
18884
18885 2011-03-25  Kai Tietz  <ktietz@redhat.com>
18886
18887         * collect2.c (write_c_file_stat): Handle backslash
18888         as right-hand directory separator.
18889         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
18890         checking just for slash.
18891         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
18892         instead of checking for trailing slash.
18893         * gcc.c (record_temp_file): Use filename_cmp instead
18894         of strcmp.
18895         (do_spec_1): Likewise.
18896         (replace_outfile_spec_function): Likewise.
18897         (is_directory): Use filename_ncmp instead of strncmp.
18898         (print_multilib_info): Likewise.
18899         * gcov.c (find_source): Use filename_cmp instead
18900         instead of strcmp.
18901         (make_gcov_file_name): Fix order of slash/backslash
18902         checks.
18903         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
18904         (add_standard_paths): Likewise.
18905         * mips-tfile.c (saber_stop): Handle backslash.
18906         * prefix.c (update_path): Use filename_ncmp instead of
18907         strncmp.
18908         * profile.c (output_location): Use filename_cmp instead
18909         of strcmp.
18910         * read-md.c (handle_toplevel_file): Handle backslash.
18911         * tlink.c (frob_extension):  Likewise.
18912         * tree-cfg.c (same_line_p): Use filename_cmp instead of
18913         strcmp.
18914         * tree-dump.c (dequeue_and_dump): Handle backslash.
18915         * tree.c (get_file_function_name): Likewise.
18916         * gengtype.c (read_input_list): Likewise.
18917         (get_file_realbasename): Likewise.
18918         (get_output_file_with_visibility): Use filename_cmp
18919         instead of strcmp.
18920
18921 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
18922
18923         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
18924         case to VFPv1.
18925
18926 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
18927
18928         * fold-const.c (expr_location_or): New function.
18929         (fold_truth_not_expr): Call it.
18930
18931 2011-03-25  Jeff Law  <law@redhat.com>
18932
18933         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
18934         va_end.
18935         * c-family/c-common.c (def_fn_type): Likewise.
18936         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
18937         * emit-rtl.c (gen_rtvec): Likewise.
18938         * lto/lto-lang.c (def_fn_type): Likewise.
18939
18940 2011-03-25  Richard Guenther  <rguenther@suse.de>
18941
18942         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
18943         also generate copies.
18944         (fini_copy_prop): Handle constant values properly.
18945
18946 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
18947
18948         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
18949         mode size instead of bitsize with DWARF2_ADDR_SIZE.
18950         (hash_loc_operands, compare_loc_operands): Handle
18951         DW_OP_GNU_entry_value.
18952
18953 2011-03-25  Kai Tietz  <ktietz@redhat.com>
18954
18955         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
18956         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
18957         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
18958         comment and use macro TARGET_64BIT_MS_ABI instead.
18959         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
18960         and change default behavior for 32-bit MS_ABI.
18961         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
18962         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
18963         32-bit, too.
18964         (ix86_cfun_abi): Likewise.
18965         (ix86_maybe_switch_abi): Adjust comment.
18966         (init_cumulative_args): Check for bit-ness in MS_ABI case.
18967         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
18968         instead of checking for SYSV_ABI.
18969         (ix86_nsaved_sseregs): Likewise.
18970         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
18971         to 16 bytes.
18972         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
18973         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
18974         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
18975         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
18976         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
18977
18978 2011-03-25  Richard Guenther  <rguenther@suse.de>
18979
18980         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
18981         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
18982         (verify_gimple): Remove.
18983         * tree-cfg.c (verify_gimple_call): Merge verification
18984         from verify_stmts.
18985         (verify_gimple_phi): Merge verification from verify_stmts.
18986         (verify_gimple_label): New function.
18987         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
18988         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
18989         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
18990         (verify_stmts): Rename to verify_gimple_in_cfg.
18991         (verify_gimple_in_cfg): New function.
18992         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
18993         * tree-ssa.c (verify_ssa): Likewise.
18994         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
18995
18996 2011-03-25  Richard Guenther  <rguenther@suse.de>
18997
18998         * passes.c (init_optimization_passes): Add FRE pass after
18999         early SRA.
19000
19001 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
19002             Andrew Stubbs  <ams@codesourcery.com>
19003
19004         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
19005         for Cortex-A8.
19006         (arm_movdi_vfp_cortexa8): New pattern.
19007         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
19008         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
19009         instructions when tuning for Cortex-A8.  Set attribute "arch".
19010         * config/arm/arm.md: Move include arm-tune.md up a bit.
19011         (define_attr "arch"): Add "onlya8" and "nota8" values.
19012         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
19013
19014 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
19015
19016         PR bootstrap/48282
19017         Revert:
19018         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
19019
19020         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
19021         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
19022         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
19023         * passes.c (init_optimization_passes): Move
19024         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
19025
19026 2011-03-25  Kai Tietz  <ktietz@redhat.com>
19027
19028         * c-typeck.c (comptypes_internal): Replace target
19029         hook call of comp_type_attributes by version in tree.c file.
19030         * gimple.c (gimple_types_compatible_p_1): Likewise.
19031         * tree-ssa.c (useless_type_conversion_p): Likewise.
19032         * tree.c (build_type_attribute_qual_variant): Likewise.
19033         (attribute_value_equal): New static helper function.
19034         (comp_type_attributes): New function.
19035         (merge_attributes): Use attribute_value_equal for comparison.
19036         (attribute_list_contained): Likewise.
19037         * tree.h (comp_type_attributes): New prototype.
19038
19039 2011-03-25  Richard Guenther  <rguenther@suse.de>
19040
19041         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
19042         of complex types at -O0.
19043         (verify_gimple_assign_binary): Likewise.
19044         (verify_gimple_assign_ternary): Likewise.
19045
19046 2011-03-24  Mark Wielaard  <mjw@redhat.com>
19047
19048         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
19049         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
19050
19051 2011-03-24  Mark Wielaard  <mjw@redhat.com>
19052
19053         PR debug/48041
19054         * dwarf2out.c (output_abbrev_section): Only write table when
19055         abbrev_die_table_in_use > 1.
19056
19057 2011-02-24  Richard Henderson  <rth@redhat.com>
19058
19059         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
19060         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
19061         (alpha_expand_unaligned_load_words): Use extql.
19062         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
19063         (emit_insxl): Handle all modes for consistency.
19064
19065 2011-02-24  Richard Henderson  <rth@redhat.com>
19066
19067         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
19068         (alpha_expand_unaligned_load): Likewise.
19069         (alpha_expand_unaligned_store): Likewise.
19070         (alpha_expand_unaligned_load_words): Likewise.
19071         (alpha_expand_unaligned_store_words): Likewise.
19072         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
19073         (alpha_split_lock_test_and_set_12): Likewise.
19074         (print_operand, alpha_fold_builtin_extxx): Likewise.
19075         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
19076         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
19077         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
19078         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
19079         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
19080         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
19081         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
19082         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
19083         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
19084         (extwl, extll, extql): Similarly.
19085         (inswh, inslh, insqh): Similarly.
19086         (mskbl, mskwl, mskll, mskql): Similarly.
19087         (mskwh, msklh, mskqh): Similarly.
19088
19089 2011-02-24  Richard Henderson  <rth@redhat.com>
19090
19091         * config/alpha/alpha.md (attribute isa): Add er, ner.
19092         (attribute enabled): Handle them.
19093         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
19094
19095 2011-02-24  Richard Henderson  <rth@redhat.com>
19096
19097         * config/alpha/alpha.md (attribute isa): Add vms.
19098         (attribute enabled): Handle it.
19099         (*movsf): Merge *movsf_{nofix,fix,nofp}.
19100         (*movdf): Merge *movdf_{nofix,fix,nofp}.
19101         (*movtf): Rename from *movtf_internal for consistency.
19102         (*movsi): Merge with *movsi_nt_vms.
19103         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
19104         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
19105         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
19106         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
19107
19108 2011-02-24  Richard Henderson  <rth@redhat.com>
19109
19110         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
19111         (extendqisi2, extendhisi2): Likewise.
19112         (extendqidi2): Simplify BWX/non-BWX expansions.
19113         (extendhidi2): Similarly.
19114
19115 2011-02-24  Richard Henderson  <rth@redhat.com>
19116
19117         * config/alpha/alpha.md (attribute isa): New.
19118         (attribute enabled): New.
19119         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
19120         (zero_extendqisi2, zero_extendqidi2): Similarly.
19121         (zero_extendhisi2, zero_extendhidi2): Similarly.
19122         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
19123
19124 2011-02-24  Richard Henderson  <rth@redhat.com>
19125
19126         * config/alpha/predicates.md (input_operand): Revert last change;
19127         update comment to mention 32-bit VMS rather than Windows.
19128
19129 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
19130
19131         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
19132         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
19133         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
19134         * passes.c (init_optimization_passes): Move
19135         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
19136
19137 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
19138
19139         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
19140
19141 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
19142
19143         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
19144         correctly.
19145
19146 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
19147
19148         PR debug/48204
19149         * simplify-rtx.c (simplify_const_unary_operation): Call
19150         real_convert when changing mode class with FLOAT_EXTEND.
19151
19152 2011-03-24  Nick Clifton  <nickc@redhat.com>
19153
19154         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
19155         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
19156         * config/rx/rx.c (rx_option_override): Set align_jumps,
19157         align_loops and align_labels if not set by the user.
19158         (rx_align_for_label): New function.
19159         (rx_max_skip_for_label): New function.
19160         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
19161         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
19162         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
19163         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
19164         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
19165
19166 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
19167
19168         PR rtl-optimization/48263
19169         * optabs.c (expand_binop_directly): Reinstate convert_modes code
19170         and original commutative_p handling.  Use maybe_gen_insn.
19171
19172 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19173
19174         * reload.c (find_reloads_subreg_address): Add address_reloaded
19175         parameter and return true there if the full address has been
19176         reloaded.
19177         (find_reloads_toplev): Pass address_reloaded flag.
19178         (find_reloads_address_1): Don't use address_reloaded parameter.
19179
19180 2011-03-24  Jeff Law  <law@redhat.com>
19181
19182         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
19183         unused variable "ann".
19184         (remove_unused_locals): Likewise.
19185
19186         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
19187         statement.
19188
19189         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
19190         after it is freed.
19191
19192 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19193
19194         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
19195         for invalid symbolic addresses.
19196         (s390_secondary_reload): Don't use s390_check_symref_alignment for
19197         larl operands.
19198
19199 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
19200
19201         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
19202         the argument in calls to fold_truth_not_expr.
19203
19204 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
19205
19206         * tree.c (record_node_allocation_statistics): New function.
19207         (make_node_stat, copy_node_stat, build_string): Call it.
19208         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
19209         (build1_stat, build_omp_clause): Likewise.
19210
19211 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
19212
19213         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
19214         last commit.
19215
19216 2011-03-24  Richard Guenther  <rguenther@suse.de>
19217
19218         PR tree-optimization/48271
19219         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
19220         blocks that still exist.
19221
19222 2011-03-24  Richard Guenther  <rguenther@suse.de>
19223
19224         PR tree-optimization/48270
19225         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
19226         not free datarefs before ddrs.
19227
19228 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
19229
19230         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
19231         from the address built for a reference with variable offset.
19232
19233 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
19234
19235         PR target/48237
19236         * config/i386/i386.md (*movdf_internal_rex64): Do not split
19237         alternatives that can be handled with movq or movabsq insn.
19238         (*movdf_internal): Disable for !TARGET_64BIT.
19239         (*movdf_internal_nointeger): Ditto.
19240         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
19241
19242 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
19243
19244         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
19245         (FUNCTION_ARG_ADVANCE): Likewise.
19246         * tm.texi.in: Change references to them to hook references.
19247         * tm.texi: Regenerate.
19248         * targhooks.c (default_function_arg): Eliminate check for target macro.
19249         (default_function_incoming_arg): Likewise.
19250         (default_function_arg_advance): Likewise.
19251         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
19252         (function_arg_advance): Likewise.
19253         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
19254
19255 2011-03-24  Richard Guenther  <rguenther@suse.de>
19256
19257         PR middle-end/48269
19258         * tree-object-size.c (addr_object_size): Do not double-account
19259         for MEM_REF offsets.
19260
19261 2011-03-24  Diego Novillo  <dnovillo@google.com>
19262
19263         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
19264         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
19265         (lto_input_data_block): Move from lto-opts.c.  Make extern.
19266         Update all users.
19267         (lto_input_string): Rename from input_string.  Make extern.
19268         Update all users.
19269         * lto-streamer-out.c (lto_output_string_with_length): Rename from
19270         output_string_with_length.
19271         Output 0 to indicate a non-NULL string.  Update all callers to
19272         not emit 0.
19273         (lto_output_string): Rename from output_string.  Make extern.
19274         Update all users.
19275         (lto_output_decl_state_streams): Make extern.
19276         (lto_output_decl_state_refs): Make extern.
19277         * lto-streamer.h (lto_input_string): Declare.
19278         (lto_input_data_block): Declare.
19279         (lto_output_string): Declare.
19280         (lto_output_string_with_length): Declare.
19281         (lto_output_decl_state_streams): Declare.
19282         (lto_output_decl_state_refs): Declare.
19283
19284 2011-03-24  Richard Guenther  <rguenther@suse.de>
19285
19286         PR tree-optimization/46562
19287         * tree.c (build_invariant_address): New function.
19288         * tree.h (build_invariant_address): Declare.
19289         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
19290         a renamed function moved ...
19291         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
19292         Take valueization callback parameter.
19293         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
19294         * gimple-fold.h: New file.
19295         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
19296         (ccp_fold, fold_const_aggregate_ref,
19297         fold_ctor_reference, fold_nonarray_ctor_reference,
19298         fold_array_ctor_reference, fold_string_cst_ctor_reference,
19299         get_base_constructor): Move ...
19300         * gimple-fold.c: ... here.
19301         (gimple_fold_stmt_to_constant_1): New function
19302         split out from ccp_fold.  Take a valueization callback parameter.
19303         Valueize all operands.
19304         (gimple_fold_stmt_to_constant): New wrapper function.
19305         (fold_const_aggregate_ref_1): New function split out from
19306         fold_const_aggregate_ref.  Take a valueization callback parameter.
19307         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
19308         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
19309         invariant POINTER_PLUS_EXPRs to invariant form.
19310         (vn_valueize): New function.
19311         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
19312         * tree-vrp.c (vrp_valueize): New function.
19313         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
19314         to fold statements to constants.
19315         * tree-ssa-pre.c (eliminate): Properly guard propagation of
19316         function declarations.
19317         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
19318         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
19319
19320 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
19321
19322         * config/h8300/predicates.md (jump_address_operand): Fix register
19323         mode check.
19324
19325 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
19326
19327         * doc/invoke.texi (max-stores-to-sink): Document.
19328         * params.h (MAX_STORES_TO_SINK): Define.
19329         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
19330         if either vectorization or if-conversion is disabled.
19331         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
19332         tree-vect-data-refs.c vect_equal_offsets.
19333         (dr_equal_offsets_p): New function.
19334         (find_data_references_in_bb): Remove static.
19335         * tree-data-ref.h (find_data_references_in_bb): Declare.
19336         (dr_equal_offsets_p): Likewise.
19337         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
19338         (vect_drs_dependent_in_basic_block): Update calls to
19339         vect_equal_offsets.
19340         (vect_check_interleaving): Likewise.
19341         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
19342         (cond_if_else_store_replacement): Rename to...
19343         (cond_if_else_store_replacement_1): ... this.  Change arguments and
19344         documentation.
19345         (cond_if_else_store_replacement): New function.
19346         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
19347         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
19348
19349 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
19350
19351         PR target/46934
19352         * config/arm/arm.md (casesi): Use the gen_int_mode() function
19353         to subtract lower bound instead of GEN_INT().
19354
19355 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
19356
19357         PR other/48179
19358         PR other/48221
19359         PR other/48234
19360         * doc/extend.texi (Alignment): Move section to match order in TOC.
19361         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
19362         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
19363
19364 2011-03-23  Jeff Law  <law@redhat.com>
19365
19366         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
19367         before removing the edge.
19368
19369         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
19370         it may have been freed by redirect_branch_edge or
19371         redirect_edge_succ_nodup.
19372
19373 2011-03-23  Richard Guenther  <rguenther@suse.de>
19374
19375         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
19376         (check_va_list_escapes): Likewise.
19377         (check_all_va_list_escapes): Likewise.
19378
19379 2011-03-23  Richard Guenther  <rguenther@suse.de>
19380
19381         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
19382         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
19383         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
19384         (alias.o): Likewise.
19385         (ipa-type-escape.o): Remove.
19386         (ipa-struct-reorg.o): Likewise.
19387         (GTFILES): Remove ipa-struct-reorg.c.
19388         * alias.c: Do not include ipa-type-escape.h.
19389         * tree-ssa-alias.c: Likewise.
19390         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
19391         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
19392         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
19393         and ipa-type-escape passes.
19394         * tree-pass.h (pass_ipa_type_escape): Remove.
19395         (pass_ipa_struct_reorg): Likewise.
19396         * ipa-struct-reorg.h: Remove.
19397         * ipa-struct-reorg.c: Likewise.
19398         * ipa-type-escape.h: Likewise.
19399         * ipa-type-escape.c: Likewise.
19400         * doc/invoke.texi (-fipa-struct-reorg): Remove.
19401         (--param struct-reorg-cold-struct-ratio): Likewise.
19402         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
19403         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
19404         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
19405
19406 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19407
19408         * config/s390/2084.md: Enable all insn reservations also for z9_ec
19409         cpu attribute value.
19410         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
19411         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
19412         * config/s390/s390.c (processor_flags_table): New constant array.
19413         (s390_handle_arch_option): Remove.
19414         (s390_handle_option): Remove s390_handle_arch_option invocations
19415         and OPT_mwarn_framesize_ handling.
19416         (s390_option_override): Remove s390_handle_arch_option invocation.
19417         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
19418         warnings.
19419         * config/s390/s390.md (cpu attribute): Add z9_ec value.
19420         * config/s390/s390.opt (s390_tune, s390_arch)
19421         (march=): Replace s390_arch_option enum and values with
19422         processor_type.  Set variable name to s390_arch.  Set
19423         initialization value.
19424         (mtune=): Replace s390_arch_option with processor_type.  Set
19425         variable name to s390_tune.  Set initialization value.
19426
19427 2011-03-23  Julian Brown  <julian@codesourcery.com>
19428
19429         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
19430         accesses which are not naturally aligned.
19431
19432 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
19433
19434         PR target/47553
19435         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
19436
19437 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
19438
19439         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
19440         parameter from "int" to "enum insn_code".
19441         (expand_operand_type): New enum.
19442         (expand_operand): New structure.
19443         (create_expand_operand): New function.
19444         (create_fixed_operand, create_output_operand): Likewise
19445         (create_input_operand, create_convert_operand_to): Likewise.
19446         (create_convert_operand_from, create_address_operand): Likewise.
19447         (create_integer_operand): Likewise.
19448         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
19449         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
19450         (expand_insn, expand_jump_insn): Likewise.
19451         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
19452         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
19453         (expand_movstr, expand_builtin___clear_cache): Likewise.
19454         (expand_builtin_lock_release): Likewise.
19455         * explow.c (allocate_dynamic_stack_space): Likewise.
19456         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
19457         and use the default handling in that case.
19458         * expmed.c (check_predicate_volatile_ok): Delete.
19459         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
19460         (emit_cstore): Likewise.
19461         * expr.c (emit_block_move_via_movmem): Likewise.
19462         (set_storage_via_setmem, expand_assignment): Likewise.
19463         (emit_storent_insn, try_casesi): Likewise.
19464         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
19465         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
19466         (expand_vec_shift_expr, expand_binop_directly): Likewise.
19467         (expand_twoval_unop, expand_twoval_binop): Likewise.
19468         (expand_unop_direct, emit_indirect_jump): Likewise.
19469         (emit_conditional_move, vector_compare_rtx): Likewise.
19470         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
19471         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
19472         (expand_sync_lock_test_and_set): Likewise.
19473         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
19474         (emit_unop_insn): Likewise.
19475         (expand_copysign_absneg): Change icode to an insn_code.
19476         (create_convert_operand_from_type): New function.
19477         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
19478         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
19479         (expand_insn, expand_jump_insn): Likewise.
19480         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
19481         than const_int_operand for operand 2.
19482
19483 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19484
19485         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
19486         if possible.
19487
19488 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
19489
19490         * emit-rtl.c (emit_pattern_before_noloc): New function.
19491         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
19492         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
19493         (emit_pattern_after_noloc): New function.
19494         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
19495         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
19496
19497 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
19498
19499         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
19500         (__ffsDI2): Likewise.
19501
19502 2011-03-22  Richard Henderson  <rth@redhat.com>
19503
19504         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
19505         of !TARGET_ABI_OPEN_VMS.
19506         (alpha_trampoline_init, alpha_start_function): Likewise.
19507         (alpha_expand_epilogue, alpha_file_start): Likewise.
19508         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
19509         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
19510         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
19511         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
19512         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
19513
19514 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19515
19516         * config/s390/s390-opts.h: New.
19517         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
19518         s390_arch_flags, s390_warn_framesize, s390_stack_size,
19519         s390_stack_guard): Remove.
19520         (s390_handle_arch_option): Return void.  Take enum
19521         s390_arch_option value instead of string and searching array.
19522         (s390_handle_option): Don't assert that global structures are in
19523         use.  Access variables via opts pointer.  Use error_at.  Don't use
19524         sscanf for -mstack-guard= or -mstack-size=.  Update call to
19525         s390_handle_arch_option.
19526         (s390_option_override): Update call to s390_handle_arch_option.
19527         (s390_emit_prologue): Use %d format for s390_stack_size in
19528         diagnostic.  Use %wd for HOST_WIDE_INT.
19529         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
19530         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
19531         * config/s390/s390.opt (config/s390/s390-opts.h): New
19532         HeaderInclude entry.
19533         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
19534         s390_arch_flags, s390_warn_framesize): New Variable entries.
19535         (s390_arch_option): New Enum and EnumValue entries.
19536         (march=): Use Enum instead of Var.
19537         (mstack-guard=, mstack-size=): Use UInteger and Var.
19538         (mtune=): Use Enum.
19539
19540 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19541
19542         * config/score/score.c (score_handle_option): Don't assert that
19543         global structures are in use.  Access target_flags via opts
19544         pointer.  Use value of -march= option to determine target_flags
19545         settings.
19546         * config/score/score.opt (march=): Use Enum.
19547         (score_arch): New Enum and EnumValue entries.
19548
19549 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19550
19551         * config/mep/mep.c (option_mtiny_specified): Remove.
19552         (mep_option_override): Move register handling for -mivc2 from
19553         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
19554         instead of option_mtiny_specified.
19555         (mep_handle_option): Access target_flags via opts pointer.  Don't
19556         assert that global structures are in use.  Defer part of -mivc2
19557         handling and move it to mep_option_override.
19558         * config/mep/mep.opt (IVC2): New Mask entry.
19559         (mivc2): Use Var and Defer instead of Mask.
19560
19561 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19562
19563         * config/v850/v850-opts.h: New.
19564         * config/v850/v850.c (small_memory): Replace with
19565         small_memory_physical_max array.  Make that array static const.
19566         (v850_handle_memory_option): Take integer value of argument.  Take
19567         gcc_options pointer, option text and location.  Return void.
19568         Update for changes to small memory structures.
19569         (v850_handle_option): Access target_flags via opts pointer.  Don't
19570         assert that global structures are in use.  Update calls to
19571         v850_handle_memory_option.
19572         (v850_encode_data_area): Update references to small memory settings.
19573         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
19574         (enum small_memory_type): Move to v850-opts.h.
19575         * config/v850/v850.opt (config/v850/v850-opts.h): New
19576         HeaderInclude entry.
19577         (small_memory_max): New Variable entry.
19578         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
19579         (mtda, mzda): Likewise.
19580
19581 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19582
19583         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
19584         pointer.  Don't assert that global structures are in use.
19585
19586 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19587
19588         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
19589         via opts pointer.  Don't assert that global structures are in use.
19590
19591 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19592
19593         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
19594         (munix=93): Use Var.
19595         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
19596         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
19597         * config/pa/pa-opts.h: New.
19598         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
19599         (pa_handle_option): Don't assert that global structures are in
19600         use.  Access target_flags via opts pointer.  Don't handle
19601         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
19602         OPT_munix_98 here.
19603         (pa_option_override): Handle deferred OPT_mfixed_range_.
19604
19605 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19606
19607         * config/mn10300/mn10300-opts.h: New.
19608         * config/mn10300/mn10300.c (mn10300_processor,
19609         mn10300_tune_string): Remove.
19610         (mn10300_handle_option): Don't assert that global structures are
19611         in use.  Access mn10300_processor via opts pointer.  Don't handle
19612         OPT_mtune_ here.
19613         * config/mn10300/mn10300.h (enum processor_type): Move to
19614         mn10300-opts.h.
19615         (mn10300_processor): Remove.
19616         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
19617         HeaderInclude entry.
19618         (mn10300_processor): New Variable entry.
19619         (mtune=): Use Var.
19620
19621 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19622
19623         * config/microblaze/microblaze.c: Don't include opts.h.
19624         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
19625         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
19626         (mno-clearbss): Use Var and Warn.
19627
19628 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19629
19630         * config/m32r/m32r-opts.h: New.
19631         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
19632         (m32r_handle_option): Don't assert that global structures are in
19633         use.  Access target_flags and m32r_cache_flush_func via opts
19634         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
19635         OPT_mno_flush_trap here.
19636         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
19637         include of m32r-opts.h.
19638         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
19639         HeaderInclude entry.
19640         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
19641         (mmodel=): Use Enum and Var.
19642         (m32r_model): New Enum and EnumValue entries.
19643         (mno-flush-trap): Use Var.
19644         (msdata=): Use Enum and Var.
19645         (m32r_sdata): New Enum and EnumValue entries.
19646
19647 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19648
19649         * config/m32c/m32c.c: Don't include opts.h.
19650         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
19651         m32c_handle_option): Remove.
19652         (m32c_option_override): Check global_options_set.x_target_memregs
19653         instead of target_memregs_set.
19654         * config/m32c/m32c.h (target_memregs): Remove.
19655         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
19656         variable.
19657
19658 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19659
19660         * config/iq2000/iq2000-opts.h: New.
19661         * config/iq2000/iq2000.c: Don't include opts.h.
19662         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
19663         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
19664         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
19665         HeaderInclude entry.
19666         (iq2000_tune): New Variable entry.
19667         (march=): Add comment.  Use Enum.
19668         (iq2000_arch): New Enum and EnumValue entries.
19669         (mcpu=): Use Enum and Var.
19670         (iq2000_tune): New Enum and EnumValue entries.
19671
19672 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19673
19674         * config/ia64/ia64-opts.h: New.
19675         * config/ia64/ia64.c (ia64_tune): Remove.
19676         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
19677         here.  Use error_at.
19678         (ia64_option_override): Handle deferred OPT_mfixed_range_.
19679         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
19680         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
19681         HeaderInclude entry.
19682         (ia64_tune): New Variable entry.
19683         (mfixed-range=): Use Defer and Var.
19684         (mtune=): Use Enum and Var.
19685         (ia64_tune): New Enum and EnumValue entries.
19686
19687 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19688
19689         * config/frv/frv-opts.h: New.
19690         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
19691         frv-opts.h.
19692         (frv_cpu_type): Remove.
19693         * config/frv/frv.c: Don't include opts.h.
19694         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
19695         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
19696         (frv_cpu_type): New Variable entry.
19697         (frv_cpu): New Enum and EnumValue entries.
19698
19699 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19700
19701         * config/cris/cris.c (cris_handle_option): Access target_flags via
19702         opts pointer.  Don't assert that global structures are in use.
19703         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
19704         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
19705
19706 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19707
19708         * config/bfin/bfin-opts.h: New.
19709         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
19710         bfin_si_revision, bfin_workarounds): Remove.
19711         (bfin_cpus): Make static const.
19712         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
19713         not bfin_lib_id_given.
19714         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
19715         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
19716         pointer. Use error_at.  Don't assert that global structures are in use.
19717         * config/bfin/bfin.h: Include bfin-opts.h.
19718         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
19719         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
19720         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
19721         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
19722         entries.
19723
19724 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19725
19726         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
19727         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
19728         or -msoft-float here.
19729         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
19730         -msoft-float and -mhard-float.
19731         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
19732         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
19733         msoft-float.
19734         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
19735         -msoft-float.
19736         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
19737         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
19738         not mhard-float.
19739         (LIBGCC_SPEC): Don't handle -msoft-float.
19740         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
19741         -mhard-float.
19742         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
19743         msoft-float.
19744         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
19745         -mfloat-abi=*, not -msoft-float and -mhard-float.
19746         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
19747         -msoft-float.
19748         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
19749         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
19750         mhard-float and msoft-float.
19751         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
19752         mfloat-abi=soft in comments, not mhard-float and msoft-float.
19753         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
19754         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
19755         mhard-float.
19756         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
19757         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
19758         msoft-float.
19759         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
19760         not mhard-float.
19761         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
19762         not msoft-float.
19763
19764 2011-03-22  Richard Henderson  <rth@redhat.com>
19765
19766         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
19767         TARGET_ABI_WINDOWS_NT.
19768         (alpha_output_function_end_prologue): Likewise.
19769         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
19770         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
19771         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
19772         (trap, *movsi_nt_vms): Likewise.
19773         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
19774         (*tablejump_osf_nt_internal): Remove.
19775         * config/alpha/predicates.md (input_operand): Only test Pmode.
19776
19777 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19778
19779         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
19780         via opts pointer.  Use error_at.  Don't assert that global
19781         structures are in use.
19782
19783 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19784
19785         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
19786         (ix86_handle_option): Access ix86_isa_flags and
19787         ix86_isa_flags_explicit via opts pointer.  Don't assert that
19788         global structures are in use.
19789         (ix86_function_specific_save, ix86_function_specific_restore):
19790         Update ix86_isa_flags_explicit field name.
19791         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
19792         (ix86_isa_flags_explicit): Rename TargetSave entry to
19793         x_ix86_isa_flags_explicit.
19794
19795 2011-03-22  Richard Henderson  <rth@redhat.com>
19796
19797         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
19798         (alpha_option_override, direct_return): Likewise.
19799         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
19800         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
19801         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
19802         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
19803         (alpha_expand_epilogue, alpha_end_function): Likewise.
19804         (alpha_init_libfuncs): Likewise.
19805         (struct machine_function): Remove unicosmk members.
19806         (print_operand) ['t']: Remove.
19807         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
19808         unicosmk_output_module_name, unicosmk_output_common,
19809         current_section_align, unicosmk_output_text_section_asm_op,
19810         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
19811         unicosmk_section_type_flags, unicosmk_unique_section,
19812         unicosmk_asm_named_section, unicosmk_insert_attributes,
19813         unicosmk_output_align, unicosmk_defer_case_vector,
19814         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
19815         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
19816         unicosmk_output_ssib, unicosmk_add_call_info_word,
19817         unicosmk_extern_head, unicosmk_output_default_externs,
19818         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
19819         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
19820         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
19821         * config/alpha/alpha-protos.h: Update.
19822         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
19823         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
19824         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
19825         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
19826         (*mulsi_se, mulvsi3): Likewise.
19827         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
19828         (*divmodsi_internal, call, call_value, realign): Likewise.
19829         (moddi3, umoddi3): Likewise; remove duplicate expander.
19830         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
19831         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
19832         (*movdi_nofix): Remove r/U alternative.
19833         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
19834         * config/alpha/constraints.md ("U"): Remove.
19835         * config/alpha/predicates.md (call_operand"): Don't test
19836         TARGET_ABI_UNICOSMK.
19837
19838 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19839
19840         * target.def (handle_option): Take gcc_options and
19841         cl_decoded_option pointers and location_t.
19842         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
19843         * doc/tm.texi: Regenerate.
19844         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
19845         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
19846         * lto-opts.c (lto_reissue_options): Generate option structure for
19847         targetm.handle_option call.
19848         * opts.c (target_handle_option): Update call to
19849         targetm.handle_option.  Remove assertions about values now passed
19850         down to hook.
19851         * targhooks.c (default_target_handle_option): New.
19852         * targhooks.h (default_target_handle_option): Declare.
19853         * config/alpha/alpha.c: Include opts.h.
19854         (alpha_handle_option): Update to new hook interface.
19855         * config/arm/arm.c: Include opts.h.
19856         (arm_handle_option): Update to new hook interface.
19857         * config/arm/t-arm (arm.o): Update dependencies.
19858         * config/bfin/bfin.c: Include opts.h.
19859         (bfin_handle_option): Update to new hook interface.
19860         * config/cris/cris.c: Include opts.h.
19861         (cris_handle_option): Update to new hook interface.
19862         * config/frv/frv.c: Include opts.h.
19863         (frv_handle_option): Update to new hook interface.
19864         * config/i386/i386.c: Include opts.h.
19865         (ix86_handle_option): Update to new hook interface.
19866         (ix86_valid_target_attribute_inner_p): Generate option structure
19867         for call to ix86_handle_option.
19868         * config/i386/t-i386 (i386.o): Update dependencies.
19869         * config/ia64/ia64.c: Include opts.h.
19870         (ia64_handle_option): Update to new hook interface.
19871         * config/ia64/t-ia64 (ia64.o): Update dependencies.
19872         * config/iq2000/iq2000.c: Include opts.h.
19873         (iq2000_handle_option): Update to new hook interface.
19874         * config/m32c/m32c.c: Include opts.h.
19875         (m32c_handle_option): Update to new hook interface.
19876         * config/m32r/m32r.c: Include opts.h.
19877         (m32r_handle_option): Update to new hook interface.
19878         * config/m68k/m68k.c: Include opts.h.
19879         (m68k_handle_option): Update to new hook interface.
19880         * config/mep/mep.c: Include opts.h.
19881         (mep_handle_option): Update to new hook interface.
19882         * config/microblaze/microblaze.c: Include opts.h.
19883         (microblaze_handle_option): Update to new hook interface.
19884         * config/mips/mips.c: Include opts.h.
19885         (mips_handle_option): Update to new hook interface.
19886         * config/mn10300/mn10300.c: Include opts.h.
19887         (mn10300_handle_option): Update to new hook interface.
19888         * config/pa/pa.c: Include opts.h.
19889         (pa_handle_option): Update to new hook interface.
19890         * config/pdp11/pdp11.c: Include opts.h.
19891         (pdp11_handle_option): Update to new hook interface.
19892         * config/rs6000/rs6000.c: Include opts.h.
19893         (rs6000_handle_option): Update to new hook interface.
19894         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
19895         * config/rx/rx.c: Include opts.h.
19896         (rx_handle_option): Update to new hook interface.
19897         * config/s390/s390.c: Include opts.h.
19898         (s390_handle_option): Update to new hook interface.
19899         * config/score/score.c: Include opts.h.
19900         (score_handle_option): Update to new hook interface.
19901         * config/sh/sh.c: Include opts.h.
19902         (sh_handle_option): Update to new hook interface.
19903         * config/sparc/sparc.c: Include opts.h.
19904         (sparc_handle_option): Update to new hook interface.
19905         * config/v850/v850.c: Include opts.h.
19906         (v850_handle_option): Update to new hook interface.
19907
19908 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19909
19910         * gcc.c (driver_unknown_option_callback): Only permit and save
19911         unknown -Wno- options.
19912         (driver_wrong_lang_callback): Save options directly instead of via
19913         driver_unknown_option_callback.
19914
19915 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
19916
19917         * combine.c (simplify_set): Try harder to find the best CC mode when
19918         simplifying a nested COMPARE on the RHS.
19919
19920 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19921
19922         * config/alpha/gnu.h: Remove.
19923         * config/arc: Remove directory.
19924         * config/arm/netbsd.h: Remove.
19925         * config/arm/t-pe: Remove.
19926         * config/crx: Remove directory.
19927         * config/i386/netbsd.h: Remove.
19928         * config/m68hc11: Remove directory.
19929         * config/m68k/uclinux-oldabi.h: Remove.
19930         * config/mcore/mcore-pe.h: Remove.
19931         * config/mcore/t-mcore-pe: Remove.
19932         * config/netbsd-aout.h: Remove.
19933         * config/rs6000/gnu.h: Remove.
19934         * config/sh/sh-symbian.h: Remove.
19935         * config/sh/symbian-base.c: Remove.
19936         * config/sh/symbian-c.c: Remove.
19937         * config/sh/symbian-cxx.c: Remove.
19938         * config/sh/symbian-post.h: Remove.
19939         * config/sh/symbian-pre.h: Remove.
19940         * config/sh/t-symbian: Remove.
19941         * config/svr3.h: Remove.
19942         * config/vax/netbsd.h: Remove.
19943         * config.build: Don't handle i[34567]86-*-pe.
19944         * config.gcc: Remove handling of deprecations for most deprecated
19945         targets.
19946         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
19947         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
19948         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
19949         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
19950         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
19951         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
19952         Remove cases.
19953         * config.host: Don't handle i[34567]86-*-pe.
19954         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
19955         (ASM_SPEC32): Don't handle -mcall-gnu.
19956         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
19957         -mcall-gnu.
19958         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
19959         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
19960         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
19961         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
19962         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
19963         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
19964         conditional on SYMBIAN.
19965         * configure.ac: Don't handle powerpc*-*-gnu*.
19966         * configure: Regenerate.
19967         * doc/extend.texi (interrupt attribute): Don't mention CRX.
19968         * doc/install-old.texi (m6811, m6812): Don't mention.
19969         * doc/install.texi (arc-*-elf*): Don't document multilib option.
19970         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
19971         (m68k-uclinuxoldabi): Don't mention.
19972         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
19973         Remove.
19974         (-mcall-gnu): Remove.
19975         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
19976         families): Remove constraint documentation.
19977
19978 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
19979
19980         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
19981         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
19982         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
19983
19984 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
19985
19986         PR target/48226
19987         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
19988         vector when peeking at the next token for vector, don't expand the
19989         keywords.
19990
19991 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
19992
19993         * config/avr/avr-protos.h (expand_epilogue): Change prototype
19994         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
19995         * config/avr/avr.c (init_cumulative_args)
19996         (avr_function_arg_advance): Use it.
19997         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
19998         sibcall epilogues.
19999         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
20000         (avr_function_ok_for_sibcall): ...this new function.
20001         (avr_lookup_function_attribute1): New static Function.
20002         (avr_naked_function_p, interrupt_function_p)
20003         (signal_function_p, avr_OS_task_function_p)
20004         (avr_OS_main_function_p): Use it.
20005         * config/avr/avr.md ("sibcall", "sibcall_value")
20006         ("sibcall_epilogue"): New expander.
20007         ("*call_insn", "*call_value_insn"): New insn.
20008         ("call_insn", "call_value_insn"): Remove
20009         ("call", "call_value", "epilogue"): Change expander to handle
20010         sibling calls.
20011
20012 2011-03-21  Nick Clifton  <nickc@redhat.com>
20013
20014         * doc/invoke.texi (Overall Options): Move closing brace to end of
20015         options list.
20016         (Optimization Options): Add missing @gol.
20017         (Directory Options): Likewise.
20018         (i386 and x86-64 Options): Likewise.
20019         (RS6000 and PowerPC Options): Likewise.
20020         (i386 and x86-64 Windows Options): Likewise.
20021         (V850 Options): Add text missing from descriptions.
20022
20023 2011-03-22  Richard Henderson  <rth@redhat.com>
20024
20025         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
20026         (avr_incoming_return_addr_rtx): New.
20027         (emit_push_byte): New.
20028         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
20029         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
20030         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
20031         (emit_pop_byte): New.
20032         (expand_epilogue): Use it.  Pop frame pointer by bytes.
20033         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
20034         (INCOMING_RETURN_ADDR_RTX): New.
20035         (INCOMING_FRAME_SP_OFFSET): New.
20036         (ARG_POINTER_CFA_OFFSET): New.
20037         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
20038         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
20039         (pophi): Remove.
20040
20041         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
20042
20043 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
20044
20045         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
20046         (FUNCTION_ARG_ADVANCE): Likewise.
20047         * tm.texi.in: Change references to them to hook references.
20048         * tm.texi: Regenerate.
20049         * targhooks.c (default_function_arg): Eliminate check for target
20050         macro.
20051         (default_function_incoming_arg): Likewise.
20052         (default_function_arg_advance): Likewise.
20053         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
20054         (function_arg_advance): Likewise.
20055         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
20056
20057 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
20058
20059         * tree.c (build_call_1): New function.
20060         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
20061
20062 2011-03-22  Richard Guenther  <rguenther@suse.de>
20063
20064         PR tree-optimization/48228
20065         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
20066         for single-arg PHIs.
20067
20068 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
20069
20070         PR rtl-optimization/48143
20071         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
20072         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
20073         sse2_cvtps2pd): Likewise.
20074
20075 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20076
20077         * recog.c (canonicalize_change_group): Use validate_unshare_change.
20078
20079 2011-03-22  Richard Guenther  <rguenther@suse.de>
20080
20081         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
20082         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
20083         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
20084         and REALIGN_LOAD_EXPR.
20085         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
20086         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
20087         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
20088         DOT_PROD_EXPR case ...
20089         (expand_expr_real_2): ... here.
20090         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
20091         and REALIGN_LOAD_EXPR.
20092         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
20093         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
20094         (vect_create_epilog_for_reduction): Likewise.
20095         (vectorizable_reduction): Likewise.
20096         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
20097         * tree-vect-stmts.c (vectorizable_load): Likewise.
20098
20099 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
20100
20101         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
20102
20103 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20104
20105         * config/s390/s390.c (s390_delegitimize_address): Fix offset
20106         handling for PLTOFF/GOTOFF.
20107
20108 2011-03-22  Nick Clifton  <nickc@redhat.com>
20109
20110         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
20111         trailing backslash from the end of the macro definition.
20112
20113 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20114
20115         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
20116         and PLT unspecs.
20117
20118 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
20119
20120         * expr.h (prepare_operand): Move to...
20121         * optabs.h (prepare_operand): ...here and change the insn code
20122         parameter from "int" to "enum insn_code".
20123         (insn_operand_matches): Declare.
20124         * expr.c (init_expr_target): Use insn_operand_matches.
20125         (compress_float_constant): Likewise.
20126         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
20127         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
20128         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
20129         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
20130         Likewise.
20131         (gen_cond_trap): Likewise.
20132         (prepare_operand): Likewise.  Change icode to an insn_code.
20133         (insn_operand_matches): New function.
20134         * reload.c (find_reloads_address_1): Use insn_operand_matches.
20135         * reload1.c (gen_reload): Likewise.
20136         * targhooks.c (default_secondary_reload): Likewise.
20137
20138 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
20139
20140         * config/alpha/alpha.md (unspec): New define_c_enum.
20141         (unspecv): Ditto.
20142
20143 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
20144
20145         PR debug/48214
20146         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
20147         between a call and its CALL_ARG_LOCATION note.
20148
20149 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
20150
20151         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
20152
20153 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
20154
20155         PR c/42544
20156         PR c/48197
20157         * c-common.c (shorten_compare): If primopN is first sign-extended
20158         to opN and then zero-extended to result type, set primopN to opN.
20159
20160 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
20161
20162         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
20163         for barrier handlers.
20164
20165 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
20166
20167         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
20168         UNSPEC constants to be in the unspec enumeration, and redefine
20169         all UNSPECV constants to be in the unspecv enumeration, so that
20170         dumps print which unspec/unspec_volatile this is.
20171         * config/rs6000/vector.md (UNSPEC_*): Ditto.
20172         * config/rs6000/paired.md (UNSPEC_*): Ditto.
20173         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
20174         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
20175         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
20176
20177         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
20178         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
20179         UNSPECV_LWSYNC, since these are used as unspec_volatile.
20180         * config/rs6000/sync.md (isync, lwsync): Ditto.
20181
20182 2011-03-21  Richard Guenther  <rguenther@suse.de>
20183
20184         * params.def (lto-min-partition): Fix typo.
20185
20186 2011-03-21  Richard Guenther  <rguenther@suse.de>
20187
20188         PR c/47939
20189         * c-decl.c (grokdeclarator): Drop to the main variant only
20190         for array types.  Drop flag_gen_aux_info check.
20191
20192 2011-03-21  Richard Guenther  <rguenther@suse.de>
20193
20194         PR translation/47911
20195         * params.def (lto-partitions): Fix typo.
20196         (lto-min-partition): Fix wording.
20197
20198 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
20199
20200         * config/rs6000/t-freebsd: Remove duplication from file.
20201
20202 2011-03-21  Richard Guenther  <rguenther@suse.de>
20203
20204         PR middle-end/47661
20205         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
20206
20207 2011-03-21  Richard Guenther  <rguenther@suse.de>
20208
20209         PR lto/48210
20210         * params.def (lto-partitions): Require at least 1 partition.
20211
20212 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20213
20214         * gthr-solaris.h: Remove.
20215         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
20216         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
20217         (LIB_SPEC): Likewise.
20218         * config/sol2.opt (threads): Remove.
20219         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
20220         (sparc*-*-solaris2*): Likewise.
20221         * configure.ac (enable_threads): Enable solaris support.
20222         * configure: Regenerate.
20223         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
20224         * doc/install.texi (Configuration, --enable-threads=lib): Remove
20225         solaris.
20226
20227 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20228
20229         * config.gcc: Obsolete *-*-solaris2.8*.
20230         * doc/install.texi (Specific, *-*-solaris2*): Document it.
20231
20232 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20233
20234         PR bootstrap/48135
20235         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
20236         reference.  Solaris 8 perl works.
20237
20238 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20239
20240         PR bootstrap/48135
20241         * doc/install.texi (Prerequisites): Move jar etc. up.
20242         Explain support library version requirements.
20243
20244 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20245
20246         PR bootstrap/48135
20247         * doc/install.texi (Prerequisites): Move Perl to build
20248         requirements.  Always necessary on Solaris 2 with Sun ld.
20249
20250 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20251
20252         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
20253         binutils 2.21.
20254         (Specific, i?86-*-solaris2.[89]): Likewise.
20255         (Specific, i?86-*-solaris2.10): Likewise.
20256         (Specific, mips-sgi-irix6): Likewise.
20257         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
20258         Update for binutils 2.21.
20259
20260 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20261
20262         * configure.ac (gcc_cv_lto_plugin): Fix typo.
20263         Allow -fuse-linker-plugin for non-default plugin linker.
20264         * configure: Regenerate.
20265
20266 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
20267
20268         PR bootstrap/48167
20269         * gengtype.c (files_rules): Added rule for cp/parser.h.
20270
20271 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
20272
20273         PR target/48213
20274         * config/s390/s390.c (s390_delegitimize_address): Don't call
20275         lowpart_subreg if orig_x has BLKmode.
20276
20277 2011-03-21  Kai Tietz  <ktietz@redhat.com>
20278
20279         PR target/12171
20280         * doc/plugins.texi: Adjust documentation for plugin register_callback.
20281         * tree.h (attribute_spec): Add new member affects_type_identity.
20282         * attribs.c (empty_attribute_table): Adjust attribute_spec
20283         initializers.
20284         * config/alpha/alpha.c: Likewise.
20285         * config/arc/arc.c: Likewise.
20286         * config/arm/arm.c: Likewise.
20287         * config/avr/avr.c: Likewise.
20288         * config/bfin/bfin.c: Likewise.
20289         * config/crx/crx.c: Likewise.
20290         * config/darwin.h: Likewise.
20291         * config/h8300/h8300.c: Likewise.
20292         * config/i386/cygming.h: Likewise.
20293         * config/i386/i386.c: Likewise.
20294         * config/ia64/ia64.c: Likewise.
20295         * config/m32c/m32c.c: Likewise.
20296         * config/m32r/m32r.c: Likewise.
20297         * config/m68hc11/m68hc11.c: Likewise.
20298         * config/m68k/m68k.c: Likewise.
20299         * config/mcore/mcore.c: Likewise.
20300         * config/mep/mep.c: Likewise.
20301         * config/microblaze/microblaze.c: Likewise.
20302         * config/mips/mips.c: Likewise.
20303         * config/rs6000/rs6000.c: Likewise.
20304         * config/rx/rx.c: Likewise.
20305         * config/sh/sh.c: Likewise.
20306         * config/sol2.h: Likewise.
20307         * config/sparc/sparc.c: Likewise.
20308         * config/spu/spu.c: Likewise.
20309         * config/stormy16/stormy16.c: Likewise.
20310         * config/v850/v850.c: Likewise.
20311
20312 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
20313
20314         * simplify-rtx.c (simplify_binary_operation_1): Handle
20315         (xor (and A B) C) case when B and C are both constants.
20316
20317 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
20318
20319         * tree-dfa.c (add_referenced_var): Fix typo in comment.
20320
20321 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
20322
20323         PR bootstrap/48168
20324         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
20325
20326 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
20327
20328         PR rtl-optimization/48156
20329         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
20330         assume df and df_lr are not NULL.
20331
20332 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
20333
20334         PR debug/48023
20335         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
20336         between a call and its CALL_ARG_LOCATION note.
20337
20338 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
20339
20340         PR debug/48178
20341         * config/sh/sh.c (find_barrier): Don't emit a constant pool
20342         between a call and its corresponding CALL_ARG_LOCATION note.
20343
20344 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
20345
20346         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
20347         instead of loop. Use HARD_REGISTER_NUM_P predicate.
20348         * haifa-sched.c (setup_ref_regs): Ditto.
20349         * caller-save.c (add_used_regs_1): Ditto.
20350         * dse.c (look_for_hardregs): Ditto.
20351         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
20352         * sched-rgn.c (check_live_1): Ditto.
20353
20354 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
20355
20356         * c-decl.c (diagnose_mismatched_decls): Give an error for
20357         redefining a typedef with variably modified type.
20358
20359 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
20360
20361         * c-decl.c (grokfield): Don't allow typedefs for structures or
20362         unions with no tag by default.
20363         * doc/extend.texi (Unnamed Fields): Update.
20364
20365 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
20366
20367         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
20368         Rewrite using indirect functions.
20369         (lwp_slwpcb): Ditto.
20370         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
20371         (avx_vinsertf128<mode>): Ditto.
20372
20373 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20374
20375         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
20376         unspecs.
20377
20378 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20379
20380         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
20381         splitting between a call and its corresponding CALL_ARG_LOCATION note.
20382
20383 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
20384
20385         PR rtl-optimization/48170
20386         * gcse.c (hoist_code): Remove bogus asserts.
20387
20388 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
20389
20390         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
20391         computation for prologue/epilogue.
20392
20393 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20394
20395         * Makefile.in (check-consistency): Remove.
20396
20397 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
20398
20399         PR debug/48176
20400         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
20401         arange_table_in_use is 0, but either text_section_used or
20402         cold_text_section_used is true.  Don't call it if
20403         !info_section_emitted.
20404
20405 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
20406
20407         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
20408         FUNCTION_VALUE_REGNO_P): Remove.
20409         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
20410         Remove.
20411         * config/avr/avr.c (avr_ret_register): Make static inline.
20412         (avr_function_value_regno_p): New function.
20413         (avr_libcall_value): Make static. Add 'func' argument.
20414         (avr_function_value): Make static. Rename 'func' argument to
20415         'fn_decl_or_type', forward it to avr_libcall_value. Call
20416         avr_ret_register function instead of RET_REGISTER macro.
20417         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
20418
20419 2011-03-18  Jason Merrill  <jason@redhat.com>
20420
20421         PR c++/23372
20422         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
20423
20424 2011-03-18  Richard Guenther  <rguenther@suse.de>
20425
20426         * doc/install.texi (--enable-gold): Remove.
20427         (--with-plugin-ld): Document.
20428         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
20429
20430 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
20431
20432         PR middle-end/47790
20433         * expr.c (optimize_bitfield_assignment_op): Revamp to work
20434         again after expansion changes.
20435
20436 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
20437
20438         * combine.c (try_combine): Do simplification only call of
20439         subst() on i2 even when i1 is present. Update comments.
20440
20441 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
20442
20443         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
20444         and UNSPEC_PCREL_SYMOFF.
20445
20446 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20447
20448         * config/s390/s390.md: Use define_c_enum for the unspec constant
20449         definitions.
20450
20451 2011-03-18  Richard Henderson  <rth@redhat.com>
20452             Jakub Jelinek  <jakub@redhat.com>
20453
20454         PR bootstrap/48161
20455         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
20456         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
20457
20458 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
20459
20460         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
20461         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
20462         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
20463         Change return type to bool.
20464         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
20465
20466 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
20467
20468         PR debug/48163
20469         * var-tracking.c (prepare_call_arguments): If CALL target
20470         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
20471         pc instead of looking it up using cselib_lookup and use
20472         Pmode for it if x has VOIDmode.
20473         * dwarf2out.c (gen_subprogram_die): If also both first and
20474         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
20475
20476         PR debug/48163
20477         * function.c (assign_parms): For data.passed_pointer parms
20478         use MEM of data.entry_parm instead of data.entry_parm itself
20479         as DECL_INCOMING_RTL.
20480         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
20481         also when passed and declared mode is the same, DECL_RTL
20482         is a MEM with pseudo as address and DECL_INCOMING_RTL is
20483         a MEM too.
20484
20485 2011-03-16  Jeff Law  <law@redhat.com>
20486
20487         PR rtl-optimization/37273
20488         * ira-costs.c (scan_one_insn): Detect constants living in memory and
20489         handle them like argument loads from stack slots.  Do not double
20490         count memory for memory constants and argument loads from stack slots.
20491
20492 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
20493
20494         PR debug/48160
20495         * var-tracking.c (prepare_call_arguments): Check SUBREG.
20496
20497 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
20498
20499         PR target/48171
20500         * config/i386/i386.opt: Add Save to -mavx and -mfma.
20501
20502 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
20503
20504         PR bootstrap/48153
20505         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
20506         if dwarf_strict.
20507         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
20508         Clear call_arg_locations and call_arg_loc_last always.
20509
20510         PR middle-end/48152
20511         * var-tracking.c (prepare_call_arguments): If argument needs to be
20512         passed by reference, adjust argtype and mode.
20513
20514 2011-03-17  Richard Guenther  <rguenther@suse.de>
20515
20516         PR middle-end/48134
20517         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
20518         a value make sure to fold the statement.
20519
20520 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
20521
20522         PR target/43872
20523         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
20524         return condition with !cfun->calls_alloca.
20525
20526 2011-03-17  Richard Guenther  <rguenther@suse.de>
20527
20528         PR bootstrap/48148
20529         * lto-cgraph.c (input_overwrite_node): Clear the abstract
20530         origin for decls in other ltrans units.
20531         (input_varpool_node): Likewise.
20532
20533 2011-03-17  Richard Guenther  <rguenther@suse.de>
20534
20535         PR middle-end/48165
20536         * tree-object-size.c (compute_object_offset): Properly return
20537         the offset operand of MEM_REFs as sizetype.
20538
20539 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
20540
20541         PR rtl-optimization/48141
20542         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
20543         * dse.c: Include params.h.
20544         (active_local_stores_len): New variable.
20545         (add_wild_read, dse_step1): Clear it when setting active_local_stores
20546         to NULL.
20547         (record_store, check_mem_read_rtx): Decrease it when removing
20548         from the chain.
20549         (scan_insn): Likewise.  Increase it when adding to chain, if it
20550         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
20551         set active_local_stores to NULL before the addition.
20552         * Makefile.in (dse.o): Depend on $(PARAMS_H).
20553
20554         PR rtl-optimization/48141
20555         * dse.c (record_store): If no positions are needed in an insn
20556         that cannot be deleted, at least unchain it from active_local_stores.
20557
20558 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
20559
20560         PR debug/47510
20561         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
20562         (lookup_type_die_strip_naming_typedef): ... here.
20563         (get_context_die): Use it.
20564         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
20565         the anonymous struct named by the naming typedef.
20566
20567 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
20568
20569         PR target/48154
20570         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
20571         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
20572
20573 2011-03-16  Jeff Law  <law@redhat.com>
20574
20575         * tree-vrp.c (identify_jump_threads): Slightly simplify type
20576         check for operands of conditional.  Allow type to be a pointer.
20577
20578 2011-03-16  Richard Guenther  <rguenther@suse.de>
20579
20580         PR tree-optimization/48149
20581         * fold-const.c (fold_binary_loc): Fold
20582         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
20583
20584 2011-03-16  Richard Guenther  <rguenther@suse.de>
20585
20586         PR tree-optimization/26134
20587         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
20588         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
20589         (non_rewritable_mem_ref_base): Handle complex type component
20590         accesses, constrain offsets for vector and complex extracts
20591         more properly.
20592
20593 2011-03-16  Richard Guenther  <rguenther@suse.de>
20594
20595         PR tree-optimization/48146
20596         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
20597         operands avoiding the need for renaming.
20598
20599 2011-03-16  Richard Guenther  <rguenther@suse.de>
20600
20601         * gimple-fold.c (maybe_fold_reference): Open-code relevant
20602         constant folding.  Move MEM_REF canonicalization first.
20603         Rely on fold_const_aggregate_ref for initializer folding.
20604         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
20605
20606 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
20607
20608         PR middle-end/48136
20609         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
20610         arg0/arg1 or their arguments are always fold converted to matching
20611         types.
20612
20613         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
20614         to nargs.
20615
20616 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20617
20618         PR lto/46944
20619         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
20620         Handle in-tree gold.
20621         (ld_vers): Extract binutils version for gold.
20622         (gcc_cv_ld_hidden): Handle gold here.
20623         (gcc_cv_lto_plugin): Determine level of linker plugin support.
20624         * configure: Regenerate.
20625         * config.in: Regenerate.
20626         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
20627         -fuse-linker-plugin otherwise.
20628         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
20629         (LINK_COMMAND_SPEC): Use it.
20630         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
20631
20632 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
20633
20634         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
20635         * calls.c: Remove debug.h include.
20636         (emit_call_1): Don't call virtual_call_token debug hook.
20637         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
20638         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
20639         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
20640         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
20641         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
20642         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
20643         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
20644         dwarf2out_virtual_call): Remove.
20645         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
20646         copy_call_info and virtual_call hooks.
20647         (dwarf2out_init): Don't initialize vcall_insn_table,
20648         debug_dcall_section and debug_vcall_section.
20649         (prune_unused_types): Don't mark nodes from dcall_table.
20650         (dwarf2out_finish): Don't output dcall or vcall tables.
20651         * final.c (final_scan_insn): Don't call direct_call or
20652         virtual_call debug hooks.
20653         * debug.h (struct gcc_debug_hooks): Remove direct_call,
20654         virtual_call_token, copy_call_info and virtual_call hooks.
20655         (debug_nothing_uid): Remove prototype.
20656         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
20657         copy_call_info and virtual_call hooks.
20658         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
20659         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
20660         * debug.c (do_nothing_debug_hooks): Likewise.
20661         (debug_nothing_uid): Remove.
20662         * doc/invoke.texi (-fenable-icf-debug): Remove.
20663         * common.opt (-fenable-icf-debug): Likewise.
20664
20665         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
20666         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
20667         call's MEM.  Handle functions returning aggregate through a hidden
20668         first pointer.  For virtual calls add clobbered pc to call arguments
20669         chain.
20670         * dwarf2out.c (gen_subprogram_die): Emit
20671         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
20672         can't be emitted.
20673
20674         PR debug/45882
20675         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
20676         * rtl.h (ENTRY_VALUE_EXP): Define.
20677         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
20678         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
20679         * print-rtl.c (print_rtx): Likewise.
20680         * gengtype.c (adjust_field_rtx_def): Likewise.
20681         * var-tracking.c (vt_add_function_parameter): Adjust
20682         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
20683         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
20684         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
20685         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
20686         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
20687
20688         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
20689         Call var_location debug hook even on CALL_INSNs.
20690         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
20691         * rtl.def (ENTRY_VALUE): New.
20692         * dwarf2out.c: Include cfglayout.h.
20693         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
20694         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
20695         (struct call_arg_loc_node): New type.
20696         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
20697         tail_call_site_count): New variables.
20698         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
20699         DW_TAG_GNU_call_site_parameter.
20700         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
20701         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
20702         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
20703         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
20704         and DW_AT_GNU_all_source_call_sites.
20705         (mem_loc_descriptor): Handle ENTRY_VALUE.
20706         (add_src_coords_attributes): Don't add enything if
20707         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
20708         (dwarf2out_abstract_function): Save and clear call_arg_location,
20709         call_site_count and tail_call_site_count around dwarf2out_decl call.
20710         (gen_call_site_die): New function.
20711         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
20712         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
20713         (dwarf2out_function_decl): Clear call_arg_locations,
20714         call_arg_loc_last, set call_site_count and tail_call_site_count
20715         to -1 and free block_map.
20716         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
20717         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
20718         followed by any real instructions.
20719         (dwarf2out_begin_function): Set call_site_count and
20720         tail_call_site_count to 0.
20721         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
20722         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
20723         attempt to force a DIE for it and worst case remove the attribute.
20724         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
20725         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
20726         the decl itself.
20727         * var-tracking.c: Include tm_p.h.
20728         (vt_stack_adjustments): For calls call note_register_arguments.
20729         (argument_reg_set): New variable.
20730         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
20731         ensure the VALUE is resolved.
20732         (call_arguments): New variable.
20733         (prepare_call_arguments): New function.
20734         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
20735         (struct expand_loc_callback_data): Add ignore_cur_loc field.
20736         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
20737         always use the best expression.
20738         (vt_expand_loc): Add ignore_cur_loc argument.
20739         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
20740         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
20741         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
20742         note for all calls.
20743         (vt_add_function_parameter): Use cselib_lookup_from_insn.
20744         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
20745         argument.  Don't call cselib_preserve_only_values and
20746         cselib_reset_table.
20747         (note_register_arguments): New function.
20748         (vt_initialize): Compute argument_reg_set.  Call
20749         vt_add_function_parameters before processing basic blocks instead of
20750         afterwards.  For calls call prepare_call_arguments before calling
20751         cselib_process_insn.
20752         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
20753         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
20754         (var-tracking.o): Depend on $(TM_P_H).
20755         * cfglayout.h (insn_scope): New prototype.
20756         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
20757         * cfglayout.c (insn_scope): No longer static.
20758         * insn-notes.def (CALL_ARG_LOCATION): New.
20759         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
20760         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
20761         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
20762         nothing for DECL_EXTERNAL BLOCK_VARS.
20763
20764 2011-03-16  Alan Modra  <amodra@gmail.com>
20765
20766         PR target/45844
20767         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
20768         create invalid offset address for vsx splat insn.
20769         * config/rs6000/predicates.md (splat_input_operand): New.
20770         * config/rs6000/vsx.md (vsx_splat_*): Use it.
20771
20772 2011-03-15  Xinliang David Li  <davidxl@google.com>
20773
20774         PR c/47837
20775         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
20776         (normalize_preds): New function.
20777         (is_use_properly_guarded): Normalize def predicates.
20778
20779 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
20780
20781         PR target/46788
20782         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
20783         in the output template.
20784
20785 2011-03-15  Richard Guenther  <rguenther@suse.de>
20786
20787         PR middle-end/47650
20788         * tree-pretty-print.c (dump_function_declaration): Properly
20789         dump unprototyped and varargs function types.
20790
20791 2011-03-15  Richard Guenther  <rguenther@suse.de>
20792
20793         PR tree-optimization/13954
20794         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
20795         and friends.
20796
20797 2011-03-15  Richard Guenther  <rguenther@suse.de>
20798
20799         PR tree-optimization/48037
20800         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
20801         selects into BIT_FIELD_REFs.
20802         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
20803         vector select.
20804
20805 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
20806
20807         PR tree-optimization/48129
20808         * builtins.c (fold_builtin_snprintf): Convert to type of
20809         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
20810         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
20811
20812 2011-03-15  Richard Guenther  <rguenther@suse.de>
20813
20814         PR tree-optimization/41490
20815         * tree-ssa-dce.c (propagate_necessity): Handle returns without
20816         value but with VUSE.
20817         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
20818         return statements.
20819         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
20820         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
20821         * tree-tailcall.c (find_tail_calls): Ignore returns.
20822
20823 2011-03-15  Richard Guenther  <rguenther@suse.de>
20824
20825         PR middle-end/48031
20826         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
20827         or variable-indexed array accesses when in gimple form.
20828
20829 2011-03-15  Richard Guenther  <rguenther@suse.de>
20830
20831         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
20832
20833 2011-03-15  Alan Modra  <amodra@gmail.com>
20834
20835         PR target/48032
20836         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
20837         presume symbol_refs without a symbol_ref_decl are suitably
20838         aligned, nor other trees we may see here.  Handle anchor symbols.
20839         (legitimate_constant_pool_address_p): Comment.  Add mode param.
20840         Check cmodel=medium addresses.  Adjust all calls.
20841         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
20842         creating cmodel=medium optimized access to locals.
20843         * config/rs6000/constraints.md (R): Pass QImode to
20844         legitimate_constant_pool_address_p.
20845         * config/rs6000/predicates.md (input_operand): Pass mode to
20846         legitimate_constant_pool_address_p.
20847         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
20848         Update prototype.
20849
20850 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
20851
20852         PR target/48053
20853         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
20854         64-bit constants being loaded into registers other than GPRs such
20855         as loading 0 into a VSX register.
20856
20857 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20858
20859         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
20860
20861 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
20862
20863         PR middle-end/47917
20864         * builtins.c (fold_builtin_snprintf): New function.
20865         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
20866         (fold_builtin_4): Likewise.
20867
20868         PR middle-end/38878
20869         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
20870         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
20871         and C - X == X also strip nops from +/-/p+ operand.
20872         When optimizing -X == C, fold C to arg0's type.
20873
20874         PR debug/47946
20875         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
20876         emit it as add_AT_int instead of add_AT_unsigned.
20877
20878 2011-03-14  Tom Tromey  <tromey@redhat.com>
20879
20880         * unwind-dw2.c: Include sys/sdt.h if it exists.
20881         (_Unwind_DebugHook): Use STAP_PROBE2.
20882         * config.in, configure: Rebuild.
20883         * configure.ac: Check for sys/sdt.h.
20884
20885 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
20886
20887         * config/i386/i386.md (ROUND_FLOOR): New constant.
20888         (ROUND_CEIL): Ditto.
20889         (ROUND_TRUNC): Ditto.
20890         (ROUND_MXCSR): Ditto.
20891         (ROUND_NO_EXC): Ditto.
20892         (rint<mode>2): Use new defines instead of numerical constants.
20893         (floor<mode>2): Ditto.
20894         (ceil<mode>2): Ditto.
20895         (btrunc<mode>2): Ditto.
20896         * config/i386/i386-builtin-types.def: Define ROUND function type
20897         aliases.
20898         * config/i386/i386.c (enum ix86_builtins): Add
20899         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
20900         (struct builtin_description): Add
20901         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
20902         (ix86_expand_sse_round): New static function.
20903         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
20904         function types.
20905         (ix86_builtin_vectorized_function): Handle
20906         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
20907
20908 2011-03-14  Tom Tromey  <tromey@redhat.com>
20909
20910         * c-parser.c (c_parser_asm_string_literal): Clear
20911         warn_overlength_strings.
20912
20913 2011-03-14  Tom Tromey  <tromey@redhat.com>
20914
20915         * c-parser.c (disable_extension_diagnostics): Save
20916         warn_overlength_strings.
20917         (restore_extension_diagnostics): Restore warn_overlength_strings.
20918
20919 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
20920
20921         * BASE-VER: Change to 4.7.0.
20922
20923 2011-03-14  Richard Guenther  <rguenther@suse.de>
20924
20925         PR middle-end/48098
20926         * tree.c (build_vector_from_val): Adjust assert to requirements
20927         and reality.
20928
20929 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
20930
20931         PR bootstrap/48102
20932         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
20933
20934 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
20935
20936         * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
20937         terms of target_flags_explicit. Adjust copyright year.
20938
20939         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
20940         * config/rs6000/t-freebsd: New file. Add override for
20941         LIB2FUNCS_EXTRA.
20942
20943 2011-03-13  Chris Demetriou  <cgd@google.com>
20944
20945         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
20946         (-fno-diagnostics-show-option): this, to reflect current default.
20947         (-Werror=): Update text about -fno-diagnostics-show-option.
20948
20949 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
20950
20951         PR target/48053
20952         * config/rs6000/predicates.md (easy_vector_constant_add_self,
20953         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
20954         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
20955         mode is not V2DImode or V2DFmode.
20956         (vspltis_constant): Do not handle V2DImode and V2DFmode.
20957         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
20958         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
20959         registers to 0.
20960         (movdi_internal64): Likewise.
20961
20962 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
20963
20964         PR tree-optimization/47127
20965         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
20966         parameter.
20967         (set_cloog_options): Same.
20968         (scop_to_clast): Same.
20969         (print_clast_stmt): Do not call cloog_state_malloc and
20970         cloog_state_free.
20971         (print_generated_program): Same.
20972         (gloog): Same.
20973         * graphite-clast-to-gimple.h (cloog_state): Declared.
20974         (scop_to_clast): Adjust declaration.
20975         * graphite.c (cloog_state): Defined here.
20976         (graphite_initialize): Call cloog_state_malloc.
20977         (graphite_finalize): Call cloog_state_free.
20978
20979 2011-03-11  Jason Merrill  <jason@redhat.com>
20980
20981         * attribs.c (lookup_attribute_spec): Take const_tree.
20982         * tree.h: Adjust.
20983
20984 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
20985
20986         * config/sparc/sparc.c (sparc_option_override): Use
20987         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
20988
20989 2011-03-11  Richard Guenther  <rguenther@suse.de>
20990
20991         PR tree-optimization/48067
20992         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
20993         multiplication result will be only used once on the target
20994         stmt.
20995
20996 2011-03-11  Richard Guenther  <rguenther@suse.de>
20997
20998         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
20999
21000 2011-03-11  Richard Guenther  <rguenther@suse.de>
21001
21002         PR lto/48073
21003         * tree.c (find_decls_types_r): Do not walk types only reachable
21004         from IDENTIFIER_NODEs.
21005
21006 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
21007
21008         PR middle-end/48044
21009         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
21010         all vnode->force_output nodes as needed.
21011
21012 2011-03-11  Jason Merrill  <jason@redhat.com>
21013
21014         PR c++/48069
21015         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
21016         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
21017
21018 2011-03-11  Martin Jambor  <mjambor@suse.cz>
21019
21020         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
21021         cgraph_node.
21022
21023 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
21024
21025         PR tree-optimization/48063
21026         * ipa-inline.c (cgraph_decide_inlining): Don't try to
21027         inline functions called once if !tree_can_inline_p (node->callers).
21028
21029 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
21030
21031         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
21032         extra_objs.
21033         * config/score/score3.c: Delete.
21034         * config/score/score3.h: Delete.
21035         * config/score/mul-div.S: Delete.
21036         * config/score/sfp-machine.h: Add new file.
21037         * config/score/constraints.md: Add new file.
21038         * config/score/t-score-softfp: Add new file.
21039         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
21040         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
21041         (score7_extra_constraint): Delete.
21042         (score7_option_override): Remove unused code.
21043         * config/score/score.c: Remove score3 and score5 define and code.
21044         * config/score/score.h: Remove score3 and score5 define and code.
21045         * config/score/score.md: Remove score3 template and unusual insn.
21046         * config/score/score.opt: Remove score3 and score5 options.
21047
21048 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21049
21050         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
21051         when _HPUX_SOURCE is defined.
21052         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
21053
21054 2011-03-10  Jason Merrill  <jason@redhat.com>
21055
21056         PR c++/48029
21057         * stor-layout.c (layout_type): Don't set structural equality
21058         on arrays of incomplete type.
21059         * tree.c (type_hash_eq): Handle comparing them properly.
21060
21061 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
21062
21063         PR debug/48043
21064         * config/s390/s390.c (s390_delegitimize_address): Make sure the
21065         result mode matches original rtl mode.
21066
21067 2011-03-10  Nick Clifton  <nickc@redhat.com>
21068
21069         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
21070         (andsi3, andsi3_flags): Fix timings for three operand alternative.
21071
21072 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
21073
21074         PR rtl-optimization/47866
21075         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
21076         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
21077         if target wasn't scalar.
21078         * function.c (assign_stack_temp_for_type): Assert that neither
21079         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
21080         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
21081         macro.
21082         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
21083
21084 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21085
21086         * config/s390/s390-protos.h (s390_label_align): New prototype.
21087         * config/s390/s390.c (s390_label_align): New function.
21088         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
21089
21090 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
21091
21092         PR target/47755
21093         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
21094         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
21095         (output_vec_const_move): Ditto.
21096
21097 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
21098
21099         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
21100         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
21101         * config/mips/mips.c (mips_preferred_reload_class): Make static.
21102         Change 'rclass' argument and result type to reg_class_t.
21103         (TARGET_PREFERRED_RELOAD_CLASS): Define.
21104
21105 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
21106
21107         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
21108         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
21109         (TARGET_MEMORY_MOVE_COST): Define.
21110         (avr_register_move_cost, avr_memory_move_cost): New Functions.
21111
21112 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
21113
21114         PR debug/47881
21115         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
21116         removed anything.
21117
21118         PR tree-optimization/48022
21119         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
21120         for EQ/NE_EXPR.
21121
21122 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
21123
21124         PR debug/47991
21125         * var-tracking.c (find_use_val): Return NULL for
21126         cui->sets && cui->store_p BLKmode MEMs.
21127
21128 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
21129
21130         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
21131         Remove.
21132         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
21133         xstormy16_print_operand_address): Remove.
21134         * config/stormy16/stormy16.c (xstormy16_print_operand,
21135         xstormy16_print_operand_address): Make static.
21136         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
21137
21138 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
21139
21140         PR target/47862
21141         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
21142         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
21143         before definition.
21144
21145 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
21146
21147         PR bootstrap/48000
21148         * cfgloopmanip.c (fix_bb_placements): Return immediately
21149         if FROM is BASE_LOOP's header.
21150
21151 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
21152
21153         * gimplify.c (gimplify_function_tree): Fix building calls
21154         to __builtin_return_address.
21155
21156 2011-03-07  Alan Modra  <amodra@gmail.com>
21157
21158         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
21159         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
21160         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
21161         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
21162         return_mode args.
21163         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
21164         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
21165         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
21166         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
21167         * config/rs6000/rs6000.c
21168         (rs6000_elf_end_indicate_exec_stack): Rename to..
21169         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
21170         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
21171         (rs6000_file_start): ..here.
21172         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
21173         file scope variables.
21174         (call_ABI_of_interest): New function.
21175         (init_cumulative_args): Set above vars when function return value
21176         is a float, vector, or small struct.
21177         (rs6000_function_arg_advance_1): Likewise for function args.
21178         (rs6000_va_start): Set rs6000_passes_float if variable arg function
21179         references float args.
21180
21181 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
21182
21183         * doc/cfg.texi: Remove "See" before @ref.
21184         * doc/invoke.texi: Likewise.
21185
21186 2011-03-05  Jason Merrill  <jason@redhat.com>
21187
21188         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
21189
21190 2011-03-05  Anthony Green  <green@moxielogic.com>
21191
21192         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
21193
21194 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
21195
21196         PR rtl-optimization/47899
21197         * cfgloopmanip.c (fix_bb_placements): Fix first argument
21198         to flow_loop_nested_p when moving the loop upward.
21199
21200 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
21201
21202         PR target/47719
21203         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
21204
21205 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
21206
21207         PR tree-optimization/47967
21208         * ipa-cp.c (build_const_val): Return NULL instead of creating
21209         VIEW_CONVERT_EXPR for mismatching sizes.
21210         (ipcp_create_replace_map): Return NULL if build_const_val failed.
21211         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
21212         give up on versioning.
21213
21214 2011-03-05  Alan Modra  <amodra@gmail.com>
21215
21216         PR target/47986
21217         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
21218         full cmodel medium/large lo_sum + high addresses.
21219
21220 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21221
21222         * config/s390/s390.c (s390_decompose_address): Reject non-literal
21223         pool references in UNSPEC_LTREL_OFFSET.
21224
21225 2011-03-04  Jan Hubicka  <jh@suse.cz>
21226
21227         PR lto/47497
21228         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
21229         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
21230         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
21231         Add node pointers.
21232         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
21233         cgraph_add_thunk): Add node pointers.
21234         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
21235         associated to right node.
21236         (input_node): Update use of cgraph_same_body_alias
21237         and cgraph_add_thunk.
21238
21239 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
21240
21241         * config/i386/i386.opt (mprefer-avx128): New flag.
21242         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
21243         modes when the flag -mprefer-avx128 is on.
21244
21245 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
21246
21247         * dwarf2out.c (compare_loc_operands): Fix address handling.
21248
21249 2011-03-04  Alan Modra  <amodra@gmail.com>
21250
21251         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
21252
21253 2011-03-04  Richard Guenther  <rguenther@suse.de>
21254
21255         PR middle-end/47968
21256         * expmed.c (extract_bit_field_1): Prefer vector modes that
21257         vec_extract patterns can handle.
21258
21259 2011-03-04  Richard Guenther  <rguenther@suse.de>
21260
21261         PR middle-end/47975
21262         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
21263
21264 2011-03-04  Richard Henderson  <rth@redhat.com>
21265
21266         * explow.c (emit_stack_save): Remove 'after' parameter.
21267         (emit_stack_restore): Likewise.
21268         * expr.h: Update to match.
21269         * builtins.c, calls.c, stmt.c: Likewise.
21270         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
21271         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
21272         * function.c (expand_function_end): Insert the emit_stack_save
21273         sequence before parm_birth_insn instead of after.
21274
21275 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
21276
21277         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
21278         (ssse3_pmaddubsw128): Ditto.
21279         (ssse3_pmaddubsw): Ditto.
21280
21281 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
21282
21283         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
21284
21285 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
21286
21287         PR c/47963
21288         * gimplify.c (omp_add_variable): Only call omp_notice_variable
21289         on TYPE_SIZE_UNIT if it is a DECL.
21290
21291         PR debug/47283
21292         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
21293         first operand is not is_gimple_mem_ref_addr, try to fold it.
21294         If the operand still isn't is_gimple_mem_ref_addr, clear
21295         MEM_EXPR on op0.
21296
21297 2011-03-03  Richard Guenther  <rguenther@suse.de>
21298
21299         PR middle-end/47283
21300         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
21301         match comment.
21302         (refs_may_alias_p_1): For release branches return true if
21303         we are confused by our input.
21304
21305 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21306
21307         * config/s390/s390.c (s390_function_value): Rename to ...
21308         (s390_function_and_libcall_value): ... this.
21309         (s390_function_value): New function.
21310         (s390_libcall_value): New function.
21311         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
21312         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
21313         target macro definitions.
21314         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
21315
21316 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
21317
21318         * config/i386/freebsd64.h (CC1_SPEC): Define.
21319         * config/i386/linux64.h (CC1_SPEC): Define.
21320         * config/i386/x86-64.h (CC1_SPEC): Don't define.
21321
21322 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
21323
21324         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
21325         Remove.
21326         * config/stormy16/stormy16.c: Include reload.h.
21327         (xstormy16_memory_move_cost): New function.
21328         (TARGET_MEMORY_MOVE_COST): Define.
21329
21330 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
21331
21332         PR rtl-optimization/47925
21333         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
21334         with side effects.  Remove the more-specific check for volatile asms.
21335
21336 2011-03-02  Alan Modra  <amodra@gmail.com>
21337
21338         PR target/47935
21339         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
21340         toc relative addresses for valid offsets.
21341
21342 2011-03-01  Richard Guenther  <rguenther@suse.de>
21343
21344         PR tree-optimization/47890
21345         * tree-vect-loop.c (get_initial_def_for_induction): Set
21346         related stmt properly.
21347
21348 2011-03-01  Richard Guenther  <rguenther@suse.de>
21349
21350         PR lto/47924
21351         * lto-streamer.c (lto_record_common_node): Also register
21352         the canonical type.
21353
21354 2011-03-01  Richard Guenther  <rguenther@suse.de>
21355
21356         PR lto/46911
21357         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
21358         Do not stream DECL_ABSTRACT_ORIGIN.
21359         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
21360         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
21361         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
21362         Do not stream DECL_ABSTRACT_ORIGIN.
21363         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
21364         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
21365
21366 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
21367
21368         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
21369         FUNCTION_VALUE_REGNO_P): Remove.
21370         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
21371         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
21372         Add 'outgoing' argument.
21373         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
21374         function.
21375         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
21376         TARGET_FUNCTION_VALUE_REGNO_P): Define.
21377
21378 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
21379
21380         PR debug/28047
21381         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
21382         (lookup_filename): Likewise.
21383         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
21384
21385 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
21386             Jakub Jelinek  <jakub@redhat.com>
21387
21388         PR middle-end/47893
21389         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
21390         (assign_stack_local_1): Change last argument type to int.
21391         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
21392         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
21393         don't record padding space into frame_space_list nor use those areas.
21394         (assign_stack_local): Adjust caller.
21395         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
21396         of assign_stack_local, pass 0 as last argument.
21397         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
21398         callers.
21399
21400 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
21401
21402         PR debug/47283
21403         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
21404         Use target address_mode and pointer_mode hooks instead of hardcoded
21405         Pmode and ptr_mode.  Handle some simple cases of extending if
21406         POINTERS_EXTEND_UNSIGNED < 0.
21407         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
21408         Call convert_debug_memory_address.
21409         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
21410         convert_debug_memory_address.
21411
21412         PR middle-end/46790
21413         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
21414         * configure: Regenerated.
21415         * config.in: Regenerated.
21416         * varasm.c (default_function_section): Return NULL
21417         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
21418
21419 2011-02-28  Martin Jambor  <mjambor@suse.cz>
21420
21421         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
21422         the description to match the printed values.
21423
21424 2011-02-28  Richard Guenther  <rguenther@suse.de>
21425
21426         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
21427         of the copied scope tree.
21428
21429 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21430
21431         * doc/extend.texi (Function Attributes): Avoid deeply (and
21432         wrongly) nested tables.
21433
21434 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
21435
21436         PR middle-end/47903
21437         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
21438         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
21439         r isn't op0 nor op1.
21440
21441 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
21442
21443         * config/avr/avr.md: Remove magic comment for emacs.
21444
21445 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
21446
21447         PR target/45261
21448         * config/avr/avr.c (avr_option_override): Use error on bad options.
21449         (avr_help): New function.
21450         (TARGET_HELP): Define.
21451
21452 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
21453
21454         PR target/42240
21455         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
21456         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
21457
21458 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
21459
21460         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
21461         (ARM Options): Ditto.
21462         (i386 and x86-64 Options): Ditto.
21463         (RX Options): Ditto.
21464         (SPARC Options): Ditto.
21465
21466 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
21467
21468         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
21469         FreeBSD 6 and later.  Generally use cpu generic.
21470
21471 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
21472
21473         * doc/cpp.texi: Update copyright years.
21474
21475 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
21476
21477         PR target/46898
21478         * config/lm32/lm32.md (ashrsi3): Added needed variable.
21479
21480 2011-02-25  Jon Beniston  <jon@beniston.com>
21481
21482         PR target/46898
21483         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
21484         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
21485         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
21486         (lm32_block_move_inline): Add type cast to remove warning.
21487         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
21488         (gen_int_relational): Move declarations to start of function.
21489
21490 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
21491
21492         PR tree-optimization/45470
21493         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
21494         can throw internally only.
21495         * tree-vect-stmts.c (vectorizable_call): Likewise.
21496
21497 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
21498
21499         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
21500         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
21501         * config/stormy16/stormy16-protos.h
21502         (xstormy16_preferred_reload_class): Remove.
21503         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
21504         static. Change 'rclass' argument and return type to reg_class_t.
21505         (TARGET_PREFERRED_RELOAD_CLASS,
21506         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
21507
21508 2011-02-24  Richard Guenther  <rguenther@suse.de>
21509
21510         * lto-streamer-in.c (input_bb): Do not find referenced vars
21511         in debug statements.
21512
21513 2011-02-23  Jason Merrill  <jason@redhat.com>
21514
21515         * common.opt (fabi-version): Document v5 and v6.
21516
21517 2011-02-23  Richard Guenther  <rguenther@suse.de>
21518
21519         PR tree-optimization/47849
21520         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
21521
21522 2011-02-23  Jie Zhang  <jie@codesourcery.com>
21523
21524         * opts-common.c (decode_cmdline_option): Print empty string
21525         argument as "" in decoded->orig_option_with_args_text.
21526         * gcc.c (execute): Print empty string argument as ""
21527         in the verbose output.
21528         (do_spec_1): Keep empty string argument.
21529
21530 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
21531
21532         * config.gcc: Declare score-* and crx-* obsolete.
21533
21534 2011-02-23  Jie Zhang  <jie@codesourcery.com>
21535
21536         PR rtl-optimization/47763
21537         * web.c (web_main): Ignore naked clobber when replacing register.
21538
21539 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
21540
21541         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
21542         Remove.
21543
21544 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
21545
21546         PR doc/47848
21547         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
21548
21549 2011-02-22  Mike Stump  <mikestump@comcast.net>
21550
21551         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
21552         assembler.
21553         * configure: Regenerate.
21554
21555 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
21556
21557         PR rtl-optimization/46002
21558         * ira-color.c (update_copy_costs): Change class intersection
21559         test to reg_class_contents[] test of 'hard_regno'.
21560
21561 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
21562
21563         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
21564         than Driver option.
21565         * config/hpux11.opt (mt): Likewise.
21566         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
21567         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
21568         * config/vax/elf.opt (mno-asm-pic): Likewise.
21569         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
21570
21571 2011-02-21  Mike Stump  <mikestump@comcast.net>
21572
21573         PR target/47822
21574         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
21575         tree so we can get save the type.
21576         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
21577         for CFString instead of trying to use past the end of the builtins.
21578         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
21579         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
21580         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
21581         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
21582         Rename to darwin_builtin_cfstring.
21583         (darwin_init_cfstring_builtins): Return the built type.
21584
21585 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
21586
21587         PR target/47840
21588         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
21589         (_mm256_insert_epi64): Use _mm_insert_epi64.
21590
21591 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
21592
21593         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
21594         * config/stormy16/stormy16-protos.h
21595         (xstormy16_mode_dependent_address_p): Remove.
21596         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
21597         Make static. Change return type to bool. Change argument type to
21598         const_rtx. Remove dead code.
21599         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
21600
21601 2011-02-21  Richard Guenther  <rguenther@suse.de>
21602
21603         PR lto/47820
21604         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
21605         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
21606         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
21607         TUs context.
21608         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
21609         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
21610
21611 2011-02-20  Richard Guenther  <rguenther@suse.de>
21612
21613         PR lto/47822
21614         * tree.c (free_lang_data_in_decl): Clean builtins from
21615         the TU decl BLOCK_VARS.
21616
21617 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
21618
21619         PR debug/47620
21620         PR debug/47630
21621         * haifa-sched.c (fix_tick_ready): Skip tick computation
21622         for debug insns.
21623
21624 2011-02-19  Richard Guenther  <rguenther@suse.de>
21625
21626         PR lto/47647
21627         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
21628         Remove lazy BLOCK_VARS streaming.
21629         (lto_input_ts_block_tree_pointers): Likewise.
21630         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
21631
21632 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
21633
21634         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
21635
21636 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
21637
21638         * config/i386/biarch32.h, config/i386/mach.h,
21639         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
21640
21641 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
21642
21643         PR target/47800
21644         * config/i386/i386.md (peephole2 for shift and plus): Use
21645         operands[1] original mode in the first insn.
21646
21647 2011-02-18  Mike Stump  <mikestump@comcast.net>
21648
21649         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
21650
21651 2011-02-18  Jan Hubicka  <jh@suse.cz>
21652
21653         PR middle-end/47788
21654         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
21655         to zero when the function is not inlinable at all.
21656
21657 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21658
21659         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
21660         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
21661         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
21662         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
21663         * config/pa/t-pa64: Likewise.
21664         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
21665
21666 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
21667
21668         PR driver/47787
21669         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
21670
21671 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21672
21673         PR target/47792
21674         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
21675
21676 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
21677
21678         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
21679         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
21680         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
21681         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
21682         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
21683         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
21684         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
21685         m32r_load_postinc_p, m32r_store_preinc_predec_p,
21686         m32r_legitimate_address_p): New functions.
21687         * config/m32r/constraints.md (constraint "S"): Don't use
21688         STORE_PREINC_PREDEC_P.
21689         (constraint "U"): Don't use LOAD_POSTINC_P.
21690
21691 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
21692
21693         PR rtl-optimization/46178
21694         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
21695         compute ira_hard_regno_cover_class[].
21696
21697 2011-02-18  Richard Guenther  <rguenther@suse.de>
21698
21699         PR lto/47798
21700         * lto-streamer.h (lto_global_var_decls): Declare.
21701         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
21702         statics for global var processing.
21703
21704 2011-02-18  Richard Guenther  <rguenther@suse.de>
21705
21706         PR tree-optimization/47737
21707         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
21708         edge dominance check.
21709
21710 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
21711
21712         PR debug/47780
21713         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
21714         avoid invalid rtx sharing.
21715
21716 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
21717
21718         * doc/cpp.texi (Obsolete Features): Add background on the
21719         origin of assertions.
21720
21721 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
21722
21723         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
21724         objc_abi == 2.
21725         * config/darwin.c (output_objc_section_asm_op): Added support for
21726         ABI v1 and v2.
21727         (is_objc_metadata): New.
21728         (darwin_objc2_section): New.
21729         (darwin_objc1_section): New.
21730         (machopic_select_section): Added support for ABI v1 and v2.
21731         (darwin_emit_objc_zeroed): New.
21732         (darwin_output_aligned_bss): Detect objc metadata and treat it
21733         appropriately.
21734         (darwin_asm_output_aligned_decl_common): Same.
21735         (darwin_asm_output_aligned_decl_local): Same.
21736         * config/darwin-sections.def: Updated for ABI v1 and v2.
21737         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
21738         compiling Objective-C code for the NeXT runtime, default to using
21739         ABI version 0 for 32-bit, and version 2 for 64-bit.
21740
21741 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
21742
21743         * common.opt (optimize_fast): New Variable.
21744         * opts.c (default_options_optimization): Use opts->x_optimize_fast
21745         instead of local variable ofast.
21746
21747 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
21748
21749         * doc/invoke.texi (fobjc-abi-version): Documented.
21750         (fobjc-nilcheck): Documented.
21751         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
21752         version.
21753
21754 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
21755
21756         PR driver/47390
21757         * common.opt (export-dynamic): New Driver option.
21758         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
21759
21760 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
21761
21762         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
21763
21764 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
21765             Jan Hubicka  <jh@suse.cz>
21766
21767         PR debug/47106
21768         PR debug/47402
21769         * cfgexpand.c (account_used_vars_for_block): Remove.
21770         (estimated_stack_frame_size): Use referenced vars.
21771         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
21772         that were referenced in the original function.  Test src_fn
21773         rather than cfun.  Drop redundant get_var_ann.
21774         (setup_one_parameter): Drop redundant get_var_ann.
21775         (declare_return_variable): Likewise.
21776         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
21777         (copy_arguments_for_versioning): Drop redundant get_var_ann.
21778         * ipa-inline.c (compute_inline_parameters): Do not compute
21779         disregard_inline_limits here.
21780         (compute_inlinable_for_current, pass_inlinable): New.
21781         (pass_inline_parameters): Require PROP_referenced_vars.
21782         * cgraphunit.c (cgraph_process_new_functions): Don't run
21783         compute_inline_parameters explicitly unless function is in SSA form.
21784         (cgraph_analyze_function): Set .disregard_inline_limits.
21785         * tree-sra.c (convert_callers): Compute inliner parameters
21786         only for functions already in SSA form.
21787
21788 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
21789
21790         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
21791         -mlittle-endian-data.
21792
21793 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
21794
21795         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
21796         -mno-fpu, not -fpu and -no-fpu.
21797         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
21798         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
21799
21800 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
21801
21802         PR target/43653
21803         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
21804         input reload with PLUS RTX.
21805
21806 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
21807
21808         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
21809         of InverseVar(MDMX).
21810
21811 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
21812
21813         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
21814         --m4-340.
21815
21816 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
21817
21818         * config/mn10300/mn10300.opt (mno-crt0): New.
21819
21820 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
21821
21822         * config/m68k/uclinux.opt (static-libc): New Driver option.
21823
21824 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
21825
21826         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
21827
21828 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
21829
21830         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
21831         %{muser-extend-enabled}.
21832
21833 2011-02-16  Richard Guenther  <rguenther@suse.de>
21834
21835         PR tree-optimization/47738
21836         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
21837         the TODO from tree_predictive_commoning.
21838
21839 2011-02-15  Jeff Law  <law@redhat.com>
21840
21841         Revert
21842         2011-01-25  Jeff Law  <law@redhat.com>
21843
21844         PR rtl-optimization/37273
21845         * ira-costs.c (scan_one_insn): Detect constants living in memory and
21846         handle them like argument loads from stack slots.  Do not double
21847         count memory for memory constants and argument loads from stack slots.
21848
21849 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
21850
21851         PR target/47755
21852         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
21853         mode for vector constants.  Remove code that checks for TImode.
21854
21855 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
21856
21857         PR debug/47106
21858         PR debug/47402
21859         * cgraph.h (compute_inline_parameters): Return void.
21860         * ipa-inline.c (compute_inline_parameters): Adjust.
21861
21862 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
21863
21864         PR debug/47106
21865         PR debug/47402
21866         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
21867         rather than decl.
21868         * cfgexpand.c (estimated_stack_frame_size): Likewise.
21869         * ipa-inline.c (compute_inline_parameters): Adjust.
21870
21871 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
21872
21873         PR debug/47106
21874         PR debug/47402
21875         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
21876         Adjust all users.  Pass FN to...
21877         * tree-flow-inline.h (first_referenced_var): ... this.  Add
21878         fn argument.
21879         * ipa-struct-reorg.c: Adjust.
21880         * tree-dfa.c: Adjust.
21881         * tree-into-ssa.c: Adjust.
21882         * tree-sra.c: Adjust.
21883         * tree-ssa-alias.c: Adjust.
21884         * tree-ssa-live.c: Adjust.
21885         * tree-ssa.c: Adjust.
21886         * tree-ssanames.c: Adjust.
21887         * tree-tailcall.c: Adjust.
21888
21889 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
21890
21891         PR debug/47106
21892         PR debug/47402
21893         * tree-flow.h (referenced_var_lookup): Add fn parameter.
21894         Adjust all callers.
21895         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
21896         * tree-flow-inline.h: Adjust.
21897         * gimple-pretty-print.c: Adjust.
21898         * tree-into-ssa.c: Adjust.
21899         * tree-ssa.c: Adjust.
21900         * cfgexpand.c: Adjust.
21901
21902 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
21903
21904         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
21905         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
21906         (EXTRA_CONSTRAINT): Delete.
21907         * config/iq2000/constraints.md: New file.
21908         * config/iq2000/iq2000.md: Include it.
21909         (define_insn ""): Delete.
21910         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
21911         unsupported constraint letters from patterns.
21912         (call_value, call_value_internal1): Likewise.
21913         (call_value_multiple_internal1): Likewise.
21914
21915 2011-02-15  Nick Clifton  <nickc@redhat.com>
21916
21917         * config/mn10300/mn10300.c: Include tm-constrs.h.
21918         (struct liw_data): New data structure describing an LIW candidate
21919         instruction.
21920         (extract_bundle): Use struct liw_data.  Allow small integer
21921         operands for some instructions.
21922         (check_liw_constraints): Use struct liw_data.  Remove swapped
21923         parameter.  Add comments describing the checks.  Fix bug when
21924         assigning the source of liw1 to the source of liw2.
21925         (liw_candidate): Delete.  Code moved into extract_bundle.
21926         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
21927         before swapping.
21928         * config/mn10300/predicates.md (liw_operand): New predicate.
21929         Allows registers and small integer constants.
21930         * config/mn10300/constraints.md (O): New constraint.  Accetps
21931         integers in the range -8 to +7 inclusive.
21932         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
21933         for moving a small integer into a register.  Give this alternative
21934         LIW attributes.
21935         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
21936         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
21937         using the J,K,L and M constraints,
21938         (liw): Remove SI mode on second operands to allow for HI and QI
21939         mode values.
21940         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
21941         instruction.
21942
21943 2011-02-15  Richard Guenther  <rguenther@suse.de>
21944
21945         PR tree-optimization/47743
21946         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
21947         for a non-type-compatible VN lookup bail out.
21948
21949 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
21950
21951         * config/fr30/constraints.md: New file.
21952         * config/fr30/fr30.md: Include it.
21953         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
21954         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
21955         (EXTRA_CONSTRAINT): Delete.
21956
21957 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
21958
21959         * config/frv/constraints.md: New file.
21960         * config/frv/predicates.md: Include it.
21961         * config/frv/frv.c (reg_class_from_letter): Delete.
21962         (frv_option_override): Don't initialize it.
21963         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
21964         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
21965         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
21966         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
21967         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
21968         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
21969         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
21970         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
21971         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
21972         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
21973         (REG_CLASS_FROM_CONSTRAINT): Delete.
21974
21975 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
21976
21977         PR middle-end/47581
21978         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
21979         if frame size is 0 in a leaf function.
21980
21981 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21982
21983         PR pch/14940
21984         * config/alpha/host-osf.c: New file.
21985         * config/alpha/x-osf: New file.
21986         * config.host (alpha*-dec-osf*): Use it.
21987
21988 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
21989
21990         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
21991         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
21992         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
21993         (rx_mode_dependent_address_p): ...this. Make static. Change argument
21994         type to const_rtx.
21995         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
21996
21997 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
21998
21999         * config/stormy16/constraints.md: New file.
22000         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
22001         Use satisfies_constraint_Q and satisfies_constraint_R.
22002         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
22003         Delete.
22004         (xstormy16_legitiamte_address_p): Declare.
22005         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
22006         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
22007         (EXTRA_CONSTRAINT): Delete.
22008         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
22009         Un-staticize.
22010         (xstormy16_extra_constraint_p): Delete.
22011
22012 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
22013
22014         PR tree-optimization/46494
22015         * loop-unroll.c (split_edge_and_insert): Adjust comment.
22016         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
22017         (pass_rtl_loop_done): Add TODO_verify_flow.
22018         * fwprop.c (pass_rtl_fwprop): Likewise.
22019         * modulo-sched.c (pass_sms): Likewise.
22020         * tree-ssa-dom.c (pass_dominator): Likewise.
22021         * tree-ssa-loop-ch.c (pass_ch): Likewise.
22022         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
22023         (pass_tree_loop_done): Likewise.
22024         * tree-ssa-pre.c (execute_pre): Likewise.
22025         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
22026         * tree-ssa-sink.c (pass_sink_code): Likewise.
22027         * tree-vrp.c (pass_vrp): Likewise.
22028
22029 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
22030
22031         * config/v850/constraints.md: New file.
22032         * config/v850/v850.md: Include it.
22033         * config/v850/predicates.md (reg_or_0_operand): Use
22034         satisfies_constraint_G.
22035         (special_symbolref_operand): Use satisfies_constraint_K.
22036         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
22037         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
22038         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
22039         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
22040         (EXTRA_CONSTRAINT): Delete.
22041         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
22042         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
22043         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
22044
22045 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
22046
22047         PR target/47696
22048         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
22049         description.
22050
22051 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
22052
22053         * config/mcore/constraints.md: New file.
22054         * config/mcore/mcore.md: Include it.
22055         * config/mcore/mcore.c (reg_class_from_letter): Delete.
22056         * config/mcore/mcore.h (reg_class_from_letter): Delete.
22057         (REG_CLASS_FROM_LETTER): Delete.
22058         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
22059         insn_const_int_ok_for_constraint.
22060         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
22061         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
22062         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
22063         (EXTRA_CONSTRAINT): Delete.
22064
22065 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22066
22067         PR ada/41929
22068         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
22069         (IS_SIGHANDLER): Define.
22070         (sparc64_is_sighandler): New function, split off from
22071         sparc64_fallback_frame_state.
22072         (sparc_is_sighandler): New function, split off from
22073         sparc_fallback_frame_state.
22074         (sparc64_fallback_frame_state): Merge with ...
22075         (sparc_fallback_frame_state): ... this into ...
22076         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
22077         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
22078         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
22079         stack instead of hardcoded offsets.
22080
22081 2011-02-14  Andriy Gapon  <avg@freebsd.org>
22082
22083         PR target/45808
22084         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
22085
22086 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22087
22088         * configure: Regenerate.
22089
22090 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
22091
22092         PR driver/45731
22093         * gcc.c (asm_options): Correct spec matching --target-help.
22094
22095 2011-02-12  Martin Jambor  <mjambor@suse.cz>
22096
22097         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
22098         to gimple call error.
22099
22100 2011-02-12  Mike Stump  <mikestump@comcast.net>
22101
22102         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
22103         comments in backslash regions.
22104
22105 2011-02-12  Mike Stump  <mikestump@comcast.net>
22106             Jakub Jelinek  <jakub@redhat.com>
22107             Iain Sandoe  <iains@gcc.gnu.org>
22108
22109         PR target/47324
22110         * dwarf2out.c (output_cfa_loc): When required, apply the
22111         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
22112         (output_loc_sequence): Likewise.
22113         (output_loc_operands_raw): Likewise.
22114         (output_loc_sequence_raw): Likewise.
22115         (output_cfa_loc): Likewise.
22116         (output_loc_list): Suppress register number adjustment when
22117         calling output_loc_sequence()
22118         (output_die): Likewise.
22119
22120 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
22121
22122         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
22123         Remove macros.
22124         * config/xtensa/xtensa.c (xtensa_register_move_cost,
22125         xtensa_memory_move_cost): New functions.
22126         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
22127
22128 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
22129
22130         PR lto/47225
22131         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
22132         in the current directory.
22133         * configure: Rebuilt.
22134
22135 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
22136
22137         * config/darwin.c (darwin_override_options): Add a hunk missed
22138         from the commit of r168571.  Trim comment line lengths and
22139         correct indents of the preceding block.
22140
22141 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
22142
22143         * gcc.c (driver_handle_option): Concatenate the argument to -F with
22144         the switch.
22145
22146 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
22147
22148         * common.opt (nostartfiles): New Driver option.
22149
22150 2011-02-11  Xinliang David Li  <davidxl@google.com>
22151
22152         PR tree-optimization/47707
22153         * tree-chrec.c (convert_affine_scev): Keep type precision.
22154
22155 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
22156
22157         PR tree-optimization/47420
22158         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
22159
22160 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
22161
22162         PR rtl-optimization/47614
22163         * rtl.h (check_for_inc_dec): Declare.
22164         * dse.c (check_for_inc_dec): Externalize...
22165         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
22166         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
22167
22168 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
22169
22170         PR driver/47678
22171         * gcc.c (main): Do not compile inputs if there were errors in
22172         option handling.
22173         * opts-common.c (read_cmdline_option): Check for wrong language
22174         after other error checks.
22175
22176 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
22177
22178         * cgraph.c: Fix comment typos.
22179         * cgraph.h: Likewise.
22180         * cgraphunit.c: Likewise.
22181         * ipa-cp.c: Likewise.
22182         * ipa-inline.c: Likewise.
22183         * ipa-prop.c: Likewise.
22184         * ipa-pure-const.c: Likewise.
22185         * ipa-ref.c: Likewise.
22186         * ipa-reference.c: Likewise.
22187
22188 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
22189
22190         PR debug/47684
22191         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
22192
22193 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22194
22195         PR testsuite/47400
22196         * doc/sourcebuild.texi (Require Support): Document
22197         dg-require-ascii-locale.
22198
22199 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
22200
22201         * doc/lto.texi (Write summary): Fix missing parentheses.
22202
22203 2011-02-10  DJ Delorie  <dj@redhat.com>
22204
22205         * config/m32c/m32c.c (m32c_option_override): Disable
22206         -fcombine-stack-adjustments until flag value tracking and compare
22207         optimization can be rewritten.
22208
22209 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
22210
22211         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
22212         PROCESSOR_POWER7.
22213         (PROCESSOR_DEFAULT64): Likewise.
22214
22215 2011-02-10  Richard Henderson  <rth@redhat.com>
22216
22217         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
22218         change from 2011-02-03.
22219         * config/rx/rx.c (flags_from_code): Likewise.
22220         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
22221         is valid, n/pz otherwise.
22222         (rx_select_cc_mode): Return CCmode if Y is not zero.
22223
22224 2011-02-10  Richard Guenther  <rguenther@suse.de>
22225
22226         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
22227
22228 2011-02-10  Richard Guenther  <rguenther@suse.de>
22229
22230         PR tree-optimization/47677
22231         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
22232
22233 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
22234
22235         PR target/47665
22236         * combine.c (make_compound_operation): Only change shifts into
22237         multiplication for SCALAR_INT_MODE_P.
22238
22239 2011-02-10  Jie Zhang  <jie@codesourcery.com>
22240
22241         PR testsuite/47622
22242         Revert
22243         2011-02-05  Jie Zhang  <jie@codesourcery.com>
22244         PR debug/42631
22245         * web.c (entry_register): Don't clobber the number of the
22246         first uninitialized reference in used[].
22247
22248 2011-02-09  Richard Guenther  <rguenther@suse.de>
22249
22250         PR tree-optimization/47664
22251         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
22252         all edges again.
22253
22254 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
22255
22256         PR target/46481
22257         PR target/47032
22258         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
22259         PROCESSOR_POWER7.
22260         (PROCESSOR_DEFAULT64): Same.
22261         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
22262
22263 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22264
22265         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
22266
22267 2011-02-09  Martin Jambor  <mjambor@suse.cz>
22268
22269         PR middle-end/45505
22270         * tree-sra.c (struct access): New flags grp_scalar_read and
22271         grp_scalar_write.  Changed description of assignment read and write
22272         flags.
22273         (dump_access): Dump new flags, reorder all of them.
22274         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
22275         to detect multiple scalar reads.
22276         (analyze_access_subtree): Use the new scalar read write flags instead
22277         of the old flags.  Adjusted comments.
22278
22279 2011-02-08  DJ Delorie  <dj@redhat.com>
22280
22281         PR target/47548
22282         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
22283         patterns.
22284
22285 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
22286
22287         * config/m68k/uclinux.opt: New.
22288         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
22289
22290 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
22291
22292         * config/cris/elf.opt (sim): New Driver option.
22293
22294 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
22295
22296         * config/xtensa/elf.opt: New.
22297         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
22298
22299 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
22300
22301         * config/vax/elf.opt: New.
22302         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
22303
22304 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
22305
22306         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
22307
22308 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
22309
22310         * config/gnu-user.opt: New.
22311         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
22312         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
22313         *-*-uclinux*): Use gnu-user.opt.
22314
22315 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
22316
22317         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
22318         * config/i386/gnu.h (CPP_SPEC): Likewise.
22319
22320 2011-02-08  Ian Lance Taylor  <iant@google.com>
22321
22322         * common.opt (fcx-limited-range): Add SetByCombined flag.
22323         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
22324         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
22325         (fassociative-math, freciprocal-math): Likewise.
22326         (funsafe-math-optimizations): Likewise.
22327         * opth-gen.awk: Handle SetByCombined.
22328         * optc-gen.awk: Likewise.
22329         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
22330         (set_unsafe_math_optimizations_flags): Likewise.
22331         * doc/options.texi (Option properties): Document SetByCombined.
22332
22333 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
22334
22335         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
22336         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
22337         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
22338         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
22339         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
22340
22341 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
22342
22343         PR tree-optimization/46834
22344         PR tree-optimization/46994
22345         PR tree-optimization/46995
22346         * graphite-sese-to-poly.c (used_outside_reduction): New.
22347         (detect_commutative_reduction): Call used_outside_reduction.
22348         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
22349         translate_scalar_reduction_to_array only when at least one
22350         loop-phi/close-phi tuple has been detected.
22351
22352 2011-02-08  Richard Guenther  <rguenther@suse.de>
22353
22354         PR middle-end/47639
22355         * tree-vect-generic.c (expand_vector_operations_1): Update
22356         stmts here ...
22357         (expand_vector_operations): ... not here.  Cleanup EH info
22358         and the CFG if required.
22359
22360 2011-02-08  Richard Guenther  <rguenther@suse.de>
22361
22362         PR tree-optimization/47641
22363         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
22364         require type compatibility.
22365
22366 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22367
22368         * gimple-low.c (lower_function_body): Don't remove the location of
22369         the return statement here.
22370         (lower_gimple_return): Do it here instead but only if the return
22371         statement is actually used twice.
22372
22373 2011-02-08  Richard Guenther  <rguenther@suse.de>
22374
22375         PR tree-optimization/47632
22376         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
22377         unused up_to_stmt parameter, return whether cfg-cleanup is
22378         necessary, remove EH info properly.
22379         (forward_propagate_into_gimple_cond): Adjust caller.
22380         (forward_propagate_into_cond): Likewise.
22381         (forward_propagate_comparison): Likewise.
22382         (tree_ssa_forward_propagate_single_use_vars): Make
22383         forward_propagate_comparison case similar to the two others.
22384
22385 2011-02-08  Nick Clifton  <nickc@redhat.com>
22386
22387         * config/mn10300/mn10300.opt (mliw): New command line option.
22388         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
22389         (liw_bundling): New automaton.
22390         (liw): New attribute.
22391         (liw_op): New attribute.
22392         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
22393         (movsi_internal): Add LIW attributes.
22394         (andsi3): Likewise.
22395         (iorsi3): Likewise.
22396         (xorsi3): Likewise.
22397         (addsi3): Separate register and immediate alternatives.
22398         Add LIW attributes.
22399         (subsi3): Likewise.
22400         (cmpsi): Likewise.
22401         (aslsi3): Likewise.
22402         (lshrsi3): Likewise.
22403         (ashrsi3): Likewise.
22404         (liw): New pattern.
22405         * config/mn10300/mn10300.c (liw_op_names): New
22406         (mn10300_print_operand): Handle 'W' operand descriptor.
22407         (extract_bundle): New function.
22408         (check_liw_constraints): New function.
22409         (liw_candidate): New function.
22410         (mn10300_bundle_liw): New function.
22411         (mn10300_reorg): New function.
22412         (TARGET_MACHINE_DEPENDENT_REORG): Define.
22413         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
22414         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
22415         __LIW__ or __NO_LIW__.
22416         * doc/invoke.texi: Describe the -mliw command line option.
22417
22418 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22419
22420         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
22421         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
22422         pthread_mutex_unlock): Remove.
22423         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
22424         * config/pa/t-pa64: Likewise.
22425         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
22426         shared libc if not linking against libpthread.
22427         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
22428
22429 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
22430
22431         PR target/47558
22432         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
22433         on 10.6 and later to ensure that we always use the unwinder from
22434         the system.  Only add -no_compact_unwind when tarteting darwin
22435         10.6 or later.
22436
22437 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
22438
22439         PR target/46997
22440         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
22441         (vec_interleave_lowv2sf): Ditto.
22442         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
22443         (vec_extract_oddv2sf): Ditto.
22444
22445 2011-02-07  Mike Stump  <mikestump@comcast.net>
22446
22447         PR target/42333
22448         Add __ieee_divdc3 entry point.
22449         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
22450         entry point.
22451         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
22452         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
22453         * config/darwin.c (darwin_rename_builtins): Add.
22454         * config/darwin-protos.h (darwin_rename_builtins): Add.
22455
22456 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
22457
22458         PR target/47636
22459         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
22460         for the condition.
22461
22462 2011-02-07  Mike Stump  <mikestump@comcast.net>
22463
22464         * config/darwin.opt (mmacosx-version-min): Update default OS version.
22465
22466 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
22467
22468         PR target/47534
22469         * config/avr/libgcc.S (exit): Move .endfunc
22470
22471 2011-02-07  Richard Guenther  <rguenther@suse.de>
22472
22473         PR tree-optimization/47615
22474         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
22475         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
22476         (run_scc_vn): Initialize it.
22477         (visit_reference_op_load): Use it.
22478         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
22479
22480 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
22481
22482         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
22483         DImode trapping arithmetic libfuncs.
22484
22485 2011-02-07  Richard Guenther  <rguenther@suse.de>
22486
22487         PR tree-optimization/47621
22488         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
22489         two duplicates ...
22490         (execute_update_addresses_taken): ... here.  Make it more
22491         conservative in what we accept.
22492
22493 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
22494
22495         * config/sparc/freebsd.h (ASM_SPEC): Define.
22496         * config/sparc/vxworks.h (ASM_SPEC): Define.
22497
22498 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
22499
22500         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
22501
22502 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
22503
22504         * doc/invoke.texi: Remove reference to compiler internals from
22505         user documentation.
22506
22507         * reg-notes.def: Remove REG_VALUE_PROFILE.
22508         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
22509
22510 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
22511
22512         PR middle-end/47610
22513         * varasm.c (default_section_type_flags): If decl is NULL,
22514         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
22515
22516 2011-02-05  Jie Zhang  <jie@codesourcery.com>
22517
22518         PR debug/42631
22519         * web.c (entry_register): Don't clobber the number of the
22520         first uninitialized reference in used[].
22521
22522 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
22523
22524         PR tree-optimization/46194
22525         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
22526         (build_classic_dist_vector_1): Do not represent classic distance
22527         vectors when the access functions are variating in different loops.
22528
22529 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
22530
22531         * config/mips/iris6.opt: New.
22532         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
22533
22534 2011-02-04  Richard Henderson  <rth@redhat.com>
22535             Steve Ellcey  <sje@cup.hp.com>
22536
22537         PR target/46997
22538         * config/ia64/predicates.md (mux1_brcst_element): New.
22539         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
22540         * config/ia64/ia64.c (ia64_unpack_assemble): New.
22541         (ia64_unpack_sign): New.
22542         (ia64_expand_unpack): Rewrite using new routines.
22543         (ia64_expand_widen_sum): Ditto.
22544         (ia64_expand_dot_prod_v8qi): Ditto.
22545         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
22546         routines, add endian check.
22547         (pmpy2_even): Rename from pmpy2_r, add endian check.
22548         (pmpy2_odd): Rename from pmpy2_l, add endian check.
22549         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
22550         (vec_widen_smult_hi_v4hi): Ditto.
22551         (vec_widen_umult_lo_v4hi): Ditto.
22552         (vec_widen_umult_hi_v4hi): Ditto.
22553         (mulv2si3): Change endian checks.
22554         (sdot_prodv4hi): Rewrite with new calls.
22555         (udot_prodv4hi): New.
22556         (vec_pack_ssat_v4hi): Add endian check.
22557         (vec_pack_usat_v4hi): Ditto.
22558         (vec_pack_ssat_v2si): Ditto.
22559         (max1_even): Rename from max1_r, add endian check.
22560         (max1_odd): Rename from max1_l, add endian check.
22561         (*mux1_rev): Format change.
22562         (*mux1_mix): Ditto.
22563         (*mux1_shuf): Ditto.
22564         (*mux1_alt): Ditto.
22565         (*mux1_brcst_v8qi): Use new predicate.
22566         (vec_extract_evenv8qi): Remove endian check.
22567         (vec_extract_oddv8qi): Ditto.
22568         (vec_interleave_lowv4hi): Format change.
22569         (vec_interleave_highv4hi): Ditto.
22570         (mix2_even): Rename from mix2_r, add endian check.
22571         (mix2_odd): Rename from mux2_l, add endian check.
22572         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
22573         (vec_extract_evenodd_helper): Format change.
22574         (vec_extract_evenv4hi): Remove endian check.
22575         (vec_extract_oddv4hi): Remove endian check.
22576         (vec_interleave_lowv2si): Format change.
22577         (vec_interleave_highv2si): Format change.
22578         (vec_initv2si): Remove endian check.
22579         (vecinit_v2si): Add endian check.
22580         (reduc_splus_v2sf): Add endian check.
22581         (reduc_smax_v2sf): Ditto.
22582         (reduc_smin_v2sf): Ditto.
22583         (vec_initv2sf): Remove endian check.
22584         (fpack): Add endian check.
22585         (fswap): Add endian check.
22586         (vec_interleave_highv2sf): Add endian check.
22587         (vec_interleave_lowv2sf): Add endian check.
22588         (fmix_lr): Add endian check.
22589         (vec_setv2sf): Format change.
22590         (*vec_extractv2sf_0_be): Use shift to extract operand.
22591         (*vec_extractv2sf_1_be): New.
22592         (vec_pack_trunc_v4hi): Add endian check.
22593         (vec_pack_trunc_v2si): Format change.
22594
22595 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
22596
22597         PR inline-asm/23200
22598         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
22599         do bb, locus and block comparison and disallow loads if it is not set.
22600         (stmt_is_replaceable_p): New function.
22601         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
22602         callers.
22603         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
22604         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
22605         SSA_NAME_DEF_STMT.
22606         * tree-flow.h (stmt_is_replaceable_p): New prototype.
22607
22608 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
22609
22610         * config/rs6000/xilinx.opt: New.
22611         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
22612
22613 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
22614
22615         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
22616
22617 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
22618
22619         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
22620         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
22621         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
22622         secondary_reload_info, xtensa_secondary_reload): Remove.
22623         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
22624         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
22625         (xtensa_preferred_reload_class): Make static. Change return and
22626         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
22627         Use CONST_DOUBLE_P predicate.
22628         (xtensa_preferred_output_reload_class): New function.
22629         (xtensa_secondary_reload): Make static.
22630
22631 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
22632
22633         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
22634         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
22635         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
22636
22637 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
22638
22639         PR middle-end/31490
22640         * output.h (SECTION_RELRO): Define.
22641         (SECTION_MACH_DEP): Adjust.
22642         (get_variable_section): New prototype.
22643         * varpool.c (varpool_finalize_named_section_flags): New function.
22644         (varpool_assemble_pending_decls): Call it.
22645         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
22646         * cgraphunit.c (cgraph_output_in_order): Call
22647         varpool_finalize_named_section_flags.
22648         * varasm.c (get_section): Allow section flags conflicts between
22649         relro and read-only sections if the section hasn't been declared yet.
22650         Set SECTION_OVERRIDE after diagnosing section type conflict.
22651         (get_variable_section): No longer static.
22652         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
22653         readonly sections that need relocations.
22654         (decl_readonly_section_1): New function.
22655         (decl_readonly_section): Use it.
22656
22657         Revert:
22658         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
22659                     Steve Ellcey  <sje@cup.hp.com>
22660
22661         PR middle-end/31490
22662         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
22663         if section attribute used.
22664
22665 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
22666
22667         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
22668         * config/darwin.c (SECTION_NO_ANCHOR): Define.
22669         (darwin_init_sections): Remove assertion.
22670
22671 2011-02-03  Nick Clifton  <nickc@redhat.com>
22672
22673         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
22674         lt and ge.
22675         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
22676         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
22677         instead of "n" and "pz".
22678         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
22679         CC_FLAG_S.
22680
22681 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
22682
22683         PR target/47312
22684         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
22685         fma, expand FMA_EXPR as fma{,f,l} call.
22686
22687         PR lto/47274
22688         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
22689         copy them into a unsigned char variable and pass address of it to
22690         lto_output_data_stream.
22691
22692         PR target/47564
22693         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
22694         around backend_init_target and lang_dependent_init_target calls.
22695         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
22696         (verify_cgraph_node): Don't call set_cfun here.  Use
22697         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
22698         Set error_found for incorrectly represented calls to thunks.
22699
22700 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
22701
22702         PR debug/43092
22703         PR rtl-optimization/43494
22704         * rtl.h (for_each_inc_dec_fn): New type.
22705         (for_each_inc_dec): Declare.
22706         * rtlanal.c (struct for_each_inc_dec_ops): New type.
22707         (for_each_inc_dec_find_inc_dec): New fn.
22708         (for_each_inc_dec_find_mem): New fn.
22709         (for_each_inc_dec): New fn.
22710         * dse.c (struct insn_size): Remove.
22711         (replace_inc_dec, replace_inc_dec_mem): Remove.
22712         (emit_inc_dec_insn_before): New fn.
22713         (check_for_inc_dec): Use it, along with for_each_inc_dec.
22714         (canon_address): Pass mem modes to cselib_lookup.
22715         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
22716         (cselib_lookup_from_insn): Likewise.
22717         (cselib_subst_to_values): Likewise.
22718         * cselib.c (find_slot_memmode): New var.
22719         (cselib_find_slot): New fn.  Use it instead of
22720         htab_find_slot_with_hash everywhere.
22721         (entry_and_rtx_equal_p): Use find_slot_memmode.
22722         (autoinc_split): New fn.
22723         (rtx_equal_for_cselib_p): Rename and implement in terms of...
22724         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
22725         Deal with autoinc.  Special-case recursion into MEMs.
22726         (cselib_hash_rtx): Likewise.
22727         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
22728         address and MEM modes.
22729         (cselib_subst_to_values): Add memmode, pass it on.
22730         Deal with autoinc.
22731         (cselib_lookup): Add memmode argument, pass it on.
22732         (cselib_lookup_from_insn): Add memmode.
22733         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
22734         (struct cselib_record_autoinc_data): New.
22735         (cselib_record_autoinc_cb): New fn.
22736         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
22737         mode to cselib_lookup.  Reset autoinced REGs here instead of...
22738         (cselib_process_insn): ... here.
22739         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
22740         to cselib_lookup.
22741         (add_uses): Likewise, also to cselib_subst_to_values.
22742         (add_stores): Likewise.
22743         * sched-deps.c (add_insn_mem_dependence): Pass mode to
22744         cselib_subst_to_values.
22745         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
22746         * gcse.c (do_local_cprop): Adjusted.
22747         * postreload.c (reload_cse_simplify_set): Adjusted.
22748         (reload_cse_simplify_operands): Adjusted.
22749         * sel-sched-dump (debug_mem_addr_value): Pass mode.
22750
22751 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
22752
22753         PR tree-optimization/45122
22754         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
22755         unsafe assumptions when there's more than one loop exit.
22756
22757 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
22758
22759         PR target/47272
22760         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
22761         Document using vector double with the load/store builtins, and
22762         that the load/store builtins always use Altivec instructions.
22763
22764         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
22765         to use altivec memory instructions, even on VSX.
22766         (vector_altivec_store_<mode>): Ditto.
22767
22768         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
22769         function.
22770
22771         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
22772         V2DF, V2DI support to load/store overloaded builtins.
22773
22774         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
22775         altivec load/store builtins for V2DF/V2DI types.
22776
22777         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
22778         set avoid indexed addresses on power6 if -maltivec.
22779         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
22780         vector_altivec_load/vector_altivec_store builtins.
22781         (altivec_expand_st_builtin): Ditto.
22782         (altivec_expand_builtin): Add VSX memory builtins.
22783         (rs6000_init_builtins): Add V2DI types to internal types.
22784         (altivec_init_builtins): Add support for V2DF/V2DI altivec
22785         load/store builtins.
22786         (rs6000_address_for_altivec): Insure memory address is appropriate
22787         for Altivec.
22788
22789         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
22790         vec_vsx_ld and vec_vsx_st.
22791         (vsx_store_<mode>): Ditto.
22792
22793         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
22794         variables to hold long long types for VSX vector memory builtins.
22795         (RS6000_BTI_unsigned_long_long): Ditto.
22796         (long_long_integer_type_internal_node): Ditti.
22797         (long_long_unsigned_type_internal_node): Ditti.
22798
22799         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
22800         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
22801         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
22802
22803         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
22804         short cuts.
22805         (vec_vsx_st): Ditto.
22806
22807 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
22808
22809         * config/pa/pa-hpux10.opt: New.
22810         * config/hpux11.opt (pthread): New Driver option.
22811         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
22812         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
22813
22814 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
22815
22816         * config/ia64/vms.opt: New.
22817         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
22818
22819 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
22820
22821         PR target/47580
22822         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
22823         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
22824         generator functions.
22825         (vsx_floatuns<VSi><mode>2): Ditto.
22826         (vsx_fix_trunc<mode><VSi>2): Ditto.
22827         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
22828
22829 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
22830
22831         * config/i386/djgpp.opt (posix): New Driver option.
22832
22833 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
22834
22835         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
22836         Move to the unsupported targets list.
22837
22838 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
22839
22840         PR rtl-optimization/47525
22841         * df-scan.c: Update copyright years.
22842         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
22843         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
22844
22845 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22846
22847         * config/i386/sysv4.h (TARGET_VERSION): Remove.
22848         (SUBTARGET_RETURN_IN_MEMORY): Remove.
22849         (ASM_OUTPUT_ASCII): Remove.
22850         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
22851
22852 2011-02-02  Jeff Law  <law@redhat.com>
22853
22854         PR middle-end/47543
22855         * reload.c (find_reloads_address): Handle reg+d address where both
22856         components are invalid by reloading the entire address.
22857
22858 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
22859             Richard Guenther  <rguenther@suse.de>
22860
22861         PR tree-optimization/40979
22862         PR bootstrap/47044
22863         * passes.c (init_optimization_passes): After LIM call copy_prop
22864         and DCE to clean up.
22865         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
22866
22867 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
22868
22869         PR tree-optimization/47576
22870         PR tree-optimization/47555
22871         * doc/invoke.texi (scev-max-expr-complexity): Documented.
22872         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
22873         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
22874         * tree-scalar-evolution.c (follow_ssa_edge): Use
22875         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
22876
22877 2011-02-02  Richard Guenther  <rguenther@suse.de>
22878
22879         PR tree-optimization/47566
22880         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
22881
22882 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
22883
22884         PR debug/47106
22885         PR debug/47402
22886         * tree-inline.c (declare_return_variable): Remove unused caller
22887         variable.
22888
22889         PR debug/47106
22890         PR debug/47402
22891         * tree-flow-inline.h (clear_is_used, is_used_p): New.
22892         * cfgexpand.c (account_used_vars_for_block): Use them.
22893         * tree-nrv.c (tree_nrv): Likewise.
22894         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
22895         (dump_scope_block): Likewise.
22896         (remove_unused_locals): Likewise.
22897
22898         PR debug/47106
22899         PR debug/47402
22900         * tree-inline.c (declare_return_variable): Add result decl to
22901         local decls only once.
22902         * gimple-low.c (record_vars_into): Mark newly-created variables
22903         as referenced.
22904
22905 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
22906
22907         PR debug/47498
22908         PR debug/47501
22909         PR debug/45136
22910         PR debug/45130
22911         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
22912         debug insns.
22913         (no_real_insns_p, schedule_block, set_priorities): Drop special
22914         treatment of boundary debug insns.
22915         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
22916         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
22917         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
22918         (BOUNDARY_DEBUG_INSN_P): Likewise.
22919         (SCHEDULE_DEBUG_INSN_P): Likewise.
22920         * sched-rgn.c (init_ready_list): Drop special treatment of
22921         boundary debug insns.
22922         * final.c (rest_of_clean_state): Clear notes' BB.
22923
22924 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
22925
22926         * config/openbsd.opt (assert=): New Driver option.
22927
22928 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
22929
22930         * config/i386/nto.opt: New.
22931         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
22932
22933 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
22934
22935         * config/i386/netware.opt: New.
22936         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
22937
22938 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
22939
22940         * config/interix.opt (posix): New Driver option.
22941
22942 2011-02-01  DJ Delorie  <dj@redhat.com>
22943
22944         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
22945
22946         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
22947         class for A0/A1.
22948
22949 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
22950
22951         PR tree-optimization/47561
22952         * toplev.c (process_options): Print the Graphite flags.  Add
22953         flag_loop_flatten to the list of options requiring Graphite.
22954
22955 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
22956
22957         * config/i386/cygming.opt (posix): New Driver option.
22958
22959 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
22960
22961         * config/arm/vxworks.opt: New.
22962         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
22963
22964 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
22965
22966         * config/alpha/elf.opt: New.
22967         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
22968         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
22969
22970 2011-02-01  Richard Guenther  <rguenther@suse.de>
22971
22972         PR tree-optimization/47559
22973         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
22974         store-motion on references that can throw.
22975
22976 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
22977
22978         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
22979         * tree-pass.h (TDF_CSELIB): New macro.
22980         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
22981         cselib_lookup): Check for it rather than for TDF_DETAILS.
22982
22983 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
22984
22985         PR driver/47547
22986         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
22987         is HOST_BIT_BUCKET.
22988
22989         * opts.c (finish_options): Don't add x_aux_base_name if it is
22990         HOST_BIT_BUCKET.
22991
22992 2011-02-01  Richard Guenther  <rguenther@suse.de>
22993
22994         PR tree-optimization/47555
22995         Revert
22996         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
22997
22998         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
22999
23000 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
23001
23002         PR gcc/46692
23003         * config/lm32/t-lm32: Add multilib for all CPU options.
23004
23005 2011-02-01  Richard Guenther  <rguenther@suse.de>
23006
23007         PR tree-optimization/47541
23008         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
23009         sure to have a field at offset zero.
23010
23011 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
23012
23013         * config/arc/arc.opt (EB, EL): New Driver options.
23014
23015 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
23016
23017         * config/alpha/osf5.opt: New.
23018         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
23019
23020 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
23021
23022         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
23023
23024 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
23025
23026         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
23027         -floop-interchange.
23028         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
23029         is an alias of -floop-interchange and that it requires the
23030         Graphite infrastructure.
23031         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
23032         flag_loop_interchange based on the value of flag_tree_loop_linear.
23033
23034 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
23035             Richard Guenther  <rguenther@suse.de>
23036
23037         PR tree-optimization/47538
23038         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
23039         type instead of r1type, except for comparisons.  For right
23040         shifts and comparisons punt if there are mismatches in
23041         sizetype vs. non-sizetype types.
23042
23043 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23044
23045         * doc/sourcebuild.texi (Effective-Target Keywords): Document
23046         avx_runtime.
23047
23048 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23049
23050         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
23051         version number.
23052         * configure: Regenerate.
23053
23054 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23055
23056         * configure.ac (gcc_cv_ld_static_option): Define.
23057         (gcc_cv_ld_dynamic_option): Define.
23058         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
23059         instead.
23060         (HAVE_LD_STATIC_DYNAMIC): Update message.
23061         (LD_STATIC_OPTION): Define.
23062         (LD_DYNAMIC_OPTION): Define.
23063         * configure: Regenerate.
23064         * config.in: Regenerate.
23065         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
23066         HAVE_LD_STATIC_DYNAMIC]: Use them.
23067
23068 2011-01-31  Nick Clifton  <nickc@redhat.com>
23069
23070         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
23071         registers inside interrupt handlers if the handler is not a leaf
23072         function.
23073
23074 2011-01-31  Nick Clifton  <nickc@redhat.com>
23075
23076         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
23077         reg_renumber returning an INVALID_REGNUM.
23078
23079 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
23080
23081         PR libgcj/44341
23082         * doc/install.texi: Document host options discarded when cross
23083         configuring target libraries.
23084
23085 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
23086
23087         Reverted:
23088         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
23089         PR debug/45136
23090         PR debug/45130
23091         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
23092         debug insns.
23093         (no_real_insns_p, schedule_block, set_priorities): Drop special
23094         treatment of boundary debug insns.
23095         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
23096         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
23097         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
23098         (BOUNDARY_DEBUG_INSN_P): Likewise.
23099         (SCHEDULE_DEBUG_INSN_P): Likewise.
23100         * sched-rgn.c (init_ready_list): Drop special treatment of
23101         boundary debug insns.
23102         * final.c (rest_of_clean-state): Clear notes' BB.
23103
23104 2011-01-31  Alan Modra  <amodra@gmail.com>
23105
23106         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
23107         toc relative expressions as we do in print_operand_address.
23108
23109 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
23110
23111         * doc/extend.texi: Follow spelling conventions.
23112         * doc/invoke.texi: Fix a typo.
23113
23114 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
23115
23116         * config/hpux11.opt: New.
23117         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
23118         ia64*-*-hpux*): Use hpux11.opt.
23119
23120 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
23121
23122         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
23123         to tmake_file.
23124
23125 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
23126
23127         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
23128         support sites.
23129
23130 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
23131
23132         * doc/install.texi (Binaries): Remove outdated reference for
23133         Motorola 68HC11/68HC12 downloads.
23134
23135 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
23136
23137         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
23138         Drepper's paper.
23139
23140 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
23141
23142         PR bootstrap/47147
23143         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
23144         used by NetBSD.
23145
23146 2011-01-28  Ahmad Sharif  <asharif@google.com>
23147
23148         * value-prof.c (check_counter): Corrected error message.
23149
23150 2011-01-29  Jie Zhang  <jie@codesourcery.com>
23151
23152         * config/arm/arm.c (arm_legitimize_reload_address): New.
23153         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
23154         arm_legitimize_reload_address.
23155         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
23156
23157 2011-01-28  Ian Lance Taylor  <iant@google.com>
23158
23159         * godump.c (go_define): Ignore macros whose definitions include
23160         two adjacent operands.
23161
23162 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
23163
23164         PR target/42894
23165         * varasm.c (force_const_mem): Store copy of x in desc->constant
23166         instead of x itself.
23167         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
23168         itself into REG_EQUAL note.
23169
23170 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
23171
23172         * config/freebsd.opt (posix, rdynamic): New Driver options.
23173
23174 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23175
23176         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
23177         -Bstatic/-Bdynamic.
23178         * configure: Regenerate.
23179
23180 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
23181
23182         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
23183         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
23184
23185 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
23186
23187         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
23188         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
23189         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
23190         (s390_preferred_reload_class): Make static. Change return and
23191         'rclass' argument type to reg_class_t.
23192
23193 2011-01-27  Jan Hubicka  <jh@suse.cz>
23194
23195         PR middle-end/46949
23196         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
23197         (process_function_and_variable_attributes): Check defined weakrefs.
23198
23199 2011-01-27  Martin Jambor  <mjambor@suse.cz>
23200
23201         PR tree-optimization/47228
23202         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
23203         build_ref_for_offset.
23204
23205 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
23206
23207         * config/spu/spu-elf.h (ASM_SPEC): Remove.
23208
23209 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
23210
23211         PR rtl-optimization/46856
23212         * postreload.c (reload_combine_recognize_const_pattern): Do not
23213         separate cc0 setter and user on cc0 targets.
23214
23215 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
23216
23217         PR c/43082
23218         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
23219         passed a VOID_TYPE expression, immediately emit an error and
23220         return error_mark_node.
23221
23222 2011-01-26  Jeff Law  <law@redhat.com>
23223
23224         PR rtl-optimization/47464
23225         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
23226         rather than may_trap_p as needed.
23227
23228 2011-01-26  DJ Delorie  <dj@redhat.com>
23229
23230         PR rtl-optimization/46878
23231         * combine.c (insn_a_feeds_b): Check for the implicit cc0
23232         setter/user dependency as well.
23233
23234 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
23235
23236         PR rtl-optimization/44469
23237         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
23238         after removing trivially dead basic blocks.
23239
23240 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
23241
23242         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
23243         * config/frv/frv.h (LINK_SPEC): Likewise.
23244         * config/i386/netware.h (LINK_SPEC): Likewise.
23245         * config/m68k/linux.h (ASM_SPEC): Likewise.
23246         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
23247         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
23248         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
23249         * config/sparc/linux.h (ASM_SPEC): Likewise.
23250         * config/sparc/linux64.h (ASM_SPEC): Likewise.
23251         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
23252
23253 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
23254
23255         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
23256         * config/frv/frv.h (ASM_SPEC): Likewise.
23257         * config/m68k/linux.h (ASM_SPEC): Likewise.
23258         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
23259         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
23260         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
23261         * config/sparc/linux.h (ASM_SPEC): Likewise.
23262         * config/sparc/linux64.h (ASM_SPEC): Likewise.
23263         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
23264
23265 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
23266
23267         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
23268         * config/frv/frv.h (LINK_SPEC): Likewise.
23269         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
23270
23271 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
23272
23273         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
23274         * config/frv/frv.h (ASM_SPEC): Likewise.
23275         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
23276         * config/m68k/linux.h (ASM_SPEC): Likewise.
23277         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
23278         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
23279         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
23280         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
23281         * config/sparc/linux.h (ASM_SPEC): Likewise.
23282         * config/sparc/linux64.h (ASM_SPEC): Likewise.
23283         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
23284         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
23285
23286 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
23287
23288         PR target/46997
23289         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
23290         (*mux2): Ditto.
23291         (vec_extract_evenodd_help): Ditto.
23292         (vec_extract_evenv4hi): Ditto.
23293         (vec_extract_oddv4hi): Ditto.
23294         (vec_interleave_lowv2si): Ditto.
23295         (vec_interleave_highv2si): Ditto.
23296         (vec_extract_evenv2si): Ditto.
23297         (vec_extract_oddv2si: Ditto.
23298         (vec_pack_trunc_v2si): Ditto.
23299
23300 2011-01-22  Jan Hubicka  <jh@suse.cz>
23301
23302         PR target/47237
23303         * cgraph.h (cgraph_local_info): New field can_change_signature.
23304         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
23305         signature can change.
23306         (ipcp_estimate_growth): Call sequence simplify only if calle signature
23307         can change.
23308         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
23309         (cgraph_function_versioning): We can not change signature of functions
23310         that don't allow that.
23311         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
23312         (lto_input_node): Likewise.
23313         * ipa-inline.c (compute_inline_parameters): Compute
23314         local.can_change_signature.
23315         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
23316         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
23317         functions that can not change signature.
23318         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
23319         init_cumulative_args): Do not use local calling conventions
23320         for functions that can not change signature.
23321
23322 2011-01-22  Jan Hubicka  <jh@suse.cz>
23323
23324         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
23325
23326 2011-01-26  Richard Guenther  <rguenther@suse.de>
23327
23328         PR tree-optimization/47190
23329         * cgraphunit.c (process_common_attributes): New function.
23330         (process_function_and_variable_attributes): Use it.
23331
23332 2011-01-26  Richard Guenther  <rguenther@suse.de>
23333
23334         PR lto/47423
23335         * cgraphbuild.c (record_eh_tables): Record reference to personality
23336         function.
23337
23338 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
23339
23340         PR debug/45454
23341         * sel-sched.c (moveup_expr): Don't let debug insns prevent
23342         non-debug insns from moving up.
23343
23344 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
23345
23346         PR target/40125
23347         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
23348         t-dlldir{,-x} fragment for build and add it to tmake_file.
23349         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
23350         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
23351         * config/i386/t-dlldir: New file.
23352         (SHLIB_DLLDIR): Define.
23353         * config/i386/t-dlldir-x: New file.
23354         (SHLIB_DLLDIR): Define.
23355         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
23356         (SHLIB_INSTALL): Use it.
23357
23358 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
23359
23360         PR target/47246
23361         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
23362         lower bound of the allowed Thumb-2 coprocessor load/store
23363         index range to -256. Add explaining comment.
23364
23365 2011-01-25  Ian Lance Taylor  <iant@google.com>
23366
23367         * godump.c (go_define): Improve lexing of macro expansion to only
23368         accept expressions which match Go spec.
23369
23370 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
23371
23372         PR c++/43601
23373         * tree.c (handle_dll_attribute): Handle it.
23374         * doc/extend.texi (@item dllexport): Mention it.
23375         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
23376
23377 2011-01-25  Ian Lance Taylor  <iant@google.com>
23378
23379         PR tree-optimization/26854
23380         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
23381         (decl_jump_unsafe): Move higher in file, with no other change.
23382         (bind): Set has_jump_unsafe_decl if appropriate.
23383         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
23384         (check_earlier_gotos): Likewise.
23385         (c_check_switch_jump_warnings): Likewise.
23386
23387 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
23388
23389         * doc/invoke.texi (Warning Options): Add missing hyphen.
23390         (-fprofile-dir): Minor grammatical fixes.
23391         (-fbranch-probabilities): Likewise.
23392
23393 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
23394
23395         PR debug/45136
23396         PR debug/45130
23397         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
23398         debug insns.
23399         (no_real_insns_p, schedule_block, set_priorities): Drop special
23400         treatment of boundary debug insns.
23401         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
23402         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
23403         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
23404         (BOUNDARY_DEBUG_INSN_P): Likewise.
23405         (SCHEDULE_DEBUG_INSN_P): Likewise.
23406         * sched-rgn.c (init_ready_list): Drop special treatment of
23407         boundary debug insns.
23408         * final.c (rest_of_clean-state): Clear notes' BB.
23409
23410 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23411
23412         * Makefile.in (LAMBDA_H): Removed.
23413         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
23414         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
23415         lambda-trans.o, and tree-loop-linear.o.
23416         (lto-symtab.o): Remove dependence on LAMBDA_H.
23417         (tree-loop-linear.o): Remove rule.
23418         (lambda-mat.o): Same.
23419         (lambda-trans.o): Same.
23420         (lambda-code.o): Same.
23421         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
23422         (tree-vect-slp.o): Same.
23423         * hwint.h (gcd): Moved here.
23424         (least_common_multiple): Same.
23425         * lambda-code.c: Removed.
23426         * lambda-mat.c: Removed.
23427         * lambda-trans.c: Removed.
23428         * lambda.h: Removed.
23429         * tree-loop-linear.c: Removed.
23430         * lto-symtab.c: Do not include lambda.h.
23431         * omega.c (gcd): Removed.
23432         * passes.c (init_optimization_passes): Remove pass_linear_transform.
23433         * tree-data-ref.c (print_lambda_vector): Moved here.
23434         (lambda_vector_copy): Same.
23435         (lambda_matrix_copy): Same.
23436         (lambda_matrix_id): Same.
23437         (lambda_vector_first_nz): Same.
23438         (lambda_matrix_row_add): Same.
23439         (lambda_matrix_row_exchange): Same.
23440         (lambda_vector_mult_const): Same.
23441         (lambda_vector_negate): Same.
23442         (lambda_matrix_row_negate): Same.
23443         (lambda_vector_equal): Same.
23444         (lambda_matrix_right_hermite): Same.
23445         * tree-data-ref.h: Do not include lambda.h.
23446         (lambda_vector): Moved here.
23447         (lambda_matrix): Same.
23448         (dependence_level): Same.
23449         (lambda_transform_legal_p): Removed declaration.
23450         (lambda_collect_parameters): Same.
23451         (lambda_compute_access_matrices): Same.
23452         (lambda_vector_gcd): Same.
23453         (lambda_vector_new): Same.
23454         (lambda_vector_clear): Same.
23455         (lambda_vector_lexico_pos): Same.
23456         (lambda_vector_zerop): Same.
23457         (lambda_matrix_new): Same.
23458         * tree-flow.h (least_common_multiple): Removed declaration.
23459         * tree-parloops.c (lambda_trans_matrix): Moved here.
23460         (LTM_MATRIX): Same.
23461         (LTM_ROWSIZE): Same.
23462         (LTM_COLSIZE): Same.
23463         (LTM_DENOMINATOR): Same.
23464         (lambda_trans_matrix_new): Same.
23465         (lambda_matrix_vector_mult): Same.
23466         (lambda_transform_legal_p): Same.
23467         * tree-pass.h (pass_linear_transform): Removed declaration.
23468         * tree-ssa-loop.c (tree_linear_transform): Removed.
23469         (gate_tree_linear_transform): Removed.
23470         (pass_linear_transform): Removed.
23471         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
23472         flag_loop_interchange.
23473
23474 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
23475
23476         PR tree-optimization/47265
23477         PR tree-optimization/47443
23478         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
23479         if name still has some uses.
23480
23481 2011-01-25  Martin Jambor  <mjambor@suse.cz>
23482
23483         PR tree-optimization/47382
23484         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
23485         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
23486
23487 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
23488
23489         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
23490         sjlj_except_unwind_info.
23491
23492 2011-01-25  Richard Guenther  <rguenther@suse.de>
23493
23494         PR tree-optimization/47426
23495         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
23496         visible functions results escape.
23497
23498 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
23499
23500         PR target/45701
23501         * config/arm/arm.c (any_sibcall_uses_r3): New function.
23502         (arm_get_frame_offsets): Use it.
23503
23504 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23505             Jakub Jelinek  <jakub@redhat.com>
23506
23507         PR tree-optimization/47271
23508         * tree-if-conv.c (bb_postdominates_preds): New.
23509         (if_convertible_bb_p): Call bb_postdominates_preds.
23510         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
23511         (predicate_scalar_phi): Call bb_postdominates_preds.
23512
23513 2011-01-25  Nick Clifton  <nickc@redhat.com>
23514
23515         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
23516         * config/rx/rx.c (rx_function_value): Likewise.
23517         (rx_promote_function_mode): Likewise.
23518         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
23519         in order to make it legitimate.
23520         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
23521         make sure that the first operand is the same as the result register.
23522         (addsi3_unspec): Delete.
23523         (subdi3): Do not accept immediate operands.
23524         (subdi3_internal): Likewise.
23525
23526 2011-01-25  Jeff Law  <law@redhat.com>
23527
23528         PR rtl-optimization/37273
23529         * ira-costs.c (scan_one_insn): Detect constants living in memory and
23530         handle them like argument loads from stack slots.  Do not double
23531         count memory for memory constants and argument loads from stack slots.
23532
23533 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
23534
23535         PR tree-optimization/47427
23536         PR tree-optimization/47428
23537         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
23538         coalesce if the new root var would be TREE_READONLY.
23539
23540 2011-01-25  Richard Guenther  <rguenther@suse.de>
23541
23542         PR middle-end/47414
23543         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
23544         correct type for TBAA.
23545
23546 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23547
23548         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
23549         (close_phi_written_to_memory): Call for_each_index with
23550         dr_indices_valid_in_loop.
23551
23552 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23553
23554         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
23555         when it is initialized.
23556
23557 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23558
23559         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
23560         call to graphite_find_data_references_in_stmt.
23561         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
23562         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
23563         call to graphite_find_data_references_in_stmt.
23564         (analyze_drs_in_stmts): Same.
23565         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
23566         in which the scalar analysis of indices is performed.
23567         (create_data_ref): Same.  Update call to dr_analyze_indices.
23568         (find_data_references_in_stmt): Update call to create_data_ref.
23569         (graphite_find_data_references_in_stmt): Same.
23570         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
23571         declaration.
23572         (create_data_ref): Same.
23573         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
23574         call to create_data_ref.
23575
23576 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23577
23578         * graphite-sese-to-poly.c (build_poly_scop): Move
23579         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
23580
23581 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23582
23583         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
23584         VAR_DECL, PARM_DECL, and RESULT_DECL.
23585
23586 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23587
23588         * graphite-dependences.c (reduction_dr_1): Allow several reductions
23589         in a reduction PBB.
23590         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
23591         that have already been marked as PBB_IS_REDUCTION.
23592
23593 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23594
23595         * graphite-scop-detection.c (same_close_phi_node): New.
23596         (remove_duplicate_close_phi): New.
23597         (make_close_phi_nodes_unique): New.
23598         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
23599
23600 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23601
23602         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
23603         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
23604         of both data references to be the same.
23605
23606 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23607
23608         * graphite-dependences.c (build_lexicographical_constraint): Remove
23609         the gdim parameter.
23610         (build_lexicographical_constraint): Adjust call to
23611         ppl_powerset_is_empty.
23612         (dependence_polyhedron): Same.
23613         (graphite_legal_transform_dr): Same.
23614         (graphite_carried_dependence_level_k): Same.
23615         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
23616         parameter.
23617         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
23618
23619 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23620
23621         * graphite-sese-to-poly.c
23622         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
23623         (close_phi_written_to_memory): New.
23624         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
23625         and unshare_expr.
23626
23627 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23628
23629         * doc/install.texi: Update the expected version number of PPL to 0.11.
23630         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
23631         #if PPL_VERSION_MINOR < 11.
23632
23633 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23634
23635         * graphite-dependences.c: Include graphite-cloog-util.h.
23636         (new_poly_ddr): Inlined into dependence_polyhedron.
23637         (free_poly_ddr): Moved close by new_poly_ddr.
23638         (dependence_polyhedron_1): Renamed dependence_polyhedron.
23639         Early return NULL when ppl_powerset_is_empty returns true.
23640         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
23641         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
23642         (graphite_legal_transform_dr): Call new_poly_ddr.
23643         (graphite_carried_dependence_level_k): Same.
23644         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
23645         (dot_transformed_deps_stmt_1): Removed.
23646         (dot_deps_stmt_1): Call dot_deps_stmt_2.
23647         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
23648         (dot_deps_1): Call dot_deps_2.
23649         * Makefile.in (graphite-dependences.o): Add missing dependence on
23650         graphite-cloog-util.h.
23651
23652 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23653
23654         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
23655         (build_lexicographical_constraint): Same.
23656         (dependence_polyhedron_1): Same.
23657         (graphite_legal_transform_dr): Same.
23658         (graphite_carried_dependence_level_k): Same.
23659         * graphite-ppl.c (ppl_powerset_is_empty): New.
23660         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
23661         * tree-data-ref.c (dump_data_reference): Print the basic block index.
23662
23663 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23664
23665         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
23666         the "a followed by b" relation and document it.
23667
23668 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23669
23670         * graphite-dependences.c (build_lexicographical_constraint): Stop the
23671         iteration when the bag of constraints is empty.
23672
23673 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23674
23675         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
23676
23677 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23678
23679         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
23680         nest and two loop depths as parameters.
23681         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
23682         lst_perfect_nestify.
23683
23684 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23685
23686         * graphite-dependences.c (print_pddr): Call
23687         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
23688
23689 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23690
23691         * graphite-ppl.c (debug_gmp_value): New.
23692         * graphite-ppl.h (debug_gmp_value): Declared.
23693
23694 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
23695
23696         * doc/install.texi: Document availability of cloog-0.16.
23697
23698 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
23699
23700         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
23701         invalid postdominance info.
23702
23703 2011-01-24  Jan Hubicka  <jh@suse.cz>
23704
23705         PR c/21659
23706         * doc/extend.texi (weak pragma): Drop claim that it must
23707         appear before definition.
23708         * varasm.c (merge_weak, declare_weak): Only sanity check
23709         that DECL is not output at a time it is declared weak.
23710
23711 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
23712
23713         * machmode.def: Fixed comments.
23714
23715 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
23716
23717         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
23718
23719 2011-01-24  Paul Koning  <ni1d@arrl.net>
23720
23721         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
23722         WORDS_BIG_ENDIAN.
23723
23724 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
23725
23726         PR target/46519
23727         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
23728         (block_info): Add scanned and prev.
23729         (move_or_delete_vzeroupper_2): Return if the basic block
23730         has been scanned and the upper 128bit state is unchanged
23731         from the last scan.
23732         (move_or_delete_vzeroupper_1): Return true if the exit
23733         state is changed.
23734         (move_or_delete_vzeroupper): Visit basic blocks using the
23735         work-list based algorithm based on vt_find_locations in
23736         var-tracking.c.
23737
23738         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
23739
23740 2011-01-24  Nick Clifton  <nickc@redhat.com>
23741
23742         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
23743         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
23744         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
23745         then define __v850e1__.
23746         * doc/invoke.texi: Document -mv850es.
23747
23748 2011-01-24  Richard Henderson  <rth@redhat.com>
23749
23750         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
23751         compound unordered comparisons.
23752         * config/rx/rx.c (rx_split_fp_compare): Remove.
23753         * config/rx/rx-protos.h: Update.
23754         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
23755         (cbranchsf4): Don't call rx_split_fp_compare.
23756         (*cbranchsf4): Use rx_split_cbranch.
23757         (*cmpsf): Don't accept "i" constraint.
23758         (*conditional_branch): Only valid after reload.
23759         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
23760
23761 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
23762
23763         PR target/47385
23764         * config/rs6000/altivec.md (vector constant splitters): Add
23765         support for creating vector single precision constants if -mvsx is
23766         used and we would create the constant using Altivec primitives.
23767
23768 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
23769             Richard Sandiford  <rdsandiford@googlemail.com>
23770
23771         PR rtl-optimization/47166
23772         * reload1.c (emit_reload_insns): Disable the spill_reg_store
23773         mechanism for PRE_MODIFY and POST_MODIFY.
23774         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
23775         reloadreg.
23776
23777 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
23778
23779         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
23780
23781 2011-01-22  Jan Hubicka  <jh@suse.cz>
23782
23783         PR lto/47333
23784         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
23785
23786 2011-01-22  Jan Hubicka  <jh@suse.cz>
23787
23788         PR tree-optimization/43884
23789         PR lto/44334
23790         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
23791         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
23792
23793 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
23794
23795         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
23796         * config/s390/s390.c (s390_register_move_cost,
23797         s390_memory_move_cost): New.
23798         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
23799
23800 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
23801
23802         PR middle-end/47401
23803         * except.c (sjlj_assign_call_site_values): Move setting the
23804         crtl->uses_eh_lsda flag to ...
23805         (sjlj_mark_call_sites): ... here.
23806         (sjlj_emit_function_enter): Support NULL dispatch label.
23807         (sjlj_build_landing_pads): In a function with no landing pads
23808         that still has must-not-throw regions, generate code to register
23809         a personality function with empty LSDA.
23810
23811 2011-01-21  Richard Henderson  <rth@redhat.com>
23812
23813         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
23814
23815         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
23816
23817         * compare-elim.c: New file.
23818         * Makefile.in (OBJS-common): Add it.
23819         (compare-elim.o): New.
23820         * common.opt (fcompare-elim): New.
23821         * opts.c (default_options_table): Add OPT_fcompare_elim.
23822         * tree-pass.h (pass_compare_elim_after_reload): New.
23823         * passes.c (init_optimization_passes): Add it.
23824         * recog.h: Protect against re-inclusion.
23825         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
23826         * doc/invoke.texi (-fcompare-elim): Document it.
23827         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
23828         * doc/tm.texi: Rebuild.
23829
23830 2011-01-22  Nick Clifton  <nickc@redhat.com>
23831
23832         * config/rx/rx.md (cstoresf4): Pass comparison operator to
23833         rx_split_fp_compare.
23834
23835 2011-01-22  Nick Clifton  <nickc@redhat.com>
23836
23837         * config/rx/rx.md (UNSPEC_CONST): New.
23838         (deallocate_and_return): Wrap the amount popped off the stack in
23839         an UNSPEC_CONST in order to stop it being rejected by
23840         -mmax-constant-size.
23841         (pop_and_return): Add a "(return)" rtx.
23842         (call): Drop the immediate operand.
23843         (call_internal): Likewise.
23844         (call_value): Likewise.
23845         (call_value_internal): Likewise.
23846         (sibcall_internal): Likewise.
23847         (sibcall_value_internal): Likewise.
23848         (sibcall): Likewise.  Generate an explicit call using
23849         sibcall_internal.
23850         (sibcall_value): Likewise.
23851         (mov<>): FAIL if a constant operand is not legitimate.
23852         (addsi3_unpsec): New pattern.
23853
23854         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
23855         (ok_for_max_constant): New function.
23856         (gen_safe_add): New function.
23857         (rx_expand_prologue): Use gen_safe_add.
23858         (rx_expand_epilogue): Likewise.
23859         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
23860         UNSPEC CONSTs.
23861
23862 2011-01-21  Jeff Law  <law@redhat.com>
23863
23864         PR tree-optimization/47053
23865         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
23866         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
23867         statements are deleted.
23868         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
23869         is nonempty, then purge dead edges and cleanup the CFG.
23870
23871 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
23872
23873         PR debug/47402
23874         Temporarily revert:
23875         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
23876         PR debug/47106
23877         * tree-dfa.c (create_var_ann): Mark variable as used.
23878
23879 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
23880
23881         PR middle-end/45566
23882         * except.c (convert_to_eh_region_ranges): Emit queued no-region
23883         notes from other section in hot/cold partitioning even if
23884         last_action is -3.  Increment call_site_base.
23885
23886         PR rtl-optimization/47366
23887         * fwprop.c (forward_propagate_into): Return bool.  If
23888         any changes are made, -fnon-call-exceptions is used and
23889         REG_EH_REGION note is present, call purge_dead_edges
23890         and return true if it purged anything.
23891         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
23892         any EH edges were purged.
23893
23894 2011-01-21  Jeff Law  <law@redhat.com>
23895
23896         PR rtl-optimization/41619
23897         * caller-save.c (setup_save_areas): Break out code to determine
23898         which hard regs are live across calls by examining the reload chains
23899         so that it is always used.
23900         Eliminate code which checked REG_N_CALLS_CROSSED.
23901
23902 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
23903
23904         PR tree-optimization/47355
23905         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
23906         NOP has non-debug uses beyond PHIs in new_bb.
23907
23908 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
23909
23910         PR debug/47106
23911         * cfgexpand.c (account_used_vars_for_block): Only account vars
23912         that are annotated as used.
23913         (estimated_stack_frame_size): Don't set TREE_USED.
23914         * tree-dfa.c (create_var_ann): Mark variable as used.
23915
23916 2011-01-21  Richard Guenther  <rguenther@suse.de>
23917
23918         PR middle-end/47395
23919         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
23920
23921 2011-01-21  Richard Guenther  <rguenther@suse.de>
23922
23923         PR tree-optimization/47365
23924         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
23925         (vn_reference_lookup_pieces): Adjust.
23926         (vn_reference_lookup): Likewise.
23927         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
23928         (vn_reference_lookup_3): Only look through kills if in
23929         VN_WALKREWRITE mode.
23930         (vn_reference_lookup_pieces): Adjust.
23931         (vn_reference_lookup): Likewise.
23932         (visit_reference_op_load): Likewise.
23933         (visit_reference_op_store): Likewise.
23934         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
23935         (compute_avail): Likewise.
23936         (eliminate): Likewise.
23937
23938 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
23939
23940         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
23941         DECL_IGNORED_P non-reg vars if they are used.
23942
23943         PR tree-optimization/47391
23944         * varpool.c (const_value_known_p): Return false if
23945         decl is volatile.
23946
23947 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
23948
23949         PR bootstrap/47215
23950         * config/i386/i386.c (ix86_local_alignment): Handle
23951         case for va_list_type_node is nil.
23952         (ix86_canonical_va_list_type): Likewise.
23953
23954 2011-01-21  Alan Modra  <amodra@gmail.com>
23955
23956         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
23957         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
23958
23959 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
23960
23961         * config/arm/arm.md (define_attr type): Rename f_load
23962         and f_store to f_fpa_load and f_fpa_store. Update.
23963         (write_conflict): Deal with rename fallout.
23964         (*push_fp_multi): Likewise.
23965         * config/arm/fpa.md (f_load): Use f_fpa_load.
23966         (f_store): Use f_fpa_store.
23967         (*movsf_fpa): Likewise.
23968         (*movdf_fpa): Likewise.
23969         (*movxf_fpa): Likewise.
23970         (*thumb2_movsf_fpa): Likewise.
23971         (*thumb2_movdf_fpa): Likewise.
23972         (*thumb2_movxf_fpa): Likewise.
23973         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
23974         f_loadd and f_stored.
23975         (*thumb2_movdi_vfp): Likewise.
23976         (*thumb2_movsf_vfp): Fix attribute to f_loads.
23977         (*thumb2_movsi_vfp): Likewise.
23978         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
23979         Use f_loads instead of f_load.
23980         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
23981
23982 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
23983
23984         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
23985         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
23986         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
23987         (xtensa_mode_dependent_address_p): New function.
23988         (constantpool_address_p): Make static. Change return type to bool.
23989         Change argument type to const_rtx. Use CONST_INT_P predicate.
23990
23991 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
23992
23993         PR debug/46583
23994         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
23995
23996 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
23997
23998         PR debug/47283
23999         * cfgexpand.c (expand_debug_expr): Instead of generating
24000         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
24001         etc. handling.
24002
24003 2011-01-20  Richard Guenther  <rguenther@suse.de>
24004
24005         PR middle-end/47370
24006         * tree-inline.c (remap_gimple_op_r): Recurse manually for
24007         the pointer operand of MEM_REFs.
24008
24009 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
24010
24011         PR tree-optimization/46130
24012         * ipa-split.c (consider_split): If return_bb contains non-virtual
24013         PHIs other than for retval or if split_function would not adjust it,
24014         refuse to split.
24015
24016 2011-01-20  Richard Guenther  <rguenther@suse.de>
24017
24018         PR tree-optimization/47167
24019         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
24020         Revert previous change, only avoid enumeral type changes.
24021
24022 2011-01-19  Mike Stump  <mikestump@comcast.net>
24023
24024         * doc/tm.texi.in (BRANCH_COST): Englishify.
24025         * doc/tm.texi (BRANCH_COST): Likewise.
24026
24027 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
24028
24029         PR c++/47291
24030         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
24031         (gen_scheduled_generic_parms_dies): New functions.
24032         (gen_struct_or_union_type_die): Schedule template parameters DIEs
24033         generation for the end of CU compilation.
24034         (dwarf2out_finish): Generate template parameters DIEs here.
24035
24036 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
24037
24038         PR debug/46240
24039         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
24040         debug bind stmt on merge edges.
24041
24042 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
24043
24044         PR debug/47079
24045         PR debug/46724
24046         * function.c (instantiate_expr): Instantiate incoming rtl of
24047         implicit arguments, and recurse on VALUE_EXPRs.
24048         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
24049         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
24050
24051 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
24052
24053         * c-parser.c (c_parser_for_statement): Initialize
24054         collection_expression.
24055
24056 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
24057
24058         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
24059
24060 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
24061
24062         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
24063         (LINK_SHLIB_SPEC): Don't use %(link_path).
24064         (SUBTARGET_EXTRA_SPECS): Remove link_path.
24065
24066 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
24067
24068         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
24069         (NO_SHARED_LIB_SUPPORT): Remove.
24070         (LINK_SHLIB_SPEC): Remove one conditional definition.
24071
24072 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
24073
24074         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
24075         %{call_shared}.
24076         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
24077         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
24078         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
24079         %{call_shared} and conditionals on these options not being passed.
24080         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
24081         %{call_shared}.
24082
24083 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
24084
24085         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
24086         simplify.
24087
24088         * ipa-split.c: Spelling fixes.
24089
24090 2011-01-19  Richard Henderson  <rth@redhat.com>
24091
24092         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
24093         (*mulsi3): Likewise.
24094
24095         * longlong.h [__mn10300__] (count_leading_zeros): New.
24096         [__mn10300__] (umul_ppmm, smul_ppmm): New.
24097         [__mn10300__] (add_ssaaaa, subddmmss): New.
24098         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
24099         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
24100
24101 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
24102
24103         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
24104
24105 2011-01-19  Richard Henderson  <rth@redhat.com>
24106
24107         * config/mn10300/mn10300.md (addsi3_flags): New.
24108         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
24109         (subsi3_flags, subc_internal, subdi3): New.
24110         (subdi3_internal, *subdi3_degenerate): New.
24111         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
24112
24113         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
24114         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
24115         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
24116         * config/mn10300/mn10300-protos.h: Update.
24117         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
24118         (return_ret): Likewise.  Rename from return_internal_regs.
24119         (return_internal): Remove.
24120
24121         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
24122         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
24123         (mn10300_legitimate_constant_p): Likewise.
24124         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
24125         (mn10300_frame_size): New.
24126         (mn10300_expand_prologue): Use it.
24127         (mn10300_expand_epilogue): Likewise.
24128         (mn10300_initial_offset): Likewise.
24129         * config/mn10300/mn10300-protos.h: Update.
24130         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
24131         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
24132         (prologue, epilogue, return_internal): Tidy output code.
24133         (mn10300_store_multiple_operation, return): Likewise.
24134         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
24135         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
24136         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
24137         (load_pic, am33_load_pic): New.
24138         (mn10300_load_pic0, mn10300_load_pic1): New.
24139
24140         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
24141         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
24142         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
24143         (cc_flags_for_mode, cc_flags_for_code): New.
24144         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
24145         overflow flag is not valid.  Validate that the flags we need
24146         for the comparison are valid.
24147         (mn10300_output_cmp): Remove.
24148         (mn10300_output_add): New.
24149         (mn10300_select_cc_mode): Use cc_flags_for_code.
24150         (mn10300_split_cbranch): New.
24151         (mn10300_match_ccmode): New.
24152         (mn10300_split_and_operand_count): New.
24153         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
24154         to the function.
24155         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
24156         (addsi3): ... here.  Use mn10300_output_add.
24157         (*addsi3_flags): New.
24158         (*am33_subsi3, *mn10300_subsi3): Merge...
24159         (subsi3): ... here.  Use attribute isa.
24160         (*subsi3_flags): New.
24161         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
24162         when possible.
24163         (*am33_andsi3, *mn10300_andsi3): Merge...
24164         (andsi3): ... here.
24165         (*andsi3_flags): New.
24166         (andsi3 splitters): New.
24167         (*am33_iorsi3, *mn10300_iorsi3): Merge...
24168         (iorsi3): ... here.
24169         (*iorsi3_flags): New.
24170         (*am33_xorsi3, *mn10300_xorsi3): Merge...
24171         (xorsi3): ... here.
24172         (*xorsi3_flags): New.
24173         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
24174         (one_cmplsi2): ... here.
24175         (*one_cmplsi2_flags): New.
24176         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
24177         instead of "dax" in constraints.  Use mn10300_split_cbranch.
24178         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
24179         use matching constraints to eliminate a self-comparison.
24180         (*integer_conditional_branch): Rename from integer_conditional_branch.
24181         Use int_mode_flags to match CC_REG.
24182         (*cbranchsi4_btst, *btstsi): New.
24183         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
24184         mn10300_split_cbranch.
24185         (*am33_cmpsf): Rename from am33_cmpsf.
24186         (*float_conditional_branch): Rename from float_conditional_branch.
24187         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
24188         (zero_extendqisi2): ... here.
24189         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
24190         (zero_extendhisi2): ... here.
24191         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
24192         (extendqisi2): ... here.
24193         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
24194         (extendhisi2): ... here.
24195         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
24196         (ashlsi3): ... here.
24197         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
24198         (lshrsi3): ... here.
24199         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
24200         (ashrsi3): ... here.
24201         (consecutive add peephole): Remove.
24202         * config/mn10300/predicates.md (label_ref_operand): New.
24203         (int_mode_flags): New.
24204         (CCZN_comparison_operator): New.
24205
24206         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
24207         (throughput_42_latency_43): New reservation.
24208         (mulsidi3, umulsidi3): New expanders.
24209         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
24210         the MDR register to allocation; separately allocate the low and
24211         high parts of the DImode result.
24212         (umulsidi3_internal): Similarly.
24213         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
24214         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
24215         (udivsi3, umodsi3): Remove.
24216         (udivmodsi4, divmodsi4): New expanders.
24217         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
24218         (*divmodsi4): Simiarly.
24219         (ext_internal): New.
24220
24221         * config/mn10300/constraints.md ("z"): New constraint.
24222         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
24223         (FIXED_REGISTERS): Don't fix MDR.
24224         (CALL_USED_REGSITERS): Reformat nicely.
24225         (REG_ALLOC_ORDER): Add MDR.
24226         (enum regclass): Add MDR_REGS.
24227         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
24228         (IRA_COVER_CLASSES): Add MDR_REGS.
24229         (REGNO_REG_CLASS): Handle MDR_REG.
24230         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
24231         (mn10300_register_move_cost): Likewise.
24232         * config/mn10300/mn10300.md (MDR_REG): New.
24233         (*movsi_internal): Handle moves to/from MDR_REGS.
24234
24235         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
24236         POST_MODIFY.
24237         (mn10300_secondary_reload): Tidy combination reload classes.
24238         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
24239         addresses for AM33.  Allow symbolic offsets for reg+imm.
24240         (mn10300_regno_in_class_p): New.
24241         (mn10300_legitimize_reload_address): New.
24242         * config/mn10300/mn10300.h (enum reg_class): Remove
24243         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
24244         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
24245         SP_OR_GENERAL_REGS.
24246         (REG_CLASS_NAMES): Update to match.
24247         (REG_CLASS_CONTENTS): Likewise.
24248         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
24249         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
24250         (REGNO_IN_RANGE_P): Remove.
24251         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
24252         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
24253         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
24254         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
24255         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
24256         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
24257         (REGNO_GENERAL_P): New.
24258         (HAVE_POST_MODIFY_DISP): New.
24259         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
24260         (LEGITIMIZE_RELOAD_ADDRESS): New.
24261         * config/mn10300/mn10300-protos.h: Update.
24262
24263         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
24264         DATA_REGS for AM33 stack-pointer destination.
24265         (mn10300_preferred_output_reload_class): Likewise.
24266         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
24267         into a form appropriate for ...
24268         (TARGET_SECONDARY_RELOAD): New.
24269         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
24270         * config/mn10300/mn10300-protos.h: Update.
24271         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
24272         reload_insi; use the "A" constraint for the scratch; handle AM33
24273         moves of sp to non-address registers.
24274
24275         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
24276         (*movqi_internal): ... here.
24277         (*am33_movhi, *mn10300_movhi): Merge into...
24278         (*movhi_internal): ... here.
24279         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
24280         as the source/destination of moves from/to SP.
24281         (movsf): Only allow for AM33-2.
24282         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
24283         any integer constant constraint.  Only allow for AM33-2.  Tidy
24284         all of the alternative outputs.
24285         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
24286         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
24287         for MN103.
24288         (udivsi3, umodsi3): New patterns for MN103 only.
24289
24290 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
24291
24292         * doc/tm.texi.in: Spell out that a lack of register class unions
24293         can lead to ICEs.
24294         * doc/tm.texi: Regenerate.
24295
24296 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
24297
24298         PR rtl-optimization/47337
24299         * dce.c (check_argument_store): New function.
24300         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
24301
24302         PR tree-optimization/47290
24303         * tree-eh.c (infinite_empty_loop_p): New function.
24304         (cleanup_empty_eh): Use it.
24305
24306 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
24307
24308         PR target/46997
24309         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
24310         (a64_expand_widen_sum): Ditto.
24311         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
24312         (vec_extract_evenodd_help): Ditto.
24313         (vec_extract_evenv4hi): Ditto.
24314         (vec_extract_oddv4hi): Ditto.
24315         (vec_extract_evenv2si): Ditto.
24316         (vec_extract_oddv2si): Ditto.
24317         (vec_extract_evenv2sf): Ditto.
24318         (vec_extract_oddv2sf): Ditto.
24319         (vec_pack_trunc_v4hi: Ditto.
24320         (vec_pack_trunc_v2si): Ditto.
24321         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
24322         (vec_interleave_highv8qi): Ditto.
24323         (mix1_r): Ditto.
24324         (vec_extract_oddv8qi): Ditto.
24325         (vec_interleave_lowv4hi): Ditto.
24326         (vec_interleave_highv4hi): Ditto.
24327         (vec_interleave_lowv2si): Ditto.
24328         (vec_interleave_highv2si): Ditto.
24329
24330 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24331
24332         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
24333         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
24334         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
24335         (pa_c_mode_for_suffix): New.
24336         (TARGET_EXPAND_BUILTIN): Define.
24337         (TARGET_C_MODE_FOR_SUFFIX): Define.
24338         (pa_builtins): Define.
24339         (pa_init_builtins): Register __float128 type and init new support
24340         builtins.
24341         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
24342         * config/pa/quadlib.c (_U_Qfcopysign): New.
24343
24344 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
24345
24346         PR middle-end/46894
24347         * explow.c (allocate_dynamic_stack_space): Do not assume more than
24348         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
24349         are defined.
24350
24351 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
24352
24353         PR tree-optimization/47179
24354         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
24355         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
24356
24357 2011-01-18  Richard Guenther  <rguenther@suse.de>
24358
24359         PR rtl-optimization/47216
24360         * emit-rtl.c: Include tree-flow.h.
24361         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
24362         of replicating it with different semantics.
24363         * Makefile.in (emit-rtl.o): Adjust.
24364
24365 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
24366
24367         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
24368         (cortex_a9_dp): Handle neon types correctly.
24369
24370 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
24371
24372         PR rtl-optimization/47299
24373         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
24374         subtarget.  Use normal multiplication if both operands are constants.
24375         * expmed.c (expand_widening_mult): Don't try to optimize constant
24376         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
24377         before using it.
24378
24379 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24380
24381         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
24382         spacing after 'e.g.', typos, comma, hyphenation.
24383
24384 2011-01-17  Richard Henderson  <rth@redhat.com>
24385
24386         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
24387         (rx_restricted_mem_operand): New.
24388         (rx_shift_operand): Use register_operand.
24389         (rx_source_operand, rx_compare_operand): Likewise.
24390         * config/rx/rx.md (addsi3_flags): New expander.
24391         (adddi3): Rewrite as expander.
24392         (adc_internal, *adc_flags, adddi3_internal): New patterns.
24393         (subsi3_flags): New expander.
24394         (subdi3): Rewrite as expander.
24395         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
24396
24397         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
24398         (rx_init_builtins): Remove sat builtin.
24399         (rx_expand_builtin): Likewise.
24400         * config/rx/rx.md (ssaddsi3): New.
24401         (*sat): Rename from sat.  Represent the CC_REG input.
24402
24403         * config/rx/predicates.md (rshift_operator): New.
24404         * config/rx/rx.c (rx_expand_insv): Remove.
24405         * config/rx/rx-protos.h: Update.
24406         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
24407         operand to the canonical position.
24408         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
24409         (*bitclr, *bitclr_in_memory): Similarly.
24410         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
24411         (insv): Retain the zero_extract in the expansion.
24412
24413         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
24414         (bswaphi2, bitinvert, revw): Likewise.
24415
24416         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
24417         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
24418         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
24419         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
24420         (bitset, bitset_in_memory): Likewise.
24421         (bitinvert, bitinvert_in_memory): Likewise.
24422         (bitclr, bitclr_in_memory): Likewise.
24423         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
24424         (rx_strend, rx_cmpstrn): Likewise.
24425         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
24426         (bitop peep2 patterns): Remove.
24427
24428         * config/rx/rx.c (rx_match_ccmode): New.
24429         * config/rx/rx-protos.h: Update.
24430         * config/rx/rx.md (abssi2): Clobber, don't set flags.
24431         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
24432         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
24433         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
24434         (fix_truncsfsi2, floatsisf2): Likewise.
24435         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
24436         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
24437         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
24438         (*subsi3_flags, *xorsi3_flags): New.
24439
24440         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
24441
24442         * config/rx/rx.c (rx_print_operand): Remove workaround for
24443         unsplit comparison operations.
24444
24445         * config/rx/rx.md (movsicc): Split after reload.
24446         (*movsicc): Merge *movsieq and *movsine via match_operator.
24447         (*stcc): New pattern.
24448
24449         * config/rx/rx.c (rx_float_compare_mode): Remove.
24450         * config/rx/rx.h (rx_float_compare_mode): Remove.
24451         * config/rx/rx.md (cstoresi4): Split after reload.
24452         (*sccc): New pattern.
24453
24454         * config/rx/predicates.md (label_ref_operand): New.
24455         (rx_z_comparison_operator): New.
24456         (rx_zs_comparison_operator): New.
24457         (rx_fp_comparison_operator): New.
24458         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
24459         Validate that the flags are set properly for the comparison.
24460         (rx_gen_cond_branch_template): Remove.
24461         (rx_cc_modes_compatible): Remove.
24462         (mode_from_flags): New.
24463         (flags_from_code): Rename from flags_needed_for_conditional.
24464         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
24465         (rx_select_cc_mode): Likewise.
24466         (rx_split_fp_compare): New.
24467         (rx_split_cbranch): New.
24468         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
24469         (*cbranchsi4): Use match_operator and rx_split_cbranch.
24470         (*cbranchsf4): Similarly.
24471         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
24472         match_operator and rx_split_cbranch.
24473         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
24474         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
24475         (*cmpsi): Rename from cmpsi.
24476         (*tstsi): Rename from tstsi.
24477         (*cmpsf): Rename from cmpsf; use CC_Fmode.
24478         (*conditional_branch): Rename from conditional_branch.
24479         (*reveresed_conditional_branch): Remove.
24480         (b<code>): Remove expander.
24481         * config/rx/rx-protos.h: Update.
24482
24483         * config/rx/rx.c (rx_compare_redundant): Remove.
24484         * config/rx/rx.md (cmpsi): Don't use it.
24485         * config/rx/rx-protos.h: Update.
24486
24487         * config/rx/rx-modes.def (CC_F): New mode.
24488         * config/rx/rx.c (rx_select_cc_mode): New.
24489         * config/rx/rx.h (SELECT_CC_MODE): Use it.
24490         * config/rx/rx-protos.h: Update.
24491
24492 2011-01-17  Richard Henderson  <rth@redhat.com>
24493
24494         * except.c (dump_eh_tree): Fix stray ; after for statement.
24495
24496 2011-01-17  Richard Guenther  <rguenther@suse.de>
24497
24498         PR tree-optimization/47313
24499         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
24500         handling before copying the body.  Properly deal with
24501         by-reference result in SSA form.
24502
24503 2011-01-17  Ian Lance Taylor  <iant@google.com>
24504
24505         PR target/47219
24506         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
24507         (struct_value_alias_set): Don't define.
24508         (sparc_option_override): Don't set sparc_sr_alias_set and
24509         struct_value_alias_set.
24510         (save_or_restore_regs): Use gen_frame_mem rather than calling
24511         set_mem_alias_set.
24512         (sparc_struct_value_rtx): Likewise.
24513
24514 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
24515
24516         PR target/47318
24517         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
24518         (_mm_maskstore_pd): Likewise.
24519         (_mm_maskload_ps): Likewise.
24520         (_mm_maskstore_ps): Likewise.
24521         (_mm256_maskload_pd): Change mask to __m256i.
24522         (_mm256_maskstore_pd): Likewise.
24523         (_mm256_maskload_ps): Likewise.
24524         (_mm256_maskstore_ps): Likewise.
24525
24526         * config/i386/i386-builtin-types.def: Updated.
24527         (ix86_expand_special_args_builtin): Likewise.
24528
24529         * config/i386/i386.c (bdesc_special_args): Update
24530         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
24531         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
24532         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
24533         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
24534
24535         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
24536         Use <avxpermvecmode> on mask register.
24537         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
24538
24539 2011-01-17  Olivier Hainque  <hainque@adacore.com>
24540             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
24541             Eric Botcazou  <ebotcazou@adacore.com>
24542
24543         PR target/46655
24544         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
24545         if <= USHRT_MAX in 32-bit mode.
24546
24547 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24548
24549         * doc/install.texi (Configuration, Specific): Wrap long
24550         lines in examples.  Allow line wrapping in long options
24551         and URLs where beneficial for PDF output.
24552
24553 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
24554
24555         * config/mips/mips.c (mips_classify_symbol): Don't return
24556         SYMBOL_PC_RELATIVE for nonlocal labels.
24557
24558 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
24559
24560         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
24561
24562 2011-01-15  Jan Hubicka  <jh@suse.cz>
24563
24564         PR tree-optimization/47276
24565         * ipa.c (function_and_variable_visibility): Do not try to mark alias
24566         declarations as needed.
24567
24568 2011-01-15  Martin Jambor  <mjambor@suse.cz>
24569
24570         * common.opt (fdevirtualize): New flag.
24571         * doc/invoke.texi (Option Summary): Document it.
24572         * opts.c (default_options_table): Add devirtualize flag.
24573         * ipa-prop.c (detect_type_change): Return immediately if
24574         devirtualize flag is not set.
24575         (detect_type_change_ssa): Likewise.
24576         (compute_known_type_jump_func): Likewise.
24577         (ipa_analyze_virtual_call_uses): Likewise.
24578
24579 2011-01-14  Martin Jambor  <mjambor@suse.cz>
24580
24581         PR tree-optimization/45934
24582         PR tree-optimization/46302
24583         * ipa-prop.c (type_change_info): New type.
24584         (stmt_may_be_vtbl_ptr_store): New function.
24585         (check_stmt_for_type_change): Likewise.
24586         (detect_type_change): Likewise.
24587         (detect_type_change_ssa): Likewise.
24588         (compute_complex_assign_jump_func): Check for dynamic type change.
24589         (compute_complex_ancestor_jump_func): Likewise.
24590         (compute_known_type_jump_func): Likewise.
24591         (compute_scalar_jump_functions): Likewise.
24592         (ipa_analyze_virtual_call_uses): Likewise.
24593         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
24594
24595 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
24596
24597         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
24598         * config/i386/i386.opt (msse5): New Alias.
24599
24600 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
24601
24602         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
24603         * config/sparc/linux64.h (CC1_SPEC): Likewise.
24604         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
24605         * config/sparc/sparc.h (CC1_SPEC): Likewise.
24606
24607 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
24608
24609         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
24610         -mcpu options.
24611         * config/sparc/linux64.h (CC1_SPEC): Likewise.
24612         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
24613         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
24614         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
24615         Likewise.
24616         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
24617
24618 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
24619
24620         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
24621
24622 2011-01-14  Mike Stump  <mikestump@comcast.net>
24623
24624         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
24625         * config/fr30/fr30.md: Likweise
24626         (movsi_push): Likewise.
24627         (movsi_pop): Likewise.
24628         (enter_func): Likewise.
24629         * config/moxie/moxie.md (movsi_push): Likewise.
24630         (movsi_pop): Likewise.
24631
24632 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
24633
24634         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
24635         %{no_archive} %{exact_version}.
24636         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
24637         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
24638         %{no_archive} %{exact_version}.
24639         * config/mips/openbsd.h (LINK_SPEC): Likewise.
24640         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
24641         * config/mips/vxworks.h: Likewise.
24642
24643 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
24644
24645         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
24646
24647 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
24648
24649         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
24650         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
24651
24652 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
24653
24654         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
24655         -nodefaultlib.
24656
24657 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
24658
24659         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
24660         for mcpu not cpu.
24661         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
24662         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
24663         not cpu.
24664         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
24665         Don't handle -shlib.
24666
24667 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
24668
24669         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
24670         (CC1_SPEC): Don't handle -profile.
24671
24672 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
24673
24674         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
24675         * config/mips/mips.h (CC1_SPEC): Likewise.
24676
24677 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
24678
24679         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
24680         * config/mips/mips.h (CC1_SPEC): Likewise.
24681
24682 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
24683
24684         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
24685         * config/m32r/linux.h (LINK_SPEC): Likewise.
24686         * config/mips/linux.h (LINK_SPEC): Likewise.
24687         * config/mips/linux64.h (LINK_SPEC): Likewise.
24688         * config/sparc/linux.h (LINK_SPEC): Likewise.
24689         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
24690         LINK_SPEC): Likewise.
24691         * config/xtensa/linux.h (LINK_SPEC): Likewise.
24692
24693 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
24694
24695         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
24696         %{version:-v}.
24697         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
24698
24699 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
24700
24701         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
24702         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
24703
24704 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
24705
24706         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
24707
24708 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24709
24710         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
24711         supports -Bstatic/-Bdynamic.
24712         * configure: Regenerate.
24713
24714 2011-01-14  Jan Hubicka  <jh@suse.cz>
24715             Jack Howarth  <howarth@bromo.med.uc.edu>
24716
24717         PR target/46037
24718         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
24719         when checking debug_info_level. Test write_symbols instead of
24720         debug_hooks->var_location when setting flag_var_tracking_uninit.
24721
24722 2011-01-14  Richard Guenther  <rguenther@suse.de>
24723
24724         PR tree-optimization/47179
24725         * target.def (ref_may_alias_errno): New target hook.
24726         * targhooks.h (default_ref_may_alias_errno): Declare.
24727         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
24728         (default_ref_may_alias_errno): New function.
24729         * target.h (struct ao_ref_s): Declare.
24730         * tree-ssa-alias.c: Include target.h.
24731         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
24732         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
24733         (targhooks.o): Likewise.
24734         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
24735         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
24736
24737 2011-01-14  Richard Guenther  <rguenther@suse.de>
24738
24739         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
24740
24741 2011-01-14  Richard Guenther  <rguenther@suse.de>
24742
24743         PR tree-optimization/47280
24744         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
24745         return CFG changes.
24746         (tree_ssa_forward_propagate_single_use_vars): Deal with
24747         CFG changes from associate_plusminus.
24748
24749 2011-01-14  Richard Guenther  <rguenther@suse.de>
24750
24751         PR middle-end/47281
24752         Revert
24753         2011-01-11  Richard Guenther  <rguenther@suse.de>
24754
24755         PR tree-optimization/46076
24756         * tree-ssa.c (useless_type_conversion_p): Conversions from
24757         unprototyped to empty argument list function types are useless.
24758
24759 2011-01-14  Richard Guenther  <rguenther@suse.de>
24760
24761         PR tree-optimization/47286
24762         * tree-ssa-structalias.c (new_var_info): Register variables are global.
24763
24764 2011-01-14  Martin Jambor  <mjambor@suse.cz>
24765
24766         PR middle-end/46823
24767         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
24768
24769 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
24770
24771         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
24772         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
24773         * config/xtensa/xtensa.c (xtensa_libcall_value,
24774         xtensa_function_value_regno_p): New functions.
24775         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
24776
24777 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
24778
24779         PR c++/47213
24780         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
24781         PE specific hook.
24782         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
24783         New function prototype.
24784         * config/i386/winnt.c (i386_pe_assemble_visibility):
24785         Warn only if attribute was specified by user.
24786
24787 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
24788
24789         PR target/47251
24790         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
24791         floating point.
24792         (floatunsdidf2_fcfidu): Ditto.
24793
24794 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
24795
24796         * config/s390/s390.c (print_operand_address): Replace 'error' with
24797         'output_operand_lossage'.
24798         (print_operand): Likewise.
24799
24800 2011-01-13  Jeff Law  <law@redhat.com>
24801
24802         PR rtl-optimization/39077
24803         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
24804         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
24805         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
24806         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
24807         * gcse.c (prune_insertions_deletions): New function.
24808         (compute_pre_data): Use it.
24809
24810 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
24811
24812         PR debug/PR46973
24813         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
24814         static function.
24815         (prune_unused_types_mark): Use it.
24816
24817 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
24818
24819         PR rtl-optimization/45352
24820         * sel-sched.c: Update copyright years.
24821         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
24822         in the advancing loop when we have issued issue_rate insns.
24823
24824 2011-01-12  Richard Henderson  <rth@redhat.com>
24825
24826         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
24827         (TARGET_MD_ASM_CLOBBERS): New.
24828
24829         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
24830         (TARGET_DELEGITIMIZE_ADDRESS): New.
24831
24832         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
24833         (clzsi2, *bsch): New patterns.
24834
24835         * config/mn10300/mn10300.md (INT): New mode iterator.
24836         (*mov<INT>_clr): New pattern, and peep2 to generate it.
24837
24838         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
24839         flag_split_wide_types.
24840
24841         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
24842         (mn10300_trampoline_init): Rewrite without a template, an immediate
24843         load and a direct branch.
24844         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
24845
24846 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
24847
24848         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
24849         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
24850         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
24851         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
24852
24853 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
24854
24855         PR debug/47209
24856         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
24857         of type.
24858
24859 2011-01-12  Jan Hubicka  <jh@suse.cz>
24860
24861         PR driver/47244
24862         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
24863         (PLUGIN_COND_CLOSE): New macro.
24864         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
24865
24866 2011-01-12  Richard Guenther  <rguenther@suse.de>
24867
24868         PR lto/47259
24869         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
24870         register variables in a MEM_REF.
24871
24872 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
24873
24874         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
24875         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
24876         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
24877         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
24878         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
24879         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
24880         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
24881         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
24882         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
24883         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
24884         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
24885         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
24886         * config/gnu-user.h: New.  Copied from linux.h.
24887         (LINUX_TARGET_STARTFILE_SPEC): Rename to
24888         GNU_USER_TARGET_STARTFILE_SPEC.
24889         (LINUX_TARGET_ENDFILE_SPEC): Rename to
24890         GNU_USER_TARGET_ENDFILE_SPEC.
24891         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
24892         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
24893         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
24894         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
24895         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
24896         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
24897         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
24898         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
24899         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
24900         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
24901         * config/arm/linux-eabi.h (CC1_SPEC): Use
24902         GNU_USER_TARGET_CC1_SPEC.
24903         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
24904         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
24905         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
24906         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
24907         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
24908         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
24909         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
24910         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
24911
24912 2011-01-12  Richard Guenther  <rguenther@suse.de>
24913
24914         PR other/46946
24915         * doc/invoke.texi (ffast-math): Document it is turned on
24916         with -Ofast.
24917
24918 2011-01-12  Jan Hubicka  <jh@suse.cz>
24919
24920         PR tree-optimization/47233
24921         * opts.c (common_handle_option): Disable ipa-reference with profile
24922         feedback.
24923
24924 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
24925
24926         * c-parser.c (c_parser_objc_at_property_declaration): Improved
24927         error message.
24928
24929 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
24930
24931         * c-parser.c (c_lex_one_token): Updated and reindented some
24932         comments.  No changes in code.
24933
24934 2011-01-11  Ian Lance Taylor  <iant@google.com>
24935
24936         * godump.c (go_output_var): Don't output the variable if there is
24937         already a type with the same name.
24938
24939 2011-01-11  Ian Lance Taylor  <iant@google.com>
24940
24941         * godump.c (go_format_type): Don't generate float80.
24942
24943 2011-01-11  Richard Henderson  <rth@redhat.com>
24944
24945         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
24946         declaration.  Rewrite for both speed and size.
24947         (mn10300_address_cost_1): Remove.
24948         (mn10300_register_move_cost): New.
24949         (mn10300_memory_move_cost): New.
24950         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
24951         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
24952         extensions, shifts, BSWAP, CLZ.
24953         (mn10300_wide_const_load_uses_clr): Remove.
24954         (TARGET_REGISTER_MOVE_COST): New.
24955         (TARGET_MEMORY_MOVE_COST): New.
24956         * config/mn10300/mn10300-protos.h: Update.
24957         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
24958
24959         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
24960         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
24961         * config/mn10300/mn10300-protos.h: Update.
24962         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
24963         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
24964         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
24965         (*test_int_bitfield, *test_byte_bitfield): Remove.
24966         (*bit_test, *subreg_bit_test): Remove.
24967         * config/mn10300/predicates.md (const_8bit_operand): Remove.
24968
24969         * config/mn10300/constraints.md ("c"): Rename from "A".
24970         ("A", "D"): New constraint letters.
24971         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
24972         (fmssf4, fnmasf4, fnmssf4): Likewise.
24973
24974         * config/mn10300/mn10300.md (isa): New attribute.
24975         (enabled): New attribute.
24976
24977         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
24978         (abssf2, negsf2): Define only for hardware fp.
24979         (sqrtsf2): Reformat.
24980         (addsf3, subsf3, mulsf3): Merge expander and insn.
24981
24982         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
24983         (DEBUGGER_AUTO_OFFSET): Remove.
24984         (DEBUGGER_ARG_OFFSET): Remove.
24985
24986         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
24987         Emit register stores with the same offsets as the hardware.
24988         (mn10300_store_multiple_operation): Don't check that the register
24989         save offsets are monotonic.
24990         * config/mn10300/mn10300-protos.h: Update.
24991
24992         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
24993
24994         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
24995         in terms of the value on the stack, not the MDR register.
24996
24997 2011-01-11  Jan Hubicka  <jh@suse.cz>
24998
24999         PR lto/45721
25000         PR lto/45375
25001         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
25002         (symbol_alias_set_destroy, symbol_alias_set_contains,
25003         propagate_aliases_backward): Declare.
25004         * lto-streamer-out.c (struct sets): New sturcture.
25005         (trivally_defined_alias): New function.
25006         (output_alias_pair_p): Rewrite.
25007         (output_unreferenced_globals): Fix output of alias pairs.
25008         (produce_symtab): Likewise.
25009         * ipa.c (function_and_variable_visibility): Set weak alias destination
25010         as needed in lto.
25011         * varasm.c (symbol_alias_set_t): Remove.
25012         (symbol_alias_set_destroy): Export.
25013         (propagate_aliases_forward, propagate_aliases_backward): New functions
25014         based on ...
25015         (compute_visible_aliases): ... this one; remove.
25016         (trivially_visible_alias): New
25017         (trivially_defined_alias): New.
25018         (remove_unreachable_alias_pairs): Rewrite.
25019         (finish_aliases_1): Reorganize code checking if alias is defined.
25020         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
25021         in LTO mode.
25022
25023 2011-01-11  Richard Guenther  <rguenther@suse.de>
25024
25025         PR tree-optimization/46076
25026         * tree-ssa.c (useless_type_conversion_p): Conversions from
25027         unprototyped to empty argument list function types are useless.
25028
25029 2011-01-11  Richard Guenther  <rguenther@suse.de>
25030
25031         PR middle-end/45235
25032         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
25033         volatile MEMs as MEM_READONLY_P.
25034
25035 2011-01-11  Richard Guenther  <rguenther@suse.de>
25036
25037         PR tree-optimization/47239
25038         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
25039
25040 2011-01-11  Jeff Law  <law@redhat.com>
25041
25042         PR tree-optimization/47086
25043         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
25044         IVs from statements that might throw.
25045
25046 2011-01-10  Jan Hubicka  <jh@suse.cz>
25047
25048         PR lto/45375
25049         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
25050
25051 2011-01-10  Jan Hubicka  <jh@suse.cz>
25052
25053         PR lto/45375
25054         * profile.c (read_profile_edge_counts): Ignore profile inconistency
25055         when correcting profile.
25056
25057 2011-01-10  Jan Hubicka  <jh@suse.cz>
25058
25059         PR lto/46083
25060         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
25061         DECL_FINI_PRIORITY.
25062         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
25063         Restore DECL_FINI_PRIORITY.
25064
25065 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
25066
25067         * doc/gimple.texi: Fix quoting of multi-word return values in
25068         @deftypefn statements.  Ensure presence of return value.  Wrap
25069         overlong @deftypefn lines.
25070         (is_gimple_operand, is_gimple_min_invariant_address): Remove
25071         descriptions of removed functions.
25072         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
25073         of multi-word return value in @deftypefn statement.
25074
25075 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
25076
25077         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
25078         (Conditional Expressions, Logical Operators)
25079         (Statement and operand traversals): Do not indent smallexample
25080         code.  Fix duplicate function argument in example.
25081
25082 2011-01-10  Jeff Law  <law@redhat.com>
25083
25084         PR tree-optimization/47141
25085         * ipa-split.c (split_function): Handle case where we are
25086         returning a value and the return block has a virtual operand phi.
25087
25088 2011-01-10  Jan Hubicka  <jh@suse.cz>
25089
25090         PR tree-optimization/47234
25091         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
25092         (pass_feedback_split_functions): Declare.
25093         * passes.c (init_optimization_passes): Add ipa-split as subpass of
25094         tree-profile.
25095         * ipa-split.c (gate_split_functions): Update comments; disable
25096         split-functions for profile_arc_flag and branch_probabilities.
25097         (gate_feedback_split_functions): New function.
25098         (execute_feedback_split_functions): New function.
25099         (pass_feedback_split_functions): New global var.
25100
25101 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
25102
25103         PR lto/46760
25104         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
25105         calling gimple_call_set_cannot_inline.
25106
25107 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
25108
25109         * config/darwin-sections.def: Remove unused section.
25110
25111 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
25112
25113         PR c++/47218
25114         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
25115
25116 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
25117
25118         PR objc/47232
25119         * c-parser.c (c_parser_declaration_or_fndef): Improved
25120         error message.
25121
25122 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
25123
25124         * config/i386/winnt.c (i386_pe_start_function): Make sure
25125         to switch back to function's section.
25126
25127 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
25128
25129         PR gcc/46902
25130         PR testsuite/46912
25131         * plugin.c: Move include of dlfcn.h from here...
25132         * system.h: ... to here.
25133
25134 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
25135
25136         * doc/cpp.texi (C++ Named Operators): Fix markup for header
25137         file name.
25138         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
25139         two extra empty pages in PDF output.
25140
25141 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
25142
25143         PR objc/47078
25144         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
25145         for error recovery purposes behave as if it was not specified so
25146         that the default type is usd.
25147
25148 2011-01-07  Jan Hubicka  <jh@suse.cz>
25149
25150         PR tree-optmization/46469
25151         * ipa.c (function_and_variable_visibility): Clear needed flags on
25152         nodes with external decls; handle weakrefs merging correctly.
25153
25154 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
25155
25156         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
25157         not false.
25158
25159 2011-01-07  Jan Hubicka  <jh@suse.cz>
25160
25161         * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
25162         and no longer claim that gold is required for linker plugin.
25163         * configure: Regenerate.
25164         * gcc.c (PLUGIN_COND): New macro.
25165         (LINK_COMMAND_SPEC): Use it.
25166         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
25167         * config.in (HAVE_LTO_PLUGIN): New.
25168         * configure.ac (--with-lto-plugin): New parameter; autodetect
25169         HAVE_LTO_PLUGIN.
25170
25171 2011-01-07  Jan Hubicka  <jh@suse.cz>
25172
25173         PR tree-optimization/46367
25174         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
25175         when we can update original.
25176         (cgraph_mark_inline_edge): Sanity check.
25177         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
25178
25179 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25180
25181         * config/spu/spu.h (ASM_COMMENT_START): Define.
25182
25183 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
25184
25185         PR driver/42445
25186         * gcc.c (%>S): New.
25187         (SWITCH_KEEP_FOR_GCC): Likewise.
25188         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
25189         (do_spec_1): Handle "%>".
25190
25191         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
25192
25193 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
25194
25195         PR target/47201
25196         * config/i386/i386.c (ix86_delegitimize_address): If
25197         simplify_gen_subreg fails, return orig_x.
25198
25199         PR bootstrap/47187
25200         * value-prof.c (gimple_stringop_fixed_value): Handle
25201         lhs of the call properly.
25202
25203 2011-01-07  Jan Hubicka  <jh@suse.cz>
25204
25205         PR lto/45375
25206         * lto-opt.c (lto_reissue_options): Set flag_shlib.
25207
25208 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
25209
25210         * target.def (function_switched_text_sections): New hook.
25211         * doc/tm.texi: Regenerated.
25212         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
25213         * final.c (default_function_switched_text_sections): New.
25214         (final_scan_insn): Call function_switched_text_sections when a
25215         mid-function section change occurs.
25216         * output.h (default_function_switched_text_sections): Declare.
25217         * config/darwin-protos.h (darwin_function_switched_text_sections):
25218         Likewise.
25219         * config/darwin.c (darwin_function_switched_text_sections): New.
25220         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
25221
25222 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
25223
25224         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
25225         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
25226         the secondary code fragment when outputting for DWARF == 2.
25227
25228 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
25229
25230         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
25231         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
25232         Remove.
25233         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
25234         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
25235
25236 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
25237
25238         PR debug/46704
25239         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
25240         when it is not empty.
25241
25242 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
25243
25244         Bobcat Enablement
25245         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
25246         (case ${target}): Add btver1.
25247         * config/i386/driver-i386.c (host_detect_local_cpu): Let
25248         -march=native recognize btver1 processors.
25249         * config/i386/i386-c.c (ix86_target_macros_internal): Add
25250         btver1 def_and_undef
25251         * config/i386/i386.c (struct processor_costs btver1_cost): New
25252         btver1 cost table.
25253         (m_BTVER1): New definition.
25254         (m_AMD_MULTIPLE): Includes m_BTVER1.
25255         (initial_ix86_tune_features): Add btver1 tune.
25256         (processor_target_table): Add btver1 entry.
25257         (static const char *const cpu_names): Add btver1 entry.
25258         (software_prefetching_beneficial_p): Add btver1.
25259         (ix86_option_override_internal): Add btver1 instruction sets.
25260         (ix86_issue_rate): Add btver1.
25261         (ix86_adjust_cost): Add btver1.
25262         * config/i386/i386.h (TARGET_BTVER1): New definition.
25263         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
25264         (enum processor_type): Add PROCESSOR_BTVER1.
25265         * config/i386/i386.md (define_attr "cpu"): Add btver1.
25266
25267 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25268
25269         PR target/43309
25270         * config/i386/i386.c (legitimize_tls_address)
25271         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
25272         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
25273         (tls_initial_exec_64_sun): New pattern.
25274
25275 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
25276
25277         * doc/invoke.texi (Overall Options): Improve wording and markup
25278         of the description of -wrapper.
25279
25280 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
25281
25282         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
25283         rdynamic, threads): New Driver options.
25284
25285 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25286
25287         PR target/38118
25288         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
25289         if coming from .tdata.
25290         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
25291
25292 2011-01-06  Jan Hubicka  <jh@suse.cz>
25293
25294         PR lto/47188
25295         * collect2.c (main): Do not enable LTOmode when plugin is active.
25296
25297 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25298
25299         PR other/45915
25300         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
25301         --version output if supported.
25302         * configure: Regenerate.
25303
25304 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
25305
25306         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
25307         Driver options.
25308
25309 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
25310
25311         PR c/47150
25312         * c-convert.c (convert): When converting a complex expression
25313         other than COMPLEX_EXPR to a different complex type, ensure
25314         c_save_expr is called instead of save_expr, unless in_late_binary_op.
25315         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
25316         when converting COMPLEX_TYPE.
25317
25318 2011-01-06  Ira Rosen  <irar@il.ibm.com>
25319
25320         PR tree-optimization/47139
25321         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
25322         only the last reduction value is used outside the loop.  Update
25323         documentation.
25324
25325 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
25326
25327         * config/rtems.opt: New.
25328         * config.gcc (*-*-rtems*): Use rtems.opt.
25329
25330 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
25331
25332         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
25333         processors do not support 3DNow instructions.
25334
25335 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25336
25337         * config/spu/spu.c (spu_option_override): Set parameter
25338         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
25339
25340 2011-01-05  Jan Hubicka  <jh@suse.cz>
25341
25342         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
25343         at the command line.
25344
25345 2011-01-05  Martin Jambor  <mjambor@suse.cz>
25346
25347         PR lto/47162
25348         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
25349         deltas on streamed outgoing edges.
25350         (output_node_opt_summary): Output info for outgoing edges only when
25351         the node is in new parameter set.
25352         (output_cgraph_opt_summary): New parameter set, passed to the two
25353         aforementioned functions.  Update its forward declaration and its
25354         callee too.
25355
25356 2011-01-05  Tom Tromey  <tromey@redhat.com>
25357
25358         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
25359         operator to c_finish_omp_atomic.
25360         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
25361         (build_unary_op): Update.
25362         (build_modify_expr): Update.
25363         (build_asm_expr): Update.
25364
25365 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25366
25367         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
25368         newly inserted insns.
25369         (pad_bb): Likewise.
25370         (spu_emit_branch_hint): Likewise.
25371         (insert_hbrp_for_ilb_runout): Likewise.
25372         (spu_machine_dependent_reorg): Call df_finish_pass after
25373         schedule_insns returns.
25374
25375 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25376
25377         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
25378
25379 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
25380
25381         PR tree-optimization/47005
25382         * tree-sra.c (struct access): Add 'non_addressable' bit.
25383         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
25384         (decide_one_param_reduction): Return 0 if the parameter is passed by
25385         reference and one of the accesses in the group is non_addressable.
25386
25387 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
25388
25389         PR tree-optimization/47056
25390         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
25391         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
25392         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
25393
25394 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
25395
25396         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
25397         initializer.  Skip view conversions from aggregate types.
25398
25399 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
25400
25401         PR bootstrap/47055
25402         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
25403
25404 2011-01-04  Philipp Thomas  <pth@suse.de>
25405
25406         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
25407         obvious typo.
25408
25409 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25410
25411         * function.c (thread_prologue_and_epilogue_insns): Do not crash
25412         on empty epilogue sequences.
25413
25414 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
25415
25416         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
25417         non-static): New Driver options.
25418
25419 2011-01-04  Jie Zhang  <jie@codesourcery.com>
25420
25421         PR driver/47137
25422         * gcc.c (default_compilers[]): Set combinable field to 0
25423         for all assembly languages.
25424
25425 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
25426
25427         * config/mips/loongson3a.md: New file.
25428         * config/mips/mips.md: Include loongson3a.md.
25429         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
25430         TUNE_LOONGSON_3A.
25431
25432 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
25433
25434         PR middle-end/47017
25435         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
25436         instead of convert_memory_address_addr_space on the base expression.
25437
25438 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25439
25440         * config/spu/spu.c (spu_option_override): Update error text
25441         for bad -march= / -mtune= values.
25442
25443 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25444
25445         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
25446         if branch-hint optimization will be performed.
25447
25448 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
25449
25450         PR tree-optimization/47148
25451         * ipa-split.c (split_function): Convert arguments to
25452         DECL_ARG_TYPE if possible.
25453
25454         PR tree-optimization/47155
25455         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
25456         when computing uns.
25457
25458         PR rtl-optimization/47157
25459         * combine.c (try_combine): If undobuf.other_insn becomes
25460         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
25461         and set *new_direct_jump_p too.
25462
25463 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
25464
25465         PR tree-optimization/47021
25466         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
25467
25468 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
25469
25470         * gcc.c (process_command): Update copyright notice dates.
25471         * gcov.c (print_version): Likewise.
25472         * gcov-dump.c (print_version): Likewise.
25473         * mips-tfile.c (main): Likewise.
25474         * mips-tdump.c (main): Likewise.
25475
25476 2011-01-03  Martin Jambor  <mjambor@suse.cz>
25477
25478         PR tree-optimization/46801
25479         * tree-sra.c (type_internals_preclude_sra_p): Check whether
25480         aggregate fields start at byte boundary instead of the bit-field flag.
25481
25482 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
25483
25484         PR driver/47137
25485         * gcc.c (main): Revert revision 168407.
25486
25487 2011-01-03  Martin Jambor  <mjambor@suse.cz>
25488
25489         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
25490
25491 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25492
25493         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
25494         vector optab to expand vector/scalar shift, update gimple to vector.
25495
25496 2011-01-03  Martin Jambor  <mjambor@suse.cz>
25497
25498         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
25499         a thunk.
25500
25501 2011-01-03  Martin Jambor  <mjambor@suse.cz>
25502
25503         PR tree-optimization/46984
25504         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
25505         HOST_WIDE_INT.
25506         (cgraph_create_indirect_edge): Fixed line length.
25507         (cgraph_indirect_call_info): Declare.
25508         (cgraph_make_edge_direct) Update declaration.
25509         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
25510         (cgraph_create_indirect_edge): Use it.
25511         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
25512         callees.
25513         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
25514         the new thunk_delta representation.
25515         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
25516         HOST_WIDE_INT.
25517         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
25518         (ipa_read_indirect_edge_info): Likewise.
25519         * lto-cgraph.c (output_edge_opt_summary): New function.
25520         (output_node_opt_summary): Call it on all outgoing edges.
25521         (input_edge_opt_summary): New function.
25522         (input_node_opt_summary): Call it on all outgoing edges.
25523
25524 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
25525
25526         PR driver/47137
25527         * gcc.c (main): Don't check have_o when settting combine_inputs.
25528
25529 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
25530
25531         * regrename.c: Add general comment describing the pass.
25532         (struct du_head): Remove 'length' field.
25533         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
25534         (regrename_optimize): Do not sort chains.  Rework comments, add others.
25535         Force renaming to the preferred class (if any) in the first pass and do
25536         not consider registers that belong to it in the second pass.
25537         (create_new_chain): Do not set 'length' field.
25538         (scan_rtx_reg): Likewise.
25539
25540 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
25541
25542         PR tree-optimization/47140
25543         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
25544         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
25545         to bit_value_binop.
25546
25547         PR rtl-optimization/47028
25548         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
25549         parm_birth_insn instead of at the beginning of first bb.
25550
25551 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
25552
25553         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
25554         Remove the word "see" before "@pxref".
25555         * doc/rtl.texi: Remove the word "see" before "@pxref".
25556
25557 2011-01-01  Jan Hubicka  <jh@suse.cz>
25558
25559         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
25560         memory.
25561
25562 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
25563
25564         PR target/38662
25565         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
25566
25567 \f
25568 Copyright (C) 2011 Free Software Foundation, Inc.
25569
25570 Copying and distribution of this file, with or without modification,
25571 are permitted in any medium without royalty provided the copyright
25572 notice and this notice are preserved.