OSDN Git Service

PR target/49781
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-08-11  Uros Bizjak  <ubizjak@gmail.com>
2
3         PR target/49781
4         * config/i386/i386.md (*lea_5_zext): New.
5         (*lea_6_zext): Ditto.
6         * config/i386/predicates.md (const_32bit_mask): New predicate.
7         (lea_address_operand): Reject AND.
8         * config/i386/i386.c (ix86_decompose_address): Allow Dimode AND with
9         const_32bit_mask immediate.
10         (ix86_print_operand_address): Handle AND.
11         (memory_address_length): Ditto.
12
13 2011-08-11  Romain Geissler  <romain.geissler@gmail.com>
14             Brian Hackett  <bhackett1024@gmail.com>
15
16         * plugin.def: Add event for finish_decl.
17         * plugin.c (register_callback, invoke_plugin_callbacks): Same.
18         * c-decl.c (finish_decl): Invoke callbacks on above event.
19         * doc/plugins.texi: Document above event.
20
21 2011-08-11  Richard Guenther  <rguenther@suse.de>
22
23         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid redundant
24         lookups, make looking through aggregate copies stronger.
25
26 2011-08-11  Richard Henderson  <rth@redhat.com>
27
28         PR bootstrap/50018
29         * expr.c (fixup_args_size_notes): Accept and ignore normal calls.
30
31 2011-08-11  Richard Guenther  <rguenther@suse.de>
32
33         * lto-cgraph.c (input_node): Use DECL_BUILT_IN.
34         * tree-vrp.c (stmt_interesting_for_vrp): Likewise.
35         (vrp_visit_stmt): Likewise.
36
37 2011-08-11  Richard Guenther  <rguenther@suse.de>
38
39         PR middle-end/50040
40         * gimplify.c (gimplify_modify_expr_complex_part): Mark the
41         load of the other piece with TREE_NO_WARNING.
42         * tree-flow.h (warn_uninit): Adjust prototype.
43         * tree-ssa.c (warn_uninit): Take uninitialized SSA name,
44         the base variable and the expression that is used separately.
45         Properly query all TREE_NO_WARNING flags.
46         (struct walk_data): Remove.
47         (warn_uninitialized_var): Likewise.
48         (warn_uninitialized_vars): Do not walk gimple pieces but simply
49         look at all SSA uses of the statement.  Handle unused memory
50         separately.
51         * tree-ssa-uninit.c (warn_uninitialized_phi): Adjust.
52
53 2011-08-11   Kazuhiro Inaoka  <kazuhiro.inaoka.ud@renesas.com>
54
55         * config/rx/rx.md (movsicc): Allow register to register transfers.
56         (*movsicc): Likewise.
57         (*stcc): Restrict this pattern to EQ and NE compares.
58         (*stcc_reg): New pattern.  Works for any comparison but only for
59         register transfers.
60
61 2011-08-11   Diego Novillo  <dnovillo@google.com>
62
63         * tree-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers):
64         Call stream_write_tree instead of output_record_start.
65         (lto_output_ts_binfo_tree_pointers): Likewise.
66
67         * streamer-hooks.h (stream_write_tree): Move from tree-streamer.h.
68         Convert it to a macro.
69         (stream_read_tree): Likewise.
70
71         * lto-streamer.h (lto_stream_as_builtin_p): Move ...
72         * tree-streamer.h (lto_stream_as_builtin_p): ... here.
73
74         * lto-streamer-in.c (lto_read_tree): Call lto_streamer_cache_append
75         and tree_read_bitfields.
76         * lto-streamer-out.c (lto_is_streamable): Move from lto-streamer.c
77         (lto_write_tree): Call it.
78         * lto-streamer.c (lto_is_streamable): Move to lto-streamer-out.c
79         * streamer-hooks.h (struct streamer_hooks): Remove fields
80         name, is_streamable and alloc_tree. Update all users.
81         * tree-streamer-in.c (tree_read_bitfields): Factor out of ...
82         (lto_materialize_tree): ... here.
83         Handle CALL_EXPR codes.
84         Remove call to lto_streamer_cache_append.
85         * tree-streamer-out.c (lto_output_tree_header): Handle CALL_EXPR nodes.
86         * tree-streamer.h (tree_read_bitfields): Declare.
87
88         * Makefile.in (TREE_STREAMER_H): Add STREAMER_HOOKS_H.
89         (gimple-streamer-in.o): Add dependency on TREE_STREAMER_H.
90         * tree-streamer.h (stream_read_tree): New.  Replace all calls
91         to lto_input_tree with it.
92         (stream_write_tree): New.  Replace all calls to lto_output_tree,
93         lto_output_tree_ref and lto_output_tree_or_ref with it.
94         * lto-streamer-in.c (lto_read_tree): Inline code from
95         lto_streamer_read_tree.
96         (lto_input_tree): Move from tree-streamer-in.c.
97         * lto-streamer-out.c (lto_output_tree_ref): Make static.
98         Remove handling of NULL values for EXPR.
99         Do not handle EXPRs that are not indexable.
100         (lto_write_tree): Move from tree-streamer-out.c.
101         Inline lto_streamer_write_tree.
102         (lto_output_tree): Move from tree-streamer-out.c.
103         If REF_P is true and EXPR is indexable, call lto_output_tree_ref.
104         * lto-streamer.c (lto_record_common_node): Move to tree-streamer.c.
105         (lto_preload_common_nodes): Likewise.
106         Remove assertions and adjustments for nodes
107         main_identifier_node, ptrdiff_type_node and fileptr_type_node.
108         (lto_streamer_hooks_init): Set streamer_hooks.write_tree to
109         lto_output_tree and streamer_hooks.read_tree to lto_input_tree.
110         * lto-streamer.h (lto_input_tree): Declare.
111         (lto_output_tree_ref): Remove.
112         * streamer-hooks.h (struct streamer_hooks): Remove fields
113         preload_common_nodes, indexable_with_decls_p,
114         pack_value_fields, unpack_value_fields and output_tree_header.
115         Update all users.
116         * tree-streamer-in.c (lto_materialize_tree): Make extern.
117         (lto_input_tree_pointers): Likewise.
118         (lto_read_tree): Move to lto-streamer-in.c.
119         (lto_input_integer_cst): Make extern.
120         (lto_get_pickled_tree): Likewise.
121         (lto_get_builtin_tree): Likewise.
122         (lto_input_tree): Move to lto-streamer-in.c.
123         * tree-streamer-out.c (pack_value_fields): Make extern.
124         (lto_output_tree_or_ref): Remove.  Replace all callers with
125         calls to stream_write_tree.
126         (lto_output_builtin_tree): Make extern.
127         (lto_streamer_write_tree): Inline into lto_write_tree.
128         (lto_output_tree_pointers): Make extern.
129         (lto_output_tree_header): Likewise.
130         (lto_output_integer_cst): Likewise.
131         (lto_write_tree): Move to lto-streamer-out.c.
132         (lto_output_tree): Likewise.
133         * tree-streamer.c (lto_record_common_node): Move from lto-streamer.c
134         (preload_common_nodes): Likewise.
135         (lto_streamer_cache_create): Call it.
136         * tree-streamer.h: Include streamer-hooks.h.
137         (stream_write_tree): New.
138         (stream_read_tree): New.
139         (lto_input_tree): Remove.
140         (lto_materialize_tree): Declare.
141         (lto_input_tree_pointers): Declare.
142         (lto_get_pickled_tree): Declare.
143         (lto_get_builtin_tree): Declare.
144         (lto_input_integer_cst): Declare.
145         (lto_output_tree_header): Declare.
146         (pack_value_fields): Declare.
147         (lto_output_tree_pointers): Declare.
148         (lto_output_integer_cst): Declare.
149         (lto_output_builtin_tree): Declare.
150
151 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
152
153         * sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge
154         only if producer writes to the register given by regno.
155
156 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
157             Alexander Monakov  <amonakov@ispras.ru>
158
159         * sched-deps.c (sched_get_condition_with_rev): Rename to ...
160         (sched_get_condition_with_rev_uncached): ... this.  Factor out
161         condition caching logic into ...
162         (sched_get_condition_with_rev): ... this.  Reimplement.  Do not
163         attempt to use cache for instructions with zero luid.
164         (sched_analyze_insn): Use INSN_CACHED_COND instead of INSN_COND.
165         * sched-int.h (INSN_COND): Rename to INSN_CACHED_COND.
166
167 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
168
169         * sel-sched-ir.c (get_seqno_of_a_pred): Rename to
170         get_seqno_for_a_jump.  Update the caller.
171         (get_seqno_by_succs): New.  Use it ...
172         (get_seqno_for_a_jump): ... here to find a seqno if looking at
173         predecessors was not sufficient.
174         (get_seqno_by_preds): Include head in iteration range, exclude insn.
175
176 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
177
178         * sel-sched-ir.c (invalidate_av_set): Remove the assert.
179
180 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
181
182         * sel-sched-ir.h (register_unavailable_p): Declare.
183         * sel-sched-ir.c (register_unavailable_p): New.  Use it...
184         (set_unavailable_target_for_expr): ... here to properly test
185         availability of a register.
186         (speculate_expr): Ditto.
187         * sel-sched.c (substitute_reg_in_expr): Ditto.
188         (av_set_could_be_blocked_by_bookkeeping_p): Ditto.
189
190 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
191
192         * sel-sched.c (verify_target_availability): Fix usage of
193         hard_regno_nregs.
194
195 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
196
197         * sel-sched-ir.c (init_global_and_expr_for_insn): Forbid copying of
198         recognized by cannot_copy_insn_p hook and volatile instructions.
199
200 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
201
202         * sel-sched-ir.c (merge_expr_data): Take maximum spec.
203
204 2011-08-11  Richard Sandiford  <richard.sandiford@linaro.org>
205
206         * doc/md.texi (define_bypass): Say that the instruction names can
207         be filename-style globs.
208         * Makefile.in (FNMATCH_H): Define.
209         (build/genattrtab.o, build/genautomata.o): Depend on $(FNMATCH_H).
210         * genattrtab.c: Include fnmatch.h.
211         (bypass_list): Change field name from "insn" to "pattern".
212         (gen_bypass_1): Update accordingly.
213         (process_bypasses): Use fnmatch to check for matches between
214         insn reservations and define_bypasses.
215         * genautomata.c: Include fnmatch.h.
216         (bypass_decl): Rename in_insn_name and out_insn_name to in_pattern
217         and out_pattern respectively.
218         (gen_bypass, insert_bypass): Update accordingly.
219         (for_each_matching_insn, process_bypass_2, process_bypass_1)
220         (process_bypass): New functions.
221         (process_decls): Use process_bypass.  Update after field name changes.
222
223 2011-08-11  Georg-Johann Lay  <avr@gjlay.de>
224
225         PR target/49687
226         * config/avr/avr.md (smulqi3_highpart): New insn.
227         (umulqi3_highpart): New insn.
228         (*subqi3.ashiftrt7): New insn.
229         (smulhi3_highpart): New expander.
230         (umulhi3_highpart): Nex expander.
231         (*smulhi3_highpart_call): New insn.
232         (*umulhi3_highpart_call): New insn.
233         (extend_u): New code attribute.
234         (extend_prefix): Rename code attribute to extend_su.
235         * config/avr/avr.c (avr_rtx_costs): Report costs of highpart of
236         widening QI/HI multiply.
237
238 2011-08-11  Ira Rosen  <ira.rosen@linaro.org>
239
240         PR tree-optimization/50039
241         * tree-vect-patterns.c (vect_operation_fits_smaller_type): Check
242         that DEF_STMT has a stmt_vec_info.
243
244 2011-08-10  Richard Guenther  <rguenther@suse.de>
245
246         * tree.h (can_trust_pointer_alignment): Remove.
247         * builtins.c (can_trust_pointer_alignment): Remove.
248
249 2011-08-10  Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
250
251         * c-typeck.c (scalar_to_vector): New function. Try scalar to
252         vector conversion.
253         (stv_conv): New enum for scalar_to_vector return type.
254         (build_binary_op): Adjust.
255         * doc/extend.texi: Description of scalar to vector expansion.
256
257 2011-08-10  Richard Guenther  <rguenther@suse.de>
258
259         * tree.h (get_pointer_alignment): Remove max-align argument.
260         (get_object_alignment): Likewise.
261         * builtins.c (get_object_alignment_1): Adjust.
262         (get_object_alignment): Remove max-align argument.
263         (get_pointer_alignment): Likewise.
264         (expand_builtin_strlen): Adjust.
265         (expand_builtin_memcpy): Likewise.
266         (expand_builtin_mempcpy_args): Likewise.
267         (expand_builtin_strncpy): Likewise.
268         (expand_builtin_memset_args): Likewise.
269         (expand_builtin_memcmp): Likewise.
270         (expand_builtin_strcmp): Likewise.
271         (expand_builtin_strncmp): Likewise.
272         (get_builtin_sync_mem): Likewise.
273         (fold_builtin_memset): Likewise.
274         (fold_builtin_memory_op): Likewise.
275         (expand_builtin_memory_chk): Likewise.
276         * emit-rtl.c (get_mem_align_offset): Likewise.
277         (set_mem_attributes_minus_bitpos): Likewise.
278         * expr.c (expand_assignment): Likewise.
279         (expand_expr_real_1): Likewise.
280         * tree-sra.c (tree_non_mode_aligned_mem_p): Likewise.
281         * tree-ssa-forwprop.c (simplify_builtin_call): Likewise.
282         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Likewise.
283         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
284         * value-prof.c (gimple_stringops_transform): Likewise.
285
286 2011-08-10  Paulo J. Matos  <paulo.matos@csr.com>
287
288         * doc/tm.texi.in (CLASS_MAX_NREGS): Fix typo.
289         * doc/tm.texi: Regenerate.
290
291 2011-08-10  Georg-Johann Lay  <avr@gjlay.de>
292
293         PR target/29560
294         * config/avr/avr.md (*ashlhiqi3): New insn-and-split.
295         (*ashl<extend_prefix>qihiqi3): New insn-and-splits.
296         (*ashl<extend_prefix>qihiqi3.mem): New insn-and-splits.
297         Add peephole2 to map ashlhi3 to ashlqi3 if high part of
298         shift target is unused.
299
300 2011-08-10  Richard Guenther  <rguenther@suse.de>
301
302         PR tree-optimization/49937
303         * tree-ssa-ccp.c (get_value_from_alignment): Re-implement
304         using get_object_alignment_1.
305
306 2011-08-09  Uros Bizjak  <ubizjak@gmail.com>
307
308         * config/i386/i386.c (ix86_emit_i387_round): New function.
309         * config/i386/i386-protos.h (ix86_emit_i387_round): Declare.
310         * config/i386/i386.md (round<mode>2): Use X87MODEF mode iterator.
311         Use ix86_emit_i387_round to expand round function for i387 math.
312         (lround<X87MODEF:mode><SWI248x:mode>2): Use X87MODEF mode iterator.
313         Use ix86_emit_i387_round to expand {l,ll}round function for i387 math.
314
315 2011-08-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
316
317         * config/sync.c: Move to ../libgcc.
318         * Makefile.in (libgcc.mvars): Remove LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS.
319         * config/mips/t-libgcc-mips16 (LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS):
320         Remove.
321
322 2011-08-09  Anatoly Sokolov  <aesok@post.ru>
323
324         * config/mmix/mmix.h (REGISTER_MOVE_COST): Remove macro.
325         * config/mmix/mmix-protos.h (mmix_register_move_cost): Remove.
326         * config/mmix/mmix.c (mmix_register_move_cost): Make static.
327         Change 'from' and 'to' arguments type to reg_class_t.
328         (TARGET_REGISTER_MOVE_COST): Define.
329
330 2011-08-09  Vladimir Makarov  <vmakarov@redhat.com>
331
332         PR target/50026
333         Revert:
334         PR rtl-optimization/49990
335         * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
336         ignore classes which can not change mode.
337         (find_costs_and_classes): Ditto.
338
339 2011-08-09  Richard Guenther  <rguenther@suse.de>
340
341         * tree-vrp.c (zero_nonzero_bits_from_vr): Also return precise
342         information for ranges with only negative values.
343         (extract_range_from_binary_expr_1): Adjust BIT_IOR_EXPR and
344         BIT_AND_EXPR handling to handle ranges with negative values.
345
346 2011-08-09  Kirill Yukhin  <kirill.yukhin@intel.com>
347
348         * config/i386/i386.c: Remove traling spaces.
349         * config/i386/sse.md: Likewise.
350         (*fma_fmadd_<mode>): Fix insn alternative 1 mnemonic.
351         (*fma_fmsub_<mode>): Likewise.
352         (*fma_fnmadd_<mode>): Likewise.
353         (*fma_fnmsub_<mode>): Likewise.
354
355 2011-08-09  Nick Clifton  <nickc@redhat.com>
356
357         * config/rx/rx.md: Disable extender peepholes at -O3.
358
359 2011-08-09  Uros Bizjak  <ubizjak@gmail.com>
360
361         PR target/49781
362         * config/i386/i386.md (reload_noff_load): New.
363         (reload_noff_store): Ditto.
364         * config/i386/i386.c (ix86_secondary_reload): Use
365         CODE_FOR_reload_noff_load and CODE_FOR_reload_noff_store to handle
366         double-word moves from/to non-offsetable addresses instead of
367         generating XMM temporary.
368
369 2011-08-09  Anatoly Sokolov  <aesok@post.ru>
370
371         * config/mmix/mmix.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Remove.
372
373 2011-08-09  Ira Rosen  <ira.rosen@linaro.org>
374
375         PR tree-optimization/50014
376         * tree-vect-loop.c (vectorizable_reduction): Get def type before
377         calling vect_get_vec_def_for_stmt_copy ().
378
379 2011-08-08  Vladimir Makarov  <vmakarov@redhat.com>
380
381         PR rtl-optimization/49990
382         * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
383         ignore classes which can not change mode.
384         (find_costs_and_classes): Ditto.
385
386 2011-08-08  Richard Henderson  <rth@redhat.com>
387
388         PR middle-end/49990
389         * config/i386/i386.c (ix86_expand_prologue): Call
390         for SEH target gen_prologue_use instead of gen_blockage
391         at prologue's end.
392
393 2011-08-08  Martin Jambor  <mjambor@suse.cz>
394
395         PR middle-end/49923
396         * tree-sra.c (access_precludes_ipa_sra_p): Also check access
397         memory alignment.
398
399 2011-08-08   Diego Novillo  <dnovillo@google.com>
400
401         * Makefile.in (LTO_STREAMER_H): Add DIAGNOSTIC_H.
402         (DATA_STREAMER_H): New.
403         (GIMPLE_STREAMER_H): New.
404         (TREE_STREAMER_H): New.
405         (STREAMER_HOOKS_H): New.
406         (OBJS): Add data-streamer.o, data-streamer-in.o, data-streamer-out.o,
407         gimple-streamer-in.o, gimple-streamer-out.o, streamer-hooks.o,
408         tree-streamer.o, tree-streamer-in.o and tree-streamer-out.o.
409         (data-streamer.o): New.
410         (data-streamer-in.o): New.
411         (data-streamer-out.o): New.
412         (gimple-streamer-in.o): New.
413         (gimple-streamer-out.o): New.
414         (streamer-hooks.o): New.
415         (tree-streamer.o): New.
416         (tree-streamer-in.o): New.
417         (tree-streamer-out.o): New.
418         (lto-cgraph.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
419         (lto-streamer-in.o): Add dependency on DATA_STREAMER_H,
420         GIMPLE_STREAMER_H and TREE_STREAMER_H.
421         (lto-streamer-out.o): Add dependency on DATA_STREAMER_H,
422         GIMPLE_STREAMER_H and TREE_STREAMER_H.
423         (lto-streamer.o): Add dependency on STREAMER_HOOKS_H.
424         (ipa-prop.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
425         (ipa-inline-analysis.o): Likewise.
426         (ipa-pure-const.o): Likewise.
427         * data-streamer-in.c: New.
428         * data-streamer-out.c: New.
429         * data-streamer.c: New.
430         * data-streamer.h: New.
431         * gimple-streamer-in.c: New.
432         * gimple-streamer-out.c: New.
433         * gimple-streamer.h: New.
434         * ipa-inline-analysis.c: Include data-streamer.h.
435         * ipa-prop.c: Include data-streamer.h.
436         * ipa-pure-const.c: Include data-streamer.h.
437         * lto-cgraph.c: Include data-streamer.h.
438         * lto-section-in.c (lto_input_uleb128): Move to data-streamer-in.c.
439         (lto_input_widest_uint_uleb128): Likewise.
440         (lto_input_sleb128): Likewise.
441         (bp_unpack_var_len_unsigned): Likewise.
442         (bp_unpack_var_len_int): Likewise.
443         * lto-section-out.c (lto_output_uleb128_stream): Move to
444         data-streamer-out.c.
445         (lto_output_widest_uint_uleb128_stream): Likewise.
446         (lto_output_sleb128_stream): Likewise.
447         (bp_pack_var_len_unsigned): Likewise.
448         (bp_pack_var_len_int): Likewise.
449         * lto-streamer-in.c: Include data-streamer.h and gimple-streamer.h.
450         (struct string_slot): Remove.  Update all users.
451         (lto_tag_check_set): Make extern.
452         (lto_tag_check_range): Move to lto-streamer.h.
453         (lto_tag_check): Likewise.
454         (hash_string_slot_node): Remove.  Update all users.
455         (eq_string_slot_node): Remove.  Update all users.
456         (string_for_index): Move to data-streamer-in.c
457         (input_string_internal): Likewise.
458         (input_string_cst): Move to tree-streamer-in.c.
459         (input_identifier): Likewise.
460         (lto_input_string): Move to data-streamer-in.c
461         (input_record_start): Move to data-streamer.h
462         (canon_file_name): Use new definition of struct string_slot
463         from data-streamer.h.  Set S_SLOT.LEN.
464         (lto_input_location): Make extern.
465         (lto_input_chain): Move to tree-streamer-in.c.
466         (lto_init_eh): Make extern.
467         (input_phi): Move to gimple-streamer-in.c.
468         (input_gimple_stmt): Likewise.
469         (input_bb): Likewise.
470         (unpack_ts_base_value_fields): Move to tree-streamer-in.c.
471         (unpack_ts_real_cst_value_fields): Likewise.
472         (unpack_ts_fixed_cst_value_fields): Likewise.
473         (unpack_ts_decl_common_value_fields): Likewise.
474         (unpack_ts_decl_wrtl_value_fields): Likewise.
475         (unpack_ts_decl_with_vis_value_fields): Likewise.
476         (unpack_ts_function_decl_value_fields): Likewise.
477         (unpack_ts_type_common_value_fields): Likewise.
478         (unpack_ts_block_value_fields): Likewise.
479         (unpack_ts_translation_unit_decl_value_fields): Likewise.
480         (unpack_value_fields): Likewise.
481         (lto_materialize_tree): Likewise.
482         (lto_input_ts_common_tree_pointers): Likewise.
483         (lto_input_ts_vector_tree_pointers): Likewise.
484         (lto_input_ts_complex_tree_pointers): Likewise.
485         (lto_input_ts_decl_minimal_tree_pointers): Likewise.
486         (lto_input_ts_decl_common_tree_pointers): Likewise.
487         (lto_input_ts_decl_non_common_tree_pointers): Likewise.
488         (lto_input_ts_decl_with_vis_tree_pointers): Likewise.
489         (lto_input_ts_field_decl_tree_pointers): Likewise.
490         (lto_input_ts_function_decl_tree_pointers): Likewise.
491         (lto_input_ts_type_common_tree_pointers): Likewise.
492         (lto_input_ts_type_non_common_tree_pointers): Likewise.
493         (lto_input_ts_list_tree_pointers): Likewise.
494         (lto_input_ts_vec_tree_pointers): Likewise.
495         (lto_input_ts_exp_tree_pointers): Likewise.
496         (lto_input_ts_block_tree_pointers): Likewise.
497         (lto_input_ts_binfo_tree_pointers): Likewise.
498         (lto_input_ts_constructor_tree_pointers): Likewise.
499         (lto_input_ts_target_option): Likewise.
500         (lto_input_ts_translation_unit_decl_tree_pointers): Likewise.
501         (lto_input_tree_pointers): Likewise.
502         (lto_get_pickled_tree): Likewise.
503         (lto_get_builtin_tree): Likewise.
504         (lto_read_tree): Likewise.
505         (lto_input_integer_cst): Likewise.
506         (lto_input_tree): Likewise.
507         * lto-streamer-out.c: Include data-streamer.h,
508         gimple-streamer.h and streamer-hooks.h.
509         (struct string_slot): Move to data-streamer.h.
510         (hash_string_slot_node): Likewise.
511         (eq_string_slot_node): Likewise.
512         (lto_string_index): Move to data-streamer-out.c.
513         (lto_output_string_with_length): Likewise.
514         (lto_output_string): Likewise.
515         (output_string_cst): Move to tree-streamer-out.c.
516         (output_identifier): Likewise.
517         (output_zero): Move to data-streamer-out.c
518         (output_uleb128): Likewise.
519         (output_sleb128): Likewise.
520         (output_record_start): Move to data-streamer.h
521         (pack_ts_base_value_fields): Move to tree-streamer-out.c.
522         (pack_ts_real_cst_value_fields): Likewise.
523         (pack_ts_fixed_cst_value_fields): Likewise.
524         (pack_ts_decl_common_value_fields): Likewise.
525         (pack_ts_decl_wrtl_value_fields): Likewise.
526         (pack_ts_decl_with_vis_value_fields): Likewise.
527         (pack_ts_function_decl_value_fields): Likewise.
528         (pack_ts_type_common_value_fields): Likewise.
529         (pack_ts_block_value_fields): Likewise.
530         (pack_ts_translation_unit_decl_value_fields): Likewise.
531         (pack_value_fields): Likewise.
532         (lto_output_chain): Likewise.
533         (lto_output_ts_common_tree_pointers): Likewise.
534         (lto_output_ts_vector_tree_pointers): Likewise.
535         (lto_output_ts_complex_tree_pointers): Likewise.
536         (lto_output_ts_decl_minimal_tree_pointers): Likewise.
537         (lto_output_ts_decl_common_tree_pointers): Likewise.
538         (lto_output_ts_decl_non_common_tree_pointers): Likewise.
539         (lto_output_ts_decl_with_vis_tree_pointers): Likewise.
540         (lto_output_ts_field_decl_tree_pointers): Likewise.
541         (lto_output_ts_function_decl_tree_pointers): Likewise.
542         (lto_output_ts_type_common_tree_pointers): Likewise.
543         (lto_output_ts_type_non_common_tree_pointers): Likewise.
544         (lto_output_ts_list_tree_pointers): Likewise.
545         (lto_output_ts_vec_tree_pointers): Likewise.
546         (lto_output_ts_exp_tree_pointers): Likewise.
547         (lto_output_ts_block_tree_pointers): Likewise.
548         (lto_output_ts_binfo_tree_pointers): Likewise.
549         (lto_output_ts_constructor_tree_pointers): Likewise.
550         (lto_output_ts_target_option): Likewise.
551         (lto_output_ts_translation_unit_decl_tree_pointers): Likewise.
552         (lto_output_tree_pointers): Likewise.
553         (lto_output_tree_header): Likewise.
554         (lto_output_builtin_tree): Likewise.
555         (lto_write_tree): Likewise.
556         (lto_output_integer_cst): Likewise.
557         (lto_output_tree): Likewise.
558         (output_phi): Move to gimple-streamer-out.c.
559         (output_gimple_stmt): Likewise.
560         (output_bb): Likewise.
561         * lto-streamer.c: Include tree-streamer.h and streamer-hooks.h.
562         (streamer_hooks): Move to streamer-hooks.c.
563         (check_handled_ts_structures): Move to tree-streamer.c
564         (lto_streamer_cache_add_to_node_array): Likewise.
565         (lto_streamer_cache_insert_1): Likewise.
566         (lto_streamer_cache_insert): Likewise.
567         (lto_streamer_cache_insert_at): Likewise.
568         (lto_streamer_cache_append): Likewise.
569         (lto_streamer_cache_lookup): Likewise.
570         (lto_streamer_cache_get): Likewise.
571         (lto_record_common_node): Likewise.
572         (lto_preload_common_nodes): Likewise.
573         (lto_streamer_cache_create): Likewise.
574         (lto_streamer_cache_delete): Likewise.
575         (streamer_hooks_init): Move to streamer-hooks.c.
576         * lto-streamer.h: Include diagnostic.h
577         (struct output_block, struct lto_input_block,
578         struct data_in, struct bitpack_d): Remove forward declarations.
579         (struct bitpack_d): Move to data-streamer.h.
580         (struct lto_streamer_cache_d): Move to tree-streamer.h.
581         (struct streamer_hooks): Move to streamer-hooks.h.
582         (bp_pack_var_len_unsigned): Move to data-streamer.h.
583         (bp_pack_var_len_int): Likewise.
584         (bp_unpack_var_len_unsigned): Likewise.
585         (bp_unpack_var_len_int): Likewise.
586         (lto_input_location): Declare.
587         (lto_tag_check_set): Declare.
588         (lto_init_eh): Declare.
589         (lto_output_tree_ref): Declare.
590         (lto_output_location): Declare.
591         (bitpack_create): Move to data-streamer.h.
592         (bp_pack_value): Likewise.
593         (lto_output_bitpack): Likewise.
594         (lto_input_bitpack): Likewise.
595         (bp_unpack_value): Likewise.
596         (lto_output_1_stream): Likewise.
597         (lto_input_1_unsigned): Likewise.
598         (lto_output_int_in_range): Likewise.
599         (lto_input_int_in_range): Likewise.
600         (bp_pack_int_in_range): Likewise.
601         (bp_unpack_int_in_range): Likewise.
602         (lto_output_enum): Likewise.
603         (lto_input_enum): Likewise.
604         (bp_pack_enum): Likewise.
605         (bp_unpack_enum): Likewise.
606         * streamer-hooks.c: New.
607         * streamer-hooks.h: New.
608         * tree-streamer-in.c: New.
609         * tree-streamer-out.c: New.
610         * tree-streamer.c: New.
611         * tree-streamer.h: New.
612
613 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
614
615         * gthr-posix95.h: Remove.
616         * gthr.h [_PTHREADS95]: Remove.
617         * configure.ac (enable_threads): Remove posix95.
618         * configure: Regenerate.
619         * doc/install.texi (Configuration, --enable-threads): Remove posix95.
620
621 2011-08-08  Uros Bizjak  <ubizjak@gmail.com>
622
623         PR target/49781
624         * config/i386/i386.c (ix86_decompose_address): Allow zero-extended
625         SImode addresses.
626         (ix86_print_operand_address): Handle zero-extended addresses.
627         (memory_address_length): Add length of addr32 prefix for
628         zero-extended addresses.
629         (ix86_secondary_reload): Handle moves to/from double-word general
630         registers from/to zero-extended addresses.
631         * config/i386/predicates.md (lea_address_operand): Reject
632         zero-extended operands.
633
634 2011-08-08  H.J. Lu  <hongjiu.lu@intel.com>
635
636         PR other/48007
637         * config.gcc (libgcc_tm_file): Add i386/value-unwind.h for Linux/x86.
638
639         * system.h (REG_VALUE_IN_UNWIND_CONTEXT): Poisoned.
640         (ASSUME_EXTENDED_UNWIND_CONTEXT): Likewise.
641
642         * unwind-dw2.c (ASSUME_EXTENDED_UNWIND_CONTEXT): New.
643         (_Unwind_Context_Reg_Val): Likewise.
644         (_Unwind_Get_Unwind_Word): Likewise.
645         (_Unwind_Get_Unwind_Context_Reg_Val): Likewise.
646         (_Unwind_Context): Use _Unwind_Context_Reg_Val on the reg field.
647         (_Unwind_IsExtendedContext): Check ASSUME_EXTENDED_UNWIND_CONTEXT
648         for EXTENDED_CONTEXT_BIT.
649         (__frame_state_for): Likewise.
650         (uw_init_context_1): Likewise.
651         (_Unwind_GetGR): Updated.
652         (_Unwind_SetGR): Likewise.
653         (_Unwind_GetGRPtr): Likewise.
654         (_Unwind_SetGRPtr): Likewise.
655         (_Unwind_SetGRValue): Likewise.
656         (_Unwind_GRByValue): Likewise.
657         (uw_install_context_1): Likewise.
658
659         * doc/tm.texi.in: Document REG_VALUE_IN_UNWIND_CONTEXT and
660         ASSUME_EXTENDED_UNWIND_CONTEXT.
661         * doc/tm.texi: Regenerated.
662
663 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
664
665         * Makefile.in (gengtype$(exeext)): Add $(LDFLAGS).
666
667 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
668
669         * doc/invoke.texi (DEC Alpha Options, -mcpu): native support isn't
670         Linux/GNU-specific.
671         (DEC Alpha Options, -mtune): Likewise.
672         (MIPS Options, -march): native is supported on IRIX.
673
674 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
675
676         * config/sparc/driver-sparc.c: New file.
677         * config/sparc/x-sparc: New file.
678         * config.host: Use driver-sparc.o, sparc/x-sparc on sparc*-*-solaris2*.
679         * config/sparc/sparc.opt (native): New value for enum processor_type.
680         * config/sparc/sparc-opts.h (PROCESSOR_NATIVE): Declare.
681         * config/sparc/sparc.c (sparc_option_override): Abort if
682         PROCESSOR_NATIVE gets here.
683         * config/sparc/sol2.h [__sparc__] (host_detect_local_cpu): Declare.
684         (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS,
685         DRIVER_SELF_SPECS): Define.
686         * doc/invoke.texi (SPARC Options, -mcpu): Document native.
687         (SPARC Options, -mtune): Likewise.
688         * configure.ac (EXTRA_GCC_LIBS): Check for libkstat.
689         Substitute result.
690         * configure: Regenerate.
691         * Makefile.in (EXTRA_GCC_LIBS): Set.
692         (xgcc$(exeext)): Add $(EXTRA_GCC_LIBS).
693         (cpp$(exeext)): Likewise.
694
695 2011-08-08  Richard Guenther  <rguenther@suse.de>
696
697         * tree-vrp.c (extract_range_from_unary_expr_1): New function,
698         split out from ...
699         (extract_range_from_unary_expr): ... here.  Handle BIT_NOT_EXPR
700         by composition.
701
702 2011-08-08  Mikael Pettersson  <mikpe@it.uu.se>
703
704         PR tree-optimization/50005
705         * ipa-inline-analysis (remap_predicate): Add cast to
706         silence signed/unsigned comparison warning.
707
708 2011-08-08  Richard Sandiford  <richard.sandiford@linaro.org>
709
710         * modulo-sched.c (get_sched_window): Use a table for the debug output.
711         Print the current ii.
712         (sms_schedule_by_order): Reduce whitespace in dump line.
713
714 2011-08-08  Richard Sandiford  <richard.sandiford@linaro.org>
715
716         * modulo-sched.c (get_sched_window): Use just one loop for predecessors
717         and one loop for successors.  Fix upper bound of memory range.
718
719 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
720
721         PR target/50001
722         * config/alpha/alpha.c (alpha_instantiate_decls): New function.
723         (TARGET_INSTANTIATE_DECLS): New define.
724
725 2011-08-06  Paolo Bonzini  <bonzini@gnu.org>
726             Mikael Morin   <mikael.morin@sfr.fr>
727
728         * Makefile.in (INCLUDES_FOR_TARGET): New.
729         (LIBGCC2_CFLAGS): Use it.
730         (CRTSTUFF_CFLAGS): Use it instead of INCLUDES.
731
732 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
733
734         * config/i386/i386.c (ix86_compute_frame_layout): Simplify
735         frame->save_regs_using_mov calculation.
736
737 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
738
739         * config/i386/i386.md (ssemodesuffix): Remove V8SI mode.
740         * config/i386/sse.md (castmode): New mode attribute.
741         (avx_<castmode><avxsizesuffix>_<castmode>): Rename from
742         avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>.
743
744 2011-08-05  Jan Hubicka  <jh@suse.cz>
745
746         PR middle-end/49494
747         * ipa-inline-analysis.c (remap_predicate): Add bounds check.
748
749 2011-08-05  Jan Hubicka  <jh@suse.cz>
750
751         PR middle-end/49500
752         * tree-emultls.c (new_emutls_decl):Add alias_of parameter;
753         handle aliases.
754         (create_emultls_var):New function.
755         (ipa_lower_emutls): Handle aliases correctly.
756
757 2011-08-05  Jan Hubicka  <jh@suse.cz>
758
759         PR middle-end/49735
760         * ipa-inline.c (recursive_inlining): Look through aliases.
761
762 2011-08-05  Jason Merrill  <jason@redhat.com>
763
764         * config/i386/i386.c (setup_incoming_varargs_ms_64): Move
765         declarations to beginning of function.
766
767 2011-08-05  Bernd Schmidt  <bernds@codesourcery.com>
768
769         PR rtl-optimization/49900
770         * sched-ebb.c (add_deps_for_risky_insns): Also add dependencies to
771         ensure basic blocks stay in the same order.
772
773 2011-08-05  Aldy Hernandez  <aldyh@redhat.com>
774
775         * config/s390/s390.c (s390_expand_cs_hqi): Add new arguments to
776         store_bit_field.
777         (s390_expand_atomic): Same.
778
779 2011-08-05  Richard Henderson  <rth@redhat.com>
780
781         PR rtl-opt/49977
782         * dwarf2cfi.c (scan_insn_after): Split out of ...
783         (scan_trace): ... here.  Correctly place notes wrt sequences.
784
785 2011-08-05  Kaz Kojima  <kkojima@gcc.gnu.org>
786             Richard Henderson  <rth@redhat.com>
787
788         PR rtl-opt/49982
789         * expr.c (fixup_args_size_notes): Look through no-op moves.
790
791 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
792
793         * config/i386/i386.md (*push<mode>2): Use "o" constraint instead
794         of "m" for operand 0.  Add type and mode attribute.
795         (*pushxf_nointeger"): Use "<" constraint for operand 0.
796         (*pushdf_rex64): New pattern, split out of *pushdf.  Use "m"
797         constraint instead of "o" for opreand 1.
798         (*pushdf): Disable for TARGET_64BIT.  Correct mode attribute.
799         (*movdi_internal_rex64): Use "!o" constraint instead of "!m" for
800         operand 0, alternative 4.
801         (*movdf_internal_rex64): Ditto for operand 0, alernative 6.
802
803 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
804
805         * config/i386/predicates.md (lea_address_operand): Rename from
806         no_seg_address_operand.
807         * config/i386/i386.md (*lea_1): Update operand 1 predicate for rename.
808         (*lea_1_zext): Ditto.
809         (*lea_2): Ditto.
810         (*lea_2_zext): Ditto.
811
812 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
813
814         * config/i386/i386.c (ix86_print_operand_address): Handle SUBREGs of
815         parts.base and parts.index.
816         * config/i386/predicates.md (aligned_operand): Ditto.
817         (cmpxchg8b_pic_memory_operand): Ditto.
818
819 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
820
821         * config/soft-fp: Move to ../libgcc.
822         * Makefile.in (SFP_MACHINE): Remove.
823         (libgcc-support): Remove $(SFP_MACHINE) dependency.
824         * config/arm/sfp-machine.h: Move to ../libgcc/config/arm.
825         * config/arm/t-arm-softfp: Move to
826         ../libgcc/config/arm/t-softfp.
827         * config/c6x/sfp-machine.h: Move to ../libgcc/config/c6x.
828         * config/c6x/t-c6x-softfp: Remove.
829         * config/i386/sfp-machine.h: Move to ../libgcc/config/i386.
830         * config/i386/t-fprules-softfp: Move to
831         ../libgcc/config/t-softfp-tf.
832         * config/ia64/sfp-machine.h: Move to ../libgcc/config/ia64.
833         * config/ia64/t-fprules-softfp: Remove.
834         * config/lm32/sfp-machine.h: Move to ../libgcc/config/lm32.
835         * config/lm32/t-fprules-softfp: Remove.
836         * config/moxie/sfp-machine.h: Remove.
837         * config/moxie/t-moxie-softfp: Remove.
838         * config/rs6000/darwin-ldouble-format: Move to
839         ../libgcc/config/rs6000/ibm-ldouble-format.
840         * config/rs6000/darwin-ldouble.c: Move to
841         ../libgcc/config/rs6000/ibm-ldouble.c
842         * config/rs6000/libgcc-ppc-glibc.ver: Move to ../libgcc/config/rs6000.
843         * config/rs6000/libgcc-ppc64.ver: Likewise.
844         * config/rs6000/sfp-machine.h: Likewise.
845         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Remove
846         $(srcdir)/config/rs6000/libgcc-ppc64.ver.
847         (LIB2FUNCS_EXTRA): Remove.
848         (TARGET_LIBGCC2_CFLAGS): Remove.
849         * config/rs6000/t-aix52: Likewise
850         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
851         $(srcdir)/config/rs6000/darwin-ldouble.c.
852         (SHLIB_MAPFILES): Remove.
853         * config/rs6000/t-darwin64 (LIB2FUNCS_EXTRA): Remove
854         $(srcdir)/config/rs6000/darwin-ldouble.c.
855         * config/rs6000/t-fprules-softfp: Move to
856         ../libgcc/config/t-softfp-sfdf.
857         * config/rs6000/t-freebsd: Move to ../libgcc/config/rs6000.
858         * config/rs6000/t-linux64 (softfp_wrap_start, softfp_wrap_end): Remove.
859         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Remove
860         $(srcdir)/config/rs6000/darwin-ldouble.c.
861         * config/score/sfp-machine.h: Move to ../libgcc/config/score.
862         * config/score/t-score-softfp: Remove.
863         * config.gcc (arm*-*-linux*): Remove arm/t-arm-softfp,
864         soft-fp/t-softfp from tmake_file.
865         (arm*-*-uclinux*): Likewise.
866         (arm*-*-ecos-elf): Likewise.
867         (arm*-*-eabi*, arm*-*-symbianelf*): Likewise.
868         (arm*-*-rtems*): Likewise.
869         (arm*-*-elf): Likewise.
870         (moxie-*-elf): Remove moxie/t-moxie-softfp, soft-fp/t-softfp from
871         tmake_file.
872         (moxie-*-uclinux*): Likewise.
873         (moxie-*-rtems*): Likewise.
874         (lm32-*-elf*): Remove lm32/t-fprules-softfp, soft-fp/t-softfp from
875         tmake_file.
876         (lm32-*-rtems*): Likewise.
877         (lm32-*-uclinux*): Likewise.
878         (powerpc-*-freebsd*): Remove rs6000/t-freebsd,
879         rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
880         (powerpc-*-linux*, powerpc64-*-linux*): Remove
881         rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
882         (score-*-elf): Remove score/t-score-softfp, soft-fp/t-softfp from
883         tmake_file.
884         (tic6x-*-elf): Remove c6x/t-c6x-softfp, soft-fp/t-softfp from
885         tmake_file.
886         (tic6x-*-uclinux): Likewise.
887         (i[34567]86-*-darwin*, x86_64-*-darwin*): Remove i386/t-fprules-softfp,
888         soft-fp/t-softfp from tmake_file.
889         (i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu)
890         (x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Likewise.
891         (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Likewise.
892         (i[34567]86-*-cygwin*, i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
893         (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Likewise.
894
895 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
896
897         * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS, TPBIT_FUNCS): Remove.
898         (libgcc-support): Remove $(FPBIT), $(DPBIT), $(TPBIT) dependencies.
899         (libgcc.mvars): Remove FPBIT, FPBIT_FUNCS, DPBIT, DPBIT_FUNCS,
900         TPBIT, TPBIT_FUNCS.
901         * config/fp-bit.c, config/fp-bit.h: Move to ../libgcc.
902         * config/arm/t-strongarm-elf (FPBIT, DPBIT, dp-bit.c, fp-bit.c):
903         Remove.
904         * config/arm/t-vxworks: Likewise.
905         * config/arm/t-wince-pe: Likewise.
906         * config/avr/t-avr (fp-bit.c, FPBIT): Remove.
907         * config/bfin/t-bfin (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
908         * config/bfin/t-bfin-elf: Likewise.
909         * config/bfin/t-bfin-linux: Likewise.
910         * config/bfin/t-bfin-uclinux: Likewise.
911         * config/cris/t-cris (FPBIT, DPBIT, dp-bit.c, tmplibgcc_fp_bit.c):
912         Remove.
913         * config/fr30/t-fr30: Likewise.
914         * config/frv/t-frv: Likewise.
915         * config/h8300/t-h8300 (FPBIT, fp-bit.c): Remove.
916         * config/iq2000/t-iq2000 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
917         * config/m32c/t-m32c: Likewise.
918         * config/m32r/t-linux: (LIB2FUNCS_EXTRA, fp-bit.c, dp-bit.c): Remove.
919         * config/m32r/t-m32r (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
920         * config/mcore/t-mcore: Likewise.
921         * config/mep/t-mep: Likewise.
922         * config/microblaze/t-microblaze: Likewise.
923         * config/mips/t-linux64 (TPBIT, tp-bit.c): Remove.
924         * config/mips/t-mips (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
925         * config/mips/t-sdemtk (FPBIT, DPBIT): Remove.
926         * config/mips/t-sr71k (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
927         * config/mn10300/t-linux: Remove.
928         * config/mn10300/t-mn10300 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
929         * config/pdp11/t-pdp11: Likewise.
930         * config/picochip/t-picochip (FPBIT, fp-bit.c): Remove.
931         * config/rs6000/ppc64-fp.c: Move to ../libgcc/config/rs6000.
932         * config/rs6000/t-aix43 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
933         (LIB2FUNCS_EXTRA): Remove $(srcdir)/config/rs6000/ppc64-fp.c.
934         * config/rs6000/t-aix52: Likewise.
935         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
936         $(srcdir)/config/rs6000/ppc64-fp.c.
937         * config/rs6000/t-fprules-fpbit: Remove.
938         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Remove.
939         * config/rs6000/t-lynx (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
940         * config/sh/t-netbsd (FPBIT, DPBIT): Remove.
941         * config/sh/t-sh (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
942         * config/sparc/t-elf: Likewise.
943         * config/sparc/t-leon: Likewise.
944         * config/sparc/t-leon3: Likewise.
945         * config/spu/t-spu-elf: Likewise.
946         (DPBIT_FUNCS): Remove.
947         * config/stormy16/t-stormy16 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
948         * config/v850/t-v850: Likewise.
949         * config.gcc (avr-*-rtems*): Add avr/avr-lib.h to libgcc_tm_file.
950         (avr-*-*): Likewise.
951         (h8300-*-rtems*): Set libgcc_tm_file.
952         (h8300-*-elf*): Likewise.
953         (powerpc-*-eabisimaltivec*): Remove rs6000/t-fprules-fpbit from
954         tmake_file.
955         (powerpc-*-eabisim*): Likewise.
956         (powerpc-*-elf*): Likewise.
957         (powerpc-*-eabialtivec*): Likewise.
958         (powerpc-xilinx-eabi*): Likewise.
959         (powerpc-*-eabi*): Likewise.
960         (powerpc-*-rtems*): Likewise.
961         (powerpc-wrs-vxworks, powerpc-wrs-vxworksae): Likewise.
962         (powerpcle-*-elf*): Likewise.
963         (powerpcle-*-eabisim*): Likewise.
964         (powerpcle-*-eabi*): Likewise.
965         (rx-*-elf*): Add rx/rx-lib.h to libgcc_tm_file.
966         (am33_2.0-*-linux*): Remove mn10300/t-linux from tmake_file.
967         * doc/fragments.texi (Target Fragment, Floating Point Emulation):
968         Remove.
969
970 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
971
972         * Makefile.in (UNWIND_H): Remove.
973         (LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): Move to
974         ../libgcc/Makefile.in.
975         (LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL): Likewise.
976         (LIBUNWINDDEP): Remove.
977         (libgcc-support): Remove LIB2ADDEH, $(srcdir)/emutls.c dependencies.
978         (libgcc.mvars): Remove LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED,
979         LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL.
980         (stmp-int-hdrs): Remove $(UNWIND_H) dependency.
981         Don't copy $(UNWIND_H).
982         * config.gcc (ia64*-*-linux*): Remove with_system_libunwind handling.
983         * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Remove.
984         * aclocal.m4: Regenerate.
985         * configure: Regenerate.
986         * emutls.c, unwind-c.c, unwind-compat.c, unwind-compat.h,
987         unwind-dw2-fde-compat.c, unwind-dw2-fde-glibc.c, unwind-dw2-fde.c,
988         unwind-dw2-fde.h, unwind-dw2.c, unwind-dw2.h, unwind-generic.h,
989         unwind-pe.h, unwind-sjlj.c, unwind.inc: Move to ../libgcc.
990         * unwind-dw2-fde-darwin.c: Move to ../libgcc/config.
991         * config/arm/libunwind.S, config/arm/pr-support.c,
992         config/arm/unwind-arm.c, config/arm/unwind-arm.h: Move to
993         ../libgcc/config/arm.
994         * config/arm/t-bpabi (UNWIND_H, LIB2ADDEH): Remove.
995         * config/arm/t-symbian (UNWIND_H, LIB2ADDEH): Remove.
996         * config/frv/t-frv ($(T)frvbegin$(objext)): Use
997         $(srcdir)/../libgcc to refer to unwind-dw2-fde.h.
998         ($(T)frvend$(objext)): Likewise.
999         * config/ia64/t-glibc (LIB2ADDEH): Remove.
1000         * config/ia64/t-glibc-libunwind: Move to ../libgcc/config/ia64.
1001         * config/ia64/fde-glibc.c, config/ia64/fde-vms.c,
1002         config/ia64/unwind-ia64.c, config/ia64/unwind-ia64.h: Move to
1003         ../libgcc/config/ia64.
1004         * config/ia64/t-hpux (LIB2ADDEH): Remove.
1005         * config/ia64/t-ia64 (LIB2ADDEH): Remove.
1006         * config/ia64/t-vms (LIB2ADDEH): Remove.
1007         * config/ia64/vms.h (UNW_IVMS_MODE,
1008         MD_UNW_COMPATIBLE_PERSONALITY_P): Remove.
1009         * config/picochip/t-picochip (LIB2ADDEH): Remove.
1010         * config/rs6000/aix.h (R_LR, MD_FROB_UPDATE_CONTEXT): Remove.
1011         * config/rs6000/t-darwin (LIB2ADDEH): Remove.
1012         * config/rs6000/darwin-fallback.c: Move to ../libgcc/config/rs6000.
1013         * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): Use
1014         $(srcdir)/../libgcc to refer to unwinder sources.
1015         * config/spu/t-spu-elf (LIB2ADDEH): Remove.
1016         * config/t-darwin (LIB2ADDEH): Remove.
1017         * config/t-freebsd (LIB2ADDEH): Remove.
1018         * config/t-libunwind (LIB2ADDEH, LIB2ADDEHSTATIC): Remove.
1019         * config/t-libunwind-elf: Move to ../libgcc/config.
1020         * config/t-linux (LIB2ADDEH): Remove.
1021         * config/t-sol2 (LIB2ADDEH): Remove.
1022         * config/xtensa/t-xtensa (LIB2ADDEH): Remove.
1023         * system.h (MD_FROB_UPDATE_CONTEXT): Poison.
1024
1025 2011-08-05  H.J. Lu  <hongjiu.lu@intel.com>
1026
1027         * config/i386/i386.c (processor_alias_table): Add core-avx-i.
1028
1029         * doc/invoke.texi: Document core-avx-i.
1030
1031 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1032
1033         * tsystem.h (CONST_CAST2, CONST_CAST): Define.
1034
1035 2011-08-05  Ira Rosen  <ira.rosen@linaro.org>
1036
1037         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use the
1038         result of multiple results reduction when extracting the final
1039         value using scalar code.
1040
1041 2011-08-05  Richard Guenther  <rguenther@suse.de>
1042
1043         PR tree-optimization/49984
1044         * tree-vrp.c (extract_range_from_binary_expr_1): Handle BIT_XOR_EXPR.
1045
1046 2011-08-05  Richard Guenther  <rguenther@suse.de>
1047
1048         * tree-vrp.c (zero_nonzero_bits_from_vr): Make sure to always
1049         return true for constant integer ranges.
1050         (extract_range_from_binary_expr_1): Simplify BIT_AND_EXPR and
1051         BIT_IOR_EXPR handling.
1052
1053 2011-08-04  Kai Tietz  <ktietz@redhat.com>
1054
1055         * config/i386/i386.c (setup_incoming_varargs_ms_64): Set
1056         ix86_varargs_gpr_size and ix86_varargs_fpr_size to zero.
1057
1058 2011-08-04  Ira Rosen  <ira.rosen@linaro.org>
1059
1060         * tree-vectorizer.h (struct _stmt_vec_info): Add new field for
1061         pattern def statement, and its access macro.
1062         (NUM_PATTERNS): Set to 5.
1063         * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
1064         pattern def statement.
1065         (vect_transform_loop): Likewise.
1066         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add new
1067         function vect_recog_over_widening_pattern ().
1068         (vect_operation_fits_smaller_type): New function.
1069         (vect_recog_over_widening_pattern, vect_mark_pattern_stmts):
1070         Likewise.
1071         (vect_pattern_recog_1): Move the code that marks pattern
1072         statements to vect_mark_pattern_stmts (), and call it.  Update
1073         documentation.
1074         * tree-vect-stmts.c (vect_supportable_shift): New function.
1075         (vect_analyze_stmt): Handle pattern def statement.
1076         (new_stmt_vec_info): Initialize pattern def statement.
1077
1078 2011-08-04  Richard Henderson  <rth@redhat.com>
1079
1080         PR target/49964
1081         * config/i386/i386.c (ix86_expand_call): Don't create nested
1082         PARALLELs for TARGET_VZEROUPPER.
1083         (ix86_split_call_vzeroupper): Fix extraction of the original call.
1084         * config/i386/i386.md (*call_rex64_ms_sysv_vzeroupper): Don't
1085         recognize nested PARALLELs.
1086         (*call_pop_vzeroupper, *sibcall_pop_vzeroupper,
1087         *call_value_rex64_ms_sysv_vzeroupper, *call_value_pop_vzeroupper,
1088         *sibcall_value_pop_vzeroupper): Likewise.
1089
1090 2011-08-04  Richard Henderson  <rth@redhat.com>
1091
1092         PR middle-end/49968
1093         * calls.c (expand_call): Use fixup_args_size_notes for
1094         emit_stack_restore.
1095         * expr.c (fixup_args_size_notes): Allow STACK_POINTER_REGNUM sets
1096         in non-standard modes.
1097
1098 2011-08-04  Jakub Jelinek  <jakub@redhat.com>
1099
1100         * gcc.c (self_spec): New variable.
1101         (static_specs): Add self_spec.
1102         (main): Call do_self_spec on "self_spec" specs after reading
1103         user specs files.  Move compare_debug handling right after that.
1104
1105 2011-08-04  Richard Guenther  <rguenther@suse.de>
1106
1107         * tree-vrp.c (vrp_expr_computes_nonnegative): Remove.
1108         (value_range_nonnegative_p): New function.
1109         (ssa_name_nonnegative_p): Use it.
1110         (value_range_constant_singleton): New function.
1111         (op_with_constant_singleton_value_range): Use it.
1112         (extract_range_from_binary_expr_1): New function, split out from ...
1113         (extract_range_from_binary_expr): ... this.  Remove fallback
1114         constant folding done here.
1115
1116 2011-08-04  Richard Guenther  <rguenther@suse.de>
1117
1118         PR tree-optimization/49806
1119         * tree-vrp.c (op_with_boolean_value_range_p): New function.
1120         (simplify_truth_ops_using_ranges): Simplify.  Allow inserting
1121         a new statement for a final conversion to bool.
1122
1123 2011-08-04  Romain Geissler  <romain.geissler@gmail.com>
1124
1125         * gengtype-state.c: Include "bconfig.h" if
1126         GENERATOR_FILE is defined, "config.h" otherwise.
1127         * gengtype.c: Likewise.
1128         * gengtype-lex.l: Likewise.
1129         * gengtype-parse.c: Likewise.
1130         * Makefile.in (gengtype-lex.o-warn): New variable.
1131         (plugin_resourcesdir): Likewise.
1132         (plugin_bindir): Likewise.
1133         (plugin_includedir): Use $(plugin_resourcesdir) as prefix base.
1134         (MOSTLYCLEANFILES): Add gengtype$(exeext).
1135         (native): Depend on gengtype$(exeext) is $enable_plugin
1136         is set to "yes".
1137         (gtype.state): Depend on s-gtype. Use temporary file.
1138         (gengtype-lex.o): New rule.
1139         (gengtype-parse.o): Likewise.
1140         (gengtype-state.o): Likewise.
1141         (gengtype$(exeext)): Likewise.
1142         (install-gengtype): Likewise.
1143         (gengtype.o): Likewise.
1144         (build/gengtype.o): Depend on version.h.
1145         (build/gengtype-state): Depend on double-int.h, version.h,
1146         $(HASHTAB_H), $(OBSTACK_H), $(XREGEX_H) and build/errors.o.
1147         (install-plugin): Depend on install-gengtype.
1148
1149 2011-08-04  Jakub Jelinek  <jakub@redhat.com>
1150
1151         PR middle-end/49905
1152         * tree.h (init_attributes): New prototype.
1153         * attribs.c (init_attributes): No longer static.
1154
1155 2011-08-04  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1156
1157         * config/arm/arm.c (arm_set_fixed_optab_libfunc): Constify
1158         maybe_suffix.
1159
1160 2011-08-03   David Li  <davidxl@google.com>
1161
1162         * tree-optimize.c (execute_fixup_cfg): Fix up entry
1163         outgoing edge counts after inlining.
1164
1165 2011-08-03   David Li  <davidxl@google.com>
1166
1167         * profile.c (compute_branch_probabilities): Compute
1168         function frequency after profile annotation.
1169
1170 2011-08-04  Alan Modra  <amodra@gmail.com>
1171
1172         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Simplify
1173         use_backchain_to_restore_sp initialisation.
1174         (rs6000_legitimate_offset_address_p): Simplify offset test.
1175
1176 2011-08-03  Richard Henderson  <rth@redhat.com>
1177
1178         * config/spu/spu.md: Use define_c_enum instead of define_constants.
1179         (UNSPECV_BLOCKAGE, UNSPECV_LNOP, UNSPECV_SYNC): Rename from UNSPEC_*.
1180         (UNSPECV_NOP): New.
1181
1182 2011-08-03  Richard Henderson  <rth@redhat.com>
1183
1184         PR target/34888
1185         * config/avr/avr.md: New splitter for REG_ARGS_SIZE 0.
1186
1187 2011-08-03  Jakub Jelinek  <jakub@redhat.com>
1188
1189         PR tree-optimization/49948
1190         * gimple.c (walk_stmt_load_store_addr_ops): Walk CONSTRUCTOR elements.
1191
1192 2011-08-03  Anatoly Sokolov  <aesok@post.ru>
1193
1194         * config/m32c/m32c.c (class_sizes): Remove.
1195         (reduce_class): Change arguments and return type to reg_class_t.
1196         Change type cc var to HARD_REG_SET. Change type best var to
1197         reg_class_t. Change type best_size var to unsigned int. Remove
1198         initialization class_sizes var. Use reg_class_size array instead
1199         of class_sizes. Use reg_class_contents array instead
1200         of class_contents.
1201
1202 2011-08-03  Richard Guenther  <rguenther@suse.de>
1203
1204         PR middle-end/49958
1205         * fold-const.c (fold_binary_loc): Only associate
1206         (+ (+ (* a b) c) (* d e)) as (+ (+ (* a b) (* d e)) c) if
1207         overflow wraps.
1208
1209 2011-08-03  Alan Modra  <amodra@gmail.com>
1210
1211         PR rtl-optimization/49941
1212         * jump.c (mark_jump_label): Comment.
1213         (mark_jump_label_1): Set JUMP_LABEL for return jumps.
1214         * emit-rtl.c (copy_rtx_if_shared_1, copy_insn_1): Leave RETURN shared.
1215         (mark_used_flags): Don't mark RETURN.
1216
1217 2011-08-03  Richard Guenther  <rguenther@suse.de>
1218
1219         PR tree-optimization/49938
1220         * tree-scalar-evolution.c (interpret_loop_phi): Gracefully
1221         deal with a POLYNOMIAL_CHREC.
1222
1223 2011-08-03  Revital Eres  <revital.eres@linaro.org>
1224
1225         * modulo-sched.c (calculate_stage_count,
1226         calculate_must_precede_follow, get_sched_window,
1227         try_scheduling_node_in_cycle, remove_node_from_ps): Add
1228         declaration.
1229         (update_node_sched_params, set_must_precede_follow, optimize_sc):
1230         New functions.
1231         (reset_sched_times): Call update_node_sched_params.
1232         (sms_schedule): Call optimize_sc.
1233         (get_sched_window): Change function arguments.
1234         (sms_schedule_by_order): Update call to get_sched_window.
1235         Call set_must_precede_follow.
1236         (calculate_stage_count): Add function argument.
1237
1238 2011-08-02  Richard Henderson  <rth@redhat.com>
1239
1240         PR target/49864
1241         PR target/49879
1242         * reg-notes.def (REG_ARGS_SIZE): New.
1243         * calls.c (emit_call_1): Emit REG_ARGS_SIZE for call_pop.
1244         (expand_call): Add REG_ARGS_SIZE to emit_stack_restore.
1245         * cfgcleanup.c (old_insns_match_p): Don't allow cross-jumping to
1246         different stack levels.
1247         * combine-stack-adj.c (adjust_frame_related_expr): Remove.
1248         (maybe_move_args_size_note): New.
1249         (combine_stack_adjustments_for_block): Use it.
1250         * combine.c (distribute_notes): Place REG_ARGS_SIZE.
1251         * dwarf2cfi.c (dw_cfi_row_struct): Remove args_size member.
1252         (dw_trace_info): Add beg_true_args_size, end_true_args_size,
1253         beg_delay_args_size, end_delay_args_size, eh_head, args_size_undefined.
1254         (cur_cfa): New.
1255         (queued_args_size): Remove.
1256         (add_cfi_args_size): Assert size is non-negative.
1257         (stack_adjust_offset, dwarf2out_args_size): Remove.
1258         (dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust): Remove.
1259         (notice_args_size, notice_eh_throw): New.
1260         (dwarf2out_frame_debug_def_cfa): Use cur_cfa.
1261         (dwarf2out_frame_debug_adjust_cfa): Likewise.
1262         (dwarf2out_frame_debug_cfa_offset): Likewise.
1263         (dwarf2out_frame_debug_expr): Likewise.  Don't stack_adjust_offset.
1264         (dwarf2out_frame_debug): Don't handle non-frame-related-p insns.
1265         (change_cfi_row): Don't emit args_size.
1266         (maybe_record_trace_start_abnormal): Split out from ...
1267         (maybe_record_trace_start): Here.  Set args_size_undefined.
1268         (create_trace_edges): Update to match.
1269         (scan_trace): Handle REG_ARGS_SIZE.
1270         (connect_traces): Connect args_size between EH insns.
1271         * emit-rtl.c (try_split): Handle REG_ARGS_SIZE.
1272         * explow.c (suppress_reg_args_size): New.
1273         (adjust_stack_1): Split out from ...
1274         (adjust_stack): ... here.
1275         (anti_adjust_stack): Use it.
1276         (allocate_dynamic_stack_space): Suppress REG_ARGS_SIZE.
1277         * expr.c (mem_autoinc_base): New.
1278         (fixup_args_size_notes): New.
1279         (emit_single_push_insn_1): Rename from emit_single_push_insn.
1280         (emit_single_push_insn): New.  Generate REG_ARGS_SIZE.
1281         * recog.c (peep2_attempt): Handle REG_ARGS_SIZE.
1282         * reload1.c (reload_as_needed): Likewise.
1283         * rtl.h (fixup_args_size_notes): Declare.
1284
1285 2011-08-02  Paolo Carlini  <paolo.carlini@oracle.com>
1286
1287         PR bootstrap/49914
1288         * fold-const.c (fold_plusminus_mult_expr): Use abs_hwi instead
1289         of abs.
1290         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
1291         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
1292
1293 2011-08-02  Richard Henderson  <rth@redhat.com>
1294
1295         * config/h8300/h8300.c (push, pop): Return the insn.
1296         (h8300_swap_into_er6): Generate correct unwind info.
1297         (h8300_swap_out_of_er6): Likewise.
1298         * dwarf2cfi.c (def_cfa_1): Clear cfa_cfi if we no longer have a
1299         complex cfa expression.
1300         (dwarf2out_frame_debug_def_cfa): Allow (plus (mem) (const_int)) too.
1301
1302 2011-08-02  H.J. Lu  <hongjiu.lu@intel.com>
1303
1304         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
1305
1306 2011-08-02  Richard Henderson  <rth@redhat.com>
1307
1308         PR target/49878
1309         * config/h8300/h8300.c (h8300_move_ok): New.
1310         * config/h8300/h8300-protos.h: Declare it.
1311         * config/h8300/h8300.md (P): New mode iterator.
1312         (*movqi_h8300, *movqi_h8300hs, movqi): Use h8300_move_ok.
1313         (*movqi_h8sx, *movhi_h8300, *movhi_h8300hs, movhi): Likewise.
1314         (movsi, *movsi_h8300, *movsi_h8300hs): Likewise.
1315         (*pushqi1_h8300): Rename from pushqi1_h8300; use PRE_MODIFY.
1316         (*pushqi1_h8300hs_<P>): Macroize from pushqi1_h8300hs_advanced
1317         and pushqi1_h8300hs_normal; use PRE_MODIFY and
1318         register_no_sp_elim_operand.
1319         (*pushhi1_h8300hs_<P>): Similarly.
1320         (pushqi1, pushhi1, pushhi1_h8300): Remove.
1321         * config/h8300/predicates.md (register_no_sp_elim_operand): New.
1322
1323 2011-08-02  Richard Henderson  <rth@redhat.com>
1324
1325         PR target/49881
1326         * config/avr/avr.md (push<MPUSH>1): Don't constrain the operand.
1327
1328 2011-08-02  Jakub Jelinek  <jakub@redhat.com>
1329
1330         * c-parser.c (enum c_parser_prec): New enum, moved from within
1331         c_parser_binary_expression.
1332         (c_parser_binary_expression): Add PREC argument.  Stop parsing
1333         if operator has lower or equal precedence than PREC.
1334         (c_parser_conditional_expression, c_parser_omp_for_loop): Adjust
1335         callers.
1336         (c_parser_omp_atomic): Handle parsing OpenMP 3.1 atomics.
1337         Adjust c_finish_omp_atomic caller.
1338         (c_parser_omp_taskyield): New function.
1339         (c_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
1340         (c_parser_omp_clause_name): Handle final and mergeable clauses.
1341         (c_parser_omp_clause_final, c_parser_omp_clause_mergeable): New
1342         functions.
1343         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
1344         and PRAGMA_OMP_CLAUSE_MERGEABLE.
1345         (OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
1346         (c_parser_omp_clause_reduction): Handle min and max.
1347         * c-typeck.c (c_finish_omp_clauses): Don't complain about
1348         const qualified predetermined vars in firstprivate clause.
1349         andle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
1350         Handle MIN_EXPR and MAX_EXPR.
1351         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FINAL
1352         and OMP_CLAUSE_MERGEABLE.
1353         (dump_generic_node): Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD
1354         and OMP_ATOMIC_CAPTURE_NEW.
1355         * tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FINAL and
1356         OMP_CLAUSE_MERGEABLE.
1357         (omp_clause_code_name): Likewise.
1358         (walk_tree_1): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
1359         * tree.h (enum omp_clause_code): Add OMP_CLAUSE_FINAL
1360         and OMP_CLAUSE_MERGEABLE.
1361         (OMP_CLAUSE_FINAL_EXPR): Define.
1362         * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FINAL and
1363         OMP_CLAUSE_MERGEABLE.
1364         (expand_task_call): Likewise.
1365         (expand_omp_atomic_load, expand_omp_atomic_store): New functions.
1366         (expand_omp_atomic_fetch_op): Handle cases where old or new
1367         value is needed afterwards.
1368         (expand_omp_atomic): Call expand_omp_atomic_load resp.
1369         expand_omp_atomic_store.
1370         * gimplify.c (gimplify_omp_atomic, gimplify_expr): Handle
1371         OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and OMP_ATOMIC_CAPTURE_NEW.
1372         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
1373         OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
1374         * tree-nested.c (convert_nonlocal_omp_clauses,
1375         convert_local_omp_clauses): Likewise.
1376         * tree.def (OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD,
1377         OMP_ATOMIC_CAPTURE_NEW): New.
1378         * gimple.h (GF_OMP_ATOMIC_NEED_VALUE): New.
1379         (gimple_omp_atomic_need_value_p, gimple_omp_atomic_set_need_value):
1380         New inlines.
1381         * omp-builtins.def (BUILT_IN_GOMP_TASKYIELD): New builtin.
1382         * doc/generic.texi: Mention OMP_CLAUSE_COLLAPSE,
1383         OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
1384
1385 2011-08-02  Kai Tietz  <ktietz@redhat.com>
1386
1387         * gimple.c (canonicalize_cond_expr_cond): Handle cast from
1388         boolean-type.
1389         (ssa_forward_propagate_and_combine): Interprete result of
1390         forward_propagate_comparison.
1391         * gcc/gimple-fold.c (fold_gimple_assign): Add canonicalization for
1392         boolean-typed operands for comparisons.
1393
1394 2011-08-02  Georg-Johann Lay  <avr@gjlay.de>
1395
1396         * config/avr/libgcc.S: Gather related function in the
1397         same input section.
1398         (__mulqihi3, __mulqihi3, __divmodqi4, __divmodhi4, __udivmodsi4,
1399         __divmodsi4): Use XCALL/XJMP instead of rcall/rjmp for external
1400         references.
1401         (__udivmodqi4, __divmodqi4, __udivmodhi4, __divmodhi4,
1402         __udivmodsi4, __divmodsi4, __prologue_saves__,
1403         __epilogue_restores__, _exit, __tablejump2__, __tablejump__,
1404         __do_copy_data, __do_clear_bss, __do_global_ctors,
1405         __do_global_dtors, __tablejump_elpm__): Enclose in DEFUN/ENDF.
1406
1407 2011-08-02  Uros Bizjak  <ubizjak@gmail.com>
1408
1409         PR target/47766
1410         * doc/md.texi (stack_protect_set): The pattern moves ptr_mode value.
1411         (stack_protect_test): The pattern compares ptr_mode value.
1412
1413 2011-08-02  Alan Modra  <amodra@gmail.com>
1414
1415         * config/rs6000/rs6000.c (rs6000_emit_prologue): Add REG_CFA_RESTORE
1416         note for save_LR_around_toc_setup sequence.
1417
1418 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
1419
1420         * config/i386/lzcntintrin.h (__lzcnt64): Replace long with long long.
1421
1422 2011-08-01  Sebastian Pop  <sebastian.pop@amd.com>
1423             Joseph Myers  <joseph@codesourcery.com>
1424
1425         * Makefile.in (hwint.o): Depend on DIAGNOSTIC_CORE_H.
1426         * hwint.c: Include diagnostic-core.h.
1427         (abs_hwi): New.
1428         (gcd): Moved here...
1429         (pos_mul_hwi): New.
1430         (mul_hwi): New.
1431         (least_common_multiple): Moved here...
1432         * hwint.h (gcd): ... from here.
1433         (least_common_multiple): ... from here.
1434         (HOST_WIDE_INT_MIN): New.
1435         (HOST_WIDE_INT_MAX): New.
1436         (abs_hwi): Declared.
1437         (gcd): Declared.
1438         (pos_mul_hwi): Declared.
1439         (mul_hwi): Declared.
1440         (least_common_multiple): Declared.
1441         * omega.c (check_pos_mul): Removed.
1442         (check_mul): Removed.
1443         (omega_solve_geq): Use pos_mul_hwi instead of check_pos_mul and
1444         mul_hwi instead of check_mul.
1445
1446 2011-08-01  Richard Henderson  <rth@redhat.com>
1447
1448         PR target/49881
1449         * config/avr/avr.h (PUSH_ROUNDING): New.
1450         * config/avr/avr.md (pushqi1): Rename from *pushqi.
1451         (*pushhi, *pushsi, *pushsf): Remove.
1452         (MPUSH): New mode iterator.
1453         (push<MPUSH>1): New expander.
1454
1455 2011-08-01  Anatoly Sokolov  <aesok@post.ru>
1456
1457         * config/mmix/mmix.h (PREFERRED_RELOAD_CLASS,
1458         PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
1459         * config/mmix/mmix-protos.h (mmix_preferred_reload_class,
1460         mmix_preferred_output_reload_class): Remove.
1461         * config/mmix/mmix.c (mmix_preferred_reload_class,
1462         mmix_preferred_output_reload_class): Make static. Change rclass
1463         argument and return type to reg_class_t.
1464         (TARGET_PREFERRED_RELOAD_CLASS,
1465         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
1466
1467 2011-08-01  Joern Rennecke  <joern.rennecke@embecosm.com>
1468
1469         * mode-switching.c (optimize_mode_switching): Fix bug in MODE_AFTER
1470         handling.
1471
1472 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
1473
1474         PR target/47766
1475         * config/i386/i386.md (PTR): New.
1476         (stack_protect_set: Check TARGET_LP64 instead of TARGET_64BIT.
1477         (stack_protect_test): Likewise.
1478         (stack_protect_set_<mode>): Replace ":P" with ":PTR".
1479         (stack_tls_protect_set_<mode>): Likewise.
1480         (stack_tls_protect_test_<mode>): Likewise.
1481
1482 2011-08-01  Uros Bizjak  <ubizjak@gmail.com>
1483
1484         PR target/49927
1485         * config/i386/i386.c (ix86_address_subreg_operand): New.
1486         (ix86_decompose_address): Use ix86_address_subreg_operand.
1487         (ix86_legitimate_address_p): Do not assert that subregs satisfy
1488         register_no_elim_operand in DImode.
1489
1490 2011-08-01  Ira Rosen  <ira.rosen@linaro.org>
1491
1492         PR tree-optimization/49926
1493         * tree-vect-loop.c (vect_is_slp_reduction): Check that a statement
1494         in a chain doesn't have uses both inside and outside the loop.
1495
1496 2011-08-01  Georg-Johann Lay  <avr@gjlay.de>
1497
1498         * config/avr/avr.h (mcu_type_s): Add errata_skip field.
1499         * config/avr/avr-devices.c (avr_mcu_types): Use it.
1500         * config/avr/avr-mcus.def (AVR_MCU): Use it.
1501         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it to builtin
1502         define __AVR_ERRATA_SKIP__ and __AVR_ERRATA_SKIP_JMP_CALL__.
1503         * config/avr/libgcc.S (__mulshisi3, __ffshi2, __fmulsu_exit):
1504         Use __AVR_ERRATA_SKIP_JMP_CALL__ instead of __AVR_HAVE_JMP_CALL__
1505         to detect if XJMP must not be skipped.
1506
1507 2011-08-02  Alan Modra  <amodra@gmail.com>
1508
1509         * config/rs6000/rs6000-protos.h (rs6000_save_toc_in_prologue_p):
1510         Delete.
1511         * config/rs6000/rs6000.c (rs6000_save_toc_in_prologue_p): Make static.
1512         (rs6000_emit_prologue): Don't prematurely return when
1513         TARGET_SINGLE_PIC_BASE.  Don't emit eh_frame info in
1514         save_toc_in_prologue case.
1515         (rs6000_call_indirect_aix): Only disallow save_toc_in_prologue for
1516         calls_alloca.
1517
1518 2011-08-01  Georg-Johann Lay  <avr@gjlay.de>
1519
1520         * config/avr/avr-devices.c: Delete SVN property svn:executable.
1521         * config/avr/predicates.md: Ditto.
1522         * config/avr/driver-avr.c: Ditto.
1523         * config/avr/genopt.sh: Set SVN property svn:executable to *.
1524
1525 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
1526
1527         * calls.c (emit_library_call_value_1): Declare size only if
1528         BLOCK_REG_PADDING is defined.
1529
1530 2011-08-01  Kirill Yukhin  <kirill.yukhin@intel.com>
1531
1532         PR target/49547
1533         * config.gcc (i[34567]86-*-*): Replace abmintrin.h with lzcntintrin.h.
1534         (x86_64-*-*): Likewise.
1535         * config/i386/i386.opt (mlzcnt): New.
1536         * config/i386/abmintrin.h: File removed.
1537         (__lzcnt_u16, __lzcnt, __lzcnt_u64): Moved to ...
1538         * config/i386/lzcntintrin.h: ... here.  New file.
1539         (__lzcnt): Rename to ...
1540         (__lzcnt32): ... this.
1541         * config/i386/bmiintrin.h (head): Update copyright year.
1542         (__lzcnt_u16): Removed.
1543         (__lzcnt_u32): Likewise.
1544         (__lzcnt_u64): Likewise.
1545         * config/i386/x86intrin.h: Include lzcntintrin.h when __LZCNT__
1546         is defined, remove abmintrin.h.
1547         * config/i386/cpuid.h (bit_LZCNT): New.
1548         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
1549         LZCNT feature.
1550         * config/i386/i386-c.c (ix86_target_macros_internal): Define
1551         __LZCNT__ if needed.
1552         * config/i386/i386.c (ix86_target_string): New option -mlzcnt.
1553         (ix86_option_override_internal): Handle LZCNT option.
1554         (ix86_valid_target_attribute_inner_p): Likewise.
1555         (struct builtin_description bdesc_args) <IX86_BUILTIN_CLZS>: Update.
1556         * config/i386/i386.h (TARGET_LZCNT): New.
1557         (CLZ_DEFINED_VALUE_AT_ZERO): Update.
1558         * config/i386/i386.md (clz<mode>2): Update insn constraint.
1559         (clz<mode>2_lzcnt): Likewise.
1560         * doc/invoke.texi: Mention -mlzcnt option.
1561         * doc/extend.texi: Likewise.
1562
1563 2011-08-01  Julian Brown  <julian@codesourcery.com>
1564
1565         * configure.ac (fixed-point): Add ARM support.
1566         * configure: Regenerate.
1567         * config/arm/arm.c (arm_fixed_mode_set): New struct.
1568         (arm_set_fixed_optab_libfunc): New.
1569         (arm_set_fixed_conv_libfunc): New.
1570         (arm_init_libfuncs): Initialise fixed-point helper libfuncs with
1571         ARM-specific names.
1572         (aapcs_libcall_value): Return sub-word-size fixed-point libcall
1573         return values in SImode.
1574         (arm_return_in_msb): Return fixed-point types in the msb.
1575         (arm_pad_reg_upwards, arm_pad_arg_upwards): Pad fixed-point types
1576         upwards.
1577         (arm_scalar_mode_supported_p): Support fixed-point modes.
1578         (arm_vector_mode_supported_p): Support vector fixed-point modes.
1579         * config/arm/arm.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE)
1580         (LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE)
1581         (SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE)
1582         (LONG_LONG_ACCUM_TYPE_SIZE, MAX_FIXED_MODE_SIZE): Define.
1583         * config/arm/iterators.md (FIXED, ADDSUB, UQADDSUB, QADDSUB, QMUL):
1584         New mode iterators.
1585         (qaddsub_suf): New mode attribute.
1586         * config/arm/arm-modes.def (FRACT, UFRACT, ACCUM, UACCUM): Declare
1587         vector modes.
1588         * config/arm/predicates.md (sat_shift_operator): New predicate.
1589         * config/arm/arm-fixed.md: New.
1590         * config/arm/arm.md: Include arm-fixed.md.
1591         * config/arm/t-arm (MD_INCLUDES): Add arm-fixed.md.
1592
1593 2011-08-01  Julian Brown  <julian@codesourcery.com>
1594
1595         * calls.c (emit_library_call_value_1): Support padding for libcall
1596         arguments and return values.
1597         * config/arm/arm.c (arm_pad_arg_upward): Pad half-float values
1598         downwards in big-endian mode.
1599
1600 2011-08-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1601
1602         PR debug/49887
1603         * config/sol2.c (solaris_code_end): Rename to solaris_file_end.
1604         * config/sol2-protos.h: Likewise.
1605         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Don't call
1606         solaris_code_end.
1607         * config/i386/sol2.h [!USE_GAS] (TARGET_ASM_FILE_END): Redefine.
1608         * config/sparc/sparc.c (sparc_file_end) [TARGET_SOLARIS]: Call
1609         solaris_file_end.
1610         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Remove.
1611
1612 2011-08-01  Julian Brown  <julian@codesourcery.com>
1613
1614         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Support FIXED_CST.
1615
1616 2011-08-01  Julian Brown  <julian@codesourcery.com>
1617
1618         * final.c (output_addr_const): Print fixed-point constants as
1619         decimal not hex.
1620
1621 2011-08-01  Richard Guenther  <rguenther@suse.de>
1622
1623         * stor-layout.c (initialize_sizetypes): Properly sign-extend
1624         bitsiztype TYPE_MAX_VALUE.
1625
1626 2011-08-01  Julian Brown  <julian@codesourcery.com>
1627
1628         * optabs.c (prepare_cmp_insn): Use correct biasing for fixed-point
1629         comparison helpers.
1630
1631 2011-07-31  Richard Henderson  <rth@redhat.com>
1632
1633         * config/h8300/crti.asm: Add flags to .section directive.
1634         * config/h8300/crtn.asm: Likewise.
1635
1636 2011-07-31  Richard Henderson  <rth@redhat.com>
1637
1638         * stor-layout.c (initialize_sizetypes): Handle unsigned short.
1639         * tree.c (build_common_tree_nodes): Likewise.
1640
1641 2011-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
1642
1643         PR target/49880
1644         * config/sh/sh.md (udivsi3_i1): Enable for TARGET_DIVIDE_CALL_DIV1.
1645         (divsi3_i1): Likewise.
1646
1647 2011-07-31  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1648
1649         PR tree-optimization/49749
1650         * tree-ssa-reassoc.c (get_rank): New forward declaration.
1651         (PHI_LOOP_BIAS): New macro.
1652         (phi_rank): New function.
1653         (loop_carried_phi): Likewise.
1654         (propagate_rank): Likewise.
1655         (get_rank): Add calls to phi_rank and propagate_rank.
1656
1657 2011-07-31  H.J. Lu  <hongjiu.lu@intel.com>
1658
1659         * config/i386/x86-64.h (SIZE_TYPE): Check TARGET_LP64 instead
1660         of TARGET_64BIT.
1661         (PTRDIFF_TYPE): Likewise.
1662
1663 2011-07-31  Uros Bizjak  <ubizjak@gmail.com>
1664
1665         PR target/49920
1666         * config/i386/i386.md (strset): Do not expand strset_singleop
1667         when %eax or $edi are fixed.
1668         (*strsetdi_rex_1): Disable when %eax or %edi are fixed.
1669         (*strsetsi_1): Ditto.
1670         (*strsethi_1): Ditto.
1671         (*strsetqi_1): Ditto.
1672         (*rep_stosdi_rex64): Disable when %eax, %ecx or %edi are fixed.
1673         (*rep_stossi): Ditto.
1674         (*rep_stosqi): Ditto.
1675         (*strlenqi_1): Ditto.
1676         (cmpstrnsi): Also fail when %ecx is fixed.
1677         (*cmpstrnqi_nz_1): Disable when %ecx, %esi or %edi are fixed.
1678         (*cmpstrnqi_1): Ditto.
1679         (*strmovdi_rex_1): Disable when %esi or %edi are fixed.
1680         (*strmovsi_1): Ditto.
1681         (*strmovhi_1): Ditto.
1682         (*strmovqi_1): Ditto.
1683         (*rep_movdi_rex64): Disable when %ecx, %esi or %edi are fixed.
1684         (*rep_movsi): Ditto.
1685         (*rep_movqi): Ditto.
1686
1687 2011-07-31  Mikael Pettersson  <mikpe@it.uu.se>
1688
1689         PR target/47908
1690         * config/m68k/m68k.c (m68k_override_options_after_change): New function.
1691         Disable instruction scheduling for non-ColdFire targets.
1692         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
1693
1694 2011-07-31  Revital Eres  <revital.eres@linaro.org>
1695
1696         * ddg.c (create_ddg_dep_from_intra_loop_link): Remove the creation
1697         of anti-dep edge from a branch.
1698         (add_cross_iteration_register_deps): Create anti-dep edge from
1699         a branch.
1700
1701 2011-07-31  Revital Eres  <revital.eres@linaro.org>
1702
1703         * modulo-sched.c: Change comment.
1704         (reset_sched_times): Fix print message.
1705         (print_partial_schedule): Add print info.
1706
1707 2011-07-31  Tom de Vries  <tom@codesourcery.com>
1708
1709         PR middle-end/43513
1710         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Use max of
1711         get_object_alignment and TYPE_ALIGN.
1712
1713 2011-07-30  Tom de Vries  <tom@codesourcery.com>
1714
1715         PR middle-end/43513
1716         * tree-ssa-dce.c (ref_may_be_aliased): Add assert.
1717         (propagate_necessity): Handle WITH_SIZE_EXPR call arg.
1718
1719 2011-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1720
1721         * config/mips/driver-native.c [__sgi__]: Include <invent.h>,
1722         <sys/sbd.h>.
1723         (cpu_types): New array.
1724         (cputype): New function.
1725         (host_detect_local_cpu): Only define buf, f if !__sgi__.
1726         Use scaninvent instead of /proc/cpuinfo if __sgi__.
1727         * config.host: Also use driver-native.o, mips/x-native on
1728         mips-sgi-irix*.
1729         * config/mips/iris6.h [__mips__] (host_detect_local_cpu): Declare.
1730         (EXTRA_SPEC_FUNCTIONS, MARCH_MTUNE_NATIVE_SPECS): Define.
1731         (DRIVER_SELF_SPECS): Add MARCH_MTUNE_NATIVE_SPECS.
1732
1733 2011-07-29  Jakub Jelinek  <jakub@redhat.com>
1734
1735         PR middle-end/49897
1736         PR middle-end/49898
1737         * omp-low.c (use_pointer_for_field): If disallowing copy-in/out
1738         in nested parallel and outer is a gimple_reg, mark it as addressable
1739         and set its bit in task_shared_vars bitmap too.
1740
1741 2011-07-29  Uros Bizjak  <ubizjak@gmail.com>
1742
1743         * config/i386/predicates.md (tp_or_register_operand): Remove predicate.
1744
1745 2011-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1746
1747         * config/alpha/driver-alpha.c (IMPLVER_EV4_FAMILY,
1748         IMPLVER_EV5_FAMILY, IMPLVER_EV6_FAMILY, IMPLVER_EV7_FAMILY): Define.
1749         (AMASK_BWX, AMASK_FIX, AMASK_CIX, AMASK_MVI, AMASK_PRECISE,
1750         AMASK_LOCKPFTCHOK): Define.
1751         (host_detect_local_cpu): Remove buf, f, cpu_names.
1752         Define cpu_types, implver, amask.
1753         Use __builtin_alpha_implver, __builtin_alpha_amask to determine
1754         native CPU.
1755         * config.host: Also use driver-alpha.o, alpha/x-alpha on
1756         alpha*-dec-osf*.
1757         * config/alpha/osf5.h [__alpha__ || __alpha]
1758         (host_detect_local_cpu): Declare.
1759         (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS)
1760         (DRIVER_SELF_SPECS): Define.
1761
1762 2011-07-29  Uros Bizjak  <ubizjak@gmail.com>
1763
1764         PR target/47715
1765         * config/i386/i386.md (*load_tp_x32): New.
1766         (*load_tp_x32_zext): Ditto.
1767         (*add_tp_x32): Ditto.
1768         (*add_tp_x32_zext): Ditto.
1769         (*load_tp_<mode>): Disable for TARGET_X32 targets.
1770         (*add_tp_<mode>): Ditto.
1771         * config/i386/i386.c (get_thread_pointer): Load thread pointer in
1772         ptr_mode and convert to Pmode if needed.
1773
1774 2011-07-29  Georg-Johann Lay  <avr@gjlay.de>
1775
1776         PR target/49687
1777         * config/avr/avr.md (mulsi3, *mulsi3, mulu<mode>si3,
1778         muls<mode>si3, mulohisi3, mulhisi3, umulhisi3, usmulhisi3,
1779         *<any_extend:extend_prefix><any_extend2:extend_prefix>mul<QIHI:mode><QIHI2:mode>si3):
1780         Add X to register footprint: Clobber r26/r27.
1781
1782 2011-07-29  Richard Guenther  <rguenther@suse.de>
1783
1784         * builtins.c (fold_builtin_signbit): Build the comparison
1785         with a proper type.
1786
1787 2011-07-29  Richard Guenther  <rguenther@suse.de>
1788
1789         PR tree-optimization/49893
1790         * tree-predcom.c (suitable_reference_p): Volatile references
1791         are not suitable.
1792
1793 2011-07-29  Georg-Johann Lay  <avr@gjlay.de>
1794
1795         PR target/49313
1796         * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
1797         (__ctzsi2): Result for 0 may be undefined.
1798         (__ctzhi2): Result for 0 may be undefined.
1799         (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
1800         (__popcountsi2): Ditto. And don't clobber r26.
1801         (__popcountdi2): Ditto. And don't clobber r27.
1802         * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
1803         (parityhi2): New expand.
1804         (paritysi2): New expand.
1805         (popcounthi2): New expand.
1806         (popcountsi2): New expand.
1807         (clzhi2): New expand.
1808         (clzsi2): New expand.
1809         (ctzhi2): New expand.
1810         (ctzsi2): New expand.
1811         (ffshi2): New expand.
1812         (ffssi2): New expand.
1813         (copysignsf3): New insn.
1814         (bswapsi2): New expand.
1815         (*parityhi2.libgcc): New insn.
1816         (*parityqihi2.libgcc): New insn.
1817         (*paritysihi2.libgcc): New insn.
1818         (*popcounthi2.libgcc): New insn.
1819         (*popcountsi2.libgcc): New insn.
1820         (*popcountqi2.libgcc): New insn.
1821         (*popcountqihi2.libgcc): New insn-and-split.
1822         (*clzhi2.libgcc): New insn.
1823         (*clzsihi2.libgcc): New insn.
1824         (*ctzhi2.libgcc): New insn.
1825         (*ctzsihi2.libgcc): New insn.
1826         (*ffshi2.libgcc): New insn.
1827         (*ffssihi2.libgcc): New insn.
1828         (*bswapsi2.libgcc): New insn.
1829
1830 2011-07-29  Richard Guenther  <rguenther@suse.de>
1831
1832         * tree-vrp.c (get_value_range): Only set parameter default
1833         definitions to varying, leave others at undefined.
1834         (extract_range_from_binary_expr): Fix undefined handling.
1835         (vrp_visit_phi_node): Handle merged undefined state.
1836
1837 2011-07-29  Wei Guozhi  <carrot@google.com>
1838
1839         PR rtl-optimization/49799
1840         * combine.c (make_compound_operation): Check if the bit field is valid
1841         before change it to bit field extraction.
1842
1843 2011-07-29  Bernd Schmidt  <bernds@codesourcery.com>
1844
1845         PR rtl-optimization/49891
1846         * cfgrtl.c (force_nonfallthru_and_redirect): Set JUMP_LABEL for
1847         newly created returnjumps.
1848
1849 2011-07-28  DJ Delorie  <dj@redhat.com>
1850
1851         * expr.c (expand_expr_addr_expr_1): Detect a user request for a
1852         local frame in a naked function, and produce a suitable error for
1853         that specific case.
1854
1855         * config/m32c/m32c.c (m32c_secondary_reload_class): Allow PSI
1856         registers to be reloaded in HI classes when the target is HI.
1857
1858 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
1859
1860         * graphite-clast-to-gimple.c: Replace v1, v2, lb, ub with
1861         bound_one, bound_two.
1862
1863 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
1864
1865         PR middle-end/48648
1866         * graphite-clast-to-gimple.c (clast_get_body_of_loop): Handle
1867         CLAST assignments.
1868         (translate_clast): Same.
1869         (translate_clast_assignment): New.
1870
1871 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
1872
1873         PR tree-optimization/49876
1874         * sese.c (rename_uses): Do not return false on gloog_error: set
1875         the new_expr to integer_zero_node and continue code generation.
1876         (graphite_copy_stmts_from_block): Remove early exit on gloog_error.
1877
1878 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
1879
1880         PR debug/49846
1881         * var-tracking.c (prepare_call_arguments): For non-MODE_INT stack
1882         arguments also check if they aren't initialized with a MODE_INT
1883         mode of the same size.
1884
1885 2011-07-28  Aldy Hernandez  <aldyh@redhat.com>
1886
1887         * expr.c (get_bit_range): Handle *MEM_REF's.
1888
1889 2011-07-28  Bernd Schmidt  <bernds@codesourcery.com>
1890
1891         * rtlanal.c (tablejump_p): False for returns.
1892         * reorg.c (first_active_target_insn): New static function.
1893         (find_end_label): Set JUMP_LABEL for a new returnjump.
1894         (optimize_skip, get_jump_flags, rare_destination,
1895         mostly_true_jump, get_branch_condition,
1896         steal_delay_list_from_target, own_thread_p,
1897         fill_simple_delay_slots, follow_jumps, fill_slots_from_thread,
1898         fill_eager_delay_slots, relax_delay_slots, make_return_insns,
1899         dbr_schedule): Adjust to handle ret_rtx in JUMP_LABELs.
1900         * jump.c (delete_related_insns): Likewise.
1901         (jump_to_label_p): New function.
1902         (redirect_target): New static function.
1903         (redirect_exp_1): Use it.  Adjust to handle ret_rtx in JUMP_LABELS.
1904         (redirect_jump_1): Assert that the new label is nonnull.
1905         (redirect_jump): Likewise.
1906         (redirect_jump_2): Check for ANY_RETURN_P rather than NULL labels.
1907         * ifcvt.c (find_if_case_1): Take care when redirecting jumps to the
1908         exit block.
1909         (dead_or_predicable): Change NEW_DEST arg to DEST_EDGE.  All callers
1910         changed.  Ensure that the right label is passed to redirect_jump.
1911         * function.c (emit_return_into_block,
1912         thread_prologue_and_epilogue_insns): Ensure new returnjumps have
1913         ret_rtx in their JUMP_LABEL.
1914         * print-rtl.c (print_rtx): Handle ret_rtx in a JUMP_LABEL.
1915         * emit-rtl.c (skip_consecutive_labels): Allow the caller to
1916         pass ret_rtx as label.
1917         * cfglayout.c (fixup_reorder_chain): Use
1918         force_nonfallthru_and_redirect rather than force_nonfallthru.
1919         (duplicate_insn_chain): Copy JUMP_LABELs for returns.
1920         * rtl.h (ANY_RETURN_P): New macro.
1921         (jump_to_label_p): Declare.
1922         * resource.c (find_dead_or_set_registers): Handle ret_rtx in
1923         JUMP_LABELs.
1924         (mark_target_live_regs): Likewise.
1925         * basic-block.h (force_nonfallthru_and_redirect): Declare.
1926         * cfgrtl.c (force_nonfallthru_and_redirect): No longer static.
1927         * config/alpha/alpha.c (alpha_tablejump_addr_vec,
1928         alpha_tablejump_best_label): Remove functions.
1929         * config/alpha/alpha-protos.c (alpha_tablejump_addr_vec,
1930         alpha_tablejump_best_label): Remove declarations.
1931         * config/sh/sh.c (barrier_align, split_branches): Adjust for
1932         ret_rtx in JUMP_LABELs.
1933         * config/arm/arm.c (is_jump_table): Likewise.
1934
1935 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
1936
1937         * config/i386/predicates.md (pic_32bit_opreand): Do not define as
1938         special predicate.  Remove explicit mode checks.
1939
1940 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
1941
1942         * dwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize
1943         DW_AT_data_member_location containing just DW_OP_plus_uconst.
1944
1945         PR debug/49871
1946         * dwarf2out.c (size_of_die, value_format, output_die): Use
1947         DW_FORM_udata instead of DW_FORM_data[48] for
1948         dw_val_class_unsigned_const DW_AT_data_member_location for DWARF 3.
1949
1950 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
1951
1952         * config/i386/i386.md (*tls_global_dynamic_64): Update
1953         length attribute.
1954
1955 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
1956
1957         PR target/47715
1958         * config/i386/i386.md (*tls_global_dynamic_64): Remove mode from
1959         tls_symbolic_operand check.  Update code sequence for TARGET_X32.
1960         (tls_global_dynamic_64): Remove mode from tls_symbolic_operand check.
1961         (tls_dynamic_gnu2_64): Ditto.
1962         (*tls_dynamic_gnu2_lea_64): Ditto.
1963         (*tls_dynamic_gnu2_call_64): Ditto.
1964         (*tls_dynamic_gnu2_combine_64): Ditto.
1965
1966 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
1967
1968         * config.gcc: Set need_64bit_hwint to yes for x86 targets.
1969
1970 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
1971
1972         PR target/47364
1973         * config/i386/i386.md (strlen<mode>): Replace SWI48x with P.
1974
1975 2011-07-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1976
1977         * config/arm/vfp.md ("*movdf_vfp"): Handle the VFP constraints
1978         before the core constraints. Adjust attributes.
1979         ("*thumb2_movdf_vfp"): Likewise.
1980
1981 2011-07-28  Kai Tietz  <ktietz@redhat.com>
1982
1983         * tree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case.
1984         (simplify_truth_ops_using_ranges): Likewise.
1985         (build_assert_expr_for): Likewise.
1986         (build_assert_expr_for_1): Remove TRUTH_NOT_EXPR case
1987         and handle BIT_NOT_EXPR for truth-operation.
1988
1989 2011-07-28  Georg-Johann Lay  <avr@gjlay.de>
1990
1991         PR target/49313
1992         Undo r176835 from trunk
1993         2011-07-27  Georg-Johann Lay
1994
1995 2011-07-28  Georg-Johann Lay  <avr@gjlay.de>
1996
1997         PR target/49687
1998         * config/avr/t-avr (LIB1ASMFUNCS): Remove _xmulhisi3_exit.
1999         Add _muluhisi3, _mulshisi3, _usmulhisi3.
2000         * config/avr/libgcc.S (__mulsi3): Rewrite.
2001         (__mulhisi3): Rewrite.
2002         (__umulhisi3): Rewrite.
2003         (__usmulhisi3): New.
2004         (__muluhisi3): New.
2005         (__mulshisi3): New.
2006         (__mulohisi3): New.
2007         (__mulqi3, __mulqihi3, __umulqihi3, __mulhi3): Use DEFUN/ENDF to
2008         declare.
2009         * config/avr/predicates.md (pseudo_register_operand): Rewrite.
2010         (pseudo_register_or_const_int_operand): New.
2011         (combine_pseudo_register_operand): New.
2012         (u16_operand): New.
2013         (s16_operand): New.
2014         (o16_operand): New.
2015         * config/avr/avr.c (avr_rtx_costs): Handle costs for mult:SI.
2016         * config/avr/avr.md (QIHI, QIHI2): New mode iterators.
2017         (any_extend, any_extend2): New code iterators.
2018         (extend_prefix): New code attribute.
2019         (mulsi3): Rewrite. Turn insn to expander.
2020         (mulhisi3): Ditto.
2021         (umulhisi3): Ditto.
2022         (usmulhisi3): New expander.
2023         (*mulsi3): New insn-and-split.
2024         (mulu<mode>si3): New insn-and-split.
2025         (muls<mode>si3): New insn-and-split.
2026         (mulohisi3): New insn-and-split.
2027         (*uumulqihisi3, *uumulhiqisi3, *uumulhihisi3, *uumulqiqisi3,
2028         *usmulqihisi3, *usmulhiqisi3, *usmulhihisi3, *usmulqiqisi3,
2029         *sumulqihisi3, *sumulhiqisi3, *sumulhihisi3, *sumulqiqisi3,
2030         *ssmulqihisi3, *ssmulhiqisi3, *ssmulhihisi3, *ssmulqiqisi3): New
2031         insn-and-split.
2032         (*mulsi3_call): Rewrite.
2033         (*mulhisi3_call): Rewrite.
2034         (*umulhisi3_call): Rewrite.
2035         (*usmulhisi3_call): New insn.
2036         (*muluhisi3_call): New insn.
2037         (*mulshisi3_call): New insn.
2038         (*mulohisi3_call): New insn.
2039         (extendqihi2): Use combine_pseudo_register_operand as predicate
2040         for operand 1.
2041         (extendqisi2): Ditto.
2042         (zero_extendqihi2): Ditto.
2043         (zero_extendqisi2): Ditto.
2044         (zero_extendhisi2): Ditto.
2045         (extendhisi2): Ditto. Don't early-clobber operand 0.
2046
2047 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
2048
2049         * config/i386/i386.c (add->lea splitter): Add SWI mode to PLUS RTX.
2050
2051 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
2052
2053         PR tree-optimization/49471
2054         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned
2055         iv only when the largest type is unsigned.  Do not call
2056         lang_hooks.types.type_for_size.
2057
2058 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
2059
2060         PR middle-end/45450
2061         * graphite-poly.c (apply_poly_transforms): Disable legality check
2062         after an openscop read.
2063
2064 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
2065
2066         PR middle-end/47691
2067         * graphite-clast-to-gimple.c (translate_clast_user): Update use of
2068         copy_bb_and_scalar_dependences.
2069         * sese.c (rename_uses): Do not call gcc_assert.  Set gloog_error.
2070         (graphite_copy_stmts_from_block): Update call to rename_uses.
2071         (copy_bb_and_scalar_dependences): Update call to
2072         graphite_copy_stmts_from_block.
2073         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
2074
2075 2011-07-27  Georg-Johann Lay  <avr@gjlay.de>
2076
2077         PR target/49313
2078         * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
2079         (__ctzsi2): Result for 0 may be undefined.
2080         (__ctzhi2): Result for 0 may be undefined.
2081         (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
2082         (__popcountsi2): Ditto. And don't clobber r26.
2083         (__popcountdi2): Ditto. And don't clobber r27.
2084         * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
2085         (parityhi2): New expand.
2086         (paritysi2): New expand.
2087         (popcounthi2): New expand.
2088         (popcountsi2): New expand.
2089         (clzhi2): New expand.
2090         (clzsi2): New expand.
2091         (ctzhi2): New expand.
2092         (ctzsi2): New expand.
2093         (ffshi2): New expand.
2094         (ffssi2): New expand.
2095         (copysignsf3): New insn.
2096         (bswapsi2): New expand.
2097         (*parityhi2.libgcc): New insn.
2098         (*parityqihi2.libgcc): New insn.
2099         (*paritysihi2.libgcc): New insn.
2100         (*popcounthi2.libgcc): New insn.
2101         (*popcountsi2.libgcc): New insn.
2102         (*popcountqi2.libgcc): New insn.
2103         (*popcountqihi2.libgcc): New insn-and-split.
2104         (*clzhi2.libgcc): New insn.
2105         (*clzsihi2.libgcc): New insn.
2106         (*ctzhi2.libgcc): New insn.
2107         (*ctzsihi2.libgcc): New insn.
2108         (*ffshi2.libgcc): New insn.
2109         (*ffssihi2.libgcc): New insn.
2110         (*bswapsi2.libgcc): New insn.
2111
2112 2011-07-27  Uros Bizjak  <ubizjak@gmail.com>
2113
2114         * config/i386/i386.c (ix86_expand_move): Do not explicitly check
2115         the mode of symbolic_opreand RTXes.
2116
2117 2011-07-27  Uros Bizjak  <ubizjak@gmail.com>
2118
2119         * config/i386/predicates.md (x86_64_movabs_operand): Return false
2120         for pic_32bit_operand RTXes.
2121         * config/i386/i386.c (ix86_expand_move): Check x86_64_movabs_operand
2122         in DImode.
2123
2124 2011-07-27  Kai Tietz  <ktietz@redhat.com>
2125
2126         * config/i386/i386.c (ix86_option_override_internal): Allow -mabi
2127         for 32-bit, too.
2128         (ix86_handle_abi_attribute): Allow function attributes
2129         ms_abi/sysv_abi in 32-bit mode, too.
2130         * doc/extend.texi: Adjust attribute documentation.
2131
2132         * gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR
2133         expression handling.
2134         (and_var_with_comparison_1): Likewise.
2135
2136 2011-07-27  Aldy Hernandez  <aldyh@redhat.com>
2137
2138         * params.h (ALLOW_STORE_DATA_RACES): New.
2139         * params.def (PARAM_ALLOW_STORE_DATA_RACES): New.
2140         * Makefile.in (expr.o): Depend on PARAMS_H.
2141         * machmode.h (get_best_mode): Add argument.
2142         * fold-const.c (optimize_bit_field_compare): Add argument to
2143         get_best_mode.
2144         (fold_truthop): Same.
2145         * ifcvt.c (noce_emit_move_insn): Add argument to store_bit_field.
2146         * expr.c (emit_group_store): Same.
2147         (copy_blkmode_from_reg): Same.
2148         (write_complex_part): Same.
2149         (optimize_bitfield_assignment_op): Add argument.
2150         Add argument to get_best_mode.
2151         (get_bit_range): New.
2152         (expand_assignment): Calculate maxbits and pass it down accordingly.
2153         (store_field): New argument.
2154         (expand_expr_real_2): New argument to store_field.  Include params.h.
2155         * expr.h (store_bit_field): New argument.
2156         * stor-layout.c (get_best_mode): Restrict mode expansion by taking
2157         into account maxbits.
2158         * calls.c (store_unaligned_arguments_into_pseudos): New argument
2159         to store_bit_field.
2160         * expmed.c (store_bit_field_1): New argument.  Use it.
2161         (store_bit_field): Same.
2162         (store_fixed_bit_field): Same.
2163         (store_split_bit_field): Same.
2164         (extract_bit_field_1): Pass new argument to get_best_mode.
2165         (extract_bit_field): Same.
2166         * stmt.c (store_bit_field): Pass new argument to store_bit_field.
2167         * doc/invoke.texi: Document parameter allow-store-data-races.
2168
2169 2011-07-27  Jakub Jelinek  <jakub@redhat.com>
2170
2171         * dwarf2out.c (gen_producer_string): Ignore also -fverbose-asm option.
2172
2173 2011-07-27  Kai Tietz  <ktietz@redhat.com>
2174
2175         * tree-vrp.c (extract_range_from_binary_expr): Remove
2176         TRUTH-binary cases and add new bitwise-cases.
2177         (extract_range_from_assignment): Likewise.
2178         (register_edge_assert_for_1): Likeiwise.
2179         (register_edge_assert_for): Likewise.
2180         (simplify_truth_ops_using_ranges): Likewise.
2181         (simplify_stmt_using_ranges): Likewise.
2182
2183 2011-07-26  H.J. Lu  <hongjiu.lu@intel.com>
2184
2185         PR target/47372
2186         * config/i386/i386.c (ix86_delegitimize_address): Call
2187         simplify_gen_subreg for PIC with mode of x only if modes of
2188         x and orig_x are different.
2189
2190 2011-07-26  Jakub Jelinek  <jakub@redhat.com>
2191
2192         * dwarf2out.c (output_macinfo_op): Ensure fd->filename points
2193         to GC allocated copy of the string.
2194         (dwarf2out_finish): Emit .debug_macinfo or .debug_macro sections
2195         before .debug_line, not after it.
2196
2197 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
2198
2199         PR middle-end/47046
2200         * tree-chrec.h (evolution_function_is_affine_p): Recursively call
2201         evolution_function_is_affine_p on CHREC_RIGHT.
2202
2203 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
2204
2205         * tree-data-ref.c (max_stmt_executions_tree): Do not call
2206         lang_hooks.types.type_for_size.
2207
2208 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
2209
2210         PR middle-end/47653
2211         * graphite-scop-detection.c (graphite_can_represent_loop): Discard
2212         loops using wrapping semantics.
2213
2214 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
2215
2216         PR middle-end/48805
2217         * tree-scalar-evolution.c (instantiate_scev_r): Return
2218         chrec_dont_know for ADDR_EXPR.
2219
2220 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
2221             H.J. Lu  <hongjiu.lu@intel.com>
2222
2223         PR target/47369
2224         PR target/49853
2225         * config/i386/i386.c (ix86_expand_move): Call convert_to_mode
2226         if legitimize_tls_address returned operand in wrong mode. Allow
2227         SImode and DImode symbolic operand for PIC.  Call convert_to_mode
2228         if legitimize_pic_address returned operand in wrong mode.
2229
2230 2011-07-26  Martin Jambor  <mjambor@suse.cz>
2231
2232         * tree-sra.c (tree_non_mode_aligned_mem_p): Strip conversions and
2233         return false for invariants.
2234
2235 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
2236
2237         * config/i386/i386.md (add->lea splitter): Implement using SWI
2238         mode iterator.  Change operand 2 predicate to <nonmemory_operand>.
2239         (add->lea zext splitter): Change operand 2 predicate to
2240         x86_64_nonmemory_operand.
2241
2242 2011-07-26  Richard Guenther  <rguenther@suse.de>
2243
2244         * predict.c (maybe_hot_frequency_p): Make sure a zero entry-block
2245         frequency makes everything hot.
2246
2247 2011-07-26  Richard Guenther  <rguenther@suse.de>
2248
2249         PR tree-optimization/49840
2250         * tree-vrp.c (range_fits_type_p): Properly handle full
2251         double-int precision.
2252
2253 2011-07-26  Martin Jambor  <mjambor@suse.cz>
2254
2255         PR bootstrap/49786
2256         * ipa-cp.c (update_profiling_info): Avoid overflow when updating
2257         counts.
2258         (update_specialized_profile): Likewise.
2259
2260 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
2261             H.J. Lu  <hongjiu.lu@intel.com>
2262
2263         PR target/47381
2264         PR target/49832
2265         PR target/49833
2266         * config/i386/i386.md (i): Change SImode attribute to "e".
2267         (g): Change SImode attribute to "rme".
2268         (di): Change SImode attribute to "nF".
2269         (general_operand): Change SImode attribute to x86_64_general_operand.
2270         (general_szext_operand): Change SImode attribute to
2271         x86_64_szext_general_operand.
2272         (immediate_operand): Change SImode attribute to
2273         x86_64_immediate_operand.
2274         (nonmemory_operand): Change SImode attribute to
2275         x86_64_nonmemory_operand.
2276         (*movdi_internal_rex64): Remove mode from pic_32bit_operand check.
2277         (*movsi_internal): Ditto.  Use "e" constraint in alternative 2.
2278         (*lea_1): Use SWI48 mode iterator.
2279         (*lea_1_zext): New insn pattern.
2280         (testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2.
2281         (*bt<mode>): Ditto.
2282         (*add<mode>1): Use x86_64_general_operand predicate for operand 2.
2283         Update operand constraints.
2284         (addsi_1_zext): Ditto.
2285         (*add<mode>2): Ditto.
2286         (*addsi_3_zext): Ditto.
2287         (*subsi_1_zext): Ditto.
2288         (*subsi_2_zext): Ditto.
2289         (*subsi_3_zext): Ditto.
2290         (*addsi3_carry_zext): Ditto.
2291         (*<plusminus_insn>si3_zext_cc_overflow): Ditto.
2292         (*mulsi3_1_zext): Ditto.
2293         (*andsi_1): Ditto.
2294         (*andsi_1_zext): Ditto.
2295         (*andsi_2_zext): Ditto.
2296         (*<any_or:code>si_1_zext): Ditto.
2297         (*<any_or:code>si_2_zext): Ditto.
2298         (*test<mode>_1): Use <general_operand> predicate for operand 1.
2299         (*and<mode>_2): Ditto.
2300         (mov<mode>cc): Use  <general_operand> predicate for operands 1 and 2.
2301         (add->lea splitter): Check operand modes in insn constraint.  Extend
2302         operands less than SImode wide to SImode.
2303         (add->lea zext splitter): Do not extend input operands to DImode.
2304         (*lea_general_1): Handle only QImode and HImode operands.
2305         (*lea_general_2): Ditto.
2306         (*lea_general_3): Ditto.
2307         (*lea_general_1_zext): Remove.
2308         (*lea_general_2_zext): Ditto.
2309         (*lea_general_3_zext): Ditto.
2310         (*lea_general_4): Check operand modes in insn constraint.  Extend
2311         operands less than SImode wide to SImode.
2312         (ashift->lea splitter): Ditto.
2313         * config/i386/i386.c (ix86_print_operand_address): Print address
2314         registers with 'q' modifier on 64bit targets.
2315         * config/i386/predicates.md (pic_32bit_opreand): Define as special
2316         predicate.  Reject non-SI and non-DI modes.
2317
2318 2011-07-25  Andrew Pinski  <apinski@cavium.com>
2319
2320         PR tree-opt/49671
2321         * tree-inline.c (remap_gimple_op_r): Copy TREE_THIS_VOLATILE and
2322         TREE_THIS_NOTRAP into the inner most MEM_REF.
2323         Always copy TREE_THIS_VOLATILE.
2324         * tree-sra.c (ptr_parm_has_direct_uses): Check that the lhs, rhs and
2325         arguments are not volatile references.
2326
2327 2011-07-25  Richard Henderson  <rth@redhat.com>
2328
2329         * insn-notes.def (NOTE_INSN_CFA_RESTORE_STATE): Remove.
2330         * final.c (final_scan_insn): Don't test for it.
2331         (rest_of_clean_state): Likewise.
2332
2333 2011-07-25  Richard Henderson  <rth@redhat.com>
2334
2335         PR debug/49841
2336         * config/rs6000/rs6000.c (rs6000_frame_related): Return the insn.
2337         (emit_frame_save): Likewise.
2338         (rs6000_emit_prologue): Move the FRAME_RELATED_EXPR from the save
2339         insn onto a dummy blockage insn after the join label.
2340
2341 2011-07-25  Richard Henderson  <rth@redhat.com>
2342
2343         * dwarf2cfi.c (dw_trace_info): Add ID member.
2344         (get_trace_index): Remove.  Change users to use ID member.
2345         (before_next_cfi_note): New.
2346         (connect_traces): Remove unreachable traces before the main loop.
2347         Look across one trace and generate remember/restore_state if needed.
2348
2349 2011-07-25  Richard Henderson  <rth@redhat.com>
2350
2351         * dwarf2cfi.c (dump_cfi_row, debug_cfi_row): New.
2352
2353 2011-07-25  Joern Rennecke  <joern.rennecke@embecosm.com>
2354
2355         * genattr.c (write_upcase, gen_attr <enum definition writing>):
2356         Move to ...
2357         * genattr-common.c ... here.
2358         (main): Call gen_attr.
2359         * optc-gen.awk: Make generated program include insn-attr-common.h .
2360         * Makefile.in (oprions.o): Depend on insn-attr-common.h
2361
2362 2011-07-25  Anatoly Sokolov  <aesok@post.ru>
2363
2364         * config/m32c/m32c.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
2365         PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
2366         * config/m32c/m32c-protos.h (m32c_print_operand_punct_valid_p,
2367         m32c_print_operand, m32c_print_operand_address): Remove.
2368         * config/m32c/m32c.c (m32c_print_operand_punct_valid_p): Make static.
2369         Change return type to bool. Change argument type to bool.
2370         (m32c_print_operand, m32c_print_operand_address): Make static.
2371         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
2372         TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
2373
2374 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2375
2376         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
2377         attributes): Document mmap.
2378
2379 2011-07-25  Anatoly Sokolov  <aesok@post.ru>
2380
2381         * config/mmix/mmix.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
2382         PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
2383         * config/mmix/mmix-protos.h (mmix_print_operand_punct_valid_p,
2384         mmix_print_operand, mmix_print_operand_address): Remove.
2385         * config/mmix/mmix.c (mmix_print_operand_punct_valid_p): Make static.
2386         Change return type to bool. Change argument type to bool.
2387         (mmix_print_operand, mmix_print_operand_address): Make static.
2388         (mmix_intval, mmix_output_condition): Change 'x' argument type
2389         to const_rtx.
2390         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
2391         TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
2392
2393 2011-07-25  Georg-Johann Lay  <avr@gjlay.de>
2394
2395         PR target/39386
2396         * config/avr/avr.c (out_shift_with_cnt): Use tmp_reg as
2397         shift counter for x << x and x >> x shifts.
2398
2399 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2400
2401         PR target/47124
2402         * config.gcc: Reject *-*-solaris2 configuration.
2403
2404 2011-07-25  Richard Sandiford  <richard.sandiford@linaro.org>
2405
2406         PR tree-optimization/49809
2407         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Use
2408         gimple_get_lhs instead of gimple_assign_lhs.
2409
2410 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2411
2412         * system.h [__cplusplus]: Wrap C function declarations in extern "C".
2413
2414 2011-07-25  Richard Guenther  <rguenther@suse.de>
2415
2416         PR tree-optimization/49822
2417         * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
2418         more.  Make sure to preserve stmts with side-effects.  Properly
2419         handle virtual defs, follow a longer def chain.
2420
2421 2011-07-22  Romain Geissler  <romain.geissler@gmail.com>
2422
2423         PR plugins/45348
2424         PR plugins/48425
2425         PR plugins/46577
2426         * Makefile.in: Do not flatten c-family directory when installing
2427         plugin headers.
2428
2429 2011-07-25  Eric Botcazou  <ebotcazou@adacore.com>
2430
2431         * ipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of
2432         original nodes if we are dealing with virtual clones.
2433
2434 2011-07-25  Bernd Schmidt  <bernds@codesourcery.com>
2435
2436         * common/config/c6x/c6x-common.c: New file.
2437
2438 2011-07-25  Roman Zhuykov  <zhroma@ispras.ru>
2439
2440         * tree-flow.h (tree_ssa_loop_version): Remove unused declaration.
2441
2442 2011-07-25  Richard Guenther  <rguenther@suse.de>
2443
2444         PR tree-optimization/49715
2445         * tree-vrp.c: Include expr.h and optabs.h.
2446         (range_fits_type_): New function.
2447         (simplify_float_conversion_using_ranges): Likewise.
2448         (simplify_stmt_using_ranges): Call it.
2449         * Makefile.in (tree-vrp.o): Add $(EXPR_H) and $(OPTABS_H) dependencies.
2450         * optabs.c (can_float_p): Export.
2451         * optabs.h (can_float_p): Declare.
2452
2453 2011-07-25  Richard Guenther  <rguenther@suse.de>
2454
2455         * tree-vrp.c (num_vr_values, values_propagated): New global vars.
2456         (get_value_range): For out-of-range SSA names or names created
2457         after propagation return a read-only varying range.
2458         (dump_all_value_ranges): Adjust.
2459         (vrp_initialize): Likewise.
2460         (vrp_finalize): Likewise.
2461
2462 2011-07-24  Richard Henderson  <rth@redhat.com>
2463
2464         PR debug/49831
2465         * dwarf2cfi.c (connect_traces): Allow unvisited traces.  Skip
2466         them entirely.
2467
2468 2011-07-24  Richard Henderson  <rth@redhat.com>
2469
2470         PR debug/49825
2471         * dwarf2cfi.c (dwarf2out_stack_adjust): Move A_O_A test earlier.
2472         (dwarf2out_notice_stack_adjust): Use args_size from call_insn.
2473
2474 2011-07-24  Richard Henderson  <rth@redhat.com>
2475
2476         PR debug/49827
2477         * dwarf2cfi.c (create_trace_edges): Handle sequences properly.
2478
2479 2011-07-24  Richard Henderson  <rth@redhat.com>
2480
2481         * dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter.
2482         Zero args_size for abnormal edges.  Adjust all callers.
2483
2484 2011-07-24  Richard Henderson  <rth@redhat.com>
2485
2486         PR debug/49825
2487         * dwarf2cfi.c (cfi_row_equal_p): Don't compare args_size.
2488
2489 2011-07-24  H.J. Lu  <hongjiu.lu@intel.com>
2490
2491         PR bootstrap/49835
2492         * collect2.c (demangle_flag): Removed.
2493
2494 2011-07-24  Sandra Loosemore  <sandra@codesourcery.com>
2495
2496         * configure.ac (demangler_in_ld): Default to yes.
2497         * configure: Regenerated.
2498         * collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't
2499         mess with COLLECT_NO_DEMANGLE, and just pass --demangle and
2500         --no-demangle options straight through to ld.  When
2501         HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a
2502         way that has the intended effect on Windows.
2503
2504 2011-07-23  Richard Henderson  <rth@redhat.com>
2505
2506         * dwarf2cfi.c: Include basic-block.h.
2507         (dw_label_info): Remove.
2508         (trace_work_list, trace_index): New.
2509         (remember_row, emit_cfa_remember): Remove.
2510         (dw_trace_info_hash, dw_trace_info_eq): New.
2511         (get_trace_index, get_trace_info): New.
2512         (save_point_p): New.
2513         (free_cfi_row): Remove.
2514         (add_cfi): Do not emit DW_CFA_remember_state.
2515         (cfa_row_equal_p): New.
2516         (barrier_args_size): Remove.
2517         (compute_barrier_args_size_1, compute_barrier_args_size): Remove.
2518         (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size.
2519         (maybe_record_trace_start, create_trace_edges, scan_trace): New.
2520         (dwarf2out_cfi_begin_epilogue): Remove.
2521         (dwarf2out_frame_debug_restore_state): Remove.
2522         (connect_traces, create_pseudo_cfg): New.
2523         (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces.
2524         * Makefile.in (dwarf2cfi.o): Update.
2525
2526 2011-07-23  Richard Henderson  <rth@redhat.com>
2527
2528         * dwarf2cfi.c (dw_trace_info): New.
2529         (dw_label_info): New.
2530         (cie_return_save): New.
2531         (cur_trace): New.
2532         (queued_args_size): Rename from args_size.  Update all users.
2533         (cfa_store, cfa_temp, regs_saved_in_regs): Remove.
2534         (def_cfa_1): Use cur_trace instead of cfa_*.
2535         (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise.
2536         (clobbers_queued_reg_save, reg_saved_in): Likewise.
2537         (dwarf2out_frame_debug_expr): Likewise.
2538         (create_cie_data): Split out from ...
2539         (execute_dwarf2_frame): ... here.  Initialize cur_trace.
2540
2541 2011-07-23  Richard Henderson  <rth@redhat.com>
2542
2543         * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc.
2544         Update all users to match.
2545         (execute_dwarf2_frame): Free reg_saved_in_data.
2546
2547 2011-07-23  Richard Henderson  <rth@redhat.com>
2548
2549         * dwarf2cfi.c (queued_reg_save): Reorder for packing.  Don't GTY.
2550         (queued_reg_saves): Don't GTY.  Change to a VEC.
2551         (queue_reg_save): Update to match.
2552         (dwarf2out_flush_queued_reg_saves): Likewise.
2553         (clobbers_queued_reg_save): Likewise.
2554         (reg_saved_in): Likewise.
2555         (execute_dwarf2_frame): Free queued_reg_saves.
2556
2557 2011-07-23  Richard Henderson  <rth@redhat.com>
2558
2559         * dwarf2cfi.c (dw_cfi_row_ref): Remove.  Update all users.
2560
2561 2011-07-23  Richard Henderson  <rth@redhat.com>
2562
2563         * dwarf2cfi.c (add_cfi_args_size): Split out from...
2564         (dwarf2out_args_size): ... here.
2565         (add_cfi_restore): Split out from ...
2566         (dwarf2out_frame_debug_cfa_restore): ... here.
2567         (def_cfa_0): Split out from ...
2568         (def_cfa_1): ... here.
2569         (cfi_oprnd_equal_p, cfi_equal_p): New.
2570         (change_cfi_row): New.
2571         (add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index.
2572         (create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note.
2573         (output_cfis): Remove.
2574         * dwarf2out.c (output_fde): Simplify output_cfi loop.
2575         (dwarf2out_switch_text_section): Don't call output_cfis.
2576         (dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New.
2577         * dwarf2out.h: Update decls.
2578         (enum dw_val_class): Add dw_val_class_none.
2579
2580 2011-07-23  Richard Henderson  <rth@redhat.com>
2581
2582         * dwarf2cfi.c (update_row_reg_save): New.
2583         (dwarf2out_frame_debug_cfa_expression): Use it.
2584         (dwarf2out_frame_debug_cfa_restore): Likewise.
2585         (reg_save): Likewise.  Do not emit DW_CFA_same_value.
2586
2587 2011-07-23  Richard Henderson  <rth@redhat.com>
2588
2589         * dwarf2cfi.c (add_cfi_insn): Rename from cfi_insn.  Update all users.
2590
2591 2011-07-23  Richard Henderson  <rth@redhat.com>
2592
2593         * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New.
2594         (cie_cfi_row): New.
2595         (new_cfi_row, copy_cfi_row, free_cfi_row): New.
2596         (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove.
2597         (cur_row, remember_row): New.
2598         (def_cfa_1): Use cur_row instead of the old_* variables.
2599         (dwarf2out_frame_debug_restore_state): Similarly.
2600         (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise.
2601         (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa.
2602         (dwarf2out_frame_debug_adjust_cfa): Likewise.
2603         (dwarf2out_frame_debug_cfa_offset): Likewise.
2604         (dwarf2out_frame_debug_expr): Likewise.
2605         (execute_dwarf2_frame): Set up cur_row.
2606         * dwarf2out.h (struct cfa_loc): Mark for GTY.
2607
2608 2011-07-23  Richard Henderson  <rth@redhat.com>
2609
2610         * basic-block.h (EDGE_PRESERVE): New.
2611         (EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it.
2612         * bb-reorder.c: Include except.h.
2613         (fix_up_crossing_landing_pad): New.
2614         (find_rarely_executed_basic_blocks_and_crossing_edges): Place
2615         landing pads in the right partition.  Duplicate as necessary.
2616         (partition_hot_cold_basic_blocks): Fix up DF info after
2617         duplicating landing pads.
2618         * cfg.c (dump_edge_info): Add crossing and preserve to bitnames.
2619         * cfgrtl.c (rtl_verify_flow_info_1): Validate that EDGE_CROSSING
2620         is set properly.  Validate that EH edges are not CROSSING.
2621         * except.c (expand_dw2_landing_pad_for_region): Split out from ...
2622         (dw2_build_landing_pads): ... here.
2623         (convert_to_eh_region_ranges): Remove code to fixup crossing
2624         landing pads.
2625         * except.h (expand_dw2_landing_pad_for_region): Declare.
2626         * tree-cfg.c (gimple_can_merge_blocks_p): Don't merge PRESERVE edges.
2627
2628 2011-07-23  Richard Earnshaw  <rearnsha@arm.com>
2629
2630         PR target/49816
2631         * arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure.
2632
2633 2011-07-22  Jason Merrill  <jason@redhat.com>
2634
2635         * doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing.
2636
2637 2011-07-22  Richard Henderson  <rth@redhat.com>
2638
2639         * bb-reorder.c (gate_handle_partition_blocks): Honor optimize.
2640
2641 2011-07-22  Richard Henderson  <rth@redhat.com>
2642
2643         * jump.c (maybe_propagate_label_ref): Split out of...
2644         (mark_all_labels): ... here.  Do not attempt label_ref
2645         propagation while in cfglayout mode.
2646
2647 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
2648
2649         * dwarf2out.c (struct macinfo_struct): Change code to unsigned char.
2650         (DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define.
2651         (dwarf_attr_name): Handle DW_AT_GNU_macros.
2652         (dwarf2out_define): If the vector is empty and
2653         lineno is 0, emit a dummy entry first.
2654         (dwarf2out_undef): Likewise.  Remove redundant semicolon.
2655         (htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op,
2656         optimize_macinfo_range): New functions.
2657         (output_macinfo): Use them.  If !dwarf_strict and .debug_str is
2658         mergeable, optimize longer strings using
2659         DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP,
2660         optimize longer sequences of define/undef ops from headers
2661         using DW_MACRO_GNU_transparent_include.  For !dwarf_strict
2662         emit a section headers.
2663         (dwarf2out_init): For !dwarf_strict set debug_macinfo_section
2664         and macinfo_section_label to DEBUG_MACRO_SECTION
2665         resp. DEBUG_MACRO_SECTION_LABEL.
2666         (dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros
2667         instead of DW_AT_macro_info.
2668
2669         PR other/32998
2670         * common.opt (grecord-gcc-switches, gno-record-gcc-switches): New
2671         options.
2672         * dwarf2out.c: Include opts.h.
2673         (dchar_p): New typedef.  Define heap VEC for it.
2674         (producer_string): New variable.
2675         (gen_producer_string): New function.
2676         (gen_compile_unit_die): Use it.
2677         (dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer if needed.
2678         * Makefile.in (dwarf2out.o): Depend on $(OPTS_H).
2679         * doc/invoke.texi: Document -grecord-gcc-switches and
2680         -gno-record-gcc-switches, add a -grecord-gcc-switches reference
2681         to -frecord-gcc-switches description.
2682
2683 2011-07-22  Jason Merrill  <jason@redhat.com>
2684
2685         PR c++/30112
2686         * c-decl.c (c_linkage_bindings): Define.
2687
2688 2011-07-22  Eric Botcazou  <ebotcazou@adacore.com>
2689
2690         PR debug/49815
2691         * var-tracking.c (vt_finalize): Always free windowed_parm_regs.
2692
2693 2011-07-22  H.J. Lu  <hongjiu.lu@intel.com>
2694
2695         * config/i386/i386.c (ix86_option_override_internal): Disallow
2696         MS ABI in x32 mode.
2697         (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi
2698         only for TARGET_LP64.
2699         (ix86_handle_abi_attribute): Check TARGET_LP64 instead of TARGET_64BIT.
2700
2701 2011-07-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
2702
2703         * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to
2704         avoid warnings when GCC is built with a C++ compiler.
2705
2706 2011-07-22  Martin Jambor  <mjambor@suse.cz>
2707
2708         PR lto/49796
2709         * cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false
2710         if decl node is in another partition, call cgraph_get_node only once.
2711
2712 2011-07-22  Uros Bizjak  <ubizjak@gmail.com>
2713
2714         * config.gcc (x86_64-*-linux*): Set
2715         default_gnu_indirect_function to yes.
2716
2717 2011-07-22  Richard Guenther  <rguenther@suse.de>
2718
2719         PR tree-optimization/45819
2720         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
2721         preserve volatile and notrap flags.
2722
2723 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2724             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2725
2726         PR bootstrap/49794
2727         * configure.ac: Test AM_ICONV with CXX.
2728         * configure: Regenerate.
2729         * config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST.
2730
2731 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2732
2733         PR bootstrap/49797
2734         * graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing.
2735         (set_cloog_options): Use it.
2736
2737 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
2738
2739         PR c++/49756
2740         * gcc.c (main): Call stack_limit_increase (64MB).
2741         * toplev.c (toplev_main): Likewise.
2742
2743 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
2744
2745         * config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg
2746         instead of force_reg.
2747
2748 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
2749
2750         * config/i386/i386.c (ix86_expand_move): Convert to Pmode if
2751         needed and use force_reg after convert.
2752         (ix86_expand_call): Likewise.
2753         (ix86_expand_special_args_builtin): Likewise.
2754         (ix86_expand_builtin): Likewise.
2755
2756 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
2757
2758         PR middle-end/47654
2759         PR middle-end/49649
2760         * graphite-clast-to-gimple.c (type_for_clast_term): Pass v1 and v2
2761         in parameter.  Initialize v1 and v2 based on the values returned
2762         by clast_name_to_lb_ub.
2763         (type_for_clast_red): Pass v1 and v2 in parameter, and set their
2764         values.
2765         (type_for_clast_bin): Same.
2766         (type_for_clast_expr): Same.
2767         (type_for_clast_eq): Update calls to type_for_clast_expr.
2768         (type_for_clast_for): Same.
2769         (build_iv_mapping): Same.
2770         * graphite-ppl.h (value_min): New.
2771
2772 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
2773
2774         * graphite-clast-to-gimple.c (type_for_interval): Generate signed
2775         types whenever possible.
2776
2777 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
2778
2779         * graphite-clast-to-gimple.c (struct clast_name_index): Add lb
2780         and ub fields.
2781         (new_clast_name_index): Add lb and ub parameters.
2782         (free_clast_name_index): New.
2783         (clast_name_to_lb_ub): New.
2784         (save_clast_name_index): Add lb and ub parameters.
2785         (compute_bounds_for_param): New.
2786         (type_for_level): Removed.
2787         (type_for_clast_for): Removed level parameter.  Do not call
2788         type_for_level.
2789         (graphite_create_new_loop): Store the lb and ub for the clast_name
2790         of the iterator of the loop that has been generated.
2791         (graphite_create_new_loop_guard): Remove parameter level.
2792         (create_params_index): Store the lb and ub of each parameter.
2793         (gloog): Use free_clast_name_index.  Pass to create_params_index
2794         the current scop.
2795
2796 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
2797
2798         * graphite-clast-to-gimple.c (max_signed_precision_type): Removed.
2799         (max_precision_type): Inline max_signed_precision_type.
2800         (type_for_clast_red): Use max_precision_type.
2801         (type_for_clast_bin): Same.
2802         (type_for_clast_for): Same.
2803
2804 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
2805
2806         * graphite-clast-to-gimple.c (gcc_type_for_interval): Renamed
2807         type_for_interval.
2808         (gcc_type_for_value): Renamed type_for_value.
2809         (gcc_type_for_clast_term): Renamed type_for_clast_term.
2810         (gcc_type_for_clast_expr): Renamed type_for_clast_expr.
2811         (gcc_type_for_clast_red): Renamed type_for_clast_red.
2812         (gcc_type_for_clast_bin): Renamed type_for_clast_bin.
2813         (gcc_type_for_clast_eq): Renamed type_for_clast_eq.
2814         (graphite_translate_clast_equation): Update calls.
2815         (compute_type_for_level): Renamed type_for_level.
2816         (gcc_type_for_iv_of_clast_loop): Renamed type_for_clast_for.
2817         (build_iv_mapping): Update calls.
2818         (graphite_create_new_loop_guard): Same.
2819
2820 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
2821
2822         * graphite-clast-to-gimple.c (clast_get_body_of_loop): Add fixme
2823         comment.
2824
2825 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
2826
2827         * graphite-clast-to-gimple.c (struct ivs_params): New.
2828         (clast_name_to_gcc): Use ivs_params to pass around parameters.
2829         (clast_to_gcc_expression): Same.
2830         (clast_to_gcc_expression_red): Same.
2831         (gcc_type_for_clast_term): Same.
2832         (gcc_type_for_clast_expr): Same.
2833         (gcc_type_for_clast_red): Same.
2834         (gcc_type_for_clast_bin): Same.
2835         (gcc_type_for_clast_eq): Same.
2836         (graphite_translate_clast_equation): Same.
2837         (graphite_create_guard_cond_expr): Same.
2838         (graphite_create_new_guard): Same.
2839         (graphite_create_new_loop): Same.
2840         (build_iv_mapping): Same.
2841         (translate_clast_user): Same.
2842         (graphite_create_new_loop_guard): Same.
2843         (translate_clast): Same.
2844         (translate_clast_for_loop): Same.
2845         (translate_clast_for): Same.
2846         (translate_clast_guard): Same.
2847         (initialize_cloog_names): Fix typo.
2848         (gloog): Initialize an ivs_params struct, pass it to translate_clast.
2849
2850 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
2851
2852         * graphite-clast-to-gimple.c (struct clast_name_index): Add level.
2853         (new_clast_name_index): Add level parameter.
2854         (clast_name_to_level): New.
2855         (save_clast_name_index): Add level parameter.
2856         (newivs_to_depth_to_newiv): Removed.
2857         (clast_name_to_gcc): Inlined newivs_to_depth_to_newiv.
2858         (graphite_create_new_loop): Add level parameter.  Pass level to
2859         save_clast_name_index.
2860         (translate_clast_for_loop): Pass level to graphite_create_new_loop.
2861         (create_params_index): Pass level to save_clast_name_index.
2862
2863 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
2864
2865         * graphite-clast-to-gimple.c (graphite_create_new_loop): Do not
2866         recompute type, lb, and ub.  Get them from...
2867         (graphite_create_new_loop_guard): ...here.  Pass in parameter
2868         pointers to type, lb, and ub.
2869         (translate_clast_for_loop): Update function calls.
2870         (translate_clast_for): Same.
2871
2872 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
2873
2874         * graphite-clast-to-gimple.c (compute_bounds_for_level): Call
2875         psct_dynamic_dim.
2876         (translate_clast_for_loop): Pass loop level to dependency_in_loop_p.
2877         (gcc_type_for_iv_of_clast_loop): Update use of level.
2878         (gloog): Start counting nesting level from 0.
2879         * graphite-clast-to-gimple.h (get_scattering_level): Removed.
2880         * graphite-dependences.c (graphite_carried_dependence_level_k): Call
2881         psct_dynamic_dim on level.
2882
2883 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
2884
2885         * config/i386/i386.c (ix86_legitimize_address): Convert to
2886         Pmode if needed.
2887
2888 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
2889
2890         * config/i386/i386.c (function_value_64): Always return pointers
2891         in Pmode.
2892         (ix86_promote_function_mode): New.
2893         (TARGET_PROMOTE_FUNCTION_MODE): Likewise.
2894
2895 2011-07-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2896
2897         PR tree-optimization/49749
2898         * tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and
2899         remove no-longer-used maxrank variable.
2900
2901 2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
2902
2903         * config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs.
2904
2905 2011-07-21  Jason Merrill  <jason@redhat.com>
2906
2907         * system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New.
2908         * recog.h (struct insn_data_d): Check it instead of
2909         HAVE_DESIGNATED_INITIALIZERS.
2910         * genoutput.c (output_insn_data): Likewise.
2911
2912 2011-07-21  Richard Guenther  <rguenther@suse.de>
2913
2914         PR tree-optimization/49770
2915         * tree-ssa-sccvn.c (valueize_refs_1): Return whether we
2916         valueized any operand.  Renamed from ...
2917         (valueize_refs): ... this.  New wrapper around valueize_refs_1.
2918         (valueize_shared_reference_ops_from_ref): Return whether we
2919         valueized any operand.
2920         (vn_reference_lookup): Only when we valueized any operand
2921         use the valueized reference for alias analysis.  Do not preserve
2922         the original reference tree in this case.
2923
2924 2011-07-21  Uros Bizjak  <ubizjak@gmail.com>
2925
2926         * config/i386/i386.c (ix86_decompose_address): Reject all but
2927         register operands and subregs of DImode hard registers in index.
2928
2929 2011-07-21  Kai Tietz  <ktietz@redhat.com>
2930
2931         * fold-const.c (fold_unary_loc): Preserve indirect
2932         comparison cast to none-boolean type.
2933         * tree-ssa.c (useless_type_conversion_p): Preserve cast
2934         from/to boolean-type.
2935         * gimplify.c (gimple_boolify): Handle boolification of comparisons.
2936         (gimplify_expr): Boolifiy non aggregate-typed comparisons.
2937         * tree-cfg.c (verify_gimple_comparison): Check result
2938         type of comparison expression.
2939         * tree-ssa-forwprop.c (forward_propagate_comparison): Adjust test
2940         of condition result and disallow type-cast sinking into comparison.
2941
2942 2011-07-21  Richard Guenther  <rguenther@suse.de>
2943
2944         * tree-ssa-forwprop.c (combine_conversions): Return whether
2945         we have to run cfg-cleanup.  Properly remove dead stmts.
2946         (ssa_forward_propagate_and_combine): Adjust.
2947
2948 2011-07-21  Richard Sandiford  <richard.sandiford@linaro.org>
2949
2950         * regcprop.c (maybe_mode_change): Check HARD_REGNO_MODE_OK.
2951
2952 2011-07-21  Kai Tietz  <ktietz@redhat.com>
2953
2954         * tree-ssa-propagate.c (substitute_and_fold): Use
2955         do_dce flag to deside, if BB's statements are scanned
2956         in last to first, or first to last order.
2957
2958 2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
2959
2960         * config/avr/avr.c (avr_rtx_costs): Set cost of CONST, LABEL_REF to 0.
2961
2962 2011-07-20  H.J. Lu  <hongjiu.lu@intel.com>
2963             Uros Bizjak  <ubizjak@gmail.com>
2964             Richard Henderson  <rth@redhat.com>
2965
2966         * config/i386/constraints.md (w): New.
2967
2968         * config/i386/i386.c (ix86_output_addr_vec_elt): Check
2969         TARGET_LP64 instead of TARGET_64BIT for ASM_QUAD.
2970
2971         * config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64
2972         instead of TARGET_64BIT.
2973
2974         * config/i386/i386.md (indirect_jump): Replace
2975         nonimmediate_operand with indirect_branch_operand.
2976         (*indirect_jump): Likewise.  Replace constraint "m" with "w".
2977         (tablejump): Replace nonimmediate_operand with indirect_branch_operand.
2978         Convert operand 0 to Pmode for x32 if not PIC.
2979         (*tablejump_1): Replace nonimmediate_operand with
2980         indirect_branch_operand.  Replace constraint "m" with "w".
2981         (*call_vzeroupper): Replace constraint "m" with "w".
2982         (*call): Likewise.
2983         (*call_rex64_ms_sysv_vzeroupper): Likewise.
2984         (*call_rex64_ms_sysv): Likewise.
2985         (*call_value_vzeroupper): Likewise.
2986         (*call_value): Likewise.
2987         (*call_value_rex64_ms_sysv_vzeroupper): Likewise.
2988         (*call_value_rex64_ms_sysv): Likewise.
2989         (set_got_offset_rex64): Check TARGET_LP64 instead of TARGET_64BIT.
2990
2991         * config/i386/predicates.md (indirect_branch_operand): New.
2992         (call_insn_operand): Support x32.
2993
2994 2011-07-20  Michael Eager  <eager@eagercon.com>
2995
2996         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Default to 12.
2997
2998 2011-07-20  Richard Henderson  <rth@redhat.com>
2999
3000         * cfg.c (dump_bb_info): Dump basic_block->flags.
3001         * cfgrtl.c (print_rtl_with_bb): Use dump_bb_info.
3002
3003 2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
3004
3005         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
3006         of DImode hard registers in index.
3007         (ix86_legitimate_address_p): Allow subregs of base and index to span
3008         more than a word.  Assert that subregs of base and index satisfy
3009         register_no_elim_operand predicates.  Reject addresses where
3010         base and index have different modes.
3011
3012 2011-07-20  Robert Millan  <rmh@gnu.org>
3013
3014         * config.gcc (mips*-*-linux*): Remove redundant tm_file entry.
3015
3016 2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3017
3018         * bb-reorder.c (fix_crossing_conditional_branches): Fix crash by
3019         removing now-unnecessary assignment.
3020
3021 2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3022
3023         * emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting
3024         memory address space to the type's address space.
3025
3026 2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
3027
3028         PR target/36467
3029         PR target/49687
3030         * config/avr/avr.md (mulhi3): Use register_or_s9_operand for operand2
3031         and expand appropriately if there is a CONST_INT in operand2.
3032         (usmulqihi3): New insn.
3033         (*sumulqihi3): New insn.
3034         (*osmulqihi3): New insn.
3035         (*oumulqihi3): New insn.
3036         (*muluqihi3.uconst): New insn_and_split.
3037         (*muluqihi3.sconst): New insn_and_split.
3038         (*mulsqihi3.sconst): New insn_and_split.
3039         (*mulsqihi3.uconst): New insn_and_split.
3040         (*mulsqihi3.oconst): New insn_and_split.
3041         (*ashifthi3.signx.const): New insn_and_split.
3042         (*ashifthi3.signx.const7): New insn_and_split.
3043         (*ashifthi3.zerox.const): New insn_and_split.
3044         (mulsqihi3): New insn.
3045         (muluqihi3): New insn.
3046         (muloqihi3): New insn.
3047         * config/avr/predicates.md (const_2_to_7_operand): New.
3048         (const_2_to_6_operand): New.
3049         (u8_operand): New.
3050         (s8_operand): New.
3051         (o8_operand): New.
3052         (s9_operand): New.
3053         (register_or_s9_operand): New.
3054
3055 2011-07-20  Kai Tietz  <ktietz@redhat.com>
3056
3057         * builtins.c (fold_builtin_expect): See through the cast
3058         from truthvalue_type_node to long.
3059
3060 2011-07-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
3061
3062         * config/rs6000/vsx.md (vsx_fma*): Use 4 argument fma instructions
3063         where we can use them from the standard and altivec instruction
3064         sets, instead of always using the 3 operand VSX forms that require
3065         the destination to overlap one of the inputs.
3066         (vsx_fms*): Ditto.
3067         (vsx_fnma*): Ditto.
3068         (vsx_fnms*): Ditto.
3069
3070         * config/rs6000/rs6000.md (fmadf4_fpr): Set fp_type fp_maddsub_d
3071         for DF types.
3072         (fmsdf4_fpr): Ditto.
3073         (nfmadf4_fpr): Ditto.
3074         (nfmsdf4_fpr): Ditto.
3075
3076 2011-07-20  Sandra Loosemore  <sandra@codesourcery.com>
3077
3078         * genrecog.c (make_insn_sequence): Correct position numbering
3079         when filtering out match_scratch and match_dup.
3080
3081 2011-07-20  Richard Guenther  <rguenther@suse.de>
3082
3083         * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
3084         against already removed statements.
3085         (forward_propagate_into_comparison): Remove dead defining stmts.
3086         (forward_propagate_into_gimple_cond): Likewise.
3087         (forward_propagate_into_cond): Simplify.
3088         (ssa_forward_propagate_and_combine): Handle changed cfg from
3089         forward_propagate_into_comparison.
3090         * tree-ssa-phiopt.c (conditional_replacement): Use proper
3091         locations for newly built statements.
3092
3093 2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
3094
3095         * config/avr/avr.c (avr_rtx_costs): Set cost of SYMBOL_REF to 0.
3096
3097 2011-07-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3098
3099         * config/s390/s390.c (s390_class_max_nregs): Fix return type.
3100         * config/s390/s390-protos.h (s390_class_max_nregs): Likewise.
3101
3102 2011-07-20  Richard Guenther  <rguenther@suse.de>
3103
3104         PR middle-end/18908
3105         * tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision.
3106         * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus
3107         ADDR_EXPR folding.  Canonicalize X ^ ~0 as ~X.
3108
3109 2011-07-20  Vladimir Makarov  <vmakarov@redhat.com>
3110
3111         * config/frv/frv.c (frv_register_move_cost): Define explicitly
3112         costs for subclasses of GR_REGS.
3113
3114 2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
3115
3116         PR target/49780
3117         * config/i386/predicates.md (no_seg_addres_operand): No more special.
3118         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
3119         of DImode hard registers in base.
3120         (ix86_legitimate_address_p): Allow SImode and DImode base and index
3121         registers.
3122
3123 2011-07-20  Richard Guenther  <rguenther@suse.de>
3124
3125         * tree-ssa-structalias.c (new_var_info): Allocate oldsolution lazily.
3126         (unify_nodes): Deal with that.
3127         (solve_graph): Likewise.
3128
3129 2011-07-20  Chung-Lin Tang  <cltang@codesourcery.com>
3130
3131         * config/arm/arm.c (arm_canonicalize_comparison): Add case to
3132         canonicalize left operand from ZERO_EXTEND to AND.
3133
3134 2011-07-20  Anatoly Sokolov  <aesok@post.ru>
3135
3136         * target.def (class_max_nregs): New hook.
3137         * doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document.
3138         * doc/tm.texi: Regenerate.
3139         * targhooks.c (default_class_max_nregs): New function.
3140         * targhooks.h (default_class_max_nregs): Declare.
3141         * ira.h (target_ira): Change type x_ira_reg_class_max_nregs and
3142         x_ira_reg_class_min_nregs arrays to unsigned char.
3143         * ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target
3144         hook instead of CLASS_MAX_NREGS macro.
3145         * reginfo.c (restore_register_info): Ditto.
3146         * ira-conflicts.c (process_regs_for_copy): Use
3147         ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
3148         Change type rclass and aclass vars to reg_class_t.
3149         * ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs
3150         array instead of CLASS_MAX_NREGS macro. Change type rclass var to
3151         reg_class_t.
3152         * reload.c (combine_reloads, find_reloads, find_reloads_address_1):
3153         Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
3154
3155         * config/i386/i386.h (CLASS_MAX_NREGS): Remove.
3156         * config/i386/i386.c (ix86_class_max_nregs): New function.
3157         (ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook
3158         instead of CLASS_MAX_NREGS macro.
3159         (TARGET_CLASS_MAX_NREGS): Define.
3160         * config/avr/avr.h (CLASS_MAX_NREGS): Remove.
3161         * config/avr/avr-protos.h (class_max_nregs): Remove declaration.
3162         * config/avr/avr.c (class_max_nregs): Remove function.
3163         * config/alpha/alpha.h (CLASS_MAX_NREGS): Remove.
3164         * config/spu/spu.h (CLASS_MAX_NREGS): Remove.
3165         * config/mep/mep.h (CLASS_MAX_NREGS): Remove.
3166         * config/m32r/m32r.h (CLASS_MAX_NREGS): Remove.
3167         * config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove.
3168         * config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove.
3169         * config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove.
3170         * config/lm32/lm32.h (CLASS_MAX_NREGS): Remove.
3171         * config/moxie/moxie.h (CLASS_MAX_NREGS): Remove.
3172         * config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove.
3173         * config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove.
3174         * config/score/score.h (CLASS_MAX_NREGS): Remove.
3175         * config/vax/vax.h (CLASS_MAX_NREGS): Remove.
3176         * config/h8300/h8300.h (CLASS_MAX_NREGS): Remove.
3177         * config/v850/v850.h (CLASS_MAX_NREGS): Remove.
3178
3179 2011-07-19  Eric Botcazou  <ebotcazou@adacore.com>
3180
3181         * cif-code.def (OVERWRITABLE): Fix typo and move around.
3182         (TARGET_OPTIMIZATION_MISMATCH): Delete.
3183         (EH_PERSONALITY): Fix typo.
3184         (NON_CALL_EXCEPTIONS): Fix message.
3185         (OPTIMIZATION_MISMATCH): Adjust message.
3186         * ipa-inline.c (can_inline_edge_p): Use CIF_OPTIMIZATION_MISMATCH.
3187
3188 2011-07-19  Ian Lance Taylor  <iant@google.com>
3189
3190         * doc/install.texi (Configuration): Document
3191         --enable-build-poststage1-with-cxx.
3192
3193 2011-07-19  Robert Millan  <rmh@gnu.org>
3194
3195         * config/mips/gnu-user.h: Copy from linux.h.  Update comments.
3196         (GLIBC_DYNAMIC_LINKER): Remove.
3197
3198         * config/mips/gnu-user64.h: Copy from linux64.h.  Update comments.
3199         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
3200         (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
3201         (BIONIC_DYNAMIC_LINKERN32, GNU_USER_DYNAMIC_LINKERN32): Remove.
3202         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32,
3203         GNU_USER_DYNAMIC_LINKER64 and GNU_USER_LINK_EMULATIONN32.
3204
3205         * config/mips/linux.h: Remove everything except for ...
3206         (GLIBC_DYNAMIC_LINKER): ... this macro.
3207
3208         * config/mips/linux64.h: Remove everything except for ...
3209         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
3210         (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
3211         (BIONIC_DYNAMIC_LINKERN32): ... these macros.
3212         (GNU_USER_LINK_EMULATION32, GNU_USER_LINK_EMULATION64)
3213         (GNU_USER_LINK_EMULATIONN32): New macros.
3214
3215         * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux* | mips-*-linux*):
3216         Use the new headers.
3217
3218 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
3219
3220         * rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs.
3221         Add offset_known_p and size_known_p fields.
3222         (MEM_OFFSET_KNOWN_P): Update accordingly.
3223         (MEM_OFFSET, MEM_SIZE_KNOWN_P, MEM_SIZE): Likewise.
3224         * emit-rtl.c (mem_attrs_htab_hash): Update after mem_attrs changes.
3225         (mem_attrs_eq_p, set_mem_attributes_minus_bitpos, set_mem_offset)
3226         (clear_mem_offset, set_mem_size, clear_mem_size, change_address)
3227         (adjust_address_1, widen_memory_access, set_mem_attrs_for_spill)
3228         (init_emit_regs): Likewise.
3229
3230 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
3231
3232         * doc/rtl.texi (MEM_OFFSET_KNOWN_P): Document.
3233         (MEM_OFFSET): Change from returning an rtx to returning a
3234         HOST_WIDE_INT.
3235         * rtl.h (MEM_OFFSET_KNOWN_P): New macro.
3236         (MEM_OFFSET): Return a HOST_WIDE_INT rather than an rtx.
3237         * emit-rtl.h (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
3238         (clear_mem_offset): Declare.
3239         * alias.c (ao_ref_from_mem): Adjust uses of MEM_OFFSET, using
3240         MEM_OFFSET_KNOWN_P to test whether the offset is known, and
3241         MEM_OFFSET to get a HOST_WIDE_INT offset.
3242         (nonoverlapping_memrefs_p): Likewise.  Adjust calls to...
3243         (adjust_offset_for_component_ref): Take a bool "known_p"
3244         parameter and a HOST_WIDE_INT "offset" parameter.
3245         * builtins.c (get_memory_rtx): As for ao_ref_from_mem.
3246         Adjust calls to set_mem_offset, passing a HOST_WIDE_INT rather
3247         than an rtx.  Use clear_mem_offset to clear the offset.
3248         * cfgcleanup.c (merge_memattrs): Likewise.
3249         * dwarf2out.c (tls_mem_loc_descriptor): Likewise.
3250         * function.c (assign_parm_find_stack_rtl): Likewise.
3251         (assign_parm_setup_stack): Likewise.
3252         * print-rtl.c (print_rtx): Likewise.
3253         * reload.c (find_reloads_subreg_address): Likewise.
3254         * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
3255         * var-tracking.c (INT_MEM_OFFSET): Likewise.
3256         * emit-rtl.c (set_reg_attrs_from_value): Likewise.
3257         (get_mem_align_offset): Likewise.
3258         (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
3259         (clear_mem_offset): New function.
3260         * config/mips/mips.c (r10k_safe_mem_expr_p): Take a HOST_WIDE_INT
3261         offset rather than an rtx.  Assume both the expressio and offset
3262         are available.
3263         (r10k_needs_protection_p_1): Update accordingly, checking the
3264         expression and offset availability here instead.
3265
3266 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
3267
3268         * doc/rtl.texi (MEM_SIZE_KNOWN_P): Document.
3269         (MEM_SIZE): Change from returning an rtx to returning a HOST_WIDE_INT.
3270         * rtl.h (MEM_SIZE_KNOWN_P): New macro.
3271         (MEM_SIZE): Return a HOST_WIDE_INT rather than an rtx.
3272         * emit-rtl.h (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
3273         (clear_mem_size): Declare.
3274         * emit-rtl.c (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
3275         (clear_mem_size): New function.
3276         * alias.c (ao_ref_from_mem): Adjust uses of MEM_SIZE, using
3277         MEM_SIZE_KNOWN_P to test whether the size is known, and MEM_SIZE
3278         to get a HOST_WIDE_INT size.  Adjust calls to set_mem_size,
3279         passing a HOST_WIDE_INT rather than an rtx.  Use clear_mem_size
3280         to clear the size.
3281         (nonoverlapping_memrefs_p): Likewise.
3282         * builtins.c (get_memory_rtx, expand_builtin_memcmp): Likewise.
3283         (expand_builtin_init_trampoline): Likewise.
3284         * calls.c (compute_argument_addresses): Likewise.
3285         * cfgcleanup.c (merge_memattrs): Likewise.
3286         * dce.c (find_call_stack_args): Likewise.
3287         * dse.c (record_store, scan_insn): Likewise.
3288         * dwarf2out.c (dw_sra_loc_expr): Likewise.
3289         * expr.c (emit_block_move_hints): Likewise.
3290         * function.c (assign_parm_find_stack_rtl): Likewise.
3291         * print-rtl.c (print_rtx): Likewise.
3292         * reload.c (find_reloads_subreg_address): Likewise.
3293         * rtlanal.c (may_trap_p_1): Likewise.
3294         * var-tracking.c (track_expr_p): Likewise.
3295         * varasm.c (assemble_trampoline_template): Likewise.
3296         * config/arm/arm.c (arm_print_operand): Likewise.
3297         * config/h8300/h8300.c (h8sx_emit_movmd): Likewise.
3298         * config/i386/i386.c (expand_movmem_via_rep_mov): Likewise.
3299         (expand_setmem_via_rep_stos, expand_constant_movmem_prologue)
3300         (expand_constant_setmem_prologue): Likewise.
3301         * config/mips/mips.c (mips_get_unaligned_mem): Likewise.
3302         * config/rs6000/rs6000.c (expand_block_move): Likewise.
3303         (adjacent_mem_locations): Likewise.
3304         * config/s390/s390.c (s390_expand_setmem): Likewise.
3305         (s390_expand_insv): Likewise.
3306         * config/s390/s390.md (*extzv<mode>, *extv<mode>): Likewise.
3307         (*extendqi<mode>2_short_displ): Likewise.
3308         * config/sh/sh.c (expand_block_move): Likewise.
3309         * config/sh/sh.md (extv, extzv): Likewise.
3310
3311 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
3312
3313         * emit-rtl.c (mem_attrs_eq_p): New function, split out from...
3314         (mem_attrs_htab_eq): ...here.
3315         (find_mem_attrs): Replace with...
3316         (set_mem_attrs): ...this function.  Take a mem_attrs structure
3317         rather than individual fields.
3318         (set_mem_attributes_minus_bitpos, set_mem_alias_set)
3319         (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
3320         (set_mem_size, change_address, adjust_address_1, offset_address)
3321         (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
3322         Update accordingly.
3323
3324 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
3325
3326         * rtl.h (MEM_ALIAS_SET, MEM_EXPR, MEM_OFFSET, MEM_ADDR_SPACE)
3327         (MEM_SIZE, MEM_ALIGN): Redefine in terms of get_mem_attrs.
3328         Provide a dummy definition of MEM_ADDR_SPACE for generators.
3329         (target_rtl): Add x_mode_mem_attrs.
3330         (mode_mem_attrs): New macro.
3331         (get_mem_attrs): New function.
3332         * emit-rtl.c (get_mem_attrs): Rename to...
3333         (find_mem_attrs): ...this.
3334         (set_mem_attributes_minus_bitpos, set_mem_alias_set)
3335         (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
3336         (set_mem_size, change_address, adjust_address_1, offset_address)
3337         (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
3338         Update accordingly.
3339         (init_emit_regs): Initialize mode_mem_attrs.
3340
3341 2011-07-19  Richard Guenther  <rguenther@suse.de>
3342
3343         * tree-ssa-forwprop.c (lookup_logical_inverted_value): Remove
3344         TRUTH_*_EXPR handling.
3345         * tree-ssa-operands.c (get_expr_operands): Likewise.
3346         * tree-ssa-pre.c (fully_constant_expression): Likewise.
3347         * tree-ssa-uninit.c (use_pred_not_overlap_with_undef_path_pre):
3348         Likewise.
3349         (is_and_or_or): Likewise.
3350         (is_norm_cond_subset_of): Likewise.
3351
3352 2011-07-19  Richard Guenther  <rguenther@suse.de>
3353
3354         * tree.h (fold_build_pointer_plus_loc): New helper function.
3355         (fold_build_pointer_plus_hwi_loc): Likewise.
3356         (fold_build_pointer_plus): Define.
3357         (fold_build_pointer_plus_hwi): Likewise.
3358         * builtins.c (std_gimplify_va_arg_expr): Use fold_build_pointer_plus.
3359         (fold_builtin_memory_op): Likewise.
3360         (fold_builtin_stpcpy): Likewise.
3361         (fold_builtin_memchr): Likewise.
3362         (fold_builtin_strstr): Likewise.
3363         (fold_builtin_strchr): Likewise.
3364         (fold_builtin_strrchr): Likewise.
3365         (fold_builtin_strpbrk): Likewise.
3366         (fold_builtin_strcat): Likewise.
3367         (expand_builtin_memory_chk): Likewise.
3368         (fold_builtin_memory_chk): Likewise.
3369         * c-typeck.c (build_unary_op): Likewise.
3370         * cgraphunit.c (thunk_adjust): Likewise.
3371         * fold-const.c (build_range_check): Likewise.
3372         (fold_binary_loc): Likewise.
3373         * omp-low.c (extract_omp_for_data): Likewise.
3374         (expand_omp_for_generic): Likewise.
3375         (expand_omp_for_static_nochunk): Likewise.
3376         (expand_omp_for_static_chunk): Likewise.
3377         * tree-affine.c (add_elt_to_tree): Likewise.
3378         * tree-data-ref.c (split_constant_offset_1): Likewise.
3379         * tree-loop-distribution.c (generate_memset_zero): Likewise.
3380         * tree-mudflap.c (mf_xform_derefs_1): Likewise.
3381         * tree-predcom.c (ref_at_iteration): Likewise.
3382         * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
3383         (add_to_parts): Likewise.
3384         (create_mem_ref): Likewise.
3385         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
3386         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Likewise.
3387         (number_of_iterations_le): Likewise.
3388         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise.
3389         * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
3390         (vect_create_addr_base_for_vector_ref): Likewise.
3391         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Likewise.
3392         (vect_create_cond_for_alias_checks): Likewise.
3393         * tree-vrp.c (extract_range_from_assert): Likewise.
3394         * config/alpha/alpha.c (alpha_va_start): Likewise.
3395         (alpha_gimplify_va_arg_1): Likewise.
3396         * config/i386/i386.c (ix86_va_start): Likewise.
3397         (ix86_gimplify_va_arg): Likewise.
3398         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
3399         * config/mep/mep.c (mep_expand_va_start): Likewise.
3400         (mep_gimplify_va_arg_expr): Likewise.
3401         * config/mips/mips.c (mips_va_start): Likewise.
3402         (mips_gimplify_va_arg_expr): Likewise.
3403         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
3404         * config/rs6000/rs6000.c (rs6000_va_start): Likewise.
3405         (rs6000_gimplify_va_arg): Likewise.
3406         * config/s390/s390.c (s390_va_start): Likewise.
3407         (s390_gimplify_va_arg): Likewise.
3408         * config/sh/sh.c (sh_va_start): Likewise.
3409         (sh_gimplify_va_arg_expr): Likewise.
3410         * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
3411         * config/spu/spu.c (spu_va_start): Likewise.
3412         (spu_gimplify_va_arg_expr): Likewise.
3413         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
3414         Likewise.
3415         (xstormy16_gimplify_va_arg_expr): Likewise.
3416         * config/xtensa/xtensa.c (xtensa_va_start): Likewise.
3417         (xtensa_gimplify_va_arg_expr): Likewise.
3418
3419 2011-07-19  Richard Guenther  <rguenther@suse.de>
3420
3421         * expr.c (expand_expr_real_2): Remove TRUTH_*_EXPR handling.
3422         (expand_expr_real_1): Remove TRUTH_*IF_EXPR and STATEMENT_LIST
3423         handling.
3424
3425         PR middle-end/18908
3426         * expr.c (expand_expr_real_2): Do not unnecessarily truncate the
3427         result of BIT_*_EXPR to bitfield precision.
3428
3429 2011-07-19  Richard Sandiford  <richard.sandiford@linaro.org>
3430
3431         PR tree-optimization/49742
3432         * tree-data-ref.c (get_references_in_stmt): Treat the lhs of a call
3433         as a potential write.
3434
3435 2011-07-19  Richard Guenther  <rguenther@suse.de>