OSDN Git Service

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