OSDN Git Service

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