OSDN Git Service

31f23a23c12bc6b53bcc18962deeef0914a342ce
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
2
3         * longlong.h (count_leading_zeros): Use long long builtin for
4         x86-64.
5         (count_trailing_zeros): Likewise.
6
7 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
8
9         PR other/49325
10         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
11         .init_array can be used with .ctors on targets.
12         * configure: Regenerated.
13
14 2011-06-18  Eric Botcazou  <ebotcazou@adacore.com>
15
16         * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
17         if the element type is volatile.
18
19 2011-06-18  Jan Hubicka  <jh@suse.cz>
20
21         * lto-symtab.c (lto_varpool_replace_node): Remove code handling
22         extra name aliases.
23         (lto_symtab_resolve_can_prevail_p): Likewise.
24         (lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
25         * cgraphbuild.c (record_reference): Remove extra body alias code.
26         (mark_load): Likewise.
27         (mark_store): Likewise.
28         * cgraph.h (varpool_node): Remove extra_name filed;
29         add alias_of and extraname_alias.
30         (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
31         (varpool_alias_aliased_node): New inline function.
32         (varpool_variable_node): New function.
33         * cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
34         * ipa-ref.c (ipa_record_reference): Allow aliases on variables.
35         * lto-cgraph.c (lto_output_varpool_node): Update streaming.
36         (input_varpool_node): Likewise.
37         * lto-streamer-out.c (produce_symtab): Remove extra name aliases.
38         (varpool_externally_visible_p): Remove extra body alias code.
39         (function_and_variable_visibility): Likewise.
40         * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
41         (ipa_pta_execute): Use it.
42         * varpool.c (varpool_remove_node): Remove extra name alias code.
43         (varpool_mark_needed_node): Likewise.
44         (varpool_analyze_pending_decls): Analyze aliases.
45         (assemble_aliases): New functoin.
46         (varpool_assemble_decl): Use it.
47         (varpool_create_variable_alias): New function.
48         (varpool_extra_name_alias): Rewrite.
49         (varpool_for_node_and_aliases): New function.
50
51 2011-06-18  Jakub Jelinek  <jakub@redhat.com>
52
53         PR target/49411
54         * config/i386/i386.c (ix86_expand_multi_arg_builtins): If
55         last_arg_constant and last argument doesn't match its predicate,
56         for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
57         if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
58         (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
59         spelling of error message.
60         * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
61         vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
62         const_0_to_255_operand instead of const_int_operand.
63
64         Revert:
65         2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
66
67         * config/i386/sse.md (blendbits): Remove mode attribute.
68         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
69         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
70         Check integer value of operand 3 in insn constraint.
71
72 2011-06-17  Hans-Peter Nilsson  <hp@axis.com>
73
74         PR rtl-optimization/48542
75         * reload.c (find_equiv_reg): Stop looking when finding a
76         setjmp-type call.
77         * reload1.c (reload_as_needed): Invalidate all reload
78         registers when crossing a setjmp-type call.
79
80 2011-06-16  Jeff Law  <law@redhat.com>
81
82         * tree-ssa-threadupdate.c (struct redirection_data): New field
83         intermediate_edge.
84         (THREAD_TARGET2): Define.
85         (redirection_data_eq): Also check that the intermediate edge is
86         equal.
87         (lookup_redirection_data): Drop useless argument.  Extract the
88         outgoing_edge and intermediate edge from E.  Callers updated.
89         (copy_phi_args, update_destination_phis): New functions.
90         (fix_duplicate_block_edges): Likewise.
91         (create_edge_and_update_destination_phis): Duplicate all the edges
92         hung off e->aux.  Use copy_phi_args.
93         (create_duplicates): Use fix_duplicate_block_edges.
94         (fixup_template_block): Likewise.
95         (redirect_edges): If necessary, redirect the joiner block's incoming
96         edge to the duplicate of the joiner block.
97         (thread_block): Don't muck up loops when threading through a joiner
98         block.
99         (thread_through_loop_header): Handle threading through a joiner
100         block.
101         (mark_threaded_blocks, register_jump_thread): Likewise.
102         * tree-flow.h (register_jump_thread): Add new argument.  Callers
103         updated.
104         * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
105         (thread_across_edge): Handle threading through a joiner block.
106         
107 2011-06-16  Martin Jambor  <mjambor@suse.cz>
108
109         PR tree-optimization/49343
110         * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
111         calculate offset, provide 2nd operand for the new COMPONENT_REF.
112
113 2011-06-16  Iain Sandoe  <iains@gcc.gnu.org>
114
115         * config/darwin-protos.h (machopic_select_rtx_section): Move to
116         inside RTX_CODE ifdef.
117
118 2011-06-16  Tom de Vries  <tom@codesourcery.com>
119
120         PR target/45098
121         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): Disallow
122         NULL pointer for pointer arithmetic.
123
124 2011-06-16  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
125
126         PR target/49398
127         Revert.
128         2011-06-10  Wei Guozhi  <carrot@google.com>
129
130         PR target/45335
131         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
132         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
133         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
134         related peephole2.
135         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
136         related peephole2.
137         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
138         (arm_legitimate_ldrd_p): New prototype.
139         (arm_output_ldrd): New prototype.
140         * config/arm/arm.c (arm_check_ldrd_operands): New function.
141         (arm_legitimate_ldrd_p): New function.
142         (arm_output_ldrd): New function.
143
144 2011-06-16  Joern Rennecke  <joern.rennecke@embecosm.com>
145
146         PR middle-end/46500
147         * doc/tm.texi.in: Update Copyright date.
148         * doc/tm.texi: Regenerate.
149         * targhooks.c (default_setup_incoming_varargs): Replace
150         CUMULATIVE_ARGS* argument type with cumulative_args_t.
151         (default_pretend_outgoing_varargs_named): Likewise.
152         (hook_pass_by_reference_must_pass_in_stack): Likewise.
153         (hook_callee_copies_named): Likewise.
154         (default_function_arg_advance): Likewise.
155         (default_function_arg): Likewise.
156         (default_function_incoming_arg): Likewise.
157         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
158         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
159         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
160         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
161         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
162         * targhooks.h (default_setup_incoming_varargs): Likewise.
163         (default_pretend_outgoing_varargs_named): Likewise.
164         (hook_pass_by_reference_must_pass_in_stack): Likewise.
165         (hook_callee_copies_named): Likewise.
166         (default_function_arg_advance): Likewise.
167         (default_function_arg): Likewise.
168         (default_function_incoming_arg): Likewise.
169         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
170         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
171         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
172         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
173         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
174         * target.def (pass_by_reference): Likewise.
175         (setup_incoming_varargs, strict_argument_naming): Likewise.
176         (pretend_outgoing_varargs_named, callee_copies): Likewise.
177         (arg_partial_bytes, function_arg_advance, function_arg): Likewise.
178         (function_incoming_arg): Likewise.
179         * target.h: Don't include "tm.h" .
180         (cumulative_args_t): New typedef.
181         [GCC_TM_H] (get_cumulative_args): New static inline function.
182         [GCC_TM_H] (pack_cumulative_args): Likewise.
183         * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
184         argument type with cumulative_args_t.
185         (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
186         (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
187         * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
188         (frv_arg_partial_bytes, frv_function_arg): Likewise.
189         (frv_function_incoming_arg, frv_function_arg_advance): Likewise.
190         (frv_function_arg_1): Likewise.
191         * config/s390/s390.c (s390_pass_by_reference): Likewise.
192         (s390_function_arg_advance, s390_function_arg): Likewise.
193         * config/m32c/m32c.c (m32c_function_arg): Likewise.
194         (m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
195         (m32c_strict_argument_naming): Likewise.
196         * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
197         (spu_function_arg_advance): Likewise.
198         (spu_setup_incoming_varargs): Likewise.  Make static.
199         * config/spu/spu-protos.h (spu_setup_incoming_varargs):
200         Remove prototype.
201         * config/sparc/sparc.c (sparc_strict_argument_naming): Replace
202         CUMULATIVE_ARGS* argument type with cumulative_args_t.
203         (sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
204         (sparc_function_arg, sparc_function_incoming_arg): Likewise.
205         (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
206         * config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
207         (mep_pass_by_reference, mep_function_arg): Likewise.
208         (mep_function_arg_advance): Likewise.
209         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
210         (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
211         (m32r_function_arg, m32r_function_arg_advance): Likewise.
212         * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
213         * config/i386/i386.c (ix86_function_arg_advance): Likewise.
214         (ix86_function_arg, ix86_pass_by_reference): Likewise.
215         (ix86_setup_incoming_varargs): Likewise.
216         * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
217         (sh_strict_argument_naming): Likewise.
218         (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
219         (sh_callee_copies, sh_arg_partial_bytes): Likewise.
220         (sh_function_arg_advance, sh_function_arg): Likewise.
221         * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
222         (pdp11_function_arg_advance): Likewise.
223         * config/microblaze/microblaze.c (microblaze_function_arg_advance):
224         Likewise.
225         (microblaze_function_arg, function_arg_partial_bytes): Likewise.
226         * config/avr/avr.c (avr_function_arg): Likewise.
227         (avr_function_arg_advance): Likewise.
228         * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
229         (xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
230         (xtensa_function_arg_1): Likewise.
231         * config/stormy16/stormy16.c (xstormy16_function_arg_advance): Likewise.
232         (xstormy16_function_arg): Likewise.
233         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
234         (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
235         (fr30_function_arg_advance): Likewise.
236         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
237         (lm32_function_arg, lm32_function_arg_advance): Likewise.
238         * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
239         (moxie_function_arg, moxie_function_arg_advance): Likewise.
240         (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
241         * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
242         (cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
243         (cris_function_arg, cris_function_incoming_arg): Likewise.
244         (cris_function_arg_advance, cris_function_arg_1): Likewise.
245         * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
246         (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
247         (iq2000_function_arg, iq2000_function_arg_advance): Likewise.
248         * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
249         (mn10300_function_arg, mn10300_function_arg_advance): Likewise.
250         (mn10300_arg_partial_bytes): Likewise.
251         * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
252         (ia64_arg_partial_bytes, ia64_function_arg): Likewise.
253         (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
254         (ia64_function_arg_1): Likewise.
255         * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
256         (m68k_function_arg): Likewise.
257         * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
258         (rs6000_function_arg, setup_incoming_varargs): Likewise.
259         (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
260         * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
261         (picochip_function_arg, picochip_incoming_function_arg): Likewise.
262         (picochip_arg_advance): Likewise.
263         * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
264         (mcore_arg_partial_bytes, mcore_function_arg): Likewise.
265         (mcore_function_arg_advance): Likewise.
266         * config/score/score.c (score_pass_by_reference): Likewise.
267         (score_function_arg_advance): Likewise.
268         (score_arg_partial_bytes): Likewise.  Make static.
269         * config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
270         * config/arm/arm.c (arm_arg_partial_bytes): Replace
271         CUMULATIVE_ARGS* argument type with cumulative_args_t.
272         (arm_function_arg, arm_function_arg_advance): Likewise.
273         (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
274         * config/pa/pa.c (pa_pass_by_reference): Likewise.
275         (pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
276         (pa_function_arg): Likewise.
277         * config/mips/mips.c (mips_strict_argument_naming): Likewise.
278         (mips_function_arg, mips_function_arg_advance): Likewise.
279         (mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
280         (mips_callee_copies, mips_setup_incoming_varargs): Likewise.
281         * config/vax/vax.c (vax_function_arg): Likewise.
282         (vax_function_arg_advance): Likewise.
283         * config/h8300/h8300.c (h8300_function_arg): Likewise.
284         (h8300_function_arg_advance): Likewise.
285         * config/v850/v850.c (v850_pass_by_reference): Likewise.
286         (v850_strict_argument_naming, v850_function_arg): Likewise.
287         (v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
288         (v850_setup_incoming_varargs): Likewise.
289         * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
290         (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
291         (mmix_function_arg, mmix_pass_by_reference): Likewise.
292         (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
293         with const void *.
294         * config/bfin/bfin.c (setup_incoming_varargs): Replace
295         CUMULATIVE_ARGS* argument type with cumulative_args_t.
296         (bfin_function_arg_advance, bfin_function_arg): Likewise.
297         (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
298         * calls.c (emit_call_1): Change type of args_so_far to
299         cumulative_args_t.  Changed all callers.
300         (initialize_argument_information): Likewise.
301         (expand_call, emit_library_call_value_1): Use pack_cumulative_args.
302         * dse.c (get_call_args): Likewise.
303         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
304         * function.c (pass_by_reference, reference_callee_copied): Likewise.
305         (struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
306         New member args_so_far_v.  Changed all users.
307         * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
308         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
309         * config/mips/mips.c (mips_output_args_xfer): Likewise.
310         * config/s390/s390.c (s390_call_saved_register_used): Likewise.
311         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
312         * config/microblaze/microblaze.c (microblaze_expand_prologue): Likewise.
313         * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
314         m32r_pass_by_reference.
315
316 2011-06-16  Ira Rosen  <ira.rosen@linaro.org>
317
318         * tree-vectorizer.h (vect_recog_func_ptr): Change the first
319         argument to be a VEC of statements.
320         * tree-vect-loop.c (vect_determine_vectorization_factor):
321         Remove the assert that pattern statements have to have their
322         vector type set.
323         * tree-vect-patterns.c (vect_recog_widen_sum_pattern):
324         Change the first argument to be a VEC of statements.  Update
325         documentation.
326         (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
327         (vect_handle_widen_mult_by_const): New function.
328         (vect_recog_widen_mult_pattern):  Change the first argument to
329         be a VEC of statements.  Update documentation.  Check that the
330         constant is INTEGER_CST.  Support multiplication by a constant
331         that fits an intermediate type - call
332         vect_handle_widen_mult_by_const.
333         (vect_pattern_recog_1): Update vect_recog_func_ptr and its
334         call.  Handle additional pattern statements if necessary.
335
336 2011-06-16  Nick Clifton  <nickc@redhat.com>
337
338         PR target/49427
339         * config.gcc: Set cpu_type to v850 for any V850 architecture.
340         (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
341         md_file, extra_modes, out_file and extra_options are these are all
342         deduced from cpu_type.
343
344 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
345
346         * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
347         truncation mask to 63.
348
349 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
350
351         PR target/49313
352         PR target/29524
353         * longlong.h: Add AVR support:
354         (count_leading_zeros): New macro.
355         (count_trailing_zeros): New macro.
356         (COUNT_LEADING_ZEROS_0): New macro.
357         * config/avr/t-avr (LIB1ASMFUNCS): Add
358         _ffssi2, _ffshi2, _loop_ffsqi2,
359         _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2,
360         _paritydi2, _paritysi2, _parityhi2,
361         _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
362         _bswapsi2, _bswapdi2,
363         _ashldi3, _ashrdi3, _lshrdi3
364         (LIB2FUNCS_EXCLUDE): Add _clz.
365         * config/avr/libgcc.S (XCALL): Move up in file.
366         (XJMP): New C Macro.
367         (DEFUN): New asm macro.
368         (ENDF): New asm macro.
369         (__ffssi2): New function.
370         (__ffshi2): New function.
371         (__loop_ffsqi2): New function.
372         (__ctzsi2): New function.
373         (__ctzhi2): New function.
374         (__clzdi2): New function.
375         (__clzsi2): New function.
376         (__clzhi2): New function.
377         (__paritydi2): New function.
378         (__paritysi2): New function.
379         (__parityhi2): New function.
380         (__parityqi2): New function.
381         (__popcounthi2): New function.
382         (__popcountsi2): New function.
383         (__popcountdi2): New function.
384         (__popcountqi2): New function.
385         (__bswapsi2): New function.
386         (__bswapdi2): New function.
387         (__ashldi3): New function.
388         (__ashrdi3): New function.
389         (__lshrdi3): New function.
390         Fix suspicous lines.
391
392 2011-06-16  Richard Guenther  <rguenther@suse.de>
393
394         * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
395         the same as x != 0.
396         * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0 to
397         (bool) X & 1.
398         * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
399         equality compares against zero for the lower bit.
400
401 2011-06-16  Jakub Jelinek  <jakub@redhat.com>
402
403         PR tree-optimization/49419
404         * tree-vrp.c (execute_vrp): Call init_range_assertions
405         before estimate_numbers_of_iterations, call
406         free_number_of_iterations_estimates before calling
407         remove_range_assertions.
408
409 2011-06-16  Revital Eres  <revital.eres@linaro.org>
410
411         * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
412         (struct partial_schedule): Add rows_length field.
413         (verify_partial_schedule): Check rows_length.
414         (ps_insert_empty_row): Handle rows_length.
415         (create_partial_schedule): Likewise.
416         (free_partial_schedule): Likewise.
417         (reset_partial_schedule): Likewise.
418         (create_ps_insn): Remove rest_count argument.
419         (remove_node_from_ps): Update rows_length.
420         (add_node_to_ps): Update rows_length and call create_ps_insn
421         without passing row_rest_count.
422         (rotate_partial_schedule): Update rows_length.
423
424 2011-06-16  Revital Eres  <revital.eres@linaro.org>
425
426         * ddg.c (add_intra_loop_mem_dep): New function.
427         (build_intra_loop_deps): Call it.
428
429 2011-06-13  Jeff Law  <law@redhat.com>
430
431         * df-problems.c (df_lr_local_compute): Manually CSE
432         PIC_OFFSET_TABLE_REGNUM.
433         * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
434         (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
435
436 2011-06-13  Jan Hubicka  <jh@suse.cz>
437
438         * cgraphunit.c (handle_alias_pairs): New function.
439         (cgraph_finalize_compilation_unit): Use it.
440         * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
441         as externally visible.
442
443 2011-06-15  Richard Guenther  <rguenther@suse.de>
444
445         * expr.c (expand_expr_real_2): Reduce all integral types to
446         bitfield precision.
447         (expand_expr_real_1): Likewise.
448
449 2011-06-15  Martin Jambor  <mjambor@suse.cz>
450
451         PR tree-optimization/48613
452         * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
453         ipa_node_params_vector is NULL.
454
455 2011-06-15  Jakub Jelinek  <jakub@redhat.com>
456
457         PR debug/49382
458         * dwarf2out.c (dw_loc_list_node): Add force field.
459         (add_var_loc_to_decl): For PARM_DECL, attempt to keep
460         the incoming location in the list, even if it is modified
461         before first real insn.
462         (output_loc_list): Emit empty ranges with force flag set.
463         (dw_loc_list): If first range of a PARM_DECL is empty,
464         set force flag.
465
466 2011-06-15  Alexander Monakov  <amonakov@ispras.ru>
467
468         PR target/49349
469         * sel-sched.c (find_place_for_bookkeeping): Add new parameter
470         (fence_to_rewind).  Use it to notice when bookkeeping will be placed
471         above a fence.  Update comments.
472         (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
473         placed just above it.  Do not allow NULL place_to_insert.
474
475 2011-06-15  Ira Rosen  <ira.rosen@linaro.org>
476
477         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
478         (slpeel_tree_peel_loop_to_edge): Don't call
479         remove_dead_stmts_from_loop.
480         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
481         remove irrelevant pattern statements.  For irrelevant statements
482         check if it is the last statement of a detected pattern, use
483         corresponding pattern statement instead.
484         (destroy_loop_vec_info): No need to remove pattern statements,
485         only free stmt_vec_info.
486         (vect_transform_loop): For irrelevant statements check if it is
487         the last statement of a detected pattern, use corresponding
488         pattern statement instead.
489         * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
490         pattern statements.  Set basic block for the new statement.
491         (vect_pattern_recog): Update documentation.
492         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
493         operands of pattern statements.
494         (vectorizable_call): Fix printing.  In case of a pattern statement
495         use the lhs of the original statement when creating a dummy
496         statement to replace the original call.
497         (vect_analyze_stmt): For irrelevant statements check if it is
498         the last statement of a detected pattern, use corresponding
499         pattern statement instead.
500         * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
501         statements use gsi of the original statement.
502
503 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
504
505         * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
506         common/common-target-def.h.
507         * target.def (default_target_flags, handle_option,
508         supports_split_stack, optimization_table, init_struct,
509         except_unwind_info, unwind_tables_default, have_named_sections):
510         Move to common/common-target.def.
511         * target.h (enum opt_levels, struct default_options): Move to
512         common/common-target.h.
513         * targhooks.c (default_except_unwind_info,
514         dwarf2_except_unwind_info, sjlj_except_unwind_info,
515         default_target_handle_option, empty_optimization_table): Move to
516         common/common-targhooks.c.
517         * targhooks.h (default_except_unwind_info,
518         dwarf2_except_unwind_info, sjlj_except_unwind_info,
519         default_target_handle_option, empty_optimization_table): Move to
520         common/common-targhooks.h.
521         * common/common-target-def.h: Include common/common-targhooks.h.
522         (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
523         defined.
524         * common/common-target.def (handle_option, option_init_struct,
525         option_optimization_table, default_target_flags,
526         except_unwind_info, supports_split_stack, unwind_tables_default,
527         have_named_sections): Move from target.def.
528         (HOOK_PREFIX): Undefine at end of file.
529         * common/common-target.h: Include input.h.
530         (enum opt_levels, struct default_options): Move from target.h.
531         * common/common-targhooks.c, common/common-targhooks.h: New.
532         * config.gcc (target_has_targetm_common): Default to yes.
533         (moxie*): Set target_has_targetm_common=no.
534         (hppa*-*-*): Don't set target_has_targetm_common=yes.
535         * doc/tm.texi: Regenerate.
536         * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
537         (C_TARGET_DEF_H): Add common/common-targhooks.h.
538         (GCC_OBJS): Remove vec.o.
539         (OBJS): Remove hooks.o and vec.o.
540         (OBJS-libcommon-target): Add vec.o, hooks.o and
541         common/common-targhooks.o.
542         (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
543         tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
544         expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
545         cfglayout.o, $(out_object_file), $(common_out_object_file)):
546         Update dependencies.
547         (common/common-targhooks.o): New.
548         * common/config/default-common.c: Include tm.h.  Add FIXME
549         comment.
550         * common/config/pa/pa-common.c: Include more headers.  Take
551         copyright dates from pa.c.
552         (pa_option_optimization_table, pa_handle_option,
553         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
554         TARGET_HANDLE_OPTION): Move from pa.c.
555         * common/config/alpha/alpha-common.c,
556         common/config/arm/arm-common.c, common/config/avr/avr-common.c,
557         common/config/bfin/bfin-common.c,
558         common/config/cris/cris-common.c,
559         common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
560         common/config/h8300/h8300-common.c,
561         common/config/i386/i386-common.c,
562         common/config/ia64/ia64-common.c,
563         common/config/iq2000/iq2000-common.c,
564         common/config/lm32/lm32-common.c,
565         common/config/m32c/m32c-common.c,
566         common/config/m32r/m32r-common.c,
567         common/config/m68k/m68k-common.c,
568         common/config/mcore/mcore-common.c,
569         common/config/mep/mep-common.c,
570         common/config/microblaze/microblaze-common.c,
571         common/config/mips/mips-common.c,
572         common/config/mmix/mmix-common.c,
573         common/config/mn10300/mn10300-common.c,
574         common/config/pdp11/pdp11-common.c,
575         common/config/picochip/picochip-common.c,
576         common/config/rs6000/rs6000-common.c,
577         common/config/rx/rx-common.c, common/config/s390/s390-common.c,
578         common/config/score/score-common.c, common/config/sh/sh-common.c,
579         common/config/sparc/sparc-common.c,
580         common/config/spu/spu-common.c, common/config/v850/v850-common.c,
581         common/config/vax/vax-common.c,
582         common/config/xstormy16/xstormy16-common.c,
583         common/config/xtensa/xtensa-common.c: New.
584         * config/alpha/alpha.c: Include common/common-target.h.
585         (alpha_option_optimization_table, alpha_handle_option,
586         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
587         TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
588         * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
589         * config/arm/arm.c (arm_option_optimization_table,
590         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
591         TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
592         arm-common.c.
593         * config/avr/avr.c (avr_option_optimization_table,
594         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
595         to avr-common.c.
596         * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
597         (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
598         TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
599         * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
600         * config/cris/cris.c (cris_option_optimization_table,
601         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
602         TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
603         cris-common.c.
604         * config/fr30/fr30.c (fr30_option_optimization_table,
605         TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
606         to fr30-common.c.
607         * config/frv/frv.c (frv_option_optimization_table,
608         MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
609         TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
610         * config/h8300/h8300.c (h8300_option_optimization_table,
611         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
612         TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
613         * config/i386/i386-protos.h (ix86_handle_option): Declare.
614         * config/i386/i386.c: Include common/common-target.h.
615         (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
616         OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
617         OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
618         OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
619         OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
620         OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
621         OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
622         OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
623         OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
624         OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
625         OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
626         OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
627         OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
628         OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
629         OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
630         OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
631         OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
632         OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
633         OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
634         OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
635         OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
636         OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
637         OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
638         OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
639         OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
640         OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
641         OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
642         OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
643         OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
644         ix86_option_optimization_table, ix86_option_init_struct,
645         ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
646         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
647         TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
648         i386-common.c.
649         * config/i386/t-i386 (i386.o): Update dependencies.
650         * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
651         * config/ia64/ia64.c (ia64_option_optimization_table,
652         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
653         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
654         ia64_handle_option): Move to ia64-common.c.
655         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
656         TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
657         * config/lm32/lm32.c (lm32_option_optimization_table,
658         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
659         to lm32-common.c.
660         * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
661         m32c-common.c.
662         * config/m32r/m32r.c (m32r_option_optimization_table,
663         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
664         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
665         m32r_handle_option): Move to m32r-common.c.
666         (m32r_memory_move_cost): Remove comment referring to
667         TARGET_HANDLE_OPTION.
668         * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
669         Move to m68k-common.c.
670         * config/mcore/mcore.c (mcore_option_optimization_table,
671         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
672         TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
673         * config/mep/mep.c (mep_option_optimization_table,
674         mep_handle_option, TARGET_HANDLE_OPTION,
675         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
676         Move to mep-common.c.
677         * config/microblaze/microblaze.c
678         (microblaze_option_optimization_table,
679         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
680         TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
681         * config/mips/mips.c (mips_handle_option,
682         mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
683         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
684         mips-common.c.
685         * config/mmix/mmix.c (mmix_option_optimization_table,
686         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
687         Move to mmix-common.c.
688         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
689         mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
690         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
691         TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
692         * config/pa/pa.c: Include common/common-target.h.
693         (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
694         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
695         pa_handle_option): Move to pa-common.c.
696         (pa_option_override): Use targetm_common.except_unwind_info.
697         (pa_asm_output_mi_thunk, pa_function_section): Use
698         targetm_common.have_named_sections.
699         * config/pdp11/pdp11.c (pdp11_option_optimization_table,
700         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
701         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
702         pdp11_handle_option, pdp11_option_init_struct): Move to
703         pdp11-common.c.
704         * config/picochip/picochip.c (picochip_option_optimization_table,
705         TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
706         TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
707         * config/rs6000/rs6000.c: Include common/common-target.h.
708         (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
709         TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
710         TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
711         rs6000_handle_option): Move to rs6000-common.c.
712         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
713         * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
714         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
715         TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
716         * config/s390/s390.c (processor_flags_table,
717         s390_option_optimization_table, s390_option_init_struct,
718         s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
719         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
720         TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
721         * config/s390/s390.h (processor_flags_table): Declare.
722         * config/score/score.c (score_option_optimization_table,
723         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
724         TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
725         score_handle_option): Move to score-common.c.
726         * config/sh/sh.c (sh_option_optimization_table,
727         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
728         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
729         sh_handle_option, sh_option_init_struct): Move to sh-common.c.
730         * config/sparc/sparc.c: Include common/common-target.h.
731         (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
732         TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
733         * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
734         TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
735         spu_option_init_struct): Move to spu-common.c.
736         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
737         TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
738         * config/v850/v850.c (small_memory_physical_max,
739         v850_handle_memory_optionn v850_handle_option,
740         v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
741         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
742         v850-common.c.
743         * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to
744         vax-common.c.
745         * config/xtensa/xtensa.c (xtensa_option_optimization_table,
746         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
747         Move to xtensa-common.c.
748         * cfglayout.c: Include common/common-target.h.
749         (fixup_reorder_chain): Use targetm_common.have_named_sections.
750         * cfgrtl.c: Include common/common-target.h.
751         (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
752         targetm_common.have_named_sections.
753         * dbxout.c: Include common/common-target.h.
754         (dbxout_function_end): Use targetm_common.have_named_sections.
755         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
756         targetm_common.except_unwind_info.
757         * dwarf2out.c: Include common/common-target.h.
758         (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
759         dwarf2out_begin_prologue, dwarf2out_frame_init,
760         dwarf2out_frame_finish, dwarf2out_assembly_start): Use
761         targetm_common.except_unwind_info.
762         * except.c: Include common/common-target.h.
763         (init_eh, finish_eh_generation,
764         output_one_function_exception_table): Use
765         targetm_common.except_unwind_info.
766         (switch_to_exception_section): Use
767         targetm_common.have_named_sections.
768         * explow.c: Include common/common-target.h.
769         * expr.c: Include common/common-target.h.
770         (build_personality_function): Use
771         targetm_common.except_unwind_info.
772         * function.c: Include common/common-target.h.
773         (expand_function_end): Use targetm_common.except_unwind_info.
774         * haifa-sched.c: Include common/common-target.h.
775         (sched_create_recovery_edges): Use
776         targetm_common.have_named_sections.
777         * lto-opts.c: Include common/common-target.h instead of target.h.
778         (lto_reissue_options): Use targetm_common.handle_option.
779         * opts.c: Include common/common-target.h.
780         (target_handle_option): Use targetm_common.handle_option.
781         (init_options_struct): Update comment referring to
782         targetm.target_option.optimization.  Use
783         targetm_common.default_target_flags,
784         targetm_common.unwind_tables_default and
785         targetm_common.option_init_struct.
786         (default_options_optimization): Use
787         targetm_common.option_optimization_table.
788         (finish_options): Use targetm_common.except_unwind_info,
789         targetm_common.unwind_tables_default,
790         targetm_common.have_named_sections and
791         targetm_common.supports_split_stack.
792         * toplev.c: Include common/common-target.h.
793         (process_options): Use targetm_common.have_named_sections.
794         * tree-tailcall.c: Include common/common-target.h.
795         (suitable_for_tail_call_opt_p): Use
796         targetm_common.except_unwind_info.
797         * tree.c: Include common/common-target.h.
798         (build_common_builtin_nodes): Use
799         targetm_common.except_unwind_info.
800         * varasm.c: Include common/common-target.h.
801         (resolve_unique_section, hot_function_section,
802         default_function_section): Use targetm_common.have_named_sections.
803
804 2011-06-14  Easwaran Raman  <eraman@google.com>
805
806         PR rtl-optimization/44194
807         * dse.c: Include tree-flow.h
808         (insn_info): Add new field non_frame_wild_read.
809         (group_info): Add new fields escaped_n and escaped_p.
810         (kill_on_calls): New variable.
811         (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
812         (dse_step0): Initialize kill_on_calls.
813         (can_escape): New function.
814         (set_usage_bits): Add additional parameter; record information
815         about escaped locations.
816         (record_store): Pass EXPR corresponding to MEM to
817         set_usage_bits.
818         (dse_step2_nospill): Set kill_on_calls based on
819         group->escaped_n and group->escaped_n.
820         (add_wild_read): Refactor into...
821         (reset_active_stores): ... New function, and
822         (free_read_records): ... New function.
823         (add_non_frame_wild_read): New function.
824         (scan_insn): Call add_non_frame_wild_read on non-const calls.
825         (scan_reads_nospill): Handle instructions with
826         non_frame_wild_read.
827         (dse_step5_nospill): Call scan_reads_nospill for instructions
828         marked as non_frame_wild_read.
829         (dse_step7): Free escaped_n, escaped_p and kill_on_calls
830         bitmaps.
831
832 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
833
834         * common/common-target-def.h, common/common-target.def,
835         common/common-target.h, common/config/default-common.c,
836         common/config/pa/pa-common.c: New files.
837         * Makefile.in (common_out_file, common_out_object_file,
838         COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
839         (OBJS-libcommon-target): Include $(common_out_object_file).
840         (prefix.o): Update dependencies.
841         ($(common_out_object_file), common/common-target-hooks-def.h,
842         s-common-target-hooks-def-h): New.
843         (s-tm-texi): Also check timestamp on common-target.def.
844         (build/genhooks.o): Update dependencies.
845         * config.gcc (common_out_file, target_has_targetm_common): Define.
846         * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
847         TARGET_ALWAYS_STRIP_DOTDOT.
848         * configure.ac (common_out_object_file): Define.
849         (common_out_file, common_out_object_file): Substitute.
850         (common): Create directory.
851         * configure: Regenerate.
852         * doc/tm.texi.in (targetm_common): Document.
853         (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
854         * doc/tm.texi: Regenerate.
855         * genhooks.c (hook_array): Also include common/common-target.def.
856         * prefix.c (tm.h): Don't include.
857         (common/common-target.h): Include.
858         (ALWAYS_STRIP_DOTDOT): Don't define.
859         (update_path): Use targetm_common.always_strip_dotdot instead of
860         ALWAYS_STRIP_DOTDOT.
861         * system.h (ALWAYS_STRIP_DOTDOT): Poison.
862
863 2011-06-14  David Li  <davidxl@google.com>
864
865         * passes.c (execute_function_todo): Remove TODO_dump_func.
866         (execute_one_pass): Remove TODO_dump_func.
867         (execute_function_dump): New function.
868         * tree-vrp.c: Remove TODO_dump_func.
869         * regrename.c: Remove TODO_dump_func.
870         * fwprop.c: Remove TODO_dump_func.
871         * tree-into-ssa.c: Remove TODO_dump_func.
872         * tree-complex.c: Remove TODO_dump_func.
873         * tracer.c: Remove TODO_dump_func.
874         * tree-loop-distribution.c: Remove TODO_dump_func.
875         * postreload-gcse.c: Remove TODO_dump_func.
876         * postreload.c: Remove TODO_dump_func.
877         * tree-ssa-loop-ch.c: Remove TODO_dump_func.
878         * tree-tailcall.c: Remove TODO_dump_func.
879         * ipa-cp.c: Remove TODO_dump_func.
880         * final.c: Remove TODO_dump_func.
881         * tree-emutls.c: Remove TODO_dump_func.
882         * omp-low.c: Remove TODO_dump_func.
883         * tree-ssa-dse.c: Remove TODO_dump_func.
884         * tree-ssa-uncprop.c: Remove TODO_dump_func.
885         * auto-inc-dec.c: Remove TODO_dump_func.
886         * reorg.c: Remove TODO_dump_func.
887         * tree-ssa-copyrename.c: Remove TODO_dump_func.
888         * tree-ssa-ccp.c: Remove TODO_dump_func.
889         * compare-elim.c: Remove TODO_dump_func.
890         * mode-switching.c: Remove TODO_dump_func.
891         * modulo-sched.c: Remove TODO_dump_func.
892         * tree-call-cdce.c: Remove TODO_dump_func.
893         * cse.c: Remove TODO_dump_func.
894         * web.c: Remove TODO_dump_func.
895         * tree-stdarg.c: Remove TODO_dump_func.
896         * lto-streamer-out.c: Remove TODO_dump_func.
897         * tree-ssa-math-opts.c: Remove TODO_dump_func.
898         * tree-ssa-dom.c: Remove TODO_dump_func.
899         * tree-nrv.c: Remove TODO_dump_func.
900         * loop-init.c: Remove TODO_dump_func.
901         * gimple-low.c: Remove TODO_dump_func.
902         * ipa-inline.c: Remove TODO_dump_func.
903         * tree-ssa-sink.c: Remove TODO_dump_func.
904         * jump.c: Remove TODO_dump_func.
905         * ifcvt.c: Remove TODO_dump_func.
906         * tree-ssa-loop.c: Remove TODO_dump_func.
907         * recog.c: Remove TODO_dump_func.
908         * dse.c: Remove TODO_dump_func.
909         * tree-ssa-ifcombine.c: Remove TODO_dump_func.
910         * matrix-reorg.c: Remove TODO_dump_func.
911         * tree-eh.c: Remove TODO_dump_func.
912         * regmove.c: Remove TODO_dump_func.
913         * function.c: Remove TODO_dump_func.
914         * tree-vectorizer.c: Remove TODO_dump_func.
915         * ipa-split.c: Remove TODO_dump_func.
916         * gcse.c: Remove TODO_dump_func.
917         * tree-if-conv.c: Remove TODO_dump_func.
918         * init-regs.c: Remove TODO_dump_func.
919         * tree-ssa-phiopt.c: Remove TODO_dump_func.
920         * implicit-zee.c: Remove TODO_dump_func.
921         * lower-subreg.c: Remove TODO_dump_func.
922         * bt-load.c: Remove TODO_dump_func.
923         * tree-dfa.c: Remove TODO_dump_func.
924         * except.c: Remove TODO_dump_func.
925         * emit-rtl.c: Remove TODO_dump_func.
926         * store-motion.c: Remove TODO_dump_func.
927         * cfgexpand.c: Remove TODO_dump_func.
928         * tree-cfgcleanup.c: Remove TODO_dump_func.
929         * cfgcleanup.c: Remove TODO_dump_func.
930         * tree-ssa-pre.c: Remove TODO_dump_func.
931         * tree-sra.c: Remove TODO_dump_func.
932         * tree-mudflap.c: Remove TODO_dump_func.
933         * tree-ssa-copy.c: Remove TODO_dump_func.
934         * cfglayout.c: Remove TODO_dump_func.
935         * tree-ssa-forwprop.c: Remove TODO_dump_func.
936         * tree-ssa-dce.c: Remove TODO_dump_func.
937         * ira.c: Remove TODO_dump_func.
938         * tree-ssa.c: Remove TODO_dump_func.
939         * integrate.c: Remove TODO_dump_func.
940         * tree-optimize.c: Remove TODO_dump_func.
941         * tree-ssa-phiprop.c: Remove TODO_dump_func.
942         * tree-object-size.c: Remove TODO_dump_func.
943         * combine.c: Remove TODO_dump_func.
944         * bb-reorder.c: Remove TODO_dump_func.
945         * cprop.c: Remove TODO_dump_func.
946         * var-tracking.c: Remove TODO_dump_func.
947         * tree-profile.c: Remove TODO_dump_func.
948         * tree-vect-generic.c: Remove TODO_dump_func.
949         * reg-stack.c: Remove TODO_dump_func.
950         * sched-rgn.c: Remove TODO_dump_func.
951         * tree-ssa-structalias.c: Remove TODO_dump_func.
952         * tree-switch-conversion.c: Remove TODO_dump_func.
953         * tree-cfg.c: Remove TODO_dump_func.
954         * tree-ssa-reassoc.c: Remove TODO_dump_func.
955         * combine-stack-adj.c: Remove TODO_dump_func.
956         * dce.c: Remove TODO_dump_func.
957         * tree-ssanames.c: Remove TODO_dump_func.
958         * regcprop.c: Remove TODO_dump_func.
959
960 2011-06-14  H.J. Lu  <hongjiu.lu@intel.com>
961
962         PR middle-end/47364
963         * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
964         and properly handle result not in Pmode.
965
966 2011-06-14  Robert Millan  <rmh@gnu.org>
967
968         * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
969         * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
970         `config/linux.h'.
971
972         * config/i386/kfreebsd-gnu64.h: New file.
973         * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
974         with `i386/kfreebsd-gnu64.h'.
975
976         * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
977         (GNU_USER_LINK_EMULATION64): New macros.
978         * config/i386/gnu-user64.h (LINK_SPEC): Rely on
979         `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
980         of hardcoding `elf_i386' and `elf_x86_64'.
981
982 2011-06-14  Nick Clifton  <nickc@redhat.com>
983
984         PR target/49403
985         * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
986
987         PR target/49402
988         * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
989
990 2011-06-14  Jakub Jelinek  <jakub@redhat.com>
991
992         PR fortran/49103
993         * tree.h (DECL_NONSHAREABLE): Define.
994         (struct tree_decl_common): Change decl_common_unused to
995         decl_nonshareable_flag.
996         * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
997         Ignore vars with DECL_NONSHAREABLE bit set.
998         * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
999         on stores to automatic aggregate vars.
1000
1001         PR rtl-optimization/49390
1002         Revert:
1003         2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
1004
1005         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
1006         MEM_ALIAS_SET.
1007
1008 2011-06-14  Zdenek Dvorak  <ook@ucw.cz>
1009             Tom de Vries  <tom@codesourcery.com>
1010
1011         PR target/45098
1012         * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
1013         Document changed semantics.
1014         (max_stmt_executions, max_stmt_executions_int): Declare.
1015         * tree-data-ref.c (estimated_loop_iterations)
1016         (estimated_loop_iterations_int): Move functions...
1017         * tree-ssa-loop-niter.c (estimated_loop_iterations)
1018         (estimated_loop_iterations_int): here.
1019         (record_estimate): Change nb_iterations_upper_bound and
1020         nb_iterations_estimate semantics.
1021         (max_stmt_executions, max_stmt_executions_int): New function.
1022         * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
1023         (max_stmt_executions_tree): this.
1024         (analyze_miv_subscript): Use max_stmt_executions_tree instead of
1025         estimated_loop_iterations_tree.
1026         tree-ssa-loop-ivopts.c (avg_loop_niter): Use
1027         max_stmt_executions_int instead of estimated_loop_iterations_int.
1028         * predict.c (predict_loops): Idem.
1029         * tree-parloops.c (parallelize_loops): Idem.
1030         * tree-data-ref.c (analyze_siv_subscript_cst_affine)
1031         (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
1032         (init_omega_for_ddr_1): Idem.
1033         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
1034         (loop_prefetch_arrays): Idem
1035         * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
1036         max_stmt_executions instead of estimated_loop_iterations.
1037         * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
1038         * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
1039         instead of nb_iterations_upper_bound.
1040
1041 2011-06-13  Jan Hubicka  <jh@suse.cz>
1042
1043         * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
1044
1045 2011-06-14  Richard Henderson  <rth@redhat.com>
1046
1047         PR debug/48459
1048         * dwarf2out.c (frame_pointer_fb_offset_valid): New.
1049         (based_loc_descr): Assert it's true.
1050         (compute_frame_pointer_to_fb_displacement): Set it, rather than
1051         aborting immediately.
1052
1053 2011-06-14  Sanjin Liu  <scliu@faraday-tech.com>
1054             Mingfeng Wu  <mingfeng@faraday-tech.com>
1055
1056         * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
1057
1058 2011-06-13  Jan Hubicka  <jh@suse.cz>
1059
1060         * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
1061
1062 2011-06-13  Jan Hubicka  <jh@suse.cz>
1063
1064         * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
1065         similarly to DECL_COMDAT.
1066         * cgraphunit.c (cgraph_analyze_function): Likewise.
1067         * ipa.c (function_and_variable_visibility): Likewise.
1068
1069 2011-06-13  Jan Hubicka  <jh@suse.cz>
1070
1071         * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
1072         BINFO_VIRTUALS when streaming for ltrans unit.
1073
1074 2011-06-13  David Edelsohn  <dje.gcc@gmail.com>
1075
1076         * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
1077         (movdi_internal64): Same.
1078
1079 2011-06-13  Edmar Wienskoski  <edmar@freescale.com>
1080
1081         PR target/44618
1082         * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
1083         a set of similar patterns, where the MATCH_OPERAND for the function
1084         argument is replaced with individual references to hardware registers.
1085         (save_fpregs_<mode>): Ditto
1086         (restore_gpregs_<mode>): Ditto
1087         (return_and_restore_gpregs_<mode>): Ditto
1088         (return_and_restore_fpregs_<mode>): Ditto
1089         (return_and_restore_fpregs_aix_<mode>): Ditto
1090
1091 2011-06-13  Jan Hubicka  <jh@suse.cz>
1092
1093         * ipa-utils.c (postorder_stack): New structure.
1094         (ipa_reverse_postorder): Handle aliases.
1095
1096 2011-06-13  Jan Hubicka  <jh@suse.cz>
1097
1098         * ipa-inline.c (reset_edge_caches): Walk aliases.
1099         (update_caller_keys): Do not test inlinability of aliases.
1100         * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
1101         (do_estimate_growth): Fix typo.
1102
1103 2011-06-13  Jan Hubicka  <jh@suse.cz>
1104
1105         * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
1106         (can_remove_node_now_p): ... here; handle same comdat groups.
1107         (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
1108         (inline_call): Update use of can_remove_node_now_p.
1109
1110 2011-06-13  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
1111
1112         * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
1113         condition to disallow non-identical memory locations.
1114         (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
1115         preference to bit manipulation instructions.
1116
1117 2011-06-13  Jan Hubicka  <jh@suse.cz>
1118
1119         * cgraph.c (cgraph_for_node_thunks_and_aliases,
1120         cgraph_for_node_and_aliases): Fix thinko in recursive walking.
1121         (nonremovable_p): New function.
1122         (cgraph_can_remove_if_no_direct_calls_p): New function.
1123         (used_from_object_file_p): New functoin.
1124         (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
1125         references from aliases.
1126         * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
1127         * ipa-inline.c (check_caller_edge): New function.
1128         (want_inline_function_called_once_p): Use it; accept aliases called
1129         once, too.
1130         * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
1131
1132 2011-06-13  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1133
1134         PR target/48454
1135         * config/arm/neon.md (vec_pack_trunc): Set the lengths
1136         correctly for the case with Quad vectors.
1137
1138 2011-06-13 Jakub Jelinek  <jakub@redhat.com>
1139            Ira Rosen  <ira.rosen@linaro.org>
1140
1141         PR tree-optimization/49352
1142         * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
1143         all, make sure loop_use_stmt after the loop is a def stmt of a used
1144         SSA_NAME that is the only one defined inside of the loop.  Don't
1145         check for COND_EXPR and GIMPLE_BINARY_RHS.
1146         (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
1147         check_reduction is true.
1148
1149 2011-06-11  Jan Hubicka  <jh@suse.cz>
1150
1151         PR middle-end/49373
1152         * ipa.c (cgraph_externally_visible_p): Check resolution info.
1153
1154 2011-06-11  Jan Hubicka  <jh@suse.cz>
1155
1156         PR middle-end/48836
1157         * ipa-inline-transform.c: Include tree-pass.h
1158         (inline_transform): Set TODO_update_ssa_only_virtuals.
1159         * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
1160
1161 2011-06-11  Jan Hubicka  <jh@suse.cz>
1162
1163         PR middle-end/49378
1164         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
1165         aliases and thunks.
1166
1167 2011-06-12  Ira Rosen  <ira.rosen@linaro.org>
1168
1169         * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
1170         Take number of iterations to peel into account for equally frequent
1171         misalignment values.
1172
1173 2011-06-11  Jan Hubicka  <jh@suse.cz>
1174
1175         * lto-streamer-out.c (produce_symtab): Stream out the newly represented
1176         aliases.
1177
1178 2011-06-11  Jan Hubicka  <jh@suse.cz>
1179
1180         * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting varying
1181         args.
1182         (ipa_update_after_lto_read): Likewise.
1183         (ipa_write_node_info): Do not sream call_with_var_arguments.
1184         (ipa_read_node_info): Likewise.
1185
1186 2011-06-11  Jan Hubicka  <jh@suse.cz>
1187
1188         * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
1189
1190 2011-06-11  Jan Hubicka  <jh@suse.cz>
1191
1192         * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
1193         (lto_symtab_resolve_can_prevail_p): Likewise.
1194         (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
1195         * cgraph.c (same_body_aliases_done): New global var.
1196         (cgraph_same_body_alias_1): Rename to ...
1197         (cgraph_create_function_alias): ... this one; reorg to new
1198         representation.
1199         (cgraph_same_body_alias): Use cgraph_create_function_alias;
1200         record references when asked to.
1201         (cgraph_add_thunk): Fix formating.
1202         (cgraph_get_node): Kill same body alias code.
1203         (cgraph_node_for_asm): Likewise.
1204         (cgraph_remove_same_body_alias): Remove.
1205         (cgraph_remove_node): Kill same body alias code.
1206         (cgraph_mark_address_taken_node): Mark also the aliased function
1207         as having address taken.
1208         (dump_cgraph_node): Dump same body aliases.
1209         (cgraph_for_node_thunks_and_aliases): Update for new alias
1210         representation.
1211         (cgraph_for_node_and_aliases): Likewise.
1212         * cgraph.h (same_body): Kll pointer.
1213         (same_body_alias): Update comment.
1214         (same_body_aliases_done): Declare.
1215         (cgraph_remove_same_body_alias): Remove declaration.
1216         (cgraph_create_function_alias): Declare.
1217         (cgraph_process_same_body_aliases): Declare.
1218         (cgraph_function_with_gimple_body_p): Check for alias.
1219         (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
1220         (cgraph_alias_aliased_node): New function.
1221         (cgraph_function_node): Update for new aliases.
1222         (cgraph_function_or_thunk_node): Likewise.
1223         * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
1224         (inline_call): Remove dead aliases.
1225         * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
1226         name hack for same body aliases.
1227         (clone_of_p): Look through aliases.
1228         (verify_cgraph_node): Verify aliases.
1229         (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
1230         (cgraph_process_same_body_aliases): New function.
1231         (process_function_and_variable_attributes): Disable weakref warning on
1232         alias.
1233         (cgraph_analyze_functions): Handle aliases.
1234         (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
1235         (assemble_thunks): Rename to ...
1236         (assemble_thunks_and_aliases): ... this one; handle aliases, too.
1237         (cgraph_expand_function): Remove alias output code.
1238         (cgraph_output_in_order): Skip aliases.
1239         (cgraph_preserve_function_body_p): Aliases don't need preserving.
1240         * ipa-ref.c (ipa_ref_use_name): Add alias reference.
1241         (ipa_record_reference): Do not assert on alias references.
1242         (ipa_ref_has_aliases_p): New function.
1243         * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
1244         (ipa_ref_has_aliases_p): Declare.
1245         * lto-cgraph.c (lto_output_node): Handle aliases.
1246         (input_node): Likewise.
1247         * lto-streamer-out.c (lto_output): Skip aliases.
1248         (produce_symtab): Kill same_body_alias code.
1249         * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
1250         (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
1251         * ipa-inline.c (update_caller_keys): Walk aliases.
1252         (inline_small_functions): Fix thinko in previous patch.
1253         * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
1254         (function_and_variable_visibility): Do not walk same body aliases.
1255         * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
1256         (ipa_pta_execute): Use it.
1257
1258 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
1259
1260         * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
1261         (*vec_dupv2df): Rename from vec_dupv2df.
1262         (vec_dupv2df): New expander.
1263
1264 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
1265
1266         * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
1267
1268 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
1269
1270         * config/i386/i386.md: Use default value in "isa" attribute.
1271         * config/i386/sse.md: Ditto.
1272         * config/i386/mmx.md: Ditto.
1273
1274 2011-06-10  Wei Guozhi  <carrot@google.com>
1275
1276         PR target/45335
1277         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
1278         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
1279         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
1280         related peephole2.
1281         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
1282         related peephole2.
1283         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
1284         (arm_legitimate_ldrd_p): New prototype.
1285         (arm_output_ldrd): New prototype.
1286         * config/arm/arm.c (arm_check_ldrd_operands): New function.
1287         (arm_legitimate_ldrd_p): New function.
1288         (arm_output_ldrd): New function.
1289
1290 2011-06-10  David Li  <davidxl@google.com>
1291
1292         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
1293         * passes.c (passr_eq): New function.
1294         (create_pass_tab): New function.
1295         (pass_traverse): New function.
1296         (dump_one_pass): New function.
1297         (dump_pass_list): New function.
1298         (dump_passes): New function.
1299
1300 2011-06-10  Jan Hubicka  <jh@suse.cz>
1301
1302         * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
1303         setting the nothrow flag.
1304         * ipa-reference.c (propagate): Skip aliases.
1305         * ipa-pure-const.c (propagate_pure_const): Skip aliases.
1306         (propagate_nothrow): Skip aliases; do not update cgraph.
1307         (local_pure_const): Do not update cgraph.
1308         * tree-profile.c (tree_profiling): Do fixup_cfg.
1309
1310 2011-06-10  Jan Hubicka  <jh@suse.cz>
1311
1312         * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
1313         (cgraph_local_node_p): ... here; handle aliases.
1314         (has_addr_references_p): Break out from ...;
1315         (cgraph_remove_unreachable_nodes) ... here.
1316
1317 2011-06-10  Jan Hubicka  <jh@suse.cz>
1318
1319         * opts.c (default_options): Enlist OPT_finline_functions_called_once.
1320         * common.opt (flag_inline_functions_called_once): Do not
1321         initialize to 1.
1322
1323 2011-06-10  Jan Hubicka  <jh@suse.cz>
1324
1325         * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
1326         (ipcp_initialize_node_lattices): Do not deal with aliases;
1327         Do not try to propagate through thunks.
1328         (ipcp_change_tops_to_bottom): Do not deal with aliases.
1329
1330 2011-06-10  Jan Hubicka  <jh@suse.cz>
1331
1332         * ipa-prop.c (ipa_write_node_info): Stream jump functions
1333         for indirect calls.
1334         (ipa_read_node_info): Likewise.
1335
1336 2011-06-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1337
1338         PR lto/49302
1339         * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
1340         (build_and_insert_call): Likewise.
1341         (build_and_insert_ref): New.
1342         (gimple_expand_builtin_pow): Minor cleanup.
1343         (gimple_expand_builtin_cabs): New.
1344         (execute_cse_sincos): Add case for BUILT_IN_CABS.
1345
1346 2011-06-10  Jan Hubicka  <jh@suse.cz>
1347
1348         * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
1349         (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
1350         (ipcp_initialize_node_lattices): We don't propagate through an aliases.
1351         (ipcp_propagate_stage): Skip aliases when propagating.
1352         (ipcp_need_redirect_p): Skip aliases.
1353         (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
1354         collect_callers_of_node.
1355         * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
1356         for aliases.
1357         (ipa_compute_jump_functions): Look through aliases.
1358
1359 2011-06-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1360
1361         * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
1362
1363 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
1364
1365         * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
1366         Adjust comments.
1367         * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
1368
1369 2011-06-10  Jan Hubicka  <jh@suse.cz>
1370
1371         * ipa-cp.c (ipcp_process_devirtualization_opportunities):
1372         Update call of gimple_get_virt_method_for_binfo.
1373         * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
1374         refuse_thunks parameter.
1375         (gimple_fold_call): Update.
1376         * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
1377
1378 2011-06-10  Jan Hubicka  <jh@suse.cz>
1379
1380         * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
1381         (not_all_callers_have_enough_arguments_p): ... this one; turn into
1382         worker for cgraph_for_node_and_aliases.
1383         (convert_callers_for_node): Break out from ...
1384         (convert_callers): ... here.
1385         (modify_function): Use collect_callers_of_node.
1386         (ipa_early_sra): Use cgraph_for_node_and_aliases.
1387
1388 2011-06-10  Richard Guenther  <rguenther@suse.de>
1389
1390         PR tree-optimization/49361
1391         * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
1392         when not already in gimple form.
1393
1394 2011-06-10  Richard Guenther  <rguenther@suse.de>
1395
1396         PR bootstrap/49344
1397         * tree-ssa-math-opts.c (convert_mult_to_fma): Use
1398         FOR_EACH_PHI_OR_STMT_USE.
1399
1400 2011-06-10  Jan Hubicka  <jh@suse.cz>
1401
1402         * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
1403         (clone_inlined_nodes): ... here.
1404         (inline_call): Use cgraph_function_or_thunk_node; redirect edge
1405         to real destination prior inlining.
1406         * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
1407         can_early_inline_edge_p, want_early_inline_function_p,
1408         want_early_inline_function_p, want_inline_small_function_p,
1409         want_inline_self_recursive_call_p, want_inline_function_called_once_p,
1410         edge_badness, update_all_callee_keys, lookup_recursive_calls,
1411         add_new_edges_to_heap, inline_small_functions, flatten_function,
1412         inline_always_inline_functions, early_inline_small_functions): Use
1413         cgraph_function_or_thunk_node.
1414         * ipa-inline-analysis.c (evaluate_conditions_for_edge,
1415         dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
1416         (do_estimate_edge_growth_1): Break out from ...
1417         (do_estimate_growth) ... here; walk aliases.
1418         (inline_generate_summary): Skip aliases.
1419
1420 2011-06-10  Richard Guenther  <rguenther@suse.de>
1421
1422         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
1423         forward when combining, visit inserted stmts when a stmt was changed.
1424
1425 2011-06-10  Paolo Carlini  <paolo.carlini@oracle.com>
1426
1427         * tree.h (error_operand_p): Add.
1428         * dbxout.c (dbxout_type_fields): Use the latter.
1429         * c-decl.c (add_stmt): Likewise.
1430         * gimplify.c (omp_add_variable, omp_notice_variable,
1431         gimplify_scan_omp_clauses): Likewise.
1432
1433 2011-06-10  Georg-Johann Lay  <avr@gjlay.de>
1434
1435         * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
1436         when a value is actually passed in regs.
1437
1438 2011-06-10  Eric Botcazou  <ebotcazou@adacore.com>
1439             Laurent RougĂ©  <laurent.rouge@menta.fr>
1440
1441         * doc/invoke.texi (SPARC options): Add -mflat.
1442         * config/sparc/sparc.opt: Likewise.
1443         * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
1444         (sparc_flat_expand_prologue): Declare.
1445         (sparc_flat_expand_epilogue): Likewise.
1446         * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
1447         (CPP_ENDIAN_SPEC): Replace with...
1448         (CPP_OTHER_SPEC): ...this.  Also handle -mflat and -msoft-float.
1449         (CPP_SPEC): Adjust to above change.
1450         (EXTRA_SPECS): Likewise.
1451         (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
1452         (INCOMING_REGNO): Likewise.
1453         (OUTGOING_REGNO): Likewise.
1454         (LOCAL_REGNO): Likewise.
1455         (SETUP_FRAME_ADDRESSES): Likewise.
1456         (FIXED_REGISTERS): Set 0 for %fp.
1457         (CALL_USED_REGISTERS): Likewise.
1458         (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
1459         (EXIT_IGNORE_STACK): Define to 1 unconditionally.
1460         (RETURN_ADDR_REGNUM): Define.
1461         (RETURN_ADDR_RTX): Use it.
1462         (INCOMING_RETURN_ADDR_REGNUM): Define.
1463         (INCOMING_RETURN_ADDR_RTX): Use it.
1464         (DWARF_FRAME_RETURN_COLUMN): Likewise.
1465         (EH_RETURN_REGNUM): Define.
1466         (EH_RETURN_STACKADJ_RTX): Use it.
1467         (EH_RETURN_HANDLER_RTX): Delete.
1468         (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
1469         * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
1470         Delete.
1471         (struct machine_function): Add frame_size, apparent_frame_size,
1472         frame_base_reg, frame_base_offset, n_global_fp_regs and
1473         save_local_in_regs_p fields.
1474         (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
1475         sparc_frame_base_offset, sparc_n_global_fp_regs,
1476         sparc_save_local_in_regs_p): New macros.
1477         (sparc_option_override): Error out if -fcall-saved-REG is specified
1478         for Out registers.
1479         (eligible_for_restore_insn): Fix formatting.
1480         (eligible_for_return_delay): Likewise.  Add TARGET_FLAT handling.
1481         (eligible_for_sibcall_delay): Likewise.
1482         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
1483         (sparc_legitimate_address_p): Adjust to above change.
1484         (save_global_or_fp_reg_p): New predicate.
1485         (return_addr_reg_needed_p): Likewise.
1486         (save_local_or_in_reg_p): Likewise.
1487         (sparc_compute_frame_size): Use them.  Add TARGET_FLAT handling.
1488         (SORR_SAVE, SORR_RESTORE): Delete.
1489         (sorr_pred_t): New typedef.
1490         (sorr_act_t): New enum.
1491         (save_or_restore_regs): Rename to...
1492         (emit_save_or_restore_regs): ...this.  Change type of LOW and HIGH
1493         parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
1494         ACTION_TRUE and ACTION_FALSE parameters.  Implement more general
1495         mechanism.  Add CFI information for double-word saves in 32-bit mode.
1496         (emit_adjust_base_to_offset): New function extracted from...
1497         (emit_save_or_restore_regs): ...this.  Rename the rest to...
1498         (emit_save_or_restore_regs_global_fp_regs): ...this.
1499         (emit_save_or_restore_regs_local_in_regs): New function.
1500         (gen_create_flat_frame_[123]): New functions.
1501         (sparc_expand_prologue): Use SIZE local variable.  Adjust.
1502         (sparc_flat_expand_prologue): New function.
1503         (sparc_asm_function_prologue): Add TARGET_FLAT handling.
1504         (sparc_expand_epilogue): Use SIZE local variable.  Adjust.
1505         (sparc_flat_expand_epilogue): New function.
1506         (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
1507         (output_return): Likewise.
1508         (output_sibcall): Likewise.
1509         (sparc_output_mi_thunk): Likewise.
1510         (sparc_frame_pointer_required): Likewise.
1511         (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
1512         function optimization.
1513         * config/sparc/sparc.md (flat): New attribute.
1514         (prologue): Add TARGET_FLAT handling.
1515         (save_register_window): Disable if TARGET_FLAT.
1516         (create_flat_frame_[123]): New patterns.
1517         (epilogue): Add TARGET_FLAT handling.
1518         (sibcall_epilogue): Likewise.
1519         (eh_return): New expander.
1520         (eh_return_internal): New insn and splitter.
1521         (return_internal): Add TARGET_FLAT handling.
1522         (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
1523         (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
1524         (nonlocal_goto): Add TARGET_FLAT handling.
1525         * config/sparc/t-elf: Add -mflat multilib.
1526         * config/sparc/t-leon: Likewise.
1527
1528 2011-06-10  Jan Hubicka  <jh@suse.cz>
1529
1530         * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
1531         * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
1532         (self_recursive_p): Use cgraph_function_node.
1533         (propagate_pure_const): Likewise.
1534         (propagate_nothrow): Likewise.
1535         * ipa-reference.c (ipa_reference_get_not_read_global): Use
1536         cgraph_function_node.
1537         (propagate_bits): Likewise.
1538         (propagate): Likewise.
1539
1540 2011-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1541             Richard Earnshaw  <rearnsha@arm.com>
1542
1543         * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
1544         * config/arm/vfp.md (*arm_movdi_vfp): Delete.
1545         (*thumb2_movdi_vfp): Delete.
1546         (*arm_movdi_vfp_cortexa8): Delete.
1547         (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
1548         (*movdi_vfp_cortexa8): Likewise.
1549
1550 2011-06-10  Richard Guenther  <rguenther@suse.de>
1551
1552         * stor-layout.c (initialize_sizetypes): Give names to all
1553         sizetype kinds.
1554
1555 2011-06-10  Ira Rosen  <ira.rosen@linaro.org>
1556
1557         PR tree-optimization/49318
1558         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
1559         irrelevant pattern statements.
1560
1561 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
1562
1563         * system.h (SETJMP_VIA_SAVE_AREA): Poison.
1564
1565         PR bootstrap/49354
1566         * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
1567         to last assignment.
1568
1569 2011-06-09  Jan Hubicka  <jh@suse.cz>
1570
1571         * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
1572         do not recompute reachable flag.
1573         (cgraph_finalize_function, cgraph_analyze_functions): Set
1574         redefined_extern_inline here.
1575
1576 2011-06-09  Jan Hubicka  <jh@suse.cz>
1577
1578         * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
1579         (cgraph_only_called_directly_p): ... this one; bring offline.
1580         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
1581         varpool_used_from_object_file_p): Drop names from the declaratoin.
1582         (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
1583         collect_callers_of_node): New.
1584         (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
1585         (cgraph_edge_recursive_p): Use cgraph_function_node.
1586         * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
1587         (cgraph_node_cannot_be_local_p_1): Break out from ...
1588         (cgraph_node_can_be_local_p): ... here; walk aliases.
1589         (cgraph_for_node_thunks_and_aliases): New function.
1590         (cgraph_for_node_and_aliases): New function.
1591         (cgraph_make_node_local_1): Break out from ...
1592         (cgraph_make_node_local) ... here; use
1593         cgraph_for_node_thunks_and_aliases.
1594         (cgraph_set_nothrow_flag_1): Break out from ...
1595         (cgraph_set_nothrow_flag) ... here;
1596         use cgraph_for_node_thunks_and_aliases.
1597         (cgraph_set_const_flag_1): Break out from ...
1598         (cgraph_set_const_flag) ... here;
1599         use cgraph_for_node_thunks_and_aliases.
1600         (cgraph_set_pure_flag_1): Break out from ...
1601         (cgraph_set_pure_flag) ... here;
1602         use cgraph_for_node_thunks_and_aliases.
1603         (cgraph_propagate_frequency_1): Break out from ...
1604         (cgraph_propagate_frequency) ... here; use
1605         cgraph_for_node_thunks_and_aliases.
1606         (cgraph_used_from_object_file_p): Do not care about aliases.
1607         (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
1608         New functions.
1609         (collect_callers_of_node_1, collect_callers_of_node): New functions.
1610
1611 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
1612
1613         PR rtl-optimization/49154
1614         * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
1615         (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
1616         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
1617         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
1618         * config/cris/cris.h (cris_register_move_cost): Remove
1619         !TARGET_V32 code.  Tweak comments.
1620
1621 2011-06-09  Jan Hubicka  <jh@suse.cz>
1622
1623         * cgraphbuild.c (record_eh_tables): Mark personality function as having
1624         address taken.
1625
1626 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
1627
1628         PR rtl-optimization/49154
1629         * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
1630         is a matching slot in the hashtable, assign it to classes_ptr.
1631
1632         PR rtl-optimization/49154
1633         * doc/tm.texi.in (Register Classes): Document rule for the narrowest
1634         register classes.
1635         * doc/tm.texi: Regenerate.
1636
1637 2011-06-09  Kaz Kojima  <kkojima@gcc.gnu.org>
1638
1639         PR target/49307
1640         * config/sh/sh.md (UNSPEC_CHKADD): New.
1641         (chk_guard_add): New define_insn_and_split.
1642         (symGOT_load): Use chk_guard_add instead of blockage.
1643
1644 2011-06-09  Kai Tietz  <ktietz@redhat.com>
1645
1646         * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
1647
1648 2011-06-09  Eric Botcazou  <ebotcazou@adacore.com>
1649
1650         * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
1651
1652 2011-06-09  Wei Guozhi  <carrot@google.com>
1653
1654         PR target/46975
1655         * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
1656         (peephole2 for conditional move): Generate 16 bit instructions.
1657
1658 2011-06-09  Uros Bizjak  <ubizjak@gmail.com>
1659
1660         * config/i386/i386.md (*movdi_internal_rex64): Merge
1661         alternatives 6 and 8.
1662
1663 2011-06-09  David Li  <davidxl@google.com>
1664
1665         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
1666         * passes.c (passr_eq): New function.
1667         (create_pass_tab): New function.
1668         (pass_traverse): New function.
1669         (dump_one_pass): New function.
1670         (dump_pass_list): New function.
1671         (dump_passes): New function.
1672
1673 2011-06-09  David Li  <davidxl@google.com>
1674
1675         * tree-complex.c (tree_lower_complex): Gate cleanup.
1676         * tree-stdarg.c (check_all_va_list_escapes): Ditto.
1677         (execute_optimize_stdarg): Ditto.
1678         * tree-eh.c (execute_lower_eh_dispatch): Ditto.
1679         (execute_cleanup_eh_1): Ditto.
1680         (execute_cleanup_eh): Ditto.
1681         * gcse.c (gate_rtl_pre): Ditto.
1682         (execute_rtl_pre): Ditto.
1683         * except.c (finish_eh_generation): Ditto.
1684         (convert_to_eh_region_ranges): Ditto.
1685         * cprop.c (one_cprop_pass): Ditto.
1686
1687 2011-06-09  Bernd Schmidt  <bernds@codesourcery.com>
1688
1689         PR target/48673
1690         * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
1691         in all basic blocks.
1692
1693 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1694
1695         * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
1696         (HAVE_ENABLE_EXECUTE_STACK): Define.
1697         * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
1698         (HAVE_ENABLE_EXECUTE_STACK): Define.
1699         * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
1700         (HAVE_ENABLE_EXECUTE_STACK): Define.
1701         * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
1702         (ENABLE_EXECUTE_STACK): Remove.
1703         (HAVE_ENABLE_EXECUTE_STACK): Define.
1704         [IN_LIBGCC2]: Don't include <windows.h>.
1705         * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
1706         (HAVE_ENABLE_EXECUTE_STACK): Define.
1707         * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
1708         (HAVE_ENABLE_EXECUTE_STACK): Define.
1709         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
1710         * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
1711         (HAVE_ENABLE_EXECUTE_STACK): Define.
1712         * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
1713         (HAVE_ENABLE_EXECUTE_STACK): Define.
1714         * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
1715         (HAVE_ENABLE_EXECUTE_STACK): Define.
1716         * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
1717         (HAVE_ENABLE_EXECUTE_STACK): Define.
1718         * config/alpha/alpha.c (alpha_trampoline_init): Test
1719         HAVE_ENABLE_EXECUTE_STACK.
1720         * config/i386/i386.c (ix86_trampoline_init): Likewise.
1721         * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
1722         (sparc64_initialize_trampoline): Likewise.
1723         * libgcc2.c [L_enable_execute_stack]: Remove.
1724         * system.h (ENABLE_EXECUTE_STACK): Poison.
1725         * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
1726         * doc/tm.texi: Regenerate.
1727         * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
1728
1729 2011-06-09  Jakub Jelinek  <jakub@redhat.com>
1730
1731         PR middle-end/49308
1732         * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
1733         variable.  After resetting and rescanning insn continue with previous
1734         statement.
1735
1736 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1737
1738         * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
1739         (gcc_cv_ld_hidden): Likewise.
1740         * configure: Regenerate.
1741         * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
1742         (ix86_stack_protect_fail): Mark unused.
1743         (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
1744         * config/rs6000/rs6000.c (rs6000_assemble_visibility)
1745         [TARGET_MACHO]: Don't define.
1746         (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
1747         (TARGET_STACK_PROTECT_FAIL): Likewise.
1748         (rs6000_stack_protect_fail): Mark unused.
1749         * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
1750         USE_LINKONCE_INDIRECT.  Don't emit .hidden expicitly.
1751
1752 2011-06-08  Andi Kleen  <ak@linux.intel.com>
1753
1754         * varasm.c (get_section): Print location of other conflict
1755         for section conflicts.
1756
1757 2011-06-08  Andi Kleen  <ak@linux.intel.com>
1758
1759         * config/i386/driver-i386.c (host_detect_local_cpu):
1760         Add model 0x2d Intel CPU.
1761
1762 2011-06-08  Andi Kleen  <ak@linux.intel.com>
1763
1764         * reginfo.c (global_regs_decl): Add.
1765         (globalize_reg): Add decl parameter. Compute location.  Pass location
1766         to warnings and add inform. Store decl in global_regs_decl.
1767         * rtl.h (globalize_reg): Update prototype.
1768         * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
1769
1770 2011-06-09  Mingjie Xing  <mingjie.xing@gmail.com>
1771
1772         * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
1773
1774 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
1775
1776         PR target/49305
1777         * config/sh/predicates.md (general_movsrc_operand): Check
1778         mode for memory with indexed address for QI and HImode.
1779         (general_movdst_operand): Likewise.
1780
1781 2011-06-09  Nicola Pero  <nicola.pero@meta-innovation.com>
1782
1783         * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
1784
1785 2011-06-08  Alexandre Oliva  <aoliva@redhat.com>
1786
1787         * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
1788         (num_ssa_operands): Likewise.
1789         (op_iter_init_phiuse): Forward-declare.
1790         (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
1791
1792 2011-06-08  Nick Clifton  <nickc@redhat.com>
1793
1794         * doc/invoke.texi (ARM Options): Update description of
1795         -mthumb-interwork.
1796
1797 2011-06-08  H.J. Lu  <hongjiu.lu@intel.com>
1798
1799         * config/i386/driver-i386.c (host_detect_local_cpu): Support
1800         unknown Intel family 0x6 CPUs.
1801
1802 2011-06-08  Martin Jambor  <mjambor@suse.cz>
1803
1804         * tree-sra.c (mark_rw_status): Removed.
1805         (analyze_access_subtree): New parameter parent instead of
1806         mark_read and mark_write, propagate from that.
1807
1808 2011-06-08  Julian Brown  <julian@codesourcery.com>
1809
1810         * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
1811         for double-precision helper functions in hard-float mode if only
1812         single-precision arithmetic is supported in hardware.
1813
1814 2011-06-08  Alexander Monakov  <amonakov@ispras.ru>
1815
1816         PR rtl-optimization/49303
1817         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
1818         code_motion_path_driver returned 0 or 1.
1819         (sel_region_finish): Clear h_d_i_d.
1820
1821 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
1822
1823         * config/sh/sh.c (prepare_move_operands): Set pic register
1824         appropriately for global and local dynamic tls models even
1825         if flag_pic is unset.
1826
1827 2011-06-07  Jason Merrill  <jason@redhat.com>
1828
1829         * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
1830
1831 2011-06-07  Xinliang David Li  <davidxl@google.com>
1832         * passes.c (enable_disable_pass): Handle assembler name.
1833         (is_pass_explicitly_enabled_or_disabled): Ditto.
1834
1835 2011-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1836
1837         PR tree-optimization/48497
1838         * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
1839
1840 2011-06-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1841
1842         PR tree-optimization/46728
1843         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
1844         to use gimple_val_nonnegative_real_p.
1845         * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
1846         * gimple.h (gimple_val_nonnegative_real_p): New declaration.
1847
1848 2011-06-07  H.J. Lu  <hongjiu.lu@intel.com>
1849
1850         * config/i386/i386.md (*movsf_internal): Optimize AVX check.
1851
1852 2011-06-07  Sergey Grechanik  <mouseentity@ispras.ru>
1853
1854         * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
1855         constant vectors.
1856
1857 2011-06-07  Richard Guenther  <rguenther@suse.de>
1858
1859         * stor-layout.c (initialize_sizetypes): Initialize all
1860         sizetypes based on target definitions.
1861         (set_sizetype): Remove.
1862         * tree.c (build_common_tree_nodes): Do not call set_sizetype.
1863         * tree.h (set_sizetype): Remove.
1864
1865 2011-06-07  Nick Clifton  <nickc@redhat.com>
1866
1867         * config.gcc: Unify V850 architecture options and add support for
1868         newer V850 architectures.
1869         * config/v850/t-v850e: Delete.
1870
1871 2011-06-07  Richard Guenther  <rguenther@suse.de>
1872
1873         * tree.c (build_common_tree_nodes): Also initialize size_type_node.
1874         Call set_sizetype from here.
1875
1876 2011-06-07  Andrew Stubbs  <ams@codesourcery.com>
1877
1878         * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
1879         (*maddhisi4tb, *maddhisi4tt): New define_insns.
1880
1881 2011-06-07  Bernd Schmidt  <bernds@codesourcery.com>
1882             Andrew Stubbs  <ams@codesourcery.com>
1883
1884         * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
1885         multiplies.
1886         * doc/md.texi (Canonicalization of Instructions): Document widening
1887         multiply canonicalization.
1888
1889 2011-06-07  Jakub Jelinek  <jakub@redhat.com>
1890
1891         PR gcov-profile/49299
1892         * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
1893
1894 2011-06-07  Ira Rosen  <ira.rosen@linaro.org>
1895
1896         * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
1897         a pointer.
1898         * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
1899         vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
1900         vect_recog_pow_pattern): Likewise.
1901         (vect_pattern_recog_1): Remove declaration.
1902         (widened_name_p): Remove declaration.  Add new argument to specify
1903         whether to check that both types are either signed or unsigned.
1904         (vect_recog_widen_mult_pattern): Update documentation.  Handle
1905         unsigned patterns and multiplication by constants.
1906         (vect_pattern_recog_1): Update vect_recog_func references.  Use
1907         statement information from the statement returned from pattern
1908         detection functions.
1909         (vect_pattern_recog): Update vect_recog_func reference.
1910         * tree-vect-stmts.c (vectorizable_type_promotion): For widening
1911         multiplication by a constant use the type of the other operand.
1912
1913 2011-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
1914
1915         PR rtl-optimization/49145
1916         * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
1917
1918 2011-06-06  Jakub Jelinek  <jakub@redhat.com>
1919
1920         PR debug/49262
1921         * dwarf2out.c (native_encode_initializer): Decrement count in each
1922         iteration.
1923
1924         PR debug/49294
1925         * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
1926         non-MODE_INT modes.
1927
1928         PR c++/49264
1929         * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
1930         if stmt folded into nothing.
1931         * tree-inline.c (fold_marked_statements): If a builtin at the end of
1932         a bb folded into nothing, just update cgraph edges and move to next bb.
1933         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
1934         to be NULL.  Don't compute count and frequency if new_call is NULL.
1935
1936 2011-06-04  Diego Novillo  <dnovillo@google.com>
1937
1938         * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
1939         (cgraph.o): Likewise.
1940         (cgraphunit.o): Likewise.
1941         * cgraphunit.c: Include lto-streamer.h
1942         (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
1943         if LTO is enabled.
1944         * lto-streamer-in.c (unpack_value_fields): Call
1945         streamer_hooks.unpack_value_fields if set.
1946         (lto_materialize_tree): For unhandled nodes, first try to
1947         call lto_streamer_hooks.alloc_tree, if it exists.
1948         (lto_input_ts_decl_common_tree_pointers): Move reading of
1949         DECL_INITIAL to lto_streamer_read_tree.
1950         (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
1951         (lto_streamer_read_tree): New.
1952         (lto_reader_init): Rename from lto_init_reader.
1953         Move initialization code to lto/lto.c.
1954         * lto-streamer-out.c (pack_value_fields): Call
1955         streamer_hooks.pack_value_fields if set.
1956         (lto_output_tree_ref): For tree nodes that are not normally indexable,
1957         call streamer_hooks.indexable_with_decls_p before giving up.
1958         (lto_output_ts_decl_common_tree_pointers): Move handling
1959         for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
1960         (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
1961         lto_is_streamable.  Call lto_streamer_hooks.output_tree_header if set.
1962         (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
1963         (lto_streamer_write_tree): New.
1964         (lto_output): Call lto_streamer_init directly.
1965         (lto_writer_init): Remove.
1966         * lto-streamer.c (streamer_hooks): New.
1967         (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
1968         instead of lto_preload_common_nodes.
1969         (lto_is_streamable): Move from lto-streamer.h
1970         (lto_streamer_hooks_init): New.
1971         (streamer_hooks): New.
1972         (streamer_hooks_init): New.
1973         * lto-streamer.h (struct output_block): Forward declare.
1974         (struct lto_input_block): Likewise.
1975         (struct data_in): Likewise.
1976         (struct bitpack_d): Likewise.
1977         (struct streamer_hooks): Declare.
1978         (streamer_hooks): Declare.
1979         (lto_streamer_hooks_init): Declare.
1980         (lto_streamer_write_tree): Declare.
1981         (lto_streamer_read_tree): Declare.
1982         (streamer_hooks_init): Declare.
1983         (lto_is_streamable): Move to lto-streamer.c
1984
1985 2011-06-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1986
1987         * longlong.h (smul_ppmm): The resulting register pair contains the
1988         higher order word first.
1989
1990 2011-06-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1991
1992         PR tree-optimization/46728
1993         * builtins.c (powi_table): Remove.
1994         (powi_lookup_cost): Remove.
1995         (powi_cost): Remove.
1996         (expand_powi_1): Remove.
1997         (expand_powi): Remove.
1998         (expand_builtin_pow_root): Remove.
1999         (expand_builtin_pow): Remove.
2000         (expand_builtin_powi): Eliminate handling of constant exponent.
2001         (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
2002
2003 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
2004
2005         * cprop.c (local_cprop_pass): Don't set changed for debug insns.
2006
2007 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
2008
2009         * dce.c (reset_unmarked_insns_debug_uses): New.
2010         (delete_unmarked_insns): Skip debug insns.
2011         (prescan_insns_for_dce): Likewise.
2012         (rest_of_handle_ud_dce): Reset debug uses of removed sets.
2013         * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
2014         active reg can be found.
2015         (subst_all_stack_regs_in_debug_insn): New.  Reset debug insn then.
2016         (convert_regs_1): Use it.
2017
2018 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
2019
2020         * tree-pretty-print.c (dump_function_header): Add flags.
2021         Don't dump decl_uid with nouid.
2022         * tree-pretty-print.h (dump_function_header): Adjust.
2023         * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
2024         * passes.c (pass_init_dump_file): Pass dump_flags on.
2025         * tree-cfg.c (gimple_dump_cfg): Pass flags on.
2026
2027 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
2028
2029         PR bootstrap/49270
2030         * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
2031
2032 2011-06-06  Mikael Pettersson  <mikpe@it.uu.se>
2033
2034         PR tree-optimization/49243
2035         * calls.c (setjmp_call_p): Also check if fndecl has the
2036         returns_twice attribute.
2037
2038 2011-06-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2039
2040         * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
2041         -ffast-math etc.
2042
2043 2011-06-06  Richard Henderson  <rth@redhat.com>
2044             Georg-Johann Lay  <avr@gjlay.de>
2045
2046         PR target/42210
2047         * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
2048         New predicates.
2049         * config/avr/avr.md ("insv"): New insn expander.
2050         ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
2051         "*insv.not.io", "*insv.reg"): New insns.
2052
2053 2011-06-06  Hans-Peter Nilsson  <hp@bitrange.com>
2054
2055         PR target/49285
2056         * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
2057         to nonimmediate_operand from memory_operand for the operand that is to
2058         be forced to memory by the expander.  Lose the constraints.
2059
2060 2011-06-05  Eric Botcazou  <ebotcazou@adacore.com>
2061
2062         * config/sparc/sparc.c (output_return): Fix thinko in the output of an
2063         EH return when delayed branches are disabled.
2064
2065 2011-06-05  Uros Bizjak  <ubizjak@gmail.com>
2066
2067         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
2068         Remove MODE_TI handling.  Remove SSE1 handling in attribute "mode"
2069         calculation.
2070         (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
2071         Simplify MODE_V1DF and MODE_V2SF handling.
2072         (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
2073         Simplify MODE_SF handling.
2074
2075 2011-06-04  Jan Hubicka  <jh@suse.cz>
2076
2077         PR tree-optimization/48893
2078         PR tree-optimization/49091
2079         PR tree-optimization/49179
2080         * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
2081         Bounds check.
2082
2083 2011-06-04  Jan Hubicka  <jh@suse.cz>
2084
2085         PR lto/48954
2086         * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
2087         bitmaps.
2088
2089 2011-06-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
2090
2091         * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
2092
2093 2011-06-04  Jakub Jelinek  <jakub@redhat.com>
2094
2095         PR target/49281
2096         * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
2097         to be strictly smaller than 1 << shiftcount.
2098
2099 2011-06-04  Jan Hubicka  <jh@suse.cz>
2100
2101         PR tree-optimize/48929
2102         * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
2103         of empty predicate.
2104
2105 2011-06-04  Alexandre Oliva  <aoliva@redhat.com>
2106
2107         PR debug/48333
2108         * calls.c (emit_call_1): Prefer the __builtin declaration of
2109         builtin functions.
2110
2111 2011-06-03   Diego Novillo  <dnovillo@google.com>
2112
2113         * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
2114         (lto_input_tree_pointers): Likewise.
2115         * lto-streamer-out.c (pack_value_fields): Likewise.
2116         (lto_output_tree_pointers): Likewise.
2117         * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
2118         and OPTIMIZATION_NODE.
2119
2120 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2121
2122         * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
2123         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
2124         * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
2125         * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
2126         * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
2127         * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
2128         * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
2129         * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
2130         * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
2131         * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
2132         * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
2133         * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
2134         * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
2135         * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
2136         * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
2137         * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
2138         * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
2139         * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
2140         * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
2141         * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
2142         * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
2143         * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
2144         * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
2145         * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
2146         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
2147         * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
2148         * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
2149         * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
2150         * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
2151         * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
2152         * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
2153         * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
2154         * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
2155         * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
2156         * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
2157         * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
2158         * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
2159         * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
2160         * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
2161         * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
2162         * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
2163         * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
2164         * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
2165         * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
2166         * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
2167         * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
2168         * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
2169         * system.h (MD_UNWIND_SUPPORT): Poison.
2170         * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
2171         * doc/tm.texi: Regenerate.
2172         * unwind-dw2.c: Include md-unwind-support.h instead of
2173         MD_UNWIND_SUPPORT.
2174         * config/ia64/unwind-ia64.c: Likewise.
2175         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
2176
2177 2011-06-03  Jack Howarth  <howarth@bromo.med.uc.edu>
2178
2179         * varpool.c (varpool_extra_name_alias): Return NULL, not false.
2180
2181 2011-06-03  Richard Henderson  <rth@redhat.com>
2182             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2183
2184         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
2185         (sigill_hdlr): Correct insn, insn size.
2186         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
2187
2188 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2189
2190         * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
2191         t-slibgcc-dummy.
2192         * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
2193         * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
2194         * config/mips/t-iris: Remove.
2195         * config/mips/t-irix6: New file.
2196         * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
2197
2198 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2199
2200         * Makefile.in (LIB2ADDEHDEP): Remove.
2201         * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
2202         * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
2203         * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
2204         * config/t-darwin (LIB2ADDEHDEP): Remove.
2205         * config/t-freebsd (LIB2ADDEHDEP): Remove.
2206         * config/t-linux (LIB2ADDEHDEP): Remove.
2207
2208 2011-06-03  Diego Novillo  <dnovillo@google.com>
2209
2210         * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
2211         (lto_register_var_decl_in_symtab): Likewise.
2212         (lto_register_function_decl_in_symtab): Likewise.
2213         (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
2214         logic to uniquify_nodes.
2215
2216 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2217
2218         * config/alpha/t-osf5: Remove.
2219         * config/alpha/t-osf-pthread: Remove.
2220         * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
2221         * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
2222
2223 2011-06-03  Julian Brown  <julian@codesourcery.com>
2224
2225         * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
2226         (strongarm1110): Use strongarm tuning.
2227         * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
2228         * config/arm/arm.c (arm_strongarm_tune): New.
2229         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
2230         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
2231         (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
2232         setting, using previous defaults or 1 for Cortex-A5.
2233         (arm_option_override): Set max_insns_skipped from current tuning.
2234
2235 2011-06-03  Nathan Sidwell  <nathan@codesourcery.com>
2236
2237         * doc/install.texi (Options specification): Document --with-specs.
2238
2239 2011-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2240
2241         * config/arm/neon.md (orndi3_neon): Actually split it.
2242
2243 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
2244
2245         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
2246         * var-tracking.c (reverse_op): Limite recurse depth to 5.
2247
2248 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
2249
2250         PR debug/47590
2251         * target.def (delay_sched2, delay_vartrack): New.
2252         * doc/tm.texi.in: Update.
2253         * doc/tm.texi: Rebuild.
2254         * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
2255         * var-tracking.c (gate_handle_var_tracking): Likewise.
2256         * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
2257         (bfin_flag_var_tracking): Drop.
2258         (output_file_start): Don't save and override flag_var_tracking.
2259         (bfin_option_override): Ditto flag_schedule_insns_after_reload.
2260         (bfin_reorg): Test original variables.
2261         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
2262         * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
2263         (ia64_flag_var_tracking): Drop.
2264         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
2265         (ia64_file_start): Don't save and override flag_var_tracking.
2266         (ia64_override_options_after_change): Ditto
2267         flag_schedule_insns_after_reload.
2268         (ia64_reorg): Test original variables.
2269         * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
2270         (picochip_flag_var_tracking): Drop.
2271         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
2272         (picochip_option_override): Don't save and override
2273         flag_schedule_insns_after_reload.
2274         (picochip_asm_file_start): Ditto flag_var_tracking.
2275         (picochip_reorg): Test original variables.
2276         * config/spu/spu.c (spu_flag_var_tracking): Drop.
2277         (TARGET_DELAY_VARTRACK): Define.
2278         (spu_var_tracking): New.
2279         (spu_machine_dependent_reorg): Call it.
2280         (asm_file_start): Don't save and override flag_var_tracking.
2281
2282 2011-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
2283
2284         PR target/49163
2285         * config/sh/predicates.md (general_movsrc_operand): Return 0
2286         for memory and memory subreg of which address is an invalid
2287         indexed address for QI and HImode.
2288         (general_movdst_operand): Likewise.
2289
2290 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
2291
2292         * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
2293         edges only, when there is a non-local label in the function.
2294         * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
2295
2296 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
2297
2298         * config/i386/constraints.md (Y3): New register constraint.
2299         * config/i386/sse.md (*vec_interleave_highv2df): Merge with
2300         *sse3_interleave_highv2df and *sse2_interleave_highv2df.
2301         (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
2302         *sse2_interleave_lowv2df.
2303
2304 2011-06-02  Julian Brown  <julian@codesourcery.com>
2305
2306         * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
2307         * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
2308         (arm_cortex_a5_tune): New.
2309
2310 2011-06-02  Julian Brown  <julian@codesourcery.com>
2311
2312         * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
2313         * config/arm/arm.c (arm_default_branch_cost): New.
2314         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
2315         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
2316         (arm_fa726_tune): Set branch_cost field using
2317         arm_default_branch_cost.
2318         * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
2319         current_tune structure.
2320         * dojump.c (tm_p.h): Include file.
2321
2322 2011-06-02  Julian Brown  <julian@codesourcery.com>
2323
2324         * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
2325         tuning.
2326         (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
2327         (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
2328         * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
2329         field.
2330         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
2331         (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
2332         (arm_fa726te_tune): Add prefer_constant_pool setting.
2333         (arm_v6t2_tune, arm_cortex_tune): New.
2334         * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
2335         prefer_constant_pool setting.
2336
2337 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
2338
2339         * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
2340         switch statement.
2341         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
2342         (*movdf_internal) <case 6,7,8>: Ditto.
2343
2344         * config/i386/constraints.md (Y4): New register constraint.
2345         * config/i386/sse.md (vec_set<mode>_0): Merge with
2346         *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
2347         (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
2348         *vec_extractv2di_1_sse.
2349         (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
2350         and *vec_concatv2di_rex64_sse.
2351
2352 2011-06-02  Stuart Henderson  <shenders@gcc.gnu.org>
2353
2354         PR target/48807
2355         * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
2356         of cgraph_local_info for null before attempting to use it.
2357
2358 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
2359
2360         * function.h (struct stack_usage): Remove dynamic_alloc_count field.
2361         (current_function_dynamic_alloc_count): Delete.
2362         * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
2363         (expand_builtin_nonlocal_goto): Remove obsolete comment.
2364         (expand_builtin_update_setjmp_buf): Remove dead code.
2365         * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
2366         * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
2367         support.
2368         * function.c (instantiate_virtual_regs): Likewise.
2369         * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
2370         for a block with a single abnormal incoming edge.
2371         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
2372         (SETJMP_VIA_SAVE_AREA): Delete.
2373         * config/sparc/sparc-protos.h (load_got_register): Declare.
2374         * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
2375         (load_got_register): Make global.
2376         (sparc_frame_pointer_required): Add 'static'.
2377         (sparc_can_eliminate): Likewise.  Call sparc_frame_pointer_required.
2378         (sparc_builtin_setjmp_frame_value): New function.
2379         * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
2380         (save_stack_nonlocal): New expander.
2381         (restore_stack_nonlocal): Likewise.
2382         (nonlocal_goto): Remove modes, adjust predicates and reimplement.
2383         (nonlocal_goto_internal): New insn.
2384         (goto_handler_and_restore): Delete.
2385         (builtin_setjmp_setup): Likewise.
2386         (do_builtin_setjmp_setup): Likewise.
2387         (setjmp): Likewise.
2388         (builtin_setjmp_receiver): New expander.
2389
2390 2011-06-01  David Li  <davidxl@google.com>
2391
2392         PR middle-end/49261
2393         * tree-pretty-print.c (dump_function_header): Format cleanup.
2394
2395 2011-06-01  Kaz Kojima  <kkojima@gcc.gnu.org>
2396
2397         PR target/49238
2398         * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
2399         needed when original operands are used for msw_skip comparison.
2400
2401 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
2402
2403         PR debug/49250
2404         * var-tracking.c (add_uses, add_stores): Don't call
2405         cselib_subst_to_values on ENTRY_VALUE.
2406
2407 2011-06-01  Diego Novillo  <dnovillo@google.com>
2408
2409         * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
2410         output_record_start with LTO_null instead of output_zero.
2411         (lto_output_ts_binfo_tree_pointers): Likewise.
2412         (lto_output_tree): Likewise.
2413         (output_eh_try_list): Likewise.
2414         (output_eh_region): Likewise.
2415         (output_eh_lp): Likewise.
2416         (output_eh_regions): Likewise.
2417         (output_bb): Likewise.
2418         (output_function): Likewise.
2419         (output_unreferenced_globals): Likewise.
2420         * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
2421         instead of NUM_TREE_CODES.
2422         (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
2423         (lto_output_int_in_range): Change << to >> when shifting VAL.
2424
2425 2011-06-01  Diego Novillo  <dnovillo@google.com>
2426
2427         * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
2428         Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
2429
2430 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
2431
2432         PR target/45074
2433         * optabs.h (valid_multiword_target_p): Declare.
2434         * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
2435         doing multi-word operations.
2436         * optabs.c (expand_binop): Likewise.
2437         (expand_doubleword_bswap): Likewise.
2438         (expand_absneg_bit): Likewise.
2439         (expand_unop): Likewise.
2440         (expand_copysign_bit): Likewise.
2441         (multiword_target_p): New function.
2442
2443 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
2444
2445         PR rtl-optimization/48830
2446         PR rtl-optimization/48808
2447         PR rtl-optimization/48792
2448         * reload.c (push_reload): Check contains_reg_of_mode.
2449         * reload1.c (strip_paradoxical_subreg): New function.
2450         (gen_reload_chain_without_interm_reg_p): Use it to handle
2451         paradoxical subregs.
2452         (emit_output_reload_insns, gen_reload): Likewise.
2453
2454 2011-06-01  David Li  <davidxl@google.com>
2455
2456         * predict.c : Change pass name
2457         * ipa.c: Ditto.
2458         * dce.c: Ditto.
2459         * tree-profile.c: Ditto.
2460         * except.c: Ditto.
2461
2462 2011-06-01  David Li  <davidxl@google.com>
2463
2464         * tree-pretty-print.c (dump_function_header): New function.
2465         * final.c (rest_of_clean_state): Use header dumper.
2466         * tree-cfg.c (gimple_dump_cfg): Use header dumper.
2467         * passes.c (pass_init_dump_file): Use header dumper.
2468
2469 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
2470
2471         * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
2472         ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
2473         popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
2474         New functions.
2475         (mem_loc_descriptor): Use them.
2476
2477         * var-tracking.c (create_entry_value): New function.
2478         (vt_add_function_parameter): Use it.
2479
2480 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2481
2482         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
2483         Include <signal.h>, <ucontext.h>.
2484         (sigill_caught): Define.
2485         (sigill_hdlr): New function.
2486         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
2487         insns can be executed.
2488         * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
2489         * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
2490
2491 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2492
2493         * config/t-slibgcc-darwin: Move to ...
2494         * config/t-slibgcc-dummy: ... this.  Clarify comments.
2495         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
2496         powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
2497         (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
2498         (i[34567]86-*-rtems*): Remove extra_parts.  Use i386/t-rtems.
2499         Remove i386/t-crtstuff from tmake_file.
2500         (i[34567]86-*-solaris2*): Remove t-svr4,
2501         t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
2502         t-slibgcc-dummy.
2503         (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
2504         (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
2505         sparc/t-crtfm from tmake_file.
2506         (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
2507         t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
2508         Remove extra_parts.
2509         * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
2510         * config/i386/t-nwld (SHLIB_LINK): Remove.
2511         * config/i386/t-rtems-i386: Rename to ...
2512         * config/i386/t-rtems: ... this.
2513         ($(T)crti.o, $(T)crtn.o): Remove.
2514         (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
2515         (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
2516         (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
2517         * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
2518         EXTRA_MULTILIB_PARTS): Remove.
2519         * config/sparc/t-sol2-64: Likewise.
2520         * config/sparc/t-sol2: Remove.
2521         * config/sparc/t-crtin: Remove.
2522         * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
2523         * config/i386/gmon-sol2.c: Remove.
2524         * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
2525         * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
2526         * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
2527         * config/i386/sol2-gc1.asm: Remove.
2528         * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
2529         * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
2530         * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
2531         * config/t-slibgcc-sld: Remove.
2532
2533 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
2534
2535         * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
2536         base_type_for_mode with op_mode instead of mode.
2537
2538 2011-06-01  Paul Brook  <paul@cpodesourcery.com>
2539
2540         * config/arm/arm-cores.def: Add cortex-r5.  Add DIV flags to
2541         Cortex-A15.
2542         * config/arm/arm-tune.md: Regenerate.
2543         * config/arm/arm-tables.opt: Regenerate.
2544         * config/arm/arm.c (FL_DIV): Rename...
2545         (FL_THUMB_DIV): ... to this.
2546         (FL_ARM_DIV): Define.
2547         (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
2548         (arm_arch_hwdiv): Remove.
2549         (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
2550         (arm_issue_rate): Add cortexr5.
2551         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
2552         __ARM_ARCH_EXT_IDIV__.
2553         (TARGET_IDIV): Define.
2554         (arm_arch_hwdiv): Remove.
2555         (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
2556         * config/arm/arm.md (tune_cortexr4): Add cortexr5.
2557         (divsi3, udivsi3): New patterns.
2558         * config/arm/thumb2.md (divsi3, udivsi3): Remove.
2559         * doc/invoke.texi: Document ARM -mcpu=cortex-r5
2560
2561 2011-06-01  Martin Jambor  <mjambor@suse.cz>
2562
2563         * ipa-utils.c (ipa_dfs_info): New field scc_no.
2564         * ipa-utils.c (searchc): Set scc_no.
2565
2566 2011-06-01  Martin Jambor  <mjambor@suse.cz>
2567
2568         * ipa-utils.c (searchc_env): New field allow_overwritable.
2569         (searchc): do not ignore edges to overwritable nodes if indicated
2570         by env->allow_overwritable.
2571         (ipa_reduced_postorder): Set env.allow_overwritable.
2572
2573 2011-06-01  Richard Guenther  <rguenther@suse.de>
2574
2575         * tree.c (free_lang_data): Do not reset boolean_type_node nor
2576         char_type_node.
2577         * lto-streamer.c (lto_record_common_node): Take node pointer,
2578         do not register types.
2579         (lto_preload_common_nodes): Explicitly skip preloading nodes
2580         that differ between frontends.
2581
2582 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
2583
2584         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
2585         NON_FLOAT_REGS.
2586
2587 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
2588
2589         * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
2590         parameter value for dump. Dump cost on outermost call only.
2591         (rs6000_memory_move_cost): Dump cost on outermost call only.
2592
2593 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
2594
2595         * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
2596         DW_OP_GNU_convert ops.
2597
2598         * cselib.c (promote_debug_loc): Allow l->next non-NULL for
2599         cselib_preserve_constants.
2600         (cselib_lookup_1): If cselib_preserve_constants,
2601         a new VALUE is being created for REG and there is a VALUE for the
2602         same register in wider mode, add another loc with lowpart SUBREG of
2603         the wider VALUE.
2604         (cselib_subst_to_values): Handle ENTRY_VALUE.
2605         * var-tracking.c  (replace_expr_with_values): Return NULL for
2606         ENTRY_VALUE too.
2607         * dwarf2out.c (convert_descriptor_to_signed): New function.
2608         (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
2609         instead of two shifts.
2610         (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
2611         the right mode if needed.
2612         (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
2613         (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
2614         convert_descriptor_to_signed.
2615         (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
2616         BSWAP, ROTATE, ROTATERT>: Handle these rtls.
2617
2618         PR target/48688
2619         * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
2620
2621 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
2622
2623         * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
2624         of X87MODEI12 and SWI48x instead of SSEMODEI24.
2625         (SWI248x): New mode iterator, rename from X87MODEI.
2626         (X87MODEI): Remove mode iterator.
2627         (X87MODEI12): Ditto.
2628         (SSEMODEI24): Ditto.
2629
2630 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
2631
2632         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
2633         * doc/invoke.texi: Document max-vartrack-expr-depth.
2634         * var-tracking.c (EXPR_DEPTH): New.
2635         (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
2636
2637 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
2638
2639         * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
2640         * config/i386/sse.md: Add n to negated FMA pattern names.
2641
2642 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
2643
2644         * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
2645
2646 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
2647
2648         * gengtype-state.c (read_state_params_structs): Initialize previous.
2649
2650 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
2651
2652         * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
2653         (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
2654
2655 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
2656
2657         * config/i386/i386.md (*movtf_internal): Avoid allocating general
2658         registers.  Penalize F*r->o alternative to prevent partial memory
2659         stalls.  Slightly penalize *roF->*r alternative.  Generate SSE
2660         CONST_DOUBLE immediates when optimizing function for size.  Do not move
2661         CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
2662         (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
2663         (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
2664         (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
2665         alternatives.
2666         (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
2667
2668         (fp_register_operand splitters): Use fp_register_operand
2669         constraint.  Do not use FP_REG_P in insn condition.
2670         (any_fp_register_operand splitters): Use any_fp_register_operand
2671         constraint.  Do not use ANY_FP_REG_P in insn condition.
2672
2673 2011-05-31  Jan Hubicka  <jh@suse.cz>
2674
2675         * cgraph.h (cgraph_inline_failed_t): Give enum a name
2676         * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
2677         (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
2678         (lto_output_edge): Use output_enum and var_len_unsigned.
2679         (lto_output_varpool_node): Likewise.
2680         (input_overwrite_node): Do not take resolution parameter;
2681         extract it from a bitpack.
2682         (input_node): Do not read resolution; use input_enum and
2683         var_len_unsigned.
2684         (input_varpool_node): Likewise.
2685         (input_edge): Likewise.
2686         (input_cgraph_1): Likewise.
2687
2688 2011-05-31  Richard Guenther  <rguenther@suse.de>
2689
2690         * gimple.c (gimple_register_canonical_type): Do not register
2691         any types via gimple_register_type.
2692
2693 2011-05-31  Jan Hubicka  <jh@suse.cz>
2694
2695         * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
2696         of thunks.
2697
2698 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
2699
2700         PR rtl-optimization/49235
2701         * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
2702         (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
2703
2704 2011-05-31  Ira Rosen  <ira.rosen@linaro.org>
2705
2706         PR tree-optimization/49093
2707         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
2708         data references.
2709
2710 2011-05-31  Dodji Seketeli  <dodji@redhat.com>
2711
2712         PR debug/49047
2713         * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
2714         for concrete functions containing the code of cloned functions.
2715
2716 2011-05-31  Richard Guenther  <rguenther@suse.de>
2717
2718         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
2719         to ...
2720         (forward_propagate_into_comparison_1): ... this.
2721         (forward_propagate_comparison): Rename to ...
2722         (forward_propagate_into_comparison): ... this.  Split out
2723         real forward propagation code to ...
2724         (forward_propagate_comparison): ... this.
2725         (forward_propagate_into_gimple_cond): Remove looping.
2726         (forward_propagate_into_cond): Likewise.
2727         (simplify_not_neg_expr): Return whether we have done something.
2728         (simplify_gimple_switch): Likewise.
2729         (tree_ssa_forward_propagate_single_use_vars): Rename to ...
2730         (ssa_forward_propagate_and_combine): ... this.  Re-structure
2731         to do a forward forward-propagation walk on BBs and a backward
2732         stmt combining walk on BBs.  Consistently re-scan changed statements.
2733         (pass_forwprop): Adjust.
2734
2735 2011-05-30  Ian Lance Taylor  <iant@google.com>
2736
2737         * godump.c (go_format_type): Correct length of name added to
2738         obstack for anonymous field.
2739
2740 2011-05-30  Kaz Kojima  <kkojima@gcc.gnu.org>
2741
2742         PR target/49186
2743         * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
2744         part of the second operand is 0.
2745
2746 2011-05-30  Uros Bizjak  <ubizjak@gmail.com>
2747
2748         * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
2749         to prevent partial memory stalls.  Do not move CONST_DOUBLEs directly
2750         to memory for !TARGET_MEMORY_MISMATCH_STALL.
2751         (*movdf_internal_rex64): Do not penalize F->r alternative.
2752         (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
2753         memory stalls.  Generate SSE and x87 CONST_DOUBLE immediates only
2754         when optimizing function for size.  Do not move CONST_DOUBLEs
2755         directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
2756         (FP move splitters): Merge {TF,XF,DF}mode splitters.  Do not handle
2757         SUBREGs.  Do not check for MEM_P operands in the insn condition,
2758         check for ANY_FP_REGNO_P instead.
2759         * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
2760         TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
2761         function for speed.
2762         * config/i386/i386.c (ix86_option_override_internal): Do not
2763         set TARGET_INTEGER_DFMODE_MOVES here.
2764
2765 2011-05-30  H.J. Lu  <hongjiu.lu@intel.com>
2766
2767         PR target/49168
2768         * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
2769
2770 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
2771
2772         * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
2773         DW_TAG_rvalue_reference_type even for
2774         -gdwarf-4 -fno-debug-types-section.
2775
2776 2011-05-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2777
2778         PR tree-optimization/46728
2779         * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
2780         (build_and_insert_binop): New.
2781         (gimple_expand_builtin_pow): Reorder args for
2782         build_and_insert_call; use build_and_insert_binop; add more
2783         optimizations for fractional exponents.
2784
2785 2011-05-30  Nathan Froyd  <froydnj@gcc.gnu.org>
2786
2787         PR bootstrap/49190
2788
2789         Revert:
2790         2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
2791
2792         * tree.h (struct tree_identifier): Inherit from tree_typed, not
2793         tree_common.
2794         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
2795         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
2796         TS_BASE instead of TS_COMMON.
2797         * varasm.c (assemble_name): Remove assert.
2798
2799 2011-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
2800
2801         * config.gcc: Keep obselete list sorted.
2802
2803 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
2804             Eric Botcazou  <ebotcazou@adacore.com>
2805
2806         * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
2807         crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
2808         there is a DRAP register and arg_pointer_rtx is the CFA pointer.
2809         (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
2810         (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
2811
2812 2011-05-30  Richard Guenther  <rguenther@suse.de>
2813
2814         * gimple.c (gimple_types_compatible_p_1): Compare record
2815         and union type members properly.
2816
2817 2011-05-30  Richard Guenther  <rguenther@suse.de>
2818
2819         PR tree-optimization/49210
2820         * ipa-split.c (split_function): Care for the case where the call
2821         result is not trivially convertible to the result holding variable.
2822
2823 2011-05-30  Richard Guenther  <rguenther@suse.de>
2824
2825         PR tree-optimization/49218
2826         * tree-vrp.c (adjust_range_with_scev): Properly check whether
2827         overflow occured.
2828
2829 2011-05-30  Richard Guenther  <rguenther@suse.de>
2830
2831         * tree-ssa-forwprop.c (forward_propagate_into_comparison):
2832         New function split out from ...
2833         (forward_propagate_into_gimple_cond): ... here.  Adjust.
2834         (forward_propagate_into_cond): Likewise.
2835         (forward_propagate_comparison): Also propagate into
2836         comparisons on assignment RHS.  Change return value to
2837         behave similar to forward_propagate_into_cond.
2838         (tree_ssa_forward_propagate_single_use_vars): Handle
2839         strict-overflow warnings properly for forward_propagate_comparison.
2840
2841 2011-05-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2842
2843         * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
2844         from plugin linker.
2845         * configure: Regenerate.
2846
2847 2011-05-30  Ira Rosen  <ira.rosen@linaro.org>
2848
2849         PR tree-optimization/49199
2850         * tree-vect-loop.c (vect_is_slp_reduction): Check that the
2851         non-reduction operands are either defined in the loop or by induction.
2852
2853 2011-05-29  Xinliang David Li  <davidxl@google.com>
2854
2855         * opts-global.c (handle_common_deferred_options): Handle new options.
2856         * passes.c (register_one_dump_file): Call register_pass_name.
2857         (execute_one_pass): Check explicit enable/disable flag.
2858         (passr_hash): New function.
2859         (passr_eq): Ditto.
2860         (register_pass_name): Ditto.
2861         (get_pass_by_name): Ditto.
2862         (pass_hash): Ditto.
2863         (pass_eq): Ditto.
2864         (enable_pass): Ditto.
2865         (disable_pass): Ditto.
2866         (is_pass_explicitly_enabled_or_disabled): Ditto.
2867
2868 2011-05-29  Uros Bizjak  <ubizjak@gmail.com>
2869
2870         * config/i386/i386.md (*movoi_internal_avx): Use
2871         standard_sse_constant_opcode for alternative 0.
2872         (*movti_internal_sse): Ditto.
2873         (*movti_internal_rex64): Use standard_sse_constant_opcode for
2874         alternative 2.
2875         (*movdi_internal_rex64): Use standard_sse_constant_opcode for
2876         sselog1 type moves.
2877         (*movsi_internal): Ditto.
2878         (*movdi_internal): Ditto.  Add ssecvt type moves.
2879
2880 2011-05-29  Eric Botcazou  <ebotcazou@adacore.com>
2881
2882         PR target/48830
2883         * rtlanal.c (simplify_subreg_regno): Adjust comment.
2884
2885 2011-05-29  Jakub Jelinek  <jakub@redhat.com>
2886
2887         PR rtl-optimization/49095
2888         * config/i386/predicates.md (plusminuslogic_operator): New predicate.
2889         * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
2890
2891 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
2892
2893         PR target/43995
2894         * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
2895         recurse_p argument.  Only follow register copies if it is set,
2896         and prevent mips_find_pic_call_symbol from recursing.
2897         (mips_find_pic_call_symbol): Add a recurse_p argument.
2898         Pass it to mips_pic_call_symbol_from_set.
2899         (mips_annotate_pic_calls): Update accordingly.
2900
2901 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
2902
2903         * emit-rtl.c (try_split): Use a loop to search for
2904         NOTE_INSN_CALL_ARG_LOCATIONs.
2905
2906 2011-05-29  Richard Guenther  <rguenther@suse.de>
2907
2908         PR tree-optimization/49217
2909         * ipa-pure-const.c (propagate_pure_const): Fix typos.
2910
2911 2011-05-28  Jan Hubicka  <jh@suse.cz>
2912
2913         * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
2914         length.
2915         (string_slot_free): Remove
2916         (create_output_block): Initialize obstack.
2917         (destroy_output_block): Free obstack.
2918         (lto_string_index): Add PERSISTENT parameter; do not duplicate
2919         the string unless it needs to be added into the hash.
2920         (lto_output_string_with_length): Add persistent attribute;
2921         handle NULL strings.
2922         (lto_output_string): Add PERSISTENT parameter.
2923         (output_string_cst, output_identifier): Simplify.
2924         (lto_output_location_bitpack): Update.
2925         (lto_output_builtin_tree): Update.
2926         * lto-streamer.h (struct output_block): Add obstack.
2927         (lto_output_string, lto_output_string_with_length): Remove
2928         declarations; functions are static now.
2929
2930 2011-05-28  Jan Hubicka  <jh@suse.cz>
2931
2932         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
2933         pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
2934         pack_ts_function_decl_value_fields, lto_output_builtin_tree,
2935         output_cfg, output_gimple_stmt): Use enum and variable length i/o.
2936         * lto-streamer-in.c (input_cfg, input_gimple_stmt,
2937         unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
2938         unpack_ts_decl_with_vis_value_fields,
2939         unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
2940         lto_get_builtin_tree): Use enum and variable length i/o.
2941         * basic-block.h (profile_status_d): Add PROFILE_LAST.
2942         * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
2943         New functions.
2944         (bp_pack_enum, bp_unpack_enum): New macros.
2945
2946 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
2947
2948         * genrecog.c: Remove redundant forward declarations.
2949
2950 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
2951
2952         * config.gcc: Deprecate mips*-*-openbsd*.
2953
2954 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
2955
2956         PR bootstrap/49195
2957         * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
2958         for match_op_dup.
2959
2960 2011-05-27  Andrew Pinski  <pinskia@gmail.com>
2961
2962         PR middle-end/48981
2963         * gengtype.c (vec_prefix_type): New function.
2964         (note_def_vec): Use vec_prefix_type and change the length
2965         attribute to be based on the prefix.
2966         * vec.c: Include coretypes.h before vec.h.
2967         (struct vec_prefix): Remove.
2968         (vec_gc_p_reserve): Change the offsetof to sizeof.
2969         (vec_gc_p_reserve_exact): Likewise.
2970         (vec_heap_p_reserve): Likewise.
2971         (vec_heap_p_reserve_exact): Likewise.
2972         (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
2973         (vec_stack_p_reserve): Change the offsetof to sizeof.
2974         (vec_stack_p_reserve_exact): Likewise.
2975         * vec.h (struct vec_prefix): New struct definition.
2976         (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
2977         (VEC_T_GTY(T,B)): Likewise.
2978         (DEF_VEC_FUNC_P(T)): Use prefix field.
2979         (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
2980         (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
2981
2982 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2983
2984         PR tree-optimization/46728
2985         * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
2986         (powi_as_mults): Add gimple_set_location.
2987         (build_and_insert_call): New.
2988         (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
2989         0.5, 0.25, 0.75, 1./3., or 1./6.
2990
2991 2011-05-27  Alexander Monakov  <amonakov@ispras.ru>
2992
2993         * doc/contrib.texi: Update copyright years.
2994         (Contributors): Add Zdenek Sojka.
2995
2996 2011-05-27  Nathan Froyd  <froydnj@codesourcery.com>
2997
2998         * c-decl.c (c_push_function_context): Copy the current statement
2999         list stack.
3000         (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
3001         (finish_struct): Call building_stmt_list_p instead of checking
3002         cur_stmt_list.
3003         * c-parser.c (c_parser_postfix_expression): Likewise.
3004         * c-typeck.c (c_end_compound_stmt): Likewise.
3005         * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
3006         * tree-iterator.c (stmt_list_cache): Change to a VEC.
3007         (alloc_stmt_list): Adjust for stmt_list_cache's new type.
3008         (free_stmt_list): Likewise.
3009         * tree.h (struct tree_statement_list): Include typed_tree instead
3010         of tree_common.
3011         * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
3012         as TS_TYPED instead of TS_COMMON.
3013
3014 2011-05-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3015             Uros Bizjak  <ubizjak@gmail.com>
3016
3017         * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
3018         (HAVE_AS_IX86_TLSGDPTL): Define.
3019         (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
3020         (HAVE_AS_IX86_TLSLDMPLT): Define.
3021         * configure: Regenerate.
3022         * config.in: Regenerate.
3023         * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
3024         * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
3025         TARGET_SUN_TLS, use @tlsgdplt or @plt.
3026         (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
3027         (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
3028         @tlsldmplt or @plt.
3029         (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
3030
3031 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
3032
3033         * sched-int.h (struct _haifa_deps_insn_data): New members cond
3034         and reverse_cond.
3035         (INSN_COND, INSN_REVERSE_COND): New macros.
3036         * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
3037         once.
3038         (sched_get_condition_with_rev): Cache the results, and look them up
3039         if possible.
3040         (sched_analyze_insn): Destroy INSN_COND of previous insns if they
3041         are clobbered by the current insn.
3042         * target.def (exposed_pipline): New sched data hook.
3043         * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
3044         * doc/tm.texi: Regenerate.
3045
3046 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3047
3048         PR tree-optimization/49170
3049         * tree-ssa-math-opts.c (execute_cse_sincos):  Add checks for
3050         sincos or cexp.
3051
3052 2011-05-27  Richard Guenther  <rguenther@suse.de>
3053
3054         PR middle-end/49189
3055         * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
3056         of comparisons.
3057
3058 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
3059
3060         * haifa-sched.c (sched_scan_info): Remove.
3061         (schedule_block): Call sched_extend_luids rather than sched_init_luids
3062         with NULL args.
3063         (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
3064         Remove functions.
3065         (sched_scan): Remove.
3066         (sched_extend_luids): Renamed from luids_extend_insn and no longer
3067         static.  All callers changed.
3068         (sched_init_insn_luid): Renamed from luids_init_insn and no longer
3069         static.  All callers changed.
3070         (sched_init_luids): Remove all arguments except the first.  All
3071         callers changed.  Don't use sched_scan.
3072         (haifa_init_h_i_d): Likewise.
3073         (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
3074         manually rather than using sched_init_luids.  Likewise with
3075         extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
3076         * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
3077         rather than sched_init_luids with NULL args.
3078         * sel-sched-ir.c (new_insns): Remove variable.
3079         (sched_scan): New static function, previously in haifa-sched.c.  Remove
3080         all arguments but the first two; all callers changed.
3081         (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
3082         rather than sched_init_luids.
3083         (sel_init_bbs): Remove second argument.  All callers changed.
3084         (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
3085         with NULL arguments.
3086         (create_insn_rtx_from_pattern): Likewise.
3087         * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
3088         * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
3089         (sched_init_insn_luid, sched_extend_luids): Declare.
3090         (sched_scan_info_def, sched_scan_info, sched_scan): Remove
3091         declarations.
3092
3093 2011-05-27  Richard Guenther  <rguenther@suse.de>
3094
3095         PR middle-end/49177
3096         * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
3097         A CMP B ? (T) true : (T) false for non-integral types T again.
3098
3099 2011-05-27  Jan Hubicka  <jh@suse.cz>
3100
3101         * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
3102         so 0 means NULL string.
3103         (lto_output_string_with_length): ... here.
3104         (lto_output_string, output_string_cst, output_identifier): Update
3105         handling of NULL strings.
3106         (lto_output_location_bitpack): New function.
3107         (lto_output_location): Use it.
3108         (lto_output_tree_ref): Use output_record_start.
3109         (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
3110         len values.
3111         * lto-streamer-in.c (string_for_index): Break out from ...; offset
3112         values by 1.
3113         (input_string_internal): ... here;
3114         (input_string_cst, input_identifier, lto_input_string): Update handling
3115         of NULL strings.
3116         (lto_input_location_bitpack): New function
3117         (lto_input_location): Use it.
3118         (unpack_ts_type_common_value_fields): Pack align & alias in var len
3119         values.
3120         * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
3121         bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
3122         (bp_pack_value): Sanity check the value range.
3123         * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
3124         New functions.
3125         * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
3126         New functions.
3127
3128 2011-05-27  Hariharan Sandanagobalane  <hariharan@picochip.com>
3129
3130         * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
3131         call_arg_location instructions down the floor.
3132
3133 2011-05-26  Vladimir Makarov  <vmakarov@redhat.com>
3134
3135         PR rtl-optimization/49154
3136         * ira.c (setup_pressure_classes): Process class without sublcasses
3137         as a candidate for pressure classes.
3138
3139 2011-05-26  Richard Sandiford  <rdsandiford@googlemail.com>
3140
3141         PR rtl-optimization/48575
3142         * genrecog.c (position_type): New enum.
3143         (position): New structure.
3144         (decision): Use position structure instead of a string.
3145         (root_pos, peep2_insn_pos_list): New variables.
3146         (next_position, compare_positions): New functions.
3147         (new_decision): Use position structures instead of strings.
3148         (maybe_both_true): Likewise.
3149         (change_state): Likewise.
3150         (write_tree): Likewise.
3151         (make_insn_sequence): Likewise.
3152
3153 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
3154
3155         * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
3156         TS_BASE instead of TS_COMMON.
3157         (find_decls_types_r): Check for TS_TYPED structure before looking at
3158         TREE_TYPE.
3159         * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
3160         Add chain field.
3161         (BLOCK_CHAIN): Use new chain field.
3162
3163 2011-05-26  Pat Haugen  <pthaugen@us.ibm.com>
3164
3165         * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
3166         moves expensive on Power7 also.
3167
3168 2011-05-26  Richard Guenther  <rguenther@suse.de>
3169
3170         * fold-const.c (fold_unary_loc): Remove bogus code.
3171
3172 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
3173
3174         * tree.h (struct tree_identifier): Inherit from tree_typed, not
3175         tree_common.
3176         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
3177         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
3178         TS_BASE instead of TS_COMMON.
3179         * varasm.c (assemble_name): Remove assert.
3180
3181 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
3182
3183         * Makefile.in (srcdirify): Change order so that libgcc_objdir is
3184         substituted first.
3185         * libgcc-std.ver: Delete file.
3186
3187 2011-05-26  Richard Guenther  <rguenther@suse.de>
3188
3189         PR tree-optimization/48702
3190         * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
3191         only when we know the base address is within bounds.
3192         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
3193         assume the base address of TARGET_MEM_REFs is in bounds.
3194
3195 2011-05-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3196
3197         PR target/49099
3198         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
3199         declaration in TARGET_SOLARIS.
3200
3201 2011-05-26  Hariharan Sandanagobalane  <hariharan@picochip.com>
3202
3203         * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
3204         The instruction is then expanded explicitly.
3205         (supported_compare): Callable instruction.
3206         (compare): Likewise.
3207
3208 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
3209
3210         PR c++/49165
3211         * gimplify.c (shortcut_cond_r): Don't special case
3212         COND_EXPRs if they have void type on one of their arms.
3213
3214 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
3215
3216         * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
3217         to reduce duplication, and to achieve a slightly more logical order
3218         of operations.
3219
3220 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
3221
3222         PR tree-optimization/49161
3223         * tree-vrp.c (struct case_info): New type.
3224         (compare_case_labels): Sort case_info structs instead of
3225         trees, and not primarily by CASE_LABEL uids but by
3226         label_for_block indexes.
3227         (find_switch_asserts): Put case labels into struct case_info
3228         array instead of TREE_VEC, adjust sorting, compare label_for_block
3229         values instead of CASE_LABELs.
3230
3231 2011-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
3232
3233         * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
3234         ("orndi3_neon"): Likewise.
3235         ("bic<mode>3_neon"): Likewise.
3236
3237 2011-05-26  Ira Rosen  <ira.rosen@linaro.org>
3238
3239         PR tree-optimization/49038
3240         * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
3241         Ensure at least one epilogue iteration if required by data
3242         accesses with gaps.
3243         * tree-vectorizer.h (struct _loop_vec_info): Add new field
3244         to mark loops that require peeling for gaps.
3245         * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
3246         (vect_get_known_peeling_cost): Take peeling for gaps into
3247         account.
3248         (vect_transform_loop): Generate epilogue if required by data
3249         access with gaps.
3250         * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
3251         loop as requiring an epilogue if there are gaps in the end of
3252         the strided group.
3253
3254 2011-05-25  Ian Lance Taylor  <iant@google.com>
3255
3256         * godump.c (go_format_type): Output the first field with a usable
3257         Go type, if any.
3258
3259 2011-05-25  Ian Lance Taylor  <iant@google.com>
3260
3261         * godump.c (go_format_type): Check for invalid type names, pointer
3262         target types, and struct field types.
3263
3264 2011-05-25  Jason Merrill  <jason@redhat.com>
3265
3266         * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
3267
3268 2011-05-25  Uros Bizjak  <ubizjak@gmail.com>
3269
3270         * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
3271
3272 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
3273
3274         * config/i386/i386.md (*movqi_extv_1)): Put back
3275         "register_operand" check in "type" calculation.
3276         (*movqi_extzv_2): Likewise.
3277
3278 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
3279
3280         * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
3281
3282 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
3283
3284         PR bootstrap/49160
3285         * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
3286         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
3287         __divxc3, __divtc3): Wrap definitions in #ifndef.
3288
3289 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
3290
3291         PR target/49142
3292         * config/i386/i386.md (*movqi_extv_1_rex64): Remove
3293         "register_operand" check and replace q_regs_operand with
3294         QIreg_operand in "type" calculation.
3295         (*movqi_extv_1): Likewise.
3296         (*movqi_extzv_2_rex64): Likewise.
3297         (*movqi_extzv_2): Likewise.
3298
3299         * config/i386/predicates.md (QIreg_operand): New.
3300
3301 2011-05-25  Richard Guenther  <rguenther@suse.de>
3302
3303         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
3304         type-based offset disambiguation, streamline MEM_REF and
3305         TARGET_MEM_REF handling.
3306
3307 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
3308
3309         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
3310         (bdesc_special_args): Add pause intrinsic.
3311
3312         * config/i386/i386.md (UNSPEC_PAUSE): New.
3313         (pause): Likewise.
3314         (*pause): Likewise.
3315         * config/i386/ia32intrin.h (__pause): Likewise.
3316
3317         * doc/extend.texi (X86 Built-in Functions): Add documentation for
3318         pause intrinsic.
3319
3320 2011-05-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3321
3322         PR tree-optimization/46728
3323         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
3324         (execute_cse_sincos): Add switch case for BUILT_IN_POW.
3325
3326 2011-05-25  Nathan Froyd  <froydnj@codesourcery.com>
3327
3328         * tree.h (struct tree_exp): Inherit from struct tree_typed.
3329         * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
3330         instead of TS_COMMON.
3331
3332 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
3333
3334         * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
3335         LIBGCC2_GNU_PREFIX is defined.
3336         (__N): New macro.
3337         (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
3338         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
3339         __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
3340         __clz_tab): Define using __N.
3341         (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
3342         COMPAT_SIMODE_TRAPPING_ARITHMETIC.
3343         * target.def (libfunc_gnu_prefix): New hook.
3344         * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
3345         (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
3346         * doc/tm.texi: Regenerate.
3347         * system.h (LIBGCC2_GNU_PREFIX): Poison.
3348         * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
3349         account.
3350         (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
3351         (init_optabs): Likewise for the bswap libfuncs.
3352         * tree.c (build_common_builtin_nodes): Likewise for complex multiply
3353         and divide.
3354         * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
3355         * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
3356         * libgcc-std.ver: Remove.
3357         * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
3358         * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
3359         libgcc-std.ver.
3360         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
3361         * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
3362         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
3363         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
3364         * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
3365         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
3366         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
3367         * config/fixed-bit.h (FIXED_OP): Define differently depending on
3368         LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
3369         (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
3370
3371 2011-05-25  Jan Hubicka  <jh@suse.cz>
3372
3373         * lto-streamer-out.c (output_record_start): Use lto_output_enum
3374         (lto_output_tree): Use output_record_start.
3375         * lto-streamer-in.c (input_record_start): Use lto_input_enum
3376         (lto_get_pickled_tree): Use input_record_start.
3377         * lto-section-in.c (lto_section_overrun): Turn into fatal error.
3378         (lto_value_range_error): New function.
3379         * lto-streamer.h (lto_value_range_error): Declare.
3380         (lto_output_int_in_range, lto_input_int_in_range): New functions.
3381         (lto_output_enum, lto_input_enum): New macros.
3382
3383 2011-05-25  Eric Botcazou  <ebotcazou@adacore.com>
3384
3385         * common.opt (flag_stack_usage_info): New variable.
3386         (-Wstack-usage): New option.
3387         * doc/invoke.texi (Warning options): Document -Wstack-usage.
3388         * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
3389         <OPT_fstack_usage>: Likewise.
3390         * toplev.c (output_stack_usage): Handle -Wstack-usage.
3391         * calls.c (expand_call): Test flag_stack_usage_info variable instead
3392         of flag_stack_usage.
3393         (emit_library_call_value_1): Likewise.
3394         * explow.c (allocate_dynamic_stack_space): Likewise.
3395         * function.c (instantiate_virtual_regs ): Likewise.
3396         (prepare_function_start): Likewise.
3397         (rest_of_handle_thread_prologue_and_epilogue): Likewise.
3398         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
3399         * config/arm/arm.c (arm_expand_prologue): Likewise.
3400         (thumb1_expand_prologue): Likewise.
3401         * config/avr/avr.c (expand_prologue): Likewise.
3402         * config/i386/i386.c (ix86_expand_prologue): Likewise.
3403         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
3404         * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
3405         * config/mips/mips.c (mips_expand_prologue): Likewise.
3406         * config/pa/pa.c (hppa_expand_prologue): Likewise.
3407         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
3408         * config/s390/s390.c (s390_emit_prologue): Likewise.
3409         * config/sh/sh.c (sh_expand_prologue): Likewise.
3410         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
3411         * config/spu/spu.c (spu_expand_prologue): Likewise.
3412
3413 2011-05-25  Richard Guenther  <rguenther@suse.de>
3414
3415         * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
3416         (gimple_canonical_types_compatible_p): Likewise.
3417
3418 2011-05-25  Jan Hubicka  <jh@suse.cz>
3419
3420         PR middle-end/49062
3421         * ipa.c (function_and_variable_visibility): Only add to same
3422         comdat group list if DECL_ONE_ONLY.
3423
3424 2011-05-25  Andrey Belevantsev  <abel@ispras.ru>
3425
3426         PR rtl-optimization/49014
3427         * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
3428
3429 2011-05-25  Jakub Jelinek  <jakub@redhat.com>
3430
3431         PR target/49128
3432         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
3433
3434 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
3435
3436         PR rtl-optimization/48757
3437         * ira-build.c (loop_with_eh_edge_p): Rename to
3438         loop_with_complex_edge_p, check edges on complexity, make function
3439         conditional.
3440         (mark_loops_for_removal): Make call of loop_with_complex_edge_p
3441         conditional.
3442
3443 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
3444
3445         * config/sparc/sparc.c (sparc_option_override): If not set by the user,
3446         force flag_ira_share_save_slots to 0.
3447
3448 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
3449
3450         * var-tracking.c (compute_cfa_pointer): Adjust head comment.
3451         (vt_initialize): Set PROLOGUE_BB unconditionally.
3452         Add block comment about CFA_BASE_RTX machinery.
3453         Reset FP_CFA_OFFSET to -1 on all invalid paths.
3454         Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
3455
3456 2011-05-24  Nicola Pero  <nicola.pero@meta-innovation.com>
3457
3458         PR objc/48187
3459         * c-parser.c (c_parser_objc_class_instance_variables): More robust
3460         parsing of syntax error in ObjC instance variable lists.  In
3461         particular, avoid an infinite loop if there is a stray ']'.
3462         Updated error message.
3463
3464 2011-05-24  Ian Lance Taylor  <iant@google.com>
3465
3466         * godump.c (go_define): Don't accept a string immediately after
3467         another operand.
3468
3469 2011-05-24  Ian Lance Taylor  <iant@google.com>
3470
3471         * godump.c (struct godump_container): Add invalid_hash field.
3472         (go_format_type): Return false if type is found in invalid_hash.
3473         (go_output_typedef): Add invalid type to invalid_hash.
3474         (go_finish): Create and delete invalid_hash.
3475
3476 2011-05-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3477
3478         PR tree-optimization/46728
3479         * tree-ssa-math-opts.c (powi_table): New.
3480         (powi_lookup_cost): New.
3481         (powi_cost): New.
3482         (powi_as_mults_1): New.
3483         (powi_as_mults): New.
3484         (gimple_expand_builtin_powi): New.
3485         (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
3486         (gate_cse_sincos): Remove sincos/cexp restriction.
3487
3488 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3489
3490         PR target/3746
3491         * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
3492         mips-tdump native.
3493         * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
3494         * mips-tdump.c: Likewise.
3495
3496 2011-05-24  H.J. Lu  <hongjiu.lu@intel.com>
3497
3498         PR target/49128
3499         * config/i386/driver-i386.c (host_detect_local_cpu): Always
3500         add -mno-XXX.  Handle FMA.
3501
3502 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
3503
3504         PR rtl-optimization/48633
3505         * ira-build.c (loop_with_eh_edge_p): New function.
3506         (mark_loops_for_removal): Use it.
3507
3508 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
3509
3510         PR rtl-optimization/48971
3511         * ira.c (setup_pressure_classes): Don't check register move cost
3512         for classes with one registers.  Don't add pressure class if there
3513         is a pressure class with the same available hard registers.
3514         Check contains_reg_of_mode.  Fix a typo in collecting
3515         temp_hard_regset.  Ignore hard registers not belonging to a class.
3516
3517 2011-05-24  Uros Bizjak  <ubizjak@gmail.com>
3518
3519         PR target/49133
3520         * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
3521
3522 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
3523             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3524
3525         PR gcov-profile/48845
3526         * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
3527
3528 2011-05-24  Richard Guenther  <rguenther@suse.de>
3529
3530         * gimple.c (compare_type_names_p): Remove for_completion_p arg.
3531         (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
3532         (gimple_types_compatible_p_1): Adjust.
3533         (iterative_hash_canonical_type): Do not bother about complete vs.
3534         incomplete types.
3535         (gimple_canonical_types_compatible_p): Likewise.
3536
3537 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3538
3539         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
3540
3541 2011-05-24  Richard Guenther  <rguenther@suse.de>
3542
3543         PR bootstrap/49078
3544         * gimple.c (gimple_register_canonical_type): Revert
3545         previous change.
3546         * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
3547         does not for a tree for the case where it matters.  Cache
3548         pointer-type alias-sets.
3549
3550 2011-05-24  Joseph Myers  <joseph@codesourcery.com>
3551
3552         * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
3553         (OBJS): Remove options.o, opts-common.o and prefix.o.
3554         (OBJS-libcommon-target): New.
3555         (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
3556         (BACKEND): Include libcommon-target.a.
3557         (MOSTLYCLEANFILES): Include libcommon-target.a.
3558         (libcommon-target.a): New.
3559         (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
3560         prefix.o.
3561
3562 2011-05-23  Joseph Myers  <joseph@codesourcery.com>
3563
3564         * optc-save-gen.awk: New.  Based on optc-gen.awk.  Don't generate
3565         parts of output shared with the driver.
3566         * optc-gen.awk: Don't generate parts of output not shared with the
3567         driver.
3568         * opth-gen.awk: Remove GCC_DRIVER conditionals.
3569         * doc/options.texi (SourcerInclude): Mention options-save.c.
3570         * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
3571         (OBJS): Add options-save.o.
3572         (options-save.c, options-save.o): New.
3573         (options.o): Update dependencies.
3574         (gcc-options.o): Remove.
3575         (mostlyclean): Remove options-save.c.
3576
3577 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
3578
3579         PR debug/49032
3580         * dbxout.c: Include cgraph.h.
3581         (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
3582         and without value expr, return NULL if no varpool node exists for
3583         it or if it is not needed.
3584         * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
3585
3586         PR c/49120
3587         * c-decl.c (start_decl): Convert expr to void_type_node.
3588
3589 2011-05-23  Richard Sandiford  <rdsandiford@googlemail.com>
3590
3591         PR rtl-optimization/48826
3592         * emit-rtl.c (try_split): When splitting a call that is followed
3593         by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
3594
3595 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
3596
3597         * cfgexpand.c (expand_debug_expr): For unused non-addressable
3598         parameters passed in memory prefer using DECL_INCOMING_RTL over
3599         the pseudos it will be copied into.
3600
3601 2011-05-23  H.J. Lu  <hongjiu.lu@intel.com>
3602
3603         PR target/47315
3604         * config/i386/i386.c (ix86_option_override_internal): Save the
3605         initial options after checking vzeroupper.
3606
3607 2011-05-23  David Li  <davidxl@google.com>
3608
3609         PR tree-optimization/48988
3610         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
3611         Initialize has_valid_pred for each pred chain.
3612
3613 2011-05-23  Richard Guenther  <rguenther@suse.de>
3614
3615         * gimple.c (gimple_types_compatible_p_1): Always compare type names.
3616         (iterative_hash_gimple_type): Always hash type names.
3617
3618 2011-05-23  Nathan Froyd  <froydnj@codesourcery.com>
3619
3620         * c-typeck.c (build_function_call_vec): Tweak call to
3621         check_function_arguments.
3622
3623 2011-05-23  Richard Guenther  <rguenther@suse.de>
3624
3625         PR tree-optimization/49115
3626         * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
3627         is not necessarily carried out, do not claim it kills the ref.
3628         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
3629
3630 2011-05-23  Richard Guenther  <rguenther@suse.de>
3631
3632         PR middle-end/15419
3633         * builtins.c (fold_builtin_memory_op): Be less restrictive about
3634         what pointer types we accept for folding.
3635
3636 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3637
3638         * gthr-gnat.c: Remove.
3639         * gthr-gnat.h: Remove.
3640         * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
3641         * config/t-freebsd (LIB2ADDEH): Likewise.
3642         * config/t-linux (LIB2ADDEH): Likewise.
3643         * config/t-sol2 (LIB2ADDEH): Likewise.
3644         * config/ia64/t-vms (LIB2ADDEH): Likewise.
3645         * configure.ac (target_thread_file): Remove gnat handling.
3646         * configure: Regenerate.
3647         * doc/install.texi (Configuration, --enable-threads): Remove gnat.
3648
3649 2011-05-23  Tristan Gingold  <gingold@adacore.com>
3650             Eric Botcazou  <ebotcazou@adacore.com>
3651
3652         * gcov.c (create_file_names): If no object directory is specified,
3653         keep the directory of the file.
3654
3655 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3656
3657         * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
3658         * configure: Regenerate.
3659
3660 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
3661
3662         PR middle-end/48973
3663         * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
3664         failed and the comparison has a single bit signed type, use
3665         constm1_rtx instead of const1_rtx for true value.
3666         (do_store_flag): If ops->type is single bit signed type, disable
3667         signel bit test optimization and pass -1 instead of 1 as last
3668         parameter to emit_store_flag_force.
3669
3670 2011-05-23  Tom de Vries  <tom@codesourcery.com>
3671
3672         PR target/45098
3673         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
3674         function.
3675         (infer_loop_bounds_from_undefined): Use new function.
3676
3677 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
3678
3679         * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
3680         (ASM_SPEC): Add a -O* option here.  Pass -O0 for -noasmopt,
3681         -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
3682         and -O0 otherwise.
3683         (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
3684
3685 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
3686
3687         * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
3688         (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
3689         returns true.
3690
3691 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
3692
3693         * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
3694
3695 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
3696
3697         * config/sparc/sparc.c (sparc_delegitimize_address): Handle
3698         UNSPEC_MOVE_PIC pattern.
3699
3700 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
3701
3702         * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
3703         (sparc-*-rtems*): Likewise.
3704         (sparc64-*-elf*): Likewise.
3705         (sparc64-*-rtems*): Likewise.
3706         (sparc*-*-solaris2*): Likewise.  Remove crti.o crtn.o extra parts.
3707         * config/sparc/t-crtin: New file.
3708         * config/sparc/t-sol2 (crti.o): Delete rule.
3709         (crtn.o): Likewise.
3710         * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
3711         * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
3712         * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
3713         (ENDFILE_SPEC): Add crtn.o.
3714
3715 2011-05-22  Tom de Vries  <tom@codesourcery.com>
3716
3717         PR middle-end/48689
3718         * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
3719         CODE_CONTAINS_STRUCT (TS_COMMON).
3720
3721 2011-05-22  Jakub Jelinek  <jakub@redhat.com>
3722
3723         PR middle-end/49029
3724         * expmed.c (extract_fixed_bit_field): Test whether target can be used
3725         only after deciding which mode to use.
3726
3727 2011-05-22  Tom de Vries  <tom@codesourcery.com>
3728
3729         PR target/45098
3730         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
3731         for call to get_shiftadd_cost.
3732
3733 2011-05-22  Uros Bizjak  <ubizjak@gmail.com>
3734
3735         PR target/49104
3736         * config/i386/cpuid.h (bit_MMXEXT): New define.
3737
3738 2011-05-22  Nick Clifton  <nickc@redhat.com>
3739
3740         * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
3741         initialisation of non-existant args[2] element.  Use args[] array
3742         not arg[] array to pass arguments to build_function_type_list.
3743
3744 2011-05-22  Ira Rosen  <ira.rosen@linaro.org>
3745
3746         PR tree-optimization/49087
3747         * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
3748
3749 2011-05-21  Jason Merrill  <jason@redhat.com>
3750
3751         PR c++/49092
3752         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
3753         static storage duration.
3754
3755 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
3756
3757         * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
3758         frame pointer.
3759
3760 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
3761
3762         * config/sparc/sparc.c (eligible_for_return_delay): Do not return
3763         false if there are call-saved registers here...
3764         (sparc_can_use_return_insn_p): ...but here instead.
3765         (save_or_restore_regs): Fix thinko.
3766         (sparc_expand_prologue): Use current_function_is_leaf.
3767         (sparc_frame_pointer_required): Likewise.
3768
3769 2011-05-21  Nick Clifton  <nickc@redhat.com>
3770
3771         PR target/49098
3772         * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
3773
3774 2011-05-21  Nicola Pero  <nicola.pero@meta-innovation.com>
3775
3776         * gengtype.c (walk_type): Implemented "atomic" GTY option.
3777         * doc/gty.texi (GTY Options): Document "atomic" GTY option.
3778
3779 2011-05-21  Joseph Myers  <joseph@codesourcery.com>
3780
3781         * opt-read.awk: New.  Split out of optc-gen.awk and opth-gen.awk.
3782         * optc-gen.awk: Move common code to opt-read.awk.
3783         * opth-gen.awk: Likewise.
3784         * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
3785
3786 2011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
3787
3788         * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
3789
3790 2011-05-20  Tom de Vries  <tom@codesourcery.com>
3791
3792         PR target/45098
3793         * tree-ssa-loop-ivopts.c: Include expmed.h.
3794         (get_shiftadd_cost): New function.
3795         (force_expr_to_var_cost): Declare forward.  Use get_shiftadd_cost.
3796
3797 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
3798
3799         PR bootstrap/49086
3800         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
3801         for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
3802
3803 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
3804
3805         * Makefile.in: Update comment referring to $(OBJS-common).
3806
3807 2011-05-20  Ian Lance Taylor  <iant@google.com>
3808
3809         * godump.c (go_output_typedef): Put enum constants in the macro
3810         hash table to avoid duplicate Go const definitions.
3811
3812 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
3813
3814         * Makefile.in (LIBDEPS): Add libcommon.a.
3815         (LIBS): Likewise.
3816         (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
3817         (OBJS-common): Remove diagnostic.o, input.o, intl.o,
3818         pretty-print.o and version.o.
3819         (OBJS-libcommon): New.
3820         (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
3821         (BACKEND): Add libcommon.a.
3822         (MOSTLYCLEANFILES): Likewise.
3823         (libcommon.a): New.
3824         (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
3825         (cpp$(exeext)): Likewise.
3826         (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
3827         pretty-print.o and input.o.
3828         (lto-wrapper$(exeext)): Don't explicitly use intl.o.
3829         (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
3830         (errors.o): Remove.
3831         (mips-tfile): Don't explicitly use version.o.
3832         (mips-tdump): Likewise.
3833         (gcov.o): Depend on $(DIAGNOSTIC_H).
3834         (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
3835         (GCOV_OBJS): Remove intl.o, version.o and errors.o.
3836         (GCOV_DUMP_OBJS): Remove version.o and errors.o.
3837         * gcov-dump.c: Include intl.h and diagnostic.h.
3838         (main): Initialize diagnostics.
3839         * gcov.c: Include diagnostic.h.
3840         (fnotice): Remove.
3841         (main): Initialize diagnostics.
3842         * lto-wrapper.c: Include diagnostic.h.
3843         (main): Initialize diagnostics.
3844
3845 2011-05-20  Michael Matz  <matz@suse.de>
3846
3847         * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
3848
3849 2011-05-20  Michael Matz  <matz@suse.de>
3850             Richard Guenther  <rguenther@suse.de>
3851
3852         * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
3853         use lto_streamer_cache_append directly instead of returning a VEC.
3854         (preload_common_node): Remove.
3855         (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
3856         track seen nodes.
3857         (lto_streamer_cache_create): Call lto_preload_common_nodes.
3858
3859 2011-05-20  Richard Guenther  <rguenther@suse.de>
3860
3861         PR tree-optimization/49079
3862         * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
3863         MEM_REFs correctly for the trailing array access detection.
3864         Special case constants the same way as decls for overall size
3865         constraining.
3866
3867 2011-05-20  Uros Bizjak  <ubizjak@gmail.com>
3868
3869         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
3870         argument expansion.
3871
3872 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
3873
3874         PR tree-optimization/49073
3875         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
3876         PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
3877         * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
3878
3879 2011-05-20  Richard Guenther  <rguenther@suse.de>
3880
3881         PR middle-end/48849
3882         * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
3883         of pointer types the same way the middle-end does.
3884
3885 2011-05-20  Richard Guenther  <rguenther@suse.de>
3886
3887         * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
3888         or pointer-to chains.  Delay all fixup to uniquify_nodes.
3889
3890 2011-05-19  Quentin Neill  <quentin.neill@amd.com>
3891
3892         * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
3893         (fma4_fmaddsub): Likewise
3894
3895 2011-05-19  Jan Hubicka  <jh@suse.cz>
3896
3897         * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
3898         (GIMPLE_TYPE_PAIR_SIZE): New macro.
3899         (type_pair_cache): New static var.
3900         (lookup_type_pair): Use fixed sized custom hash; make inline.
3901         (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
3902         calls of lookup_type_pair.
3903         (print_gimple_types_stats): Remove cache stats.
3904         (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
3905         and gtc_ob.
3906
3907 2011-05-19  Uros Bizjak  <ubizjak@gmail.com>
3908
3909         * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
3910         when TARGET_RDRND is active.
3911         (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
3912         Generate dummy SImode target register when target is NULL.
3913
3914 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
3915
3916         * config/arm/arm-fpus.def: New.
3917         * config/arm/genopt.sh: Generate Enum and EnumValue entries from
3918         arm-fpus.def.
3919         * config/arm/arm-tables.opt: Regenerate.
3920         * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
3921         (arm_option_override): Don't decode FPU name to string here.
3922         * config/arm/arm.opt (mfpu=): Use Enum.
3923         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
3924         Update dependencies.
3925
3926 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
3927
3928         * collect2.c: Include diagnostic.h.
3929         (fatal_perror, fatal, error, fancy_abort): Remove.
3930         (main): Set progname.  Call xmalloc_set_program_name and
3931         diagnostic_initialize.
3932         (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
3933         scan_libraries, resolve_lib_name): Call fatal_error instead of
3934         fatal and fatal_perror.
3935         * collect2.h (error, fatal, fatal_perror): Don't declare.
3936         * tlink.c: Include diagnostic-core.h.
3937         (recompile_files): Call fatal_error instead of fatal_perror.
3938         * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
3939         pretty-print.o and input.o.
3940         (collect2.o, tlink.o): Update dependencies.
3941
3942 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3943
3944         * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
3945
3946 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3947
3948         PR target/40483
3949         * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
3950         COMDAT group syntax, both SPARC and x86 variants.
3951         (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
3952         * configure: Regenerate.
3953         * config/sol2.h (TARGET_SOLARIS): Define.
3954         (PUSHSECTION_FORMAT): Remove.
3955         (SECTION_NAME_FORMAT): Define.
3956         * config/sol2.c: Include hashtab.h.
3957         (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
3958         expansion, using SECTION_NAME_FORMAT.
3959         (solaris_comdat_htab): New variable.
3960         (struct comdat_entry): Define.
3961         (comdat_hash): New function.
3962         (comdat_eq): New function.
3963         (solaris_elf_asm_comdat_section): New function.
3964         (solaris_define_comdat_signature): New function.
3965         (solaris_code_end): New function.
3966         * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
3967         (solaris_code_end): Declare.
3968         * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
3969         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
3970         solaris_code_end.
3971         (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
3972         Remove ATTRIBUTE_UNUSED.
3973         [!USE_GAS]: Call solaris_elf_asm_comdat_section for
3974         SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
3975         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
3976         * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
3977         * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
3978         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
3979         (PUSHSECTION_FORMAT): Remove.
3980         (SECTION_NAME_FORMAT): Redefine.
3981
3982 2011-05-19  Kai Tietz  <ktietz@redhat.com>
3983
3984         * tree-cfg.c (verify_gimple_assign_binary): Barf on
3985         TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
3986         (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
3987
3988 2011-05-19  Anatoly Sokolov  <aesok@post.ru>
3989             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3990
3991         * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
3992
3993 2011-05-19  Richard Guenther  <rguenther@su