OSDN Git Service

2011-10-06 Thomas Quinot <quinot@adacore.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-10-06  Anatoly Sokolov  <aesok@post.ru>
2
3         * system.h (OUTPUT_ADDR_CONST_EXTRA): Poison.
4         * doc/tm.texi.in (OUTPUT_ADDR_CONST_EXTRA): Remove documentation.
5         * doc/tm.texi: Regenerate.
6         * target.def (output_addr_const_extra): Use
7         hook_bool_FILEptr_rtx_false.
8         * targhooks.c (default_asm_output_addr_const_extra): Remove.
9         * targhooks.h (default_asm_output_addr_const_extra): Remove.
10         * hooks.c (hook_bool_FILEptr_rtx_false): New functions.
11         * hooks.h (hook_bool_FILEptr_rtx_false): Declare.
12
13 2011-10-06  David S. Miller  <davem@davemloft.net>
14
15         * config/sparc/sparc.md (popcount<mode>2, clz<mode>2): Split up into...
16         (popcountdi2, popcountsi2, clzdi2, clzsi2): Explicit expanders, in the
17         SI mode 64-bit code gen case explicitly zero-extend and truncate.
18         (*popcount<mode>_sp64): Split up into...
19         (*popcountdi_sp64, *popcountsi_64): Explicit instantiations, and in the
20         SImode case use truncate.
21         (*clzsi_sp64): Rewrite to use truncate, and let the expander emit the
22         subtract so the compiler can optimize it.
23         (SIDI): Remove unused mode iterator.
24
25 2011-10-06  Bernd Schmidt  <bernds@codesourcery.com>
26
27         * function.c (thread_prologue_and_epilogue_insns): Emit split
28         prologue on the orig_entry_edge. Don't account for it in
29         prologue_clobbered.
30
31 2011-10-06  Jakub Jelinek  <jakub@redhat.com>
32
33         PR tree-optimization/50596
34         * tree-vectorizer.h (vect_is_simple_cond): New prototype.
35         (NUM_PATTERNS): Change to 6.
36         * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): New
37         function.
38         (vect_vect_recog_func_ptrs): Add vect_recog_mixed_size_cond_pattern.
39         (vect_mark_pattern_stmts): Don't create stmt_vinfo for def_stmt
40         if it already has one, and don't set STMT_VINFO_VECTYPE in it
41         if it is already set.
42         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Handle
43         COND_EXPR in pattern stmts.
44         (vect_is_simple_cond): No longer static.
45
46 2001-10-06  Richard Henderson  <rth@redhat.com>
47
48         * config/i386/i386.c (ix86_expand_vshuffle): Add AVX2 support.
49         * config/i386/sse.md (sseshuffint): Remove.
50         (sseintvecmode): Support V16HI, V8HI, V32QI, V16QI.
51         (VSHUFFLE_AVX2): New mode iterator.
52         (vshuffle<mode>): Use it.
53         (avx_vec_concat<V_256>): Rename from *vec_concat<V_256>_avx.
54
55         * config/i386/i386.c (ix86_expand_sse_movcc): Use correct mode
56         for vector_all_ones_operand.
57         (ix86_expand_int_vcond): Distinguish between comparison mode
58         and data mode.  Allow them to differ.
59         (ix86_expand_vshuffle): Don't force data mode to match maskmode.
60
61 2001-10-06  Richard Henderson  <rth@redhat.com>
62
63         * optabs.c (expand_vec_shuffle_expr): Use the proper mode for the
64         mask operand.  Tidy the code.
65
66 2011-10-06  Jakub Jelinek  <jakub@redhat.com>
67
68         * tree-vect-patterns.c (vect_pattern_recog_1): Use
69         vect_recog_func_ptr typedef for the first argument.
70         (vect_pattern_recog): Rename vect_recog_func_ptr variable
71         to vect_recog_func, use vect_recog_func_ptr typedef for it.
72
73         PR tree-optimization/49279
74         * tree-ssa-structalias.c (find_func_aliases): Don't handle
75         CAST_RESTRICT.
76         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Allow
77         restrict propagation.
78         * tree-ssa.c (useless_type_conversion_p): Don't return false
79         if TYPE_RESTRICT differs.
80
81 2011-10-06  Bernd Schmidt  <bernds@codesourcery.com>
82
83         * function.c (thread_prologue_and_epilogue_insns): Build a vector
84         of unconverted simple return blocks rather than trying to
85         recompute them later based on bb_flags bitmap tests.
86
87 2011-10-06  Michael Matz  <matz@suse.de>
88
89         * tree-flow.h (get_var_ann): Don't declare.
90         * tree-flow-inline.h (get_var_ann): Remove.
91         (set_is_used): Use var_ann, not get_var_ann.
92         * tree-dfa.c (add_referenced_var): Inline body of get_var_ann.
93         * tree-profile.c (gimple_gen_edge_profiler): Call
94         find_referenced_var_in.
95         (gimple_gen_interval_profiler): Ditto.
96         (gimple_gen_pow2_profiler): Ditto.
97         (gimple_gen_one_value_profiler): Ditto.
98         (gimple_gen_average_profiler): Ditto.
99         (gimple_gen_ior_profiler): Ditto.
100         (gimple_gen_ic_profiler): Ditto plus call add_referenced_var.
101         (gimple_gen_ic_func_profiler): Call add_referenced_var.
102         * tree-mudflap.c (execute_mudflap_function_ops): Call
103         add_referenced_var.
104
105 2011-10-06  Jakub Jelinek  <jakub@redhat.com>
106
107         * tree-vect-patterns.c (vect_handle_widen_mult_by_const): For lhs
108         don't set SSA_NAME_DEF_STMT that has been already set by
109         gimple_build_assign_with_ops.
110         (vect_recog_pow_pattern, vect_recog_widen_sum_pattern,
111         vect_operation_fits_smaller_type, vect_recog_over_widening_pattern):
112         Likewise.
113
114         * tree.h (avoid_folding_inline_builtin): New prototype.
115         * builtins.c (avoid_folding_inline_builtin): No longer static.
116         * gimple-fold.c (gimple_fold_builtin): Give up if
117         avoid_folding_inline_builtin returns true.
118
119 2011-10-06  Richard Guenther  <rguenther@suse.de>
120
121         * tree-vect-generic.c (vector_element): Look at previous
122         generated results.
123
124 2011-10-06  David Edelsohn  <dje.gcc@gmail.com>
125
126         PR target/39950
127         * config/rs6000/aix.h (TARGET_OS_AIX_CPP_BUILTINS): Define
128         __powerpc__, __PPC__, __unix__.
129
130 2011-10-06  Michael Matz  <matz@suse.de>
131
132         * i386/i386.opt (recip_mask, recip_mask_explicit,
133         x_recip_mask_explicit): New variables and cl_target member.
134         (mrecip=): New option.
135         * i386/i386.h (RECIP_MASK_DIV, RECIP_MASK_SQRT, RECIP_MASK_VEC_DIV,
136         RECIP_MASK_VEC_SQRT, RECIP_MASK_ALL, RECIP_MASK_NONE): New bitmasks.
137         (TARGET_RECIP_DIV, TARGET_RECIP_SQRT, TARGET_RECIP_VEC_DIV,
138         TARGET_RECIP_VEC_SQRT): New tests.
139         * i386/i386.md (divsf3): Check TARGET_RECIP_DIV.
140         (sqrt<mode>2): Check TARGET_RECIP_SQRT.
141         * i386/sse.md (div<mode>3): Check TARGET_RECIP_VEC_DIV.
142         (sqrt<mode>2): Check TARGET_RECIP_VEC_SQRT.
143         * i386/i386.c (ix86_option_override_internal): Set recip_mask
144         for -mrecip and -mrecip=options.
145         (ix86_function_specific_save): Save recip_mask_explicit.
146         (ix86_function_specific_restore): Restore recip_mask_explicit.
147
148         * doc/invoke.texi (ix86 Options): Document the new option.
149
150 2011-10-06  Bernd Schmidt  <bernds@codesourcery.com>
151
152         PR target/49049
153         * config/arm/arm.md (arm_subsi3_insn): Lose the last alternative.
154
155 2011-10-06  Ulrich Weigand  <ulrich.weigand@linaro.org>
156
157         PR target/50305
158         * config/arm/arm.c (arm_legitimize_reload_address): Recognize
159         output of a previous pass through legitimize_reload_address.
160         Do not attempt to optimize addresses if the base register is
161         equivalent to a constant.
162
163 2011-10-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
164
165         * function.c (thread_prologue_and_epilogue_insns): Mark
166         last_bb_active as possibly unused.  It is unused for targets which
167         do neither have "return" nor "simple_return" expanders.
168
169 2011-10-06  Richard Guenther  <rguenther@suse.de>
170
171         * fold-const.c (fold_ternary_loc): Also fold non-constant
172         vector CONSTRUCTORs.  Make more efficient.
173         * tree-ssa-dom.c (cprop_operand): Don't handle virtual operands.
174         (cprop_into_stmt): Don't propagate into virtual operands.
175         (optimize_stmt): Really dump original statement.
176
177 2011-10-06  Nick Clifton  <nickc@redhat.com>
178
179         * config/rx/rx.md (smin3): Revert previous delta.
180
181 2011-10-06  Richard Guenther  <rguenther@suse.de>
182
183         PR tree-optimization/38884
184         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle partial
185         reads from aggregate SSA names.
186
187 2011-10-05  Jakub Jelinek  <jakub@redhat.com>
188
189         * tree-vect-patterns.c (vect_pattern_recog_1): Add stmts_to_replace
190         argument, truncate it at the beginning instead of allocating there
191         and freeing at the end.
192         (vect_pattern_recog): Allocate stmts_to_replace here and free at end,
193         pass its address to vect_pattern_recog_1.
194
195 2011-10-05  David S. Miller  <davem@davemloft.net>
196
197         * config/sparc/sparc.opt (POPC): New option.
198         * doc/invoke.texi: Document it.
199         * config/sparc/sparc.c (sparc_option_override): Enable MASK_POPC by
200         default on Niagara-2 and later.
201         * config/sparc/sparc.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
202         * config/sparc/sparc.md (SIDI): New mode iterator.
203         (ffsdi2): Delete commented out pattern and comments.
204         (popcount<mode>2, clz<mode>2): New expanders.
205         (*popcount<mode>_sp64, popcountsi_v8plus, popcountdi_v8plus,
206         *clzdi_sp64, clzdi_v8plus, *clzsi_sp64, clzsi_v8plus): New insns.
207
208 2011-10-06  Artjoms Sinkarovs  <artyom.shinkaroff@gmail.com>
209
210         PR middle-end/50607
211         * c-tree.h (c_expr_t): New typedef for struct c_expr.
212         (C_EXPR_APPEND): New macro.
213         * c-parser.c (c_parser_get_builtin_args): Preserve
214         original_tree_code of c_expr structure.
215         (c_parser_postfix_expression): Adjust to the new function.
216
217 2011-10-05  Bernd Schmidt  <bernds@codesourcery.com>
218
219         * function.c (thread_prologue_and_epilogue_insns): Don't shrink-wrap
220         if profiling after the prologue.
221
222 2011-10-05  Jakub Jelinek  <jakub@redhat.com>
223
224         PR tree-optimization/50613
225         * tree-ssa-strlen.c (find_equal_ptrs): If CASE_CONVERT
226         operand is ADDR_EXPR, fallthru into ADDR_EXPR handling,
227         and if it is neither that not SSA_NAME, give up.
228
229 2011-10-05  Richard Henderson  <rth@redhat.com>
230
231         * tree-vect-generic.c (vector_element): Never fail.  Use
232         build_zero_cst.  Tidy up type references.
233         (lower_vec_shuffle): Never fail.  Mask shuffle indicies.  Reduce
234         code duplication.  Do update_stmt here ...
235         (expand_vector_operations_1): ... not here.
236
237         * config/i386/i386.c (ix86_expand_vshuffle): Never fail.  Handle
238         TARGET_XOP.  Fix pshufb constant vector creation.  Reduce code
239         duplication.  Handle V2DI without SSE4.1.
240         * config/i386/i386-protos.h (ix86_expand_vshuffle): Update decl.
241         * config/i386/i386.md (vshuffle<V_128>): Remove assert for ok.
242
243 2011-10-05  Uros Bizjak  <ubizjak@gmail.com>
244
245         * config/i386/i386.c (distance_non_agu_define): Simplify calculation
246         of "found".  Simplify return value calculation.
247         (distance_agu_use): Ditto.
248
249 2011-10-05  Bernd Schmidt  <bernds@codesourcery.com>
250
251         PR bootstrap/50621
252         * config/i386/i386.c (ix86_add_cfa_restore_note): Omit notes only
253         if the function was not shrink-wrapped.
254         (ix86_expand_epilogue): Ensure queued cfa_adjust notes are attached
255         to an insn.
256         * function.c (thread_prologue_and_epilogue_insns): Make sure the
257         shrink_wrapped flag is set even if there is no dump file.
258
259 2011-10-05  DJ Delorie  <dj@redhat.com>
260             Nick Clifton  <nickc@redhat.com>
261
262         * config/rx/rx.opt (mpid): Define.
263         * config/rx/t-rx (MULTILIB_OPTIONS): Add -mpid
264         (MULTILIB_DIRNAMES): Add pid.
265         * config/rx/rx.c (rx_gp_base_regnum_val, rx_pid_base_regnum_val)
266         (rx_num_interrupt_regs): New variable.
267         (rx_gp_base_regnum): New function.  Returns the number of the
268         small data area register.
269         (rx_pid_base_regnum): New function.  Returns the number of the pid
270         base register.
271         (rx_decl_for_addr): New function.  Returns the symbolic part of a MEM.
272         (rx_pid_data_operand): New function.  Returns whether an object is
273         in the position independent data area.
274         (rx_legitimize_address): New function.  Puts undecided PID
275         objects in the PID data area.
276         (rx_is_legitimate_address): Add support for PID operands.
277         (rx_print_operand_address): Likewise.
278         (rx_print_operand): Likewise.
279         (rx_maybe_pidify_operand): New function.  Determine if an operand
280         is suitable for PID addressing.
281         (rx_gen_move_template): Add PID support.
282         (rx_conditional_register_usage): Likewise.
283         (rx_option_override): Initialise rx_num_interrupt_regs.
284         (rx_is_legitimate_constant): Add support for PID constants.
285         (TARGET_LEGITIMIZE_ADDRESS): Define.
286         * config/rx/constraints.md (Rpid): Define.
287         (Rpda): Define.
288         * config/rx/rx.md (UNSPEC_PID_ADDR): Define.
289         (tablejump): Add PID support.
290         (mov<>): Likewise.
291         (mov<>_internal): Likewise.
292         (addsi3): Convert to an expander.  Add PID support.
293         (pid_addr): New pattern.
294         * config/rx/rx.h (CPP_SPEC): Define.
295         (ASM_SPEC): Pass -mpid and -mint-register on to assembler.
296         (CASE_VECTOR_PC_RELATIVE): Define.
297         (JUMP_TABLES_IN_TEXT_SECTION): Enable for PID mode.
298         * config/rx/rx-protos.h (rx_maybe_pidify_operand): Prototype.
299         * doc/invoke.texi (RX Options): Document -mpid command line option.
300
301 2011-10-05  Richard Guenther  <rguenther@suse.de>
302
303         PR tree-optimization/38885
304         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle partial reads
305         from constants.
306
307 2011-10-05  Bernd Schmidt  <bernds@codesourcery.com>
308
309         * doc/invoke.texi (-fshrink-wrap): Document.
310         * opts.c (default_options_table): Add it.
311         * common.opt (fshrink-wrap): Add.
312         * function.c (emit_return_into_block): Remove useless declaration.
313         (record_hard_reg_uses_1, record_hard_reg_uses, frame_required_for_rtx,
314         requires_stack_frame_p, gen_return_pattern): New static functions.
315         (emit_return_into_block): New arg simple_p.  All callers changed.
316         Use gen_return_pattern.
317         (thread_prologue_and_epilogue_insns): Implement shrink-wrapping.
318         * config/i386/i386.md (return): Expand into a simple_return.
319         (simple_return): New expander):
320         (simple_return_internal, simple_return_internal_long,
321         simple_return_pop_internal_long, simple_return_indirect_internal):
322         Renamed from return_internal, return_internal_long,
323         return_pop_internal_long and return_indirect_internal; changed to use
324         simple_return.
325         * config/i386/i386.c (ix86_expand_epilogue): Adjust to expand
326         simple returns.
327         (ix86_pad_returns): Likewise.
328         * function.h (struct rtl_data): Add member shrink_wrapped.
329         * cfgcleanup.c (outgoing_edges_match): If shrink-wrapped, edges that
330         are not jumps or sibcalls can't be compared.
331
332 2011-10-05  Richard Guenther  <rguenther@suse.de>
333
334         * tree-ssa-sccvn.c (vn_get_expr_for): Handle CONSTRUCTOR of
335         vector type.
336         (simplify_unary_expression): Handle BIT_FIELD_REFs.
337         (try_to_simplify): Handle BIT_FIELD_REFs.
338
339 2011-10-05  Georg-Johann Lay  <avr@gjlay.de>
340
341         * config/avr/avr-protos.h (avr_out_addto_sp): New prototype.
342         * config/avr/avr.c (avr_out_addto_sp): New function.
343         (adjust_insn_length): Handle ADJUST_LEN_ADDTO_SP.
344         * config/avr/avr.md (adjust_len): Add "addto_sp".
345         (*movhi_sp): Remove insn.
346         (*addhi3_sp_R_pc2, *addhi3_sp_R_pc3): Merge to *addhi3_sp_R.
347
348 2011-10-05  Richard Guenther  <rguenther@suse.de>
349
350         * gimple-fold.c (gimple_fold_stmt_to_constant_1): For ternary ops
351         with an embedded expression valueize and fold that as well.
352         * tree-ssa-sccvn.c (try_to_simplify): Also allow SSA name
353         results from gimple_fold_stmt_to_constant_1.
354
355 2011-10-05  Nick Clifton  <nickc@redhat.com>
356
357         * config/rx/rx.md (tablejump): Add missing label.
358         (adddi3_internal): Mark operand 0 as early-clobbered.
359         (smaxsi3): Revert previous delta.
360         (adc_internal): Fix whitespace in generated asm.
361         (adc_flags): Likewise.
362
363 2011-10-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
364
365         * expmed.c (expand_mult_highpart_optab): Replace optab_handler
366         with the new widening_optab_handler.
367
368 2011-10-05  Richard Guenther  <rguenther@suse.de>
369
370         PR tree-optimization/50609
371         * gimple-fold.c (fold_array_ctor_reference): Also handle
372         vector typed constructors.
373         (fold_ctor_reference): Dispatch to fold_array_ctor_reference
374         for vector typed constructors.
375
376 2011-10-05  Uros Bizjak  <ubizjak@gmail.com>
377
378         * config/i386/i386.c (ix86_emit_binop): New static function.
379         (ix86_split_lea_for_addr): Use ix86_emit_binop to emit add and shl
380         instructions.
381         (x86_output_mi_thunk): Use ix86_emit_binop to emit add instructions.
382
383 2011-10-04  David S. Miller  <davem@davemloft.net>
384
385         * config/sparc/sparc.md (UNSPEC_FHADD, UNSPEC_FHSUB,
386         UNSPEC_XMUL): New unspecs.
387         (muldi3_v8plus): Use output_v8plus_mult.
388         (*naddsf3, *nadddf3, *nmulsf3, *nmuldf3, *nmuldf3_extend):
389         New VIS 3.0 combiner patterns.
390         (fhaddsf_vis, fhadddf_vis, fhsubsf_vis, fhsubdf_vis,
391         fnhaddsf_vis, fnhaddf_vis, umulxhi_vis, *umulxhi_sp64,
392         umulxhi_v8plus, xmulx_vis, *xmulx_sp64, xmulx_v8plus,
393         xmulxhi_vis, *xmulxhi_sp64, xmulxhi_v8plus): New VIS 3.0
394         builtins patterns.
395         * config/sparc/sparc.c (sparc_vis_init_builtins): Emit new builtins.
396         (output_v8plus_mult): New function.
397         * config/sparc/sparc-protos.h: Declare it.
398         * config/sparc/visintrin.h (__vis_fhadds, __vis_fhaddd,
399         __vis_fhsubs, __vis_fhsubd, __vis_fnhadds, __vis_fnhaddd,
400         __vis_umulxhi, __vis_xmulx, __vis_xmulxhi): New intrinsics.
401         * doc/extend.texi: Document new builtins.
402
403 2011-10-04  Richard Henderson  <rth@redhat.com>
404
405         * c-typeck.c (c_build_vec_shuffle_expr): Fix uninitialized variable.
406         Avoid save_expr unless two_arguments.
407
408 2011-10-04  Ozkan Sezer  <sezeroz@gmail.com>
409
410         * config/i386/mingw-w64.h (CPP_SPEC): Rename _REENTRANCE to _REENTRANT.
411         * config/i386/mingw32.h (CPP_SPEC): Likewise.
412
413 2011-10-04  David S. Miller  <davem@davemloft.net>
414
415         * config/sparc/driver-sparc.c (cpu_names): Fix string for supersparc
416         under Linux.
417
418 2011-10-04  Jakub Jelinek  <jakub@redhat.com>
419
420         PR tree-optimization/50604
421         * builtins.c (fold_builtin_strcpy, fold_builtin_stpcpy,
422         fold_builtin_strncpy, fold_builtin_stxcpy_chk): Ensure
423         last argument to memcpy has size_type_node type instead of ssizetype.
424         * tree-ssa-strlen.c (handle_builtin_memcpy): Use size_type_node
425         instead of TREE_TYPE (len) as type for newlen.
426
427         PR tree-optimization/50522
428         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Don't test
429         TYPE_RESTRICT.
430         (ptr_derefs_may_alias_p): Call pt_solutions_same_restrict_base
431         unconditionally.
432
433         * fold-const.c (fold_unary_loc): Don't optimize
434         POINTER_PLUS_EXPR casted to TYPE_RESTRICT pointer by
435         casting the inner pointer if it isn't TYPE_RESTRICT.
436         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't through
437         casts from non-TYPE_RESTRICT pointer to TYPE_RESTRICT pointer.
438
439 2011-10-04  Joseph Myers  <joseph@codesourcery.com>
440
441         * config.gcc (i[34567]86-*-elf*, x86_64-*-elf*): Use i386/t-crtstuff.
442
443 2011-10-04  Jan Hubicka  <jh@suse.cz>
444
445         * lto-streamer.h (lto_input_toplevel_asms): Add order_base parameter.
446         * lto-streamer-in.c (lto_input_toplevel_asms): Stream in order.
447         * lto-streamer-out.c (lto_output_toplevel_asms): Stream out order.
448         * lto-cgraph.c (order_base): New static var.
449         (lto_output_node): Stream in order.
450         (lto_output_varpool_node): Stream out order.
451         (input_node): Stream in order.
452         (input_varpool_node): Stream out order.
453         (input_cgraph_1): Initialize order base; update call of
454         lto_input_toplevel_asms.
455
456 2011-10-04  Georg-Johann Lay  <avr@gjlay.de>
457
458         PR target/50566
459         * config/avr/avr-protos.h (avr_legitimize_reload_address): New
460         prototype.
461         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Copy worker code
462         from here...
463         * config/avr/avr.c (avr_legitimize_reload_address) ...to this new
464         function.  Log if avr_log.legitimize_reload_address.
465
466 2011-10-04  Eric Botcazou  <ebotcazou@adacore.com>
467
468         * config/sparc/sparc.c (sparc_fold_builtin): Use a sequence of tests.
469
470 2011-10-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
471
472         * longlong.h (smul_ppmm, sdiv_qrnnd): Add underscores to the local
473         variables.  Fix second operand of DR.  Swap inputs for sdiv_qrnnd.
474
475 2011-10-03  David S. Miller  <davem@davemloft.net>
476
477         * config/sparc/sparc.md (fpack16_vis, fpackfix_vis, fpack32_vis): Make
478         GSR_REG an input operand to UNSPEC instead of a parallel USE.
479         (faligndata<V64I:mode>_vis): Likewise and use DI mode.
480         (alignaddrsi_vis, alignaddrdi_vis, alignaddrlsi_vis, alignaddrldi_vis):
481         Reference GSR_REG in DI mode, simplify convoluted expressions by using
482         zero_extract.
483         (bshuffle<V64I:mode>_vis): Reference GSR_REG in DI mode.
484
485 2011-10-03  Maxim Kuvyrkov  <maxim@codesourcery.com>
486
487         * tree-eh.c (remove_unreachable_handlers): Obvious cleanup.
488
489 2011-10-03  Jakub Jelinek  <jakub@redhat.com>
490             Ian Lance Taylor  <iant@google.com>
491
492         * godump.c (go_output_typedef): Support printing enum values that
493         don't fit in a signed HOST_WIDE_INT.
494
495 2011-10-03  Anatoly Sokolov  <aesok@post.ru>
496
497         * config/cris/cris.c (cris_output_addr_const_extra): Make static.
498         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
499         * config/cris/cris.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
500         * config/cris/cris-protos.h (cris_output_addr_const_extra): Remove.
501
502 2011-10-03  Anatoly Sokolov  <aesok@post.ru>
503
504         * config/m68k/m68k.c (m68k_output_addr_const_extra): Make static.
505         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
506         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
507         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Remove.
508
509 2011-10-03  Steve Ellcey  <sje@cup.hp.com>
510
511         PR target/49967
512         * configure.ac (gcc_cv_ld_static_dynamic): Define for *-*-hpux*.
513         (gcc_cv_ld_static_option): Ditto.
514         (gcc_cv_ld_dynamic_option): Ditto.
515         * configure: Regenerate.
516
517 2011-10-03  David S. Miller  <davem@davemloft.net>
518
519         * config/sparc/sparc.md (bmask<P:mode>_vis): Split into explicit 'di'
520         and 'si' patterns which describe the GSR changes explicitly in the
521         RTL using zero_extract.
522         (bshuffle<V64I:mode>_vis): Put the GSR use inside of the unspec.
523
524         * config/sparc/sparc.md (bshuffle<V64I:mode>_vis): Don't wrap
525         GSR_REG in a USE, since it's now a true arg to the UNSPEC.
526
527 2011-10-03  Artjoms Sinkarovs  <artyom.shinkaroff@gmail.com>
528
529         * optabs.c (expand_vec_shuffle_expr_p): New function. Checks
530         if given expression can be expanded by the target.
531         (expand_vec_shuffle_expr): New function. Expand VEC_SHUFFLE_EXPR
532         using target vector instructions.
533         * optabs.h: New optab vshuffle.
534         (expand_vec_shuffle_expr_p): New prototype.
535         (expand_vec_shuffle_expr): New prototype.
536         (vshuffle_optab): New optab.
537         * genopinit.c: Adjust to support vecshuffle.
538         * c-tree.h (c_build_vec_shuffle_expr): New prototype.
539         * expr.c (expand_expr_real_2): Adjust.
540         * c-typeck.c: (c_build_vec_shuffle_expr): Build a VEC_SHUFFLE_EXPR
541         recognizing the cases of two and three arguments.
542         (convert_arguments) (build_binary_op)
543         (scalar_to_vector) (build_array_ref): Spurious whitespace.
544         * gimplify.c (gimplify_exp): Adjusted to support VEC_SHUFFLE_EXPR.
545         * tree.def: New tree code VEC_SHUFFLE_EXPR.
546         * tree-inline.c (estimate_operator_cost): Recognize VEC_SHUFFLE_EXPR.
547         * tree-vect-generic.c (vector_element): New function. Returns an
548         element of the vector at the given position.
549         (lower_vec_shuffle): Checks if VEC_SHUFLLE_EXPR is supported
550         by the backend or expand an expression piecewise.
551         (expand_vector_operations_1): Adjusted.
552         (gate_expand_vector_operations_noop): New gate function.
553         * Makefile.in (tree-vect-generic.o): New include.
554         * gimple.c (get_gimple_rhs_num_ops): Adjust.
555         * tree-cfg.c (verify_gimple_assign_trenary): Verify VEC_SHUFFLE_EXPR.
556         * passes.c: Move veclower down.
557         * tree-pretty-print.c (dump_generic_node): Recognize
558         VEC_SHUFFLE_EXPR as valid expression.
559         * c-parser.c (c_parser_get_builtin_args): Helper function for the
560         builtins with variable number of arguments.
561         (c_parser_postfix_expression): Use a new helper function for
562         RID_CHOOSE_EXPR, RID_BUILTIN_COMPLEX and RID_BUILTIN_SHUFFLE.
563         * tree-ssa-operands: Adjust.
564         * c-family/c-common.c: New __builtin_shuffle keyword.
565         * c-family/c-common.h: New __builtin_shuffle keyword.
566         * gcc/doc/extend.texi: Adjust.
567
568         * gcc/config/i386/sse.md: (sseshuffint) New mode_attr.  Correspondence
569         between the vector and the type of the mask when shuffling.
570         (vecshuffle<mode>): New expansion.
571         * gcc/config/i386/i386-protos.h (ix86_expand_vshuffle): New prototype.
572         * gcc/config/i386/i386.c (ix86_expand_vshuffle): New function.
573         (ix86_vectorize_builtin_vec_perm_ok): Adjust.
574
575 2011-10-03  Jakub Jelinek  <jakub@redhat.com>
576
577         PR tree-optimization/50587
578         * tree-ssa-reassoc.c (init_range_entry): Stop iterating when
579         arg0 is not a SSA_NAME.
580
581 2011-10-03  Richard Sandiford  <rdsandiford@googlemail.com>
582
583         * ipa-inline-analysis.c (MAX_TIME): Update comment.
584
585 2011-10-02  Richard Henderson  <rth@redhat.com>
586             David S. Miller  <davem@davemloft.net>
587
588         * config/sparc/sparc.md (ashlsi3, *ashldi3_sp64): Remove
589         conditional insn type setting, we always emit a shift.
590         (*ashlsi3_extend, *lshrsi3_extend0): New patterns.
591         (*lshrsi3_extend): Rename to *lshrsi3_extend1.
592         * config/sparc/predicates.md (const_one_operand): Delete.
593
594 2011-10-02  Gerald Pfeifer  <gerald@pfeifer.com>
595
596         * invoke.texi (SPARC Options): Refer to GNU/Linux.
597
598 2011-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
599
600         * config/mips/mips.c (mips_frame_barrier): New function.
601         (mips_expand_prologue): Call it after allocating stack space.
602         (mips_deallocate_stack): New function.
603         (mips_expand_epilogue): Call mips_frame_barrier and
604         mips_deallocate_stack.
605
606 2011-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
607
608         PR target/49696
609         * config/mips/sync.md (sync_<optab>_12): Allow zero operands.
610         (sync_old_<optab>_12, sync_new_<optab>_12, sync_nand_12): Likewise.
611         (sync_old_nand_12, sync_new_nand_12, test_and_set_12): Likewise.
612
613 2011-10-02  Jan Hubicka  <jh@suse.cz>
614
615         * cgraphunit.c (verify_edge_count_and_frequency): Bounds check.
616
617         * cgraphunit.c (ipa_passes): Remove unrechable nodes.
618         * lto-streamer-out.c (produce_symtab): Skip unused extern declarations.
619         * ipa.c (cgraph_remove_unreachable_nodes): Do not assume that external
620         functions are reachable when address is taken.
621         * tree-sra.c (modify_function): Free dominance info.
622
623 2011-10-02  Jan Hubicka  <jh@suse.cz>
624
625         * ipa-inline-analysis.c (inline_summary_alloc): Bounds check.
626
627         * ipa-inline-analysis.c (reset_inline_edge_summary): New function.
628         (reset_inline_summary): New function.
629         (compute_inline_parameters, inline_node_removal_hook,
630         inline_edge_removal_hook): Use it.
631         (inline_free_summary): Reset holders correctly.
632         (inline_generate_summary): Free summary before computing it.
633
634 2011-10-02  Paolo Carlini  <paolo.carlini@oracle.com>
635
636         PR preprocessor/36819
637         * incpath.c (merge_include_chains): Call free_path on
638         heads[QUOTE] and tails[QUOTE].
639
640 2011-10-02  Jan Hubicka  <jh@suse.cz>
641
642         PR lto/47247
643         * lto-symtab.c (lto_symtab_resolve_symbols): Do not resolve
644         when resolution is already availbale from plugin.
645         (lto_symtab_merge_decls_1): Handle LDPR_PREVAILING_DEF_IRONLY_EXP.
646         * cgraph.c (ld_plugin_symbol_resolution): Add
647         prevailing_def_ironly_exp.
648         * lto-cgraph.c (LDPR_NUM_KNOWN): Update.
649         * ipa.c (varpool_externally_visible_p): IRONLY variables are never
650         externally visible.
651         * varasm.c (resolution_to_local_definition_p): Add
652         LDPR_PREVAILING_DEF_IRONLY_EXP.
653         (resolution_local_p): Likewise.
654
655 2011-10-01  David S. Miller  <davem@davemloft.net>
656
657         * config/sparc/sparc.opt (VIS3): New option.
658         * doc/invoke.texi: Document it.
659         * config/sparc/sparc.h: Force TARGET_VIS3 to zero if assembler is
660         not capable of such instructions.
661         * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__
662         to 0x300 when TARGET_VIS3.
663         * config/sparc/sparc-modes.def: Create 16-byte vector modes.
664         * config/sparc/sparc.md (UNSPEC_CMASK8, UNSPEC_CMASK16, UNSPEC_CMASK32,
665         UNSPEC_FCHKSM16, UNSPEC_PDISTN, UNSPC_FUCMP): New unspecs.
666         (V64N8, VASS): New mode iterators.
667         (vis3_shift, vis3_addsub_ss): New code iterators.
668         (vbits, vconstr): New mode attributes.
669         (vis3_shift_insn, vis3_addsub_ss_insn): New code attributes.
670         (cmask8<P:mode>_vis, cmask16<P:mode>_vis, cmask32<P:mode>_vis,
671         fchksm16_vis, <vis3_shift_insn><vbits>_vis, pdistn<mode>_vis,
672         fmean16_vis, fpadd64_vis, fpsub64_vis,
673         <vis3_addsub_ss_insn><vbits>_vis, fucmp<code>8<P:mode>_vis): New
674         VIS 3.0 instruction patterns.
675         * config/sparc/sparc.c (sparc_option_override): Set MASK_VIS3 by
676         default when targetting capable cpus.  TARGET_VIS3 implies
677         TARGET_VIS2 and TARGET_VIS, and clear them when TARGET_FPU is disabled.
678         (sparc_vis_init_builtins): Emit new VIS 3.0 builtins.
679         (sparc_fold_builtin): Do not eliminate cmask{8,16,32} when result
680         is ignored.
681         * config/sparc/visintrin.h (__vis_cmask8, __vis_cmask16,
682         __vis_cmask32, __vis_fchksm16, __vis_fsll16, __vis_fslas16,
683         __vis_fsrl16, __vis_fsra16, __vis_fsll32, __vis_fslas32,
684         __vis_fsrl32, __vis_fsra32, __vis_pdistn, __vis_fmean16,
685         __vis_fpadd64, __vis_fpsub64, __vis_fpadds16, __vis_fpadds16s,
686         __vis_fpsubs16, __vis_fpsubs16s, __vis_fpadds32, __vis_fpadds32s,
687         __vis_fpsubs32, __vis_fpsubs32s, __vis_fucmple8, __vis_fucmpne8,
688         __vis_fucmpgt8, __vis_fucmpeq8): New VIS 3.0 interfaces.
689         * doc/extend.texi: Document new VIS 3.0 builtins.
690
691 2011-10-01  Eric Botcazou  <ebotcazou@adacore.com>
692
693         * ira-color.c (assign_hard_reg): Fix typo.
694
695 2011-09-30  H.J. Lu  <hongjiu.lu@intel.com>
696
697         * doc/extend.texi: Add missing ','.
698
699 2011-09-30  Bernd Schmidt  <bernds@codesourcery.com>
700
701         * common/config/c6x/c6x-common.c (c6x_option_optimization_table):
702         Enable -fmodulo-sched at -O2 and above.
703         * config/c6x/c6x.md (doloop_end): New expander.
704         (mvilc, sploop, spkernel, loop_end): New patterns.
705         (loop_end with memory destination splitter): New.
706         * config/c6x/c6x.c: Include "hw-doloop.h".
707         (enum unitreqs): New.
708         (unit_req_table): New typedef.
709         (unit_reqs): New static variable.
710         (unit_req_factor, get_unit_reqs, count_unit_reqs, merge_unit_reqs,
711         res_mii, split_delayed_nonbranch, undo_split_delayed_nonbranch,
712         hwloop_pattern_reg, bb_earliest_end_cycle, filter_insns_above,
713         hwloop_optimize, hwloop_fail, c6x_hwloops): New static functions.
714         (struct c6x_sched_context): New member last_scheduled_iter0.
715         (init_sched_state): Initialize it.
716         (c6x_variable_issue): Update it.
717         (sploop_max_uid_iter0): New static variable.
718         (c6x_sched_reorder_1): Be careful about issuing sploop.
719         (c6x_reorg): Call c6x_hwlooops before the final schedule.
720
721 2011-09-30  Georg-Johann Lay  <avr@gjlay.de>
722
723         PR target/50566
724         * config/avr/avr-protos.h (avr_log_t): New field address_cost.
725         * config/avr/avr.c (avr_address_cost): Use it.
726         * config/avr/avr-log.c (avr_log_set_avr_log): Initialize it.
727         (avr_log_vadump): Unknown %-codes finish printing.
728
729 2011-09-30  Jakub Jelinek  <jakub@redhat.com>
730
731         PR inline-asm/50571
732         * gimple-fold.c (fold_stmt_1) <case GIMPLE_ASM>: If
733         input constraints allow mem and not reg, pass true instead of
734         false as second argument to maybe_fold_reference.
735
736         PR tree-optimization/46309
737         * fold-const.c (make_range, merge_ranges): Remove prototypes.
738         (make_range_step): New function.
739         (make_range): Use it.
740         * tree.h (make_range_step): New prototypes.
741         * Makefile.in (tree-ssa-reassoc.o): Depend on $(DIAGNOSTIC_CORE_H).
742         * tree-ssa-reassoc.c: Include diagnostic-core.h.
743         (struct range_entry): New type.
744         (init_range_entry, range_entry_cmp, update_range_test,
745         optimize_range_tests): New functions.
746         (reassociate_bb): Call optimize_range_tests.
747
748 2011-09-30  Jakub Jelinek  <jakub@redhat.com>
749             Richard Guenther  <rguenther@suse.de>
750
751         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Handle
752         BUILT_IN_STRDUP and BUILT_IN_STRNDUP.
753         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Likewise.  Fix
754         handling of BUILT_IN_STRNCAT and BUILT_IN_STRNCAT_CHK.
755         (ref_maybe_used_by_call_p_1): Fix handling of BUILT_IN_STRCAT,
756         BUILT_IN_STRNCAT, BUILT_IN_STRCAT_CHK and BUILT_IN_STRNCAT_CHK.
757
758 2011-09-30  Jan Beulich  <jbeulich@suse.com>
759
760         * lto-cgraph.c (output_cgraph): Remove processing of
761         'cgraph_asm_nodes', call lto_output_toplevel_asms() instead.
762         (input_cgraph_1): Remove loop calling cgraph_add_asm_node(), call
763         lto_input_toplevel_asms() instead.
764         * lto-section-in.c (lto_section_name): Add "asm" entry.
765         * lto-streamer-in.c (lto_input_toplevel_asms): New.
766         * lto-streamer-out.c (lto_output_toplevel_asms): New.
767         * lto-streamer.h (LTO_minor_version): Bump.
768         (enum lto_section_type): Add LTO_section_asm.
769         (struct lto_asm_header): New.
770         (lto_input_toplevel_asms, lto_output_toplevel_asms): Declare.
771         * tree-streamer.h (streamer_write_string_cst): Declare.
772         * tree-streamer-out.c (write_string_cst): Rename to
773         streamer_write_string_cst and make global. Handle incoming string
774         being NULL.
775         (streamer_write_tree_header): Adjust call to renamed function.
776
777 2011-09-30  Bernd Schmidt  <bernds@codesourcery.com>
778
779         * haifa-sched.c (modulo_ii, modulo_max_states, modulo_n_insns,
780         modulo_insns_scheduled, modulo_iter0_max_uid, modulo_backtracks_left,
781         modulo_last_stage): New static variables.
782         (set_modulo_params, discard_delay_pairs_above): New functions.
783         (struct delay_pair): New member stages.
784         (htab_i2_traverse, htab_i1_traverse): New static functions.
785         (record_delay_slot_pair): New arg stages.  All callers changed.
786         Record it.
787         (pair_delay): Take stages into account.
788         (add_delay_dependencies): Don't do so for stage pairs.
789         (struct sched_block_state): New member modulo_epilogue.
790         (save_backtrack_point): Don't set SHADOW_P for stage pairs.
791         (unschedule_insns_until): Decrease modulo_insns_scheduled.
792         Set HARD_DEP without using or.
793         (resolve_dependencies): New static function.
794         (prune_ready_list): New arg modulo_epilogue_p.  All callers changed.
795         If it is true, allow only insns with INSN_EXACT_TICK set.
796         (schedule_block): Return bool, always true for normal scheduling,
797         true or false depending on modulo scheduling success otherwise.
798         Add bookkeeping for modulo scheduling, and call resolve_dependencies
799         on everything left over after a modulo schedule.
800         (haifa_sched_init): Remove check_cfg call.  Clear modulo_ii.
801         * sched-int.h (schedule_block, record_delay_slot_pair): Adjust
802         declarations.
803         (set_modulo_params, discard_delay_pairs_above): Declare.
804         * params.def (PARAM_MAX_MODULO_BACKTRACK_ATTEMPS): New.
805         * doc/invoke.texi (--param): Document it.
806
807         * sched-ebb.c (schedule_ebb): No longer static.  Remove declaration.
808         New arg modulo_scheduling.  All callers changed.  Move note handling
809         code here from schedule_ebbs.
810         (schedule_ebbs_finish, schedule_ebbs_init): New functions, broken
811         out of schedule_ebbs.
812         (schedule_ebbs): Call them.  Remove note handling code moved to
813         schedule_ebb.
814         * sched-int.h (schedule_ebb, schedule_ebbs_init,
815         schedule_ebbs_finish): Declare.
816
817 2011-09-30  Richard Guenther  <rguenther@suse.de>
818
819         PR middle-end/50574
820         * tree-cfg.c (verify_gimple_comparison): Compare component
821         mode sizes for vector comparisons.
822
823 2011-09-30  Revital Eres  <revital.eres@linaro.org>
824
825         * ddg.c (autoinc_var_is_used_p): New function.
826         (create_ddg_dep_from_intra_loop_link,
827         add_cross_iteration_register_deps): Call it.
828         * ddg.h (autoinc_var_is_used_p): Declare.
829         * modulo-sched.c (generate_reg_moves): Call autoinc_var_is_used_p.
830         (sms_schedule): Handle instructions with REG_INC.
831
832 2011-09-30  Revital Eres  <revital.eres@linaro.org>
833
834         * modulo-sched.c (generate_reg_moves): Skip instructions that
835         do not set a register and verify no regmoves are created for
836         !single_set instructions.
837
838 2011-09-30  Bernd Schmidt  <bernds@codesourcery.com>
839
840         * hw-doloop.c (scan_loop): Compute register usage only for non-debug
841         insns.
842
843 2011-09-30  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
844
845         PR target/50099
846         * config/arm/iterators.md (qhs_zextenddi_cstr): New.
847         (qhs_zextenddi_op): New.
848         * config/arm/arm.md ("zero_extend<mode>di2"): Use them.
849         * config/arm/predicates.md ("arm_extendqisi_mem_op"):
850         Distinguish between ARM and Thumb2 states.
851
852 2011-09-30  David S. Miller  <davem@davemloft.net>
853
854         * config/sparc/sparc.opt (VIS2): New option.
855         * doc/invoke.texi: Document it.
856         * config/sparc/sparc.md (UNSPEC_EDGE8N, UNSPEC_EDGE8LN,
857         UNSPEC_EDGE16N, UNSPEC_EDGE16LN, UNSPEC_EDGE32N,
858         UNSPEC_EDGE32LN, UNSPEC_BSHUFFLE): New unspecs.
859         (define_attr type): New insn type 'edgen'.
860         (bmask<P:mode>_vis, bshuffle<V64I:mode>_vis, edge8n<P:mode>_vis,
861         edge8ln<P:mode>_vis, edge16n<P:mode>_vis, edge16ln<P:mode>_vis,
862         edge32n<P:mode>_vis, edge32ln<P:mode>_vis): New insn VIS 2.0
863         patterns.
864         * niagara.md: Handle edgen.
865         * niagara2.md: Likewise.
866         * ultra1_2.md: Likewise.
867         * ultra3.md: Likewise.
868         * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__
869         to 0x200 when TARGET_VIS2.
870         * config/sparc/sparc.c (sparc_option_override): Set MASK_VIS2 by
871         default when targetting capable cpus.  TARGET_VIS2 implies
872         TARGET_VIS, clear and it when TARGET_FPU is disabled.
873         (sparc_vis_init_builtins): Emit new VIS 2.0 builtins.
874         (sparc_expand_builtin): Fix predicate indexing when builtin returns
875         void.
876         (sparc_fold_builtin): Do not eliminate bmask when result is ignored.
877         * config/sparc/visintrin.h (__vis_bmask, __vis_bshuffledi,
878         __vis_bshufflev2si, __vis_bshufflev4hi, __vis_bshufflev8qi,
879         __vis_edge8n, __vis_edge8ln, __vis_edge16n, __vis_edge16ln,
880         __vis_edge32n, __vis_edge32ln): New VIS 2.0 interfaces.
881         * doc/extend.texi: Document new VIS 2.0 builtins.
882
883 2011-09-29  Nick Clifton  <nickc@redhat.com>
884             Bernd Schmidt  <bernds@codesourcery.com>
885
886         * config/frv/frvbegin.c: Fix location of unwind-dw2-fde.h header file.
887         * config/frv/frvend.c: Likewise.
888         * config/frv/frv.c (frv_function_prologue): Move misplaced
889         CALL_ARG_LOCATION notes back to their proper locations.
890
891 2011-09-29  Georg-Johann Lay  <avr@gjlay.de>
892
893         PR target/50566
894         * config/avr/avr-log.c (avr_log_vadump): Use %b to print bool.
895         * config/avr/avr.c (avr_rtx_costs_1): New static function, renamed
896         from avr_rtx_costs.
897         (avr_legitimate_address_p): Use avr_edump to print log information
898         filtered by avr_log.
899         (extra_constraint_Q): Ditto.
900         (avr_legitimize_address): Ditto.
901         (avr_rtx_costs): Ditto.  Rewrite as wrapper for avr_rtx_costs_1.
902         (final_prescan_insn): Use avr_log.rtx_costs as filter.
903
904 2011-09-29  Richard Sandiford  <richard.sandiford@linaro.org>
905
906         * config/arm/arm-protos.h (arm_modes_tieable_p): Declare.
907         * config/arm/arm.h (MODES_TIEABLE_P): Use it.
908         * config/arm/arm.c (arm_modes_tieable_p): New function.  Allow
909         NEON vector and structure modes to be tied.
910
911 2011-09-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
912
913         * graphite-scop-detection.c (make_close_phi_nodes_unique):  New
914         forward declaration.
915         (remove_duplicate_close_phi): Detect and repair creation of
916         duplicate close-phis for a containing loop.
917
918 2011-09-27   Andi Kleen <ak@linux.intel.com>
919
920         * gcc.c (get_local_tick). Rename to get_random_number.  Read from
921         /dev/urandom.  Add getpid call.
922         (compare_debug_dump_opt_spec_function): Drop getpid call.
923
924 2011-09-26   Andi Kleen <ak@linux.intel.com>
925
926         * toplev.c (init_local_tick): Try reading random seed
927         from /dev/urandom.
928
929 2011-09-26   Andi Kleen <ak@linux.intel.com>
930
931         * hwint.h (HOST_WIDE_INT_PRINT_HEX_PURE): Add.
932         * lto-streamer.c (lto_get_section_name): Remove crc32_string.
933         Handle numerical random seed.
934         * lto-streamer.h (lto_file_decl_data): Change id to
935         unsigned HOST_WIDE_INT.
936         * toplev.c (random_seed): Add.
937         (init_random_seed): Change for numerical random seed.
938         (get_random_seed): Return as HOST_WIDE_INT.
939         (set_random_seed): Crc32 existing string.
940         * toplev.h (get_random_seed): Change to numercal return.
941         * tree.c (get_file_function_name): Remove CRC. Handle
942         numerical random seed.
943
944 2011-09-29  Georg-Johann Lay  <avr@gjlay.de>
945
946         PR target/50566
947         * config.gcc (extra_objs): Add avr-log.o for $target in:
948         avr-*-rtems*, avr-*-*.
949         * config/avr/t-avr (avr-log.o): New rule to compile...
950         * config/avr/avr-log.c: ...this new file.
951         * config/avr/avr.opt (mlog=): New option.
952         * config/avr/avr-protos.h (avr_edump, avr_fdump): New macros.
953         (avr_log_set_caller_e, avr_log_set_caller_f): New prototypes.
954         (avr_log_set_avr_log): New prototype.
955         (avr_log_t): New typedef.
956         (avr_log): New declaration.
957         * config/avr/avr.c (avr_option_override): Call avr_log_set_avr_log.
958
959 2011-09-29  Artjoms Sinkarovs <artyom.shinkaroff@gmail.com>
960
961         * expr.c (do_store_flag): Expand vector comparison by
962         building an appropriate VEC_COND_EXPR.
963         * c-typeck.c (build_binary_op): Typecheck vector comparisons.
964         (c_objc_common_truthvalue_conversion): Adjust.
965         * tree-vect-generic.c (do_compare): Helper function.
966         (expand_vector_comparison): Check if hardware supports
967         vector comparison of the given type or expand vector piecewise.
968         (expand_vector_operation): Treat comparison as binary
969         operation of vector type.
970         (expand_vector_operations_1): Adjust.
971
972 2011-09-29  Richard Guenther  <rguenther@suse.de>
973
974         * tree.c (build_opaque_vector_type): Make opaque vectors
975         variant types of the corresponding non-opaque type.  Make
976         sure to share opaque vector types properly.
977
978 2011-09-29  David S. Miller  <davem@davemloft.net>
979
980         * config/sparc/sparc.md (UNSPEC_ARRAY8, UNSPEC_ARRAY16,
981         UNSPEC_ARRAY32): New unspec.
982         (define_attr type): New type 'array'.
983         (array{8,16,32}<P:mode>_vis): New patterns.
984         * config/sparc/ultra1_2.md: Add reservations for 'array'.
985         * config/sparc/ultra3.md: Likewise.
986         * config/sparc/niagara.md: Likewise.
987         * config/sparc/niagara2.md: Likewise.
988         * config/sparc/sparc.c (sparc_vis_init_builtins): Build new
989         array builtins.
990         * config/sparc/visintrin.h (__vis_array8, __vis_array16,
991         __vis_array32): New.
992         * doc/extend.texi: Document new VIS builtins.
993
994         * config/sparc/sparc.md (gcond_name): Delete unnecessary code attr.
995         (VIS pixel-compare insn): Just use <gcond:name>.
996
997         * config/sparc/sparc.md (VIS pixel-compare insn): There is only one
998         code iterator used, so just use <code>.  There are two mode iterators
999         so explicitly use <GCM:gcm_name>.
1000
1001 2011-09-29  Iain Sandoe  <iains@gcc.gnu.org>
1002
1003         * config/darwin9.h (STACK_CHECK_STATIC_BUILTIN): Enable for
1004         Darwin >= 9.
1005
1006 2011-09-28  David S. Miller  <davem@davemloft.net>
1007
1008         * config/sparc/sparc.md (UNSPEC_FCMPLE, UNSPEC_FCMPNE,
1009         UNSPEC_FCMPGT, UNSPEC_FCMPEQ): Delete and reduce to...
1010         (UNSPEC_FCMP): New unspec.
1011         (gcond): New code iterator.
1012         (gcond_name): New code attr.
1013         (GCM): New mode iterator.
1014         (gcm_name): New mode attr.
1015         (fcmp{le,ne,gt,eq}{16,32}_vis): Reimplement using iterators.
1016
1017 2011-09-28  Oleg Endo  <oleg.endo@t-online.de>
1018
1019         PR target/49486
1020         * config/sh/sh.md (negdi2): Move expansion into split to
1021         allow more combination options.  Add T_REG clobber.
1022         (abssi2): New expander.
1023         (*negdi2, *abssi2, *negabssi2): New insns.
1024         (cneg): Change from insn to insn_and_split.  Rename to
1025         negsi_cond.  Add alternative for non-SH4.
1026
1027 2011-09-28  Richard Sandiford  <richard.sandiford@linaro.org>
1028
1029         * config/arm/neon.md (neon_move_lo_quad_<mode>): Delete.
1030         (neon_move_hi_quad_<mode>): Likewise.
1031         (move_hi_quad_<mode>, move_lo_quad_<mode>): Use subreg moves.
1032
1033 2011-09-28  Nick Clifton  <nickc@redhat.com>
1034
1035         * config/rx/predicates.md (rx_minmax_operand): New predicate.
1036         Accepts immediates and a restricted subset of MEMs.
1037         * config/rx/rx.md (int_modes): New iterator.
1038         (smaxsi3, sminsi3): Delete and replace with...
1039         (smax<int_mode>3, smin<int_mode>3): New patterns.
1040         (umax<>3_u, umax<>3_ur, umax<>3, umin<>3): New patterns.
1041
1042 2011-09-28  Richard Guenther  <rguenther@suse.de>
1043
1044         PR middle-end/50460
1045         * fold-const.c (try_move_mult_to_index): Handle &a.array the
1046         same as &a.array[0].
1047
1048 2011-09-28  Kai Tietz  <ktietz@redhat.com>
1049
1050         * configure.ac: Add test for new section attribute
1051         specifier "e" via define HAVE_GAS_SECTION_EXCLUDE.
1052         * config.in: Regenerated.
1053         * configure: Regenerated.
1054         * config/i386/winnt.c (i386_pe_asm_named_section): Emit
1055         new section flag "e" for excluded sections, if supported.
1056         Otherwise we mark section withc SECTION_EXCLUDE flag as never-load.
1057
1058 2011-09-28  Richard Sandiford  <rdsandiford@googlemail.com>
1059
1060         * config/m32r/m32r.md: Use match_test rather than eq/ne symbol_ref
1061         throughout file.
1062
1063 2011-09-28  Richard Sandiford  <rdsandiford@googlemail.com>
1064
1065         * config/iq2000/iq2000.md: Use match_test rather than eq/ne symbol_ref
1066         throughout file.
1067
1068 2011-09-27  Sriraman Tallam  <tmsriram@google.com>
1069
1070         * output.h (SECTION_EXCLUDE): New macro.
1071         * varasm.c (default_elf_asm_named_section): Check for SECTION_EXCLUDE.
1072
1073 2011-09-27  Richard Sandiford  <rdsandiford@googlemail.com>
1074
1075         * fwprop.c (forward_propagate_and_simplify): After checking
1076         reg/subreg combinations, check whether the modes are the same.
1077
1078 2011-09-27  Bernd Schmidt  <bernds@codesourcery.com>
1079             Richard Sandiford  <rdsandiford@googlemail.com>
1080
1081         * config/mips/mips.c (mips_add_cfa_restore): New function.
1082         (mips16e_save_restore_reg): Use it.
1083         (mips_restore_reg): Likewise.  Split double FPRs for
1084         REG_CFA_RESTORE notes.
1085
1086 2011-09-27  Richard Sandiford  <rdsandiford@googlemail.com>
1087
1088         PR middle-end/50386
1089         PR middle-end/50326
1090         * tree-sra.c (build_ref_for_model): Use the type of the field as
1091         the type of the COMPONENT_REF.
1092
1093 2011-09-27  Jeff Law  <law@redhat.com>
1094
1095         * ifcvt.c (cheap_bb_rtx_cost_p): Add SCALE argument.  Scale
1096         non-jumping insns by REG_BR_PROB_BASE and the maximum cost by SCALE.
1097         (find_if_case_1): Use the probability of the THEN clause when
1098         determining if speculation is profitable.
1099         (find_if_case_2): Similarly for the ELSE clause.
1100
1101 2011-09-27  Jakub Jelinek  <jakub@redhat.com>
1102
1103         * common.opt: Add -foptimize-strlen option.
1104         * Makefile.in (OBJS): Add tree-ssa-strlen.o.
1105         (tree-sssa-strlen.o): Add dependencies.
1106         * opts.c (default_options_table): Enable -foptimize-strlen
1107         by default at -O2 if not -Os.
1108         * passes.c (init_optimization_passes): Add pass_strlen
1109         after pass_object_sizes.
1110         * timevar.def (TV_TREE_STRLEN): New timevar.
1111         * params.def (PARAM_MAX_TRACKED_STRLENS): New parameter.
1112         * tree-pass.h (pass_strlen): Declare.
1113         * tree-ssa-strlen.c: New file.
1114         * c-decl.c (merge_decls): If compatible stpcpy prototype
1115         is seen, set implicit_built_in_decls[BUILT_IN_STPCPY].
1116
1117 2011-09-27  Tom de Vries  <tom@codesourcery.com>
1118
1119         PR middle-end/43864
1120         * tree-ssa-tail-merge.c: New file.
1121         (struct same_succ_def): Define.
1122         (same_succ, const_same_succ): New typedef.
1123         (struct bb_cluster_def): Define.
1124         (bb_cluster, const_bb_cluster): New typedef.
1125         (struct aux_bb_info): Define.
1126         (BB_SIZE, BB_SAME_SUCC, BB_CLUSTER, BB_VOP_AT_EXIT): Define.
1127         (gvn_uses_equal): New function.
1128         (same_succ_print, same_succ_print_traverse, update_dep_bb)
1129         (stmt_update_dep_bb, local_def, same_succ_hash)
1130         (inverse_flags, same_succ_equal, same_succ_alloc, same_succ_delete)
1131         (same_succ_reset): New function.
1132         (same_succ_htab, same_succ_edge_flags)
1133         (deleted_bbs, deleted_bb_preds): New var.
1134         (debug_same_succ): New function.
1135         (worklist): New var.
1136         (print_worklist, add_to_worklist, find_same_succ_bb, find_same_succ)
1137         (init_worklist, delete_worklist, delete_basic_block_same_succ)
1138         (same_succ_flush_bbs, purge_bbs, update_worklist): New function.
1139         (print_cluster, debug_cluster, update_rep_bb)
1140         (add_bb_to_cluster, new_cluster, delete_cluster): New function.
1141         (all_clusters): New var.
1142         (alloc_cluster_vectors, reset_cluster_vectors, delete_cluster_vectors)
1143         (merge_clusters, set_cluster): New function.
1144         (gimple_equal_p, gsi_advance_bw_nondebug_nonlocal, find_duplicate)
1145         (same_phi_alternatives_1, same_phi_alternatives, bb_has_non_vop_phi)
1146         (deps_ok_for_redirect_from_bb_to_bb, deps_ok_for_redirect)
1147         (find_clusters_1, find_clusters): New function.
1148         (update_vuses, vop_phi, vop_at_entry, replace_block_by): New function.
1149         (update_bbs): New var.
1150         (apply_clusters): New function.
1151         (update_debug_stmt, update_debug_stmts): New function.
1152         (tail_merge_optimize): New function.
1153         tree-pass.h (tail_merge_optimize): Declare.
1154         * tree-ssa-pre.c (execute_pre): Use tail_merge_optimize.
1155         * Makefile.in (OBJS-common): Add tree-ssa-tail-merge.o.
1156         (tree-ssa-tail-merge.o): New rule.
1157         * opts.c (default_options_table): Set OPT_ftree_tail_merge by
1158         default at OPT_LEVELS_2_PLUS.
1159         * tree-ssa-sccvn.c (vn_valueize): Move to ...
1160         * tree-ssa-sccvn.h (vn_valueize): Here.
1161         * timevar.def (TV_TREE_TAIL_MERGE): New timevar.
1162         * common.opt (ftree-tail-merge): New switch.
1163         * params.def (PARAM_MAX_TAIL_MERGE_COMPARISONS)
1164         (PARAM_MAX_TAIL_MERGE_ITERATIONS): New parameter.
1165         * doc/invoke.texi (Optimization Options, -O2): Add -ftree-tail-merge.
1166         (-ftree-tail-merge, max-tail-merge-comparisons)
1167         (max-tail-merge-iterations): New item.
1168
1169 2011-09-27  Jan Hubicka  <jh@suse.cz>
1170
1171         * ipa-inline-analysis.c (MAX_TIME): Reduce to avoid overflows.
1172
1173 2011-09-27  Jan Hubicka  <jh@suse.cz>
1174
1175         * ipa-inline-analysis.c (eliminated_by_inlining_prob): Handle
1176         parameters passed by reference; handle loads from non-SSA scalars
1177         and update comments.
1178
1179 2011-09-27  Bernd Schmidt  <bernds@codesourcery.com>
1180
1181         PR rtl-optimization/50249
1182         * reload1.c (reload_reg_reaches_end_p): Accept a reloadnum argument
1183         instead of opnum and type.  All callers changed.  Remove useless
1184         declaration.
1185         Search forward for other reloads of the same type for the same operand
1186         using the same register; if any are found, return false.
1187         (reload_regs_reach_end_p): Same argument changes; all callers changed.
1188
1189 2011-09-27  Andi Kleen  <ak@linux.intel.com>
1190             Jan Hubicka  <jh@suse.cz>
1191
1192         * doc/invoke.texi (ffat-lto-objects): Document.
1193         * toplev.c (compile_file): Do not output assembly when doing slim lto;
1194         Output __gnu_slim_lto when doing slim lto.
1195         * cgraphunit.c (ipa_passes): Do only analysis when producing slim lto.
1196         (cgraph_optimize): Return early when doing slim lto.
1197         * opts.c (finish_options): Complain about lack of linker plugin
1198         when doing slim lto.
1199         * common.opt (ffat-lto-objects): New.
1200
1201 2011-09-27  Richard Sandiford  <richard.sandiford@linaro.org>
1202
1203         * ipa-inline-analysis.c (predicate_probability): Avoid comparison
1204         between signed and unsigned.
1205
1206 2011-09-27  Ira Rosen  <ira.rosen@linaro.org>
1207
1208         * tree-vect-stmts.c (vectorizable_type_demotion): Handle basic block
1209         vectorization.
1210         (vectorizable_type_promotion): Likewise.
1211         (vect_analyze_stmt): Call vectorizable_type_demotion and
1212         vectorizable_type_promotion for basic blocks.
1213         (supportable_widening_operation): Don't assume loop vectorization.
1214         * tree-vect-slp.c (vect_build_slp_tree): Allow multiple types for
1215         basic blocks.  Update vectorization factor for basic block
1216         vectorization.
1217         (vect_analyze_slp_instance): Allow multiple types for basic block
1218         vectorization.  Recheck unrolling factor after construction of SLP
1219         instance.
1220
1221 2011-09-27  Richard Guenther  <rguenther@suse.de>
1222
1223         * tree-object-size.c (compute_object_sizes): Fix dumping of
1224         folded statement.
1225
1226 2011-09-27  Richard Guenther  <rguenther@suse.de>
1227
1228         PR tree-optimization/50363
1229         * tree-ssa-pre.c (create_expression_by_pieces): Handle
1230         pointer conversions in POINTER_PLUS_EXPRs properly.
1231
1232 2011-09-27  Richard Sandiford  <richard.sandiford@linaro.org>
1233
1234         * config/arm/neon.md (neon_vget_highv16qi, neon_vget_highv8hi)
1235         (neon_vget_highv4si, neon_vget_highv4sf, neon_vget_highv2di)
1236         (neon_vget_lowv16qi, neon_vget_lowv8hi, neon_vget_lowv4si)
1237         (neon_vget_lowv4sf, neon_vget_lowv2di): Turn into define_expands
1238         that produce subreg moves.  Define using VQX iterators.
1239
1240 2011-09-27  Georg-Johann Lay  <avr@gjlay.de>
1241
1242         * config/avr/avr.md (ashrqi3): Split alternative "n"
1243         into its remaining parts C03, C04, C05, C06, C07 and describe
1244         impact in CC by attribute "cc" appropriately.
1245         * config/avr/avr.c (notice_update_cc): Clean-up: Don't patch CC0
1246         by digging RTX.
1247
1248 2011-09-27  Jakub Jelinek  <jakub@redhat.com>
1249
1250         * rtl.h (const_tiny_rtx): Change into array of 4 x MAX_MACHINE_MODE
1251         from 3 x MAX_MACHINE_MODE.
1252         (CONSTM1_RTX): Define.
1253         * emit-rtl.c (const_tiny_rtx): Change into array of
1254         4 x MAX_MACHINE_MODE from 3 x MAX_MACHINE_MODE.
1255         (gen_rtx_CONST_VECTOR): Use CONSTM1_RTX if all inner constants are
1256         CONSTM1_RTX.
1257         (init_emit_once): Initialize CONSTM1_RTX for MODE_INT and
1258         MODE_VECTOR_INT modes.
1259         * simplify-rtx.c (simplify_binary_operation_1) <case IOR, XOR, AND>:
1260         Optimize if one operand is CONSTM1_RTX.
1261         * config/i386/i386.c (ix86_expand_sse_movcc): Optimize mask ? -1 : x
1262         into mask | x.
1263
1264 2011-09-26  David S. Miller  <davem@davemloft.net>
1265
1266         * config/sparc/sparc.md (edge{8,16,32}{,l}): Return Pmode.
1267         (fcmp{le,ne,gt,eq}{16,32}): Likewise.
1268         * config/sparc/visintrin.h: Update edge and pixel-compare
1269         intrinsics to return 'long' instead of 'int'.
1270         * doc/extend.texi: Update documentation to match.
1271         * config/sparc/sparc.c (eligible_for_return_delay): When leaf or
1272         flat, allow any instruction.  Otherwise, when V9 allow parallels
1273         which consist only of sets to registers outside of %o0 to %o5.
1274         (sparc_vis_init_builtins): Update VIS builtin types for edge
1275         and pixel-compare.
1276
1277         * config/sparc/sparc.c (sparc_conditional_register_usage): When VIS
1278         is enabled, mark %gsr as global.
1279         * config/sparc/sparc.md (UNSPEC_WRGSR): Delete.
1280         (wrgsr_vis, *wrgsr_sp64, wrgsr_v8plus): Don't wrap in an unspec.
1281
1282         * config/sparc/sparc-c.c: New file implementing sparc_target_macros,
1283         which will now define __VIS and __VIS__ when -mvis is enabled.
1284         * config/sparc/t-sparc: Likewise.
1285         * config.gcc: Add sparc-c.o to c_target_objs and cxx_target_objs,
1286         and add t-sparc to tmake_file for all sparc targets.
1287         * config/sparc/sparc-protos.h (sparc_target_macros): Declare.
1288         * config/sparc/sparc.h (TARGE_CPU_CPP_BUILTINS): Call it.
1289
1290         * config/sparc/sparc.c (sparc_vis_init_builtins): Add explicit
1291         builtins for VIS vector addition and subtraction.
1292         * config/sparc/visintrin.h (__vis_fpadd16, __vis_fpadd16s,
1293         __vis_fpadd32, __vis_fpadd32s, __vis_fpsub16, __vis_fpsub16s,
1294         __vis_fpsub32, __vis_fpsub32s): New.
1295         * doc/extend.texi: Document new VIS intrinsics.
1296
1297 2011-09-26  Georg-Johann Lay  <avr@gjlay.de>
1298
1299         * config/avr/avr.md (peephole casesi+2): Use -1 instead of 65536.
1300         * config/avr/avr.c (avr_out_compare): Print shorter sequence for
1301         EQ/NE comparisons against +/-1 in the case of unused-after,
1302         non-ld-regs target.
1303
1304 2011-09-26  Jakub Jelinek  <jakub@redhat.com>
1305
1306         * gimple-fold.c (gimplify_and_update_call_from_tree): Set
1307         gctx.into_ssa after push_gimplify_context.
1308
1309         * gimple.c (gimple_build_call_valist): New function.
1310         * gimple.h (gimple_build_call_valist): New prototype.
1311         * tree-ssa-propagate.c (finish_update_gimple_call): New function.
1312         (update_gimple_call): Likewise.
1313         (update_call_from_tree): Use finish_update_gimple_call.
1314         * tree-ssa-propagate.h (update_gimple_call): New prototype.
1315
1316 2011-09-26  Richard Guenther  <rguenther@suse.de>
1317
1318         PR tree-optimization/50472
1319         * gimple-fold.c (fold_const_aggregate_ref_1): Do not fold
1320         volatile references.
1321
1322 2011-09-26  Bingfeng Mei <bmei@broadcom.com>
1323
1324         * doc/tm.texi: Correct documentation for TARGET_ADDR_SPACE_SUBSET_P.
1325         * target.def: (addr_space_subset_p): Likewise.
1326
1327 2011-09-26  Tom de Vries  <tom@codesourcery.com>
1328
1329         * tree-ssa-alias.h (pt_solution_singleton_p): Declare.
1330         * tree-ssa-structalias.c (pt_solution_singleton_p): New function.
1331         * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Set points-to solution
1332         of new var.
1333
1334 2011-09-26  Georg-Johann Lay  <avr@gjlay.de>
1335
1336         PR target/50465
1337         * config/avr/avr-protos.h (output_reload_insisf): Don't pass insn.
1338         * config/avr/avr.md (*reload_insi, *reload_insf): Change call to
1339         output_reload_insisf.
1340         (adjust_len): Set default to "no".
1341         Remove alternative "yes".  Add alternatives: "mov8", "mov16",
1342         "mov32", "ashlqi", "ashrqi", "lshrqi", "ashlhi", "ashrhi",
1343         "lshrhi", "ashlsi, "ashrsi", "lshrsi".
1344         (*movqi, *movhi, *movsi, *ashlqi3, ashlhi3, ashlsi3,
1345         *ashlhi3_const, *ashlsi3_const, ashrqi3, ashrhi3, ashrsi3,
1346         *ashrhi3_const, *ashrsi3_const, *lshrqi3, lshrhi3, *lshrhi3_const,
1347         *lshrsi3_const): Set attribute "adjust_len".
1348         * config/avr/avr.c (output_reload_insisf): Remove parameter "insn".
1349         (output_movsisf): Don't pass insn to output_reload_insisf.
1350         (adjust_insn_length): Handle new alternatives to adjust_len.
1351         Remove handling of ADJUST_LEN_YES.  Clean-up code.
1352
1353 2011-09-26  Eric Botcazou  <ebotcazou@adacore.com>
1354
1355         * ifcvt.c (noce_try_cmove_arith): Use may_trap_or_fault_p in lieu of
1356         may_trap_p to detect loads that may trap of fault.
1357
1358 2011-09-26  Georg-Johann Lay  <avr@gjlay.de>
1359
1360         * config/avr/avr-protos.h (output_reload_inhi): Change prototype.
1361         * config/avr/avr.md (adjust_len): Add "reload_in16" alternative.
1362         (*reload_inhi): Use it.  Adapt call to output_reload_inhi to new
1363         prototype.
1364         (*movhi): Split constraint alternative "r,rL" into "r,r" and "r,L".
1365         * config/avr/avr.c: Rename output_reload_insisf_1 to
1366         output_reload_in_const.
1367         (avr_popcount_each_byte): Handle SFmode, too.
1368         (output_reload_in_const): Change so it can handle HI loads, too.
1369         Use avr_popcount_each_byte to work out if scratch register must be
1370         created on the fly.
1371         (output_reload_inhi): Rewrite using output_reload_in_const and...
1372         (output_movhi): ...use it to print constants' loads.
1373         (adjust_insn_length): New case ADJUST_LEN_RELOAD_IN16. Cleanup code.
1374
1375 2011-09-25  David S. Miller  <davem@davemloft.net>
1376
1377         * config/sparc/constraints.md (C, P, Z): New constraints for
1378         const_doube, const_int, and const_vector "all ones" values.
1379         Make unused constraint letters comment match reality.
1380         * config/sparc/predicates.md (const_all_ones_operand,
1381         register_or_zero_or_all_ones_operand): New predicates.
1382         * config/sparc/sparc.c (sparc_expand_move): Allow all ones
1383         as well as zero constants when VIS.
1384         (sparc_legitimate_constant_p): Likewise.
1385         * config/sparc/sparc.md (movsi_insn): Add fones alternative.
1386         (movsf_insn): Likewise
1387         (movdi_insn_sp64): Add fone alternative.
1388         (movdf_insn_sp32_v9): Likewise.
1389         (movdf_insn_sp64): Likewise.
1390
1391         * configure.ac: Add feature check to make sure the assembler
1392         supports the FMAF, HPC, and VIS 3.0 instructions found on
1393         Niagara-3 and later cpus.
1394         * configure: Rebuild.
1395         * config.in: Likewise.
1396         * config/sparc/sparc.opt: New option '-mfmaf'.
1397         * config/sparc/sparc.md: Add float fused multiply-add patterns.
1398         * config/sparc/sparc.h (AS_NIAGARA3_FLAG): New macro.
1399         (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC): Use it, as needed.
1400         * config/sparc/sol2.h (ASM_CPU32_DEFAULT_SPEC,
1401         ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC): Likewise.
1402         * config/sparc/sparc.c (sparc_option_override): Turn MASK_FMAF on
1403         by default for Niagara-3 and later.  Turn it off if TARGET_FPU is
1404         disabled.
1405         (sparc_rtx_costs): Handle 'FMA'.
1406         * doc/invoke.texi: Document -mfmaf.
1407
1408 2011-09-25  Jakub Jelinek  <jakub@redhat.com>
1409
1410         * tree-ssa-structalias.c (intra_create_variable_infos): Treat
1411         TYPE_RESTRICT REFERENCE_TYPE parameters like restricted
1412         DECL_BY_REFERENCE parameters.
1413
1414 2011-09-25  Eric Botcazou  <ebotcazou@adacore.com>
1415
1416         * tree-eh.c (cleanup_empty_eh): Allow a call to __builtin_stack_restore
1417         if there is no outgoing edge.
1418
1419         * tree-scalar-evolution.c (simple_iv): Accept all kinds of pointer and
1420         integral types.
1421
1422 2011-09-25  Ira Rosen  <ira.rosen@linaro.org>
1423
1424         * tree-vect-slp.c (vect_slp_analyze_bb_1): Split out core part
1425         of vect_analyze_bb here.
1426         (vect_analyze_bb): Loop over vector sizes calling vect_analyze_bb_1.
1427
1428 2011-09-25  Ira Rosen  <ira.rosen@linaro.org>
1429
1430         * tree-data-ref.c (dr_analyze_innermost): Add new argument.
1431         Allow not simple iv if analyzing basic block.
1432         (create_data_ref): Update call to dr_analyze_innermost.
1433         (stmt_with_adjacent_zero_store_dr_p, ref_base_address): Likewise.
1434         * tree-loop-distribution.c (generate_memset_zero): Likewise.
1435         * tree-predcom.c (find_looparound_phi): Likewise.
1436         * tree-data-ref.h (dr_analyze_innermost): Add new argument.
1437
1438 2011-09-24  David S. Miller  <davem@davemloft.net>
1439
1440         * config/sparc/sparc.h (FIRST_PSEUDO_REGISTER): Bump to 103.
1441         (SPARC_GSR_REG): Define.
1442         (FIXED_REGISTERS): Mark GSR as fixed.
1443         (CALL_USED_REGISTERS): Mark GSR as call used.
1444         (HARD_REGNO_NREGS): GSR is always 1 register.
1445         (REG_CLASS_CONTENTS): Add GSR to ALL_REGS.
1446         (REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER): Add GSR to the end.
1447         (REGISTER_NAMES): Add "%gsr".
1448         * config/sparc/sparc.md (UNSPEC_ALIGNADDR, UNSPEC_ALIGNADDRL): Delete.
1449         (UNSPEC_WRGSR): New unspec.
1450         (GSR_REG): New constant.
1451         (type): Add new insn type 'gsr'.
1452         (fpack16_vis, fpackfix_vis, fpack32_vis,
1453         faligndata<V64I:MODE>_vis)): Add use of GSR_REG.
1454         (wrgsr_vis, *wrgsr_sp64, wrgsr_v8plus, rdgsr_vis, *rdgsr_sp64,
1455         rdgsr_v8plus): New expanders and insns.
1456         (alignaddr<P:mode>_vis, alignaddrl<P:mode>_vis): Reimplement
1457         using patterns which show that this is a plus in addition to a
1458         modification of GSR_REG, instead of an unspec.
1459         * config/sparc/ultra1_2.md: Handle 'gsr'.
1460         * config/sparc/ultra3.md: Likewise.
1461         * config/sparc/niagara.md: Likewise.
1462         * config/sparc/niagara2.md: Likewise.
1463         * config/sparc/sparc.c (leaf_reg_remap, sparc_leaf_regs): Fill out
1464         end of table.
1465         (sparc_option_override): Make -mvis imply -mv8plus.
1466         (hard_32bit_mode_classes, hard_64bit_mode_classes): Add entries
1467         for %gsr.
1468         (sparc_vis_init_builtins): Build __builtin_vis_write_gsr and
1469         __builtin_vis_read_gsr.
1470         (sparc_expand_buildin): Handle builtins that take one argument and
1471         return void.
1472         (sparc_fold_builtin): Never fold writes to %gsr.
1473         * config/sparc/visintrin.h (__vis_write_gsr, __vis_read_gsr): New.
1474         * doc/extend.texi: Document new VIS intrinsics.
1475
1476 2011-09-23  Jan Hubicka  <jh@suse.cz>
1477
1478         * ipa-inline-transform.c (inline_call): Add comment.
1479         * ipa-inline.h (inline_param_summary): New structure and vector.
1480         (struct inline_edge_summary): Add param field.
1481         * ipa-inline-analysis.c (CHANGED): New constant.
1482         (add_clause): Handle CHANGED and NOT_CONSTANT.
1483         (predicate_probability): New function.
1484         (dump_condition): Dump CHANGED predicate.
1485         (evaluate_conditions_for_known_args): Handle ERROR_MARK as marker
1486         of unknown function wide invariant.
1487         (evaluate_conditions_for_edge): Handle change probabilities.
1488         (inline_edge_duplication_hook): Copy param summaries.
1489         (inline_edge_removal_hook): Free param summaries.
1490         (dump_inline_edge_summary): Fix dumping of indirect edges and callee
1491         sizes; dump param summaries.
1492         (will_be_nonconstant_predicate): Use CHANGED predicate.
1493         (record_modified_bb_info): New structure.
1494         (record_modified): New function.
1495         (param_change_prob): New function.
1496         (estimate_function_body_sizes): Compute param summaries.
1497         (estimate_edge_size_and_time): Add probability argument.
1498         (estimate_node_size_and_time): Add inline_param_summary argument;
1499         handle predicate probabilities.
1500         (remap_predicate): Fix formating.
1501         (remap_edge_change_prob): New function.
1502         (remap_edge_summaries): Rename from ...; use remap_edge_change_prob.
1503         (remap_edge_predicates): ... this one.
1504         (inline_merge_summary): Remap edge summaries; handle predicate
1505         probabilities; remove param summaries after we are done.
1506         (do_estimate_edge_time): Update.
1507         (do_estimate_edge_growth): Update.
1508         (read_inline_edge_summary): Read param info.
1509         (inline_read_summary): Fix formating.
1510         (write_inline_edge_summary): Write param summaries.
1511
1512 2011-09-23  Jakub Jelinek  <jakub@redhat.com>
1513
1514         * config/i386/i386.c (ix86_print_operand): Handle %~.
1515         (ix86_print_operand_punct_valid_p): Return true also for '~'.
1516         * config/i386/sse.md (i128): New mode_attr.
1517         (vec_extract_hi_<mode>, vec_extract_hi_<mode>,
1518         avx_vbroadcastf128_<mode>, *avx_vperm2f128<mode>_full,
1519         *avx_vperm2f128<mode>_nozero, vec_set_lo_<mode>,
1520         vec_set_hi_<mode>, *vec_concat<mode>_avx): Use <i128> in the
1521         patterns, use "<sseinsnmode>" for "mode" attribute.
1522         (vec_extract_hi_v16hi, vec_extract_hi_v32qi, vec_set_lo_v16hi,
1523         vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Use
1524         %~128 in the patterns, use "OI" for "mode" attribute.
1525
1526 2011-09-23  Georg-Johann Lay  <avr@gjlay.de>
1527
1528         PR target/50447
1529         * config/avr/avr.md (adjust_len): Add alternatives "tsthi",
1530         "tstsi", "compare".
1531         (*cmpqi_sign_extend): Use s8_operand.
1532         (*cmphi, *cmpsi): Rewrite using avr_out_compare.
1533         * config/avr/avr-protos.h (compare_diff_p, compare_eq_p): Remove
1534         prototypes.
1535         (out_tsthi, out_tstsi): Remove prototypes.
1536         (avr_out_tsthi, avr_out_tstsi): New prototypes.
1537         * config/avr/avr.c (out_tsthi, out_tstsi): Remove functions.
1538         (avr_asm_len): Negative length now sets *plen to -length.
1539         (compare_sign_p): Return bool instead of int.
1540         (compare_diff_p, compare_eq_p): Ditto and make static.
1541         (avr_out_tsthi): New function.
1542         (avr_out_tstsi): New function.
1543         (avr_out_compare): New function.
1544         (adjust_insn_length): Handle ADJUST_LEN_TSTHI, ADJUST_LEN_TSTSI,
1545         ADJUST_LEN_COMPARE.
1546
1547 2011-09-23  Georg-Johann Lay  <avr@gjlay.de>
1548
1549         PR target/50447
1550         * config/avr/avr.md: (adjust_len): Add alternative "out_plus".
1551         (addsi3): Rewrite using QI scratch register.  Adjust text
1552         peepholes using plus:SI.
1553         (*addsi3_zero_extend.hi): New insn.
1554         (*subsi3_zero_extend.hi): New insn.
1555         (*subhi3_zero_extend1): Set attribute "cc" to "set_czn".
1556         (*subsi3_zero_extend): Ditto.
1557         (subsi3): Change predicate #2 to register_operand.
1558         * config/avr/avr-protos.h (avr_out_plus): New prototype.
1559         (avr_out_plus_1): New static function.
1560         (avr_out_plus): New function.
1561         (adjust_insn_length): Handle ADJUST_LEN_OUT_PLUS.
1562
1563 2011-09-23  Jakub Jelinek  <jakub@redhat.com>
1564
1565         * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): For
1566         GE/GT/UNLE/UNLT swap arguments and condition even for TARGET_AVX.
1567
1568 2011-09-23  Ian Lance Taylor  <iant@google.com>
1569
1570         * godump.c (go_define): Treat a single character in single quotes,
1571         or a string, as an operand.
1572
1573 2011-09-23  Martin Jambor  <mjambor@suse.cz>
1574
1575         * ipa-prop.h (jump_func_type): Updated comments.
1576         (ipa_known_type_data): New type.
1577         (ipa_jump_func): Use it to describe known type jump functions.
1578         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Updated to
1579         reflect the new known type jump function contents.
1580         (compute_known_type_jump_func): Likewise.
1581         (combine_known_type_and_ancestor_jfs): Likewise.
1582         (try_make_edge_direct_virtual_call): Likewise.
1583         (ipa_write_jump_function): Likewise.
1584         (ipa_read_jump_function): Likewise.
1585         * ipa-cp.c (ipa_value_from_known_type_jfunc): New function.
1586         (ipa_value_from_jfunc): Use ipa_value_from_known_type_jfunc.
1587         (propagate_accross_jump_function): Likewise.
1588
1589 2011-09-23  Georg-Johann Lay  <avr@gjlay.de>
1590
1591         PR target/50446
1592         * config/avr/avr.md (rotlqi3): Support all offsets 0..7.
1593         (rotlqi3_4): Turn insn into expander.
1594         (*rotlqi3): New insn.
1595         (rotlhi3, rotlsi3): Support rotate left/right by 1.
1596         (*rotlhi2.1, *rotlhi2.15): New insns.
1597         (*rotlsi2.1, *rotlsi2.31): New insns.
1598         * config/avr/constraints.md (C03, C05, C06, C07): New constraints.
1599
1600 2011-09-23  Bin Cheng  <bin.cheng@arm.com>
1601
1602         * config/arm/bpabi.h (BE8_LINK_SPEC): Add cortex-m arch and processors.
1603
1604 2011-09-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
1605
1606         * ipa-prop.c (ipa_print_node_jump_functions): Fix typos.
1607
1608 2011-09-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1609
1610         * reload.c (find_reloads): Set operand_mode to Pmode for address
1611         operands consisting of just a CONST_INT.
1612
1613 2011-09-22  Uros Bizjak  <ubizjak@gmail.com>
1614
1615         PR target/50482
1616         * config/i386/i386.c (ix86_expand_sse_movcc): When generating
1617         blendv, force op_true to register if it doesn't satisfy
1618         nonimmediate_operand predicate.
1619
1620 2011-09-22  Richard Sandiford  <rdsandiford@googlemail.com>
1621
1622         PR middle-end/50113
1623         PR middle-end/50061
1624         * calls.c (emit_library_call_value_1): Use BLOCK_REG_PADDING to
1625         get the locate.where_pad value for register-only arguments.
1626         * config/arm/arm.c (arm_pad_arg_upward): Remove HFmode handling.
1627         (arm_pad_reg_upward): Handle null types.
1628
1629 2011-09-22  Jan Hubicka  <jh@suse.cz>
1630
1631         * ipa-inline-analysis.c: Fix overly long lines.
1632
1633 2011-09-22  Jan Hubicka  <jh@suse.cz>
1634
1635         * ipa-inline-transform.c (inline_call): Always update jump functions
1636         after inlining.
1637         * ipa-inline.c (ipa_inline): Likewise; do not call
1638         ipa_create_all_structures_for_iinln.
1639         (ipa_inline): Always free jump functions.
1640         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Remove hack.
1641         (remap_edge_predicates): Fix pasto.
1642         (inline_merge_summary): Remove nlined edge predicate; remove hack.
1643         (inline_analyze_function): Always initialize jump functions.
1644         (inline_generate_summary): Likewise.
1645         (inline_write_summary): Always write jump functions when ipa-cp
1646         is not doing that.
1647         (inline_read_summary): Always read jump functions when ipa-cp
1648         is not doing that.
1649         * ipa-prop.c (iinlining_processed_edges): Remove.
1650         (update_indirect_edges_after_inlining): Do not use
1651         iinlining_processed_edges; instead set param_index to -1.
1652         (propagate_info_to_inlined_callees): Only try to indirect inlining
1653         when asked to do so; update jump functions of indirect calls, too;
1654         remove jump functions of the inlined edge.
1655         (ipa_edge_duplication_hook): Do not copy iinlining_processed_edges.
1656         (ipa_create_all_structures_for_iinln): Remove.
1657         (ipa_free_all_structures_after_iinln): Do not free
1658         iinlining_processed_edges.
1659         * ipa-prop.h (ipa_create_all_structures_for_iinln): Remove.
1660
1661 2011-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
1662
1663         * config/arm/predicates.md (expandable_comparison_operator): New
1664         predicate, extracted from...
1665         (arm_comparison_operator): ...here.
1666         * config/arm/arm.md (cbranchsi4, cbranchsf4, cbranchdf4, cbranchdi4)
1667         (cstoresi4, cstoresf4, cstoredf4, cstoredi4, movsicc, movsfcc)
1668         (movdfcc): Use expandable_comparison_operator.
1669
1670 2011-09-22  Georg-Johann Lay  <avr@gjlay.de>
1671
1672         PR target/50447
1673         PR target/50465
1674         * config/avr/avr-protos.h (avr_out_bitop): New prototype.
1675         (avr_popcount_each_byte): New prototype.
1676         * config/avr/avr.c (avr_popcount): New static function.
1677         (avr_popcount_each_byte): New function.
1678         (avr_out_bitop): New function.
1679         (adjust_insn_length): ADJUST_LEN_OUT_BITOP dispatches to
1680         avr_out_bitop.  Cleanup code.
1681         * config/avr/constraints.md (Ca2, Co2, Cx2): New constraints.
1682         (Ca4, Co4, Cx4): New constraints.
1683         * config/avr/avr.md (adjust_len): Add "out_bitop" insn attribute
1684         alternative.
1685         (andhi3, iorhi3, xorhi3): Rewrite insns using avr_out_bitop.
1686         (andsi3, iorsi3, xorsi3): Ditto.
1687         (*iorhi3_clobber, *iorsi3_clobber): Remove insns.
1688
1689 2011-09-22  Ira Rosen  <ira.rosen@linaro.org>
1690
1691         PR tree-optimization/50451
1692         * tree-vect-slp.c (vect_get_constant_vectors): Don't fail for
1693         constant operands in reduction.
1694         (vect_get_slp_defs): Don't create vector operand for NULL scalar
1695         operand.
1696
1697 2011-09-22  David S. Miller  <davem@davemloft.net>
1698
1699         * config/sparc/sparc.c (sparc_vis_init_builtins): Do not mark
1700         fpack16, fpack32, fpackfix as const.
1701
1702         * config/sparc/sparc.md (G[0-7]_REG, O[0-7]_REG, L[0-7]_REG,
1703         I[0-7]_REG, F[0-62]_REG, FCC[0-3]_REG, CC_REG, SFP_REG): New
1704         constants.  Use them everywhere.
1705
1706 2011-09-22  Oleg Endo  <oleg.endo@t-online.de>
1707
1708         * config/sh/sh.c (andcosts): Renamed to and_xor_ior_costs.
1709         Added AND special case.  Adapted comments.
1710         (sh_rtx_costs): Added XOR and IOR case.
1711
1712 2011-09-21  Jan Hubicka  <jh@suse.cz>
1713
1714         * ipa-inline-analsis.c (compute_inline_parameters): Set
1715         cfun and current_function_decl.
1716
1717 2011-09-21  Jan Hubicka  <jh@suse.cz>
1718
1719         * ipa-inline-analysis.c (set_cond_stmt_execution_predicate): Allow
1720         handled components in parameter of builtin_constant_p.
1721         (will_be_nonconstant_predicate): Allow loads of non-SSA parameters.
1722
1723 2011-09-21  Jan Hubicka  <jh@suse.cz>
1724
1725         * ipa-inline.c (relative_time_benefit): Fix wrong bracketting.
1726         * ipa-inline.h (estimate_edge_time): Fix pasto.
1727         * ipa-inline-analysis.c (do_estiamte_edge_time): Remove capping.
1728
1729 2011-09-21  Jakub Jelinek  <jakub@redhat.com>
1730
1731         * config/i386/i386.c (ix86_expand_sse_movcc): Use
1732         blendvps, blendvpd and pblendvb if possible.
1733
1734 2011-09-21  Uros Bizjak  <ubizjak@gmail.com>
1735
1736         PR target/50464
1737         * config/i386/sse.md (xop_pcmov_<mode><avxsizesuffix>): Change
1738         operand 1 predicate to register_operand and operand 2 predicate
1739         to nonimmediate_operand.
1740         * config/i386/i386.c (ix86_expand_sse_movcc): When generating
1741         xop_pcmov, force op_true to register.  Also, force op_false to
1742         register if it doesn't satisfy nonimmediate_operand predicate.
1743
1744 2011-09-21  Kirill Yukhin  <kirill.yukhin@intel.com>
1745
1746         * config/i386/bmi2intrin.h (_mulx_u64): New.
1747         (_mulx_u32): Ditto.
1748
1749 2011-09-21  Jan Hubicka  <jh@suse.cz>
1750
1751         PR tree-optimization/50433
1752         * ipa-inline-analysis.c (eliminated_by_inlining_prob):
1753         Use get_base_address.
1754
1755 2011-09-21  Jakub Jelinek  <jakub@redhat.com>
1756
1757         * config/i386/sse.md (<code><mode>3 smaxmin:VI124_128 expander): Use
1758         nonimmediate_operand instead of register_operand predicate for operands
1759         1 and 2, force them into registers if expanding them as comparison.
1760         (<code><mode>3 umaxmin:VI124_128 expander): Similarly.  For UMAX
1761         V8HImode force into register just operand 1.
1762
1763 2011-09-21  Georg-Johann Lay  <avr@gjlay.de>
1764
1765         PR target/45099
1766         * config/avr/avr.c (avr_function_arg_advance): Change error to
1767         warning if a fixed register is needed as function argument.
1768
1769 2011-09-21  Georg-Johann Lay  <avr@gjlay.de>
1770
1771         PR target/50449
1772         PR target/50465
1773         * config/avr/avr.md (adjust_len): New insn attribute.
1774         (*reload_insi, *reload_insf): Use it.
1775         (*movsi, *movsf): Use new interface of output_movsisf.
1776         * config/avr/avr-protos.h (output_movsisf): Change prototype.
1777         * config/avr/avr.c (output_movsisf): Ditto.
1778         (adjust_insn_length): Use insn attribute "adjust_len" to adjust
1779         lengths of insns *reload_insi, *reload_insf.
1780         (output_reload_insisf_1): New static function.
1781         (output_reload_insisf): Use it.
1782
1783 2011-09-21  David S. Miller  <davem@davemloft.net>
1784
1785         * config/sparc/sparc.c (def_builtin): Change from macro into function.
1786         (def_builtin_const): New.
1787         (sparc_vis_init_builtins): Use def_builtin_const for all VIS builtins
1788         other than alignaddr and falignaddr.
1789
1790         * config/sparc/sparc.md (UNSPEC_FCMPLE, UNSPEC_FCMPNE, UNSPEC_FCMPGT,
1791         UNSPEC_FCMPEQ): New unspec codes.
1792         (fcmple16_vis, fcmple32_vis, fcmpne16_vis, fcmpne32_vis, fcmpgt16_vis,
1793         fcmpgt32_vis, fcmpeq16_vis, fcmpeq32_vis): New patterns.
1794         * config/sparc/sparc.c (sparc_vis_init_builtins): Create builtins for
1795         new pixel compare VIS patterns.
1796         * config/sparc/visintrin.h (__vis_fcmple16, __vis_fcmple32,
1797         __vis_fcmpne16, __vis_fcmpne32, __vis_fcmpgt16, __vis_fcmpgt32,
1798         __vis_fcmpeq16, __vis_fcmpeq32): New.
1799         * doc/extend.texi: Document new pixel compare VIS intrinsics.
1800
1801 2011-09-21  Tom de Vries  <tom@codesourcery.com>
1802
1803         * final.c (final): Handle if JUMP_LABEL is not LABEL_P.
1804
1805 2011-09-20  David S. Miller  <davem@davemloft.net>
1806
1807         * config/sparc/sparc.md (UNSPEC_ALIGNADDRL): New unspec.
1808         (aligneddrl<P:mode>_vis): New pattern.
1809         (edge8_vis, edge8l_vis, edge16_vis, edge16l_vis, edge32_vis,
1810         edge32l_vis): Adjust to take Pmode arguments, and return SImode.
1811         * config/sparc/sparc.c (sparc_vis_init_builtins): Handle new
1812         alignaddrl insn, and adjust edge operations for updated types.
1813         * config/sparc/visintrin.h: Likewise.
1814         * doc/extend.texi: Make typing in VIS documentation match reality.
1815
1816 2011-09-20  Terry Guo  <terry.guo@arm.com>
1817
1818         * config/arm/arm-arches.def: Add armv6s-m.
1819         * config/arm/arm-tables.opt: Regenerate.
1820
1821 2011-09-20  Wei Guozhi  <carrot@google.com>
1822
1823         PR rtl-optimization/49452
1824         * postreload.c (reload_combine): Invalidate use information when across
1825         volatile insn.
1826
1827 2011-09-19  Maxim Kuvyrkov  <maxim@codesourcery.com>
1828
1829         * haifa-sched.c (has_edge_p, prev_non_location_insn, check_cfg):
1830         Remove maintenance overhead.
1831         (haifa_sched_init, sched_finish): Update.
1832
1833 2011-09-19  Uros Bizjak  <ubizjak@gmail.com>
1834
1835         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use if_then_else RTX
1836         to calculate unit, prefix_rep and prefix_data16 attributes.
1837         (*mov<mode>_internal): Ditto for unit attribute.
1838         (*movv2sf_internal_rex64): Ditto for unit and prefix_rep attributes.
1839         (*movv2sf_internal): Ditto.
1840         * config/i386/sse.md (VI1248_256): Remove mode iterator.
1841         (avx2_eq<mode>3): Use VI_256 instead of VI1248_256.
1842         (*avx2_eq<mode>3): Ditto.
1843         (avx2_gt<mode>3): Ditto.
1844
1845 2011-09-19  Uros Bizjak  <ubizjak@gmail.com>
1846
1847         * config/i386/i386.md (maxmin): New code iterator.
1848         * config/i386/sse.md (<maxmin:code><mode>3): Macroize expander
1849         from <umaxmin:code><mode>3 and <smaxmin:code><mode>3 using maxmin
1850         code iterator.
1851         (*avx2_<maxmin:code><mode>3): Macroize isn from
1852         *avx2_<umaxmin:code><mode>3 and *avx2_<smaxmin:code><mode>3 using
1853         maxmin code iterator.
1854         (<smaxmin:code><VI124_128:mode>3): Merge with <smaxmin:code>v8hi3.
1855         (<umaxmin:code><VI124_128:mode>3): Merge with umaxv4si3 and
1856         <umaxmin:code>v16qi3.
1857
1858 2011-09-19  Alan Modra  <amodra@gmail.com>
1859             Michael Meissner  <meissner@linux.vnet.ibm.com>
1860
1861         PR target/50341
1862         * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Do not
1863         split the load of the indirect function's TOC from the call to
1864         prevent the compiler from moving the load of the new TOC above
1865         code that references the current function's TOC.
1866         (call_indirect_aix<ptrsize>_internal): Ditto.
1867         (call_indirect_aix<ptrsize>_nor11): Ditto.
1868         (call_indirect_aix<ptrsize>_internal2): Ditto.
1869         (call_value_indirect_aix<ptrsize>): Ditto.
1870         (call_value_indirect_aix<ptrsize>_internal): Ditto.
1871         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
1872         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
1873
1874 2011-09-19  Jakub Jelinek  <jakub@redhat.com>
1875
1876         * config/i386/sse.md (*sse4_1_extractps): Change into
1877         define_insn_and_split, add =x 0 n and =x x n alternatives
1878         and split them after reload.
1879
1880 2011-09-19  Alexandre Oliva  <aoliva@redhat.com>
1881
1882         * tree.h (TREE_NOT_CHECK4): Rename from bogus NON_TREE_CHECK4.
1883
1884 2011-09-19  Alexandre Oliva  <aoliva@redhat.com>
1885
1886         * emit-rtl.c (copy_insn_1): Do not copy DEBUG_EXPRs.
1887
1888 2011-09-19  Ira Rosen  <ira.rosen@linaro.org>
1889
1890         PR tree-optimization/50413
1891         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail to vectorize
1892         a basic block if one of its data-refs can't be analyzed.
1893
1894 2011-09-19  Paul Brook  <paul@codesourcery.com>
1895
1896         * config/arm/predicates.md (shift_amount_operand): Check constant
1897         shift count is in range.
1898         (const_shift_operand): Remove.
1899
1900 2011-09-18  Eric Botcazou  <ebotcazou@adacore.com>
1901             Iain Sandoe  <developer@sandoe-acoustics.co.uk>
1902
1903         PR target/50091
1904         * config/rs6000/rs6000.md (probe_stack): Use explicit operand.
1905         * config/rs6000/rs6000.c (output_probe_stack_range): Likewise.
1906
1907 2011-09-18  H.J. Lu  <hongjiu.lu@intel.com>
1908
1909         * config/i386/bmiintrin.h: Remove tmp.
1910         * config/i386/tbmintrin.h: Likewise.
1911
1912 2011-09-18  Ira Rosen  <ira.rosen@linaro.org>
1913
1914         PR tree-optimization/50414
1915         * tree-vect-slp.c (vect_get_constant_vectors): Handle MAX_EXPR and
1916         MIN_EXPR.
1917
1918 2011-09-18  Ira Rosen  <ira.rosen@linaro.org>
1919
1920         PR tree-optimization/50412
1921         * tree-vect-data-refs.c (vect_analyze_group_access): Fail for
1922         acceses that require epilogue loop if vectorizing outer loop.
1923
1924 2011-09-17  David S. Miller  <davem@davemloft.net>
1925
1926         * config/sparc/sparc.md (UNSPEC_EDGE8, UNSPEC_EDGE8L,
1927         UNSPEC_EDGE16, UNSPEC_EDGE16L, UNSPEC_EDGE32, UNSPEC_EDGE32L):
1928         New unspecs.
1929         (define_attr type): New type 'edge'.
1930         (edge8_vis, edge8l_vis, edge16_vis, edge16l_vis, edge32_vis,
1931         edge32l_vis): New patterns.
1932         * config/sparc/ultra1_2.md: Add insn reservation for 'edge'.
1933         * config/sparc/ultra3.md: Likewise.
1934         * config/sparc/niagara.md: Likewise.
1935         * config/sparc/niagara2.md: Likewise.
1936         * config/sparc/sparc.d (sparc_vis_init_builtins): Generate
1937         builtins for VIS edge instructions.
1938         * config/sparc/visintrin.h (__vis_edge8, __vis_edge8l)
1939         (__vis_edge16, __vis_edge16l, __vis_edge32, __vis_edge32l): New
1940         intrinsics.
1941         (__v8qi, __v4qi): Make unsigned.
1942         (__vis_faligndatadi, ___vis_faligndatav2si, __vis_faligndatav4hi,
1943         __vis_faligndatav8qi, __vis_fmul8x16au, __vis_fmul8x16al,
1944         __vis_fpack32): Fix types.
1945         * doc/extend.texi: Document new 'edge' VIS intrinsics.
1946
1947         * gcc/config/sparc/sparc.c (niagara2_costs): Adjust integer
1948         divide costs.
1949         (niagara3_costs): New.
1950         (sparc_option_override): Use it.
1951         * gcc/config/sparc/niagara2.md: Adjust with more accurate
1952         Niagara-3 reservations.
1953
1954 2011-09-17  Jakub Jelinek  <jakub@redhat.com>
1955
1956         * config/i386/sse.md (VIMAX_AVX2): Change V4DI to V2TI.
1957         (sse2_avx, sseinsnmode): Add V2TI.
1958         (REDUC_SMINMAX_MODE): New mode iterator.
1959         (reduc_smax_v4sf, reduc_smin_v4sf, reduc_smax_v8sf,
1960         reduc_smin_v8sf, reduc_smax_v4df, reduc_smin_v4df): Remove.
1961         (reduc_<code>_<mode>): New smaxmin and umaxmin expanders.
1962         (sse2_lshrv1ti3): Rename to...
1963         (<sse2_avx2>_lshr<mode>3): ... this.  Use VIMAX_AVX2 mode
1964         iterator.  Move before umaxmin expanders.
1965         * config/i386/i386.h (VALID_AVX256_REG_MODE,
1966         SSE_REG_MODE_P): Accept V2TImode.
1967         * config/i386/i386.c (ix86_expand_reduc): Handle V32QImode,
1968         V16HImode, V8SImode and V4DImode.
1969
1970         * config/i386/i386.c (ix86_build_const_vector): Handle V8SImode
1971         and V4DImode.
1972         (ix86_build_signbit_mask): Likewise.
1973         (ix86_expand_int_vcond): Likewise.  Handle V16HImode and V32QImode.
1974         (bdesc_args): Use CODE_FOR_{s,u}m{ax,in}v{32q,16h,8s}i3
1975         instead of CODE_FOR_avx2_{s,u}m{ax,in}v{32q,16h,8s}i3.
1976         * config/i386/sse.md (avx2_<code><mode>3 umaxmin expand): Rename to...
1977         (<code><mode>3) ... this.
1978         (avx2_<code><mode>3 smaxmin expand): Rename to...
1979         (<code><mode>3) ... this.
1980         (smax<mode>3, smin<mode>3): Macroize using smaxmin code iterator.
1981         (smaxv2di3, sminv2di3): Macroize using smaxmin code iterator and
1982         VI8_AVX2 mode iterator.
1983         (umaxv2di3, uminv2di3): Macroize using umaxmin code iterator and
1984         VI8_AVX2 mode iterator.
1985         (vcond<V_256:mode><VI_256:mode>, vcondu<V_256:mode><VI_256:mode>):
1986         New expanders.
1987
1988 2011-09-17  Richard Sandiford  <rdsandiford@googlemail.com>
1989
1990         * config/ia64/itanium2.md: Use match_test rather than eq/ne symbol_ref
1991         throughout file.
1992
1993 2011-09-16  David S. Miller  <davem@davemloft.net>
1994
1995         * config/sparc/visintrin.h: New file.
1996         * config.gcc: Add it to extra_headers on sparc.
1997
1998 2011-09-16  Jakub Jelinek  <jakub@redhat.com>
1999
2000         * config/i386/i386.c (ix86_expand_reduc_v4sf): Rename to ...
2001         (ix86_expand_reduc): ... this.  Handle also V8SFmode and V4DFmode.
2002         * config/i386/sse.md (reduc_splus_v4sf, reduc_smax_v4sf,
2003         reduc_smin_v4sf): Adjust callers.
2004         (reduc_smax_v8sf, reduc_smin_v8sf, reduc_smax_v4df, reduc_smin_v4df):
2005         New expanders.
2006
2007         * config/i386/sse.md (vec_extract_hi_<mode>,
2008         vec_extract_hi_v16hi, vec_extract_hi_v32qi): Use
2009         vextracti128 instead of vextractf128 for -mavx2 and
2010         integer vectors.  For V4DFmode fix up mode attribute.
2011         (VEC_EXTRACT_MODE): For TARGET_AVX add 32-byte vectors.
2012         (vec_set_lo_<mode>, vec_set_hi_<mode>): For VI8F_256 modes use V4DF
2013         instead of V8SF mode attribute.
2014         (avx2_extracti128): Change into define_expand.
2015         * config/i386/i386.c (ix86_expand_vector_extract): Handle
2016         32-byte vector modes if TARGET_AVX.
2017
2018 2011-09-16  Georg-Johann Lay  <avr@gjlay.de>
2019
2020         * config/avr/avr.md: (umulqihi3, mulqihi3): Write as one pattern.
2021         (umulqi3_highpart, smulqi3_highpart): Ditto.
2022         (*maddqihi4.const, *umaddqihi4.uconst): Ditto.
2023         (*msubqihi4.const, *umsubqihi4.uconst): Ditto.
2024         (*muluqihi3.uconst, *mulsqihi3.sconst): Ditto.
2025
2026 2011-09-16  Georg-Johann Lay  <avr@gjlay.de>
2027
2028         PR target/50358
2029         * config/avr/avr.md (*ashiftqihi2.signx.1): New insn.
2030         (*maddqi4, *maddqi4.const): New insns.
2031         (*msubqi4, *msubqi4.const): New insns.
2032         * config/avr/avr.c (avr_rtx_costs): Record costs of above in cases
2033         PLUS:QI and MINUS:QI.  Increase costs of multiply-add/-sub for
2034         HImode by 1 in the case of multiplying with a CONST_INT.
2035         Record cost of *ashiftqihi2.signx.1 in case ASHIFT:QI.
2036
2037 2011-09-15   Jan Hubicka  <jh@suse.cz>
2038
2039         PR lto/50430
2040         * gimple-fold.c (gimple_get_virt_method_for_binfo): Do not ICE on
2041         error_mark_node in the DECL_INITIAL of vtable.
2042
2043 2011-09-15   Diego Novillo  <dnovillo@google.com>
2044
2045         * Makefile.in (SYSROOT_CFLAGS_FOR_TARGET): Define from
2046         @SYSROOT_CFLAGS_FOR_TARGET@.
2047         * configure.ac (SYSROOT_CFLAGS_FOR_TARGET): Set from build-sysroot.
2048         * configure: Regenerate.
2049         (site.exp): Add definition of TEST_ALWAYS_FLAGS.
2050         Remove setting of GCC_UNDER_TEST.
2051
2052 2011-09-15  Uros Bizjak  <ubizjak@gmail.com>
2053
2054         * config/i386/i386.c (output_fp_compare): Return %v prefixed
2055         instruction mnemonics for TARGET_AVX.
2056
2057         * config/i386/i386.md (*movdf_internal_rex64): use cond RTX in
2058         "type" attribute calculation.
2059         (*movdf_internal): Ditto.
2060         (*movsf_internal): Ditto.
2061
2062 2011-09-15  James Greenhalgh  <james.greenhalgh@arm.com>
2063
2064         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): New builtin macro.
2065
2066 2011-09-15  Jason Merrill  <jason@redhat.com>
2067
2068         PR c++/50361
2069         * expr.c (count_type_elements): Handle NULLPTR_TYPE.
2070
2071 2011-09-15  Jan Hubicka  <jh@suse.cz>
2072
2073         * ipa-inline-analysis.c (add_condition): Add conditions parameter;
2074         simplify obviously true clauses.
2075         (and_predicates, or_predicates): Add conditions parameter.
2076         (inline_duplication_hoook): Update.
2077         (mark_modified): New function.
2078         (unmodified_parm): New function.
2079         (eliminated_by_inlining_prob, (set_cond_stmt_execution_predicate,
2080         set_switch_stmt_execution_predicate, will_be_nonconstant_predicate):
2081         Use unmodified_parm.
2082         (estimate_function_body_sizes): Update.
2083         (remap_predicate): Update.
2084
2085 2011-09-15  Ira Rosen  <ira.rosen@linaro.org>
2086
2087         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Allow
2088         read-after-read dependencies in basic block SLP.
2089
2090 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
2091
2092         * config/sparc/sparc.md: Use match_test rather than eq/ne symbol_ref
2093         throughout file.
2094
2095 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
2096
2097         * config/sh/sh.md: Use match_test rather than eq/ne symbol_ref
2098         throughout file.
2099
2100 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
2101
2102         * config/s390/s390.md: Use match_test rather than eq/ne symbol_ref
2103         throughout file.
2104
2105 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
2106
2107         * config/rs6000/rs6000.md: Use match_test rather than eq/ne symbol_ref
2108         throughout file.
2109         * config/rs6000/constraints.md: Likewise.
2110
2111 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
2112
2113         * config/microblaze/microblaze.md: Use match_test rather than
2114         eq/ne symbol_ref throughout file.
2115
2116 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
2117
2118         * config/bfin/bfin.md: Use match_test rather than eq/ne symbol_ref
2119         throughout file.
2120
2121 2011-09-14  Tom de Vries  <tom@codesourcery.com>
2122
2123         PR middle-end/50251
2124         * explow.c (emit_stack_restore): Set crtl->need_drap if
2125         stack_restore is emitted.
2126
2127 2011-09-14  Julian Brown  <julian@codesourcery.com>
2128
2129         * config/arm/arm.c (arm_override_options): Add unaligned_access
2130         support.
2131         (arm_file_start): Emit attribute for unaligned access as appropriate.
2132         * config/arm/arm.md (UNSPEC_UNALIGNED_LOAD)
2133         (UNSPEC_UNALIGNED_STORE): Add constants for unspecs.
2134         (insv, extzv): Add unaligned-access support.
2135         (extv): Change to expander. Likewise.
2136         (extzv_t1, extv_regsi): Add helpers.
2137         (unaligned_loadsi, unaligned_loadhis, unaligned_loadhiu)
2138         (unaligned_storesi, unaligned_storehi): New.
2139         (*extv_reg): New (previous extv implementation).
2140         * config/arm/arm.opt (munaligned_access): Add option.
2141         * config/arm/constraints.md (Uw): New constraint.
2142         * expmed.c (store_bit_field_1): Adjust bitfield numbering according
2143         to size of access, not size of unit, when BITS_BIG_ENDIAN !=
2144         BYTES_BIG_ENDIAN. Don't use bitfield accesses for
2145         volatile accesses when -fstrict-volatile-bitfields is in effect.
2146         (extract_bit_field_1): Likewise.
2147
2148 2011-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
2149
2150         * simplify-rtx.c (simplify_subreg): Check that the inner mode is
2151         a scalar integer before applying integer-only optimisations to
2152         inner arithmetic.
2153
2154 2011-09-14  Bernd Schmidt  <bernds@codesourcery.com>
2155
2156         * config/mips/mips.c (mips_expand_epilogue): Generate a
2157         simple_return only if the return address is in r31.
2158
2159 2011-09-13  Bernd Schmidt  <bernds@codesourcery.com>
2160
2161         * cfgcleanup.c (try_head_merge_bb): If get_condition returns
2162         NULL for a jump that is a cc0 insn, pick the previous insn for
2163         move_before.
2164
2165 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
2166
2167         * config/v850/v850.md: Use match_test rather than eq/ne symbol_ref
2168         throughout file.
2169
2170 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
2171
2172         * config/pa/pa.md: Use match_test rather than eq/ne symbol_ref
2173         throughout file.
2174
2175 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
2176
2177         * config/mn10300/mn10300.md: Use match_test rather than eq/ne
2178         symbol_ref throughout file.
2179
2180 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
2181
2182         * config/m68k/m68k.md: Use match_test rather than eq/ne symbol_ref
2183         throughout file.
2184
2185 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
2186
2187         * config/h8300/h8300.md: Use match_test rather than eq/ne symbol_ref
2188         throughout file.
2189
2190 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
2191
2192         * config/arm/arm.md: Use match_test rather than eq/ne symbol_ref
2193         throughout file.
2194         * config/arm/neon.md: Likewise.
2195         * config/arm/vfp.md: Likewise.
2196         * config/arm/thumb2.md: Likewise.
2197         * config/arm/cortex-m4.md: Likewise.
2198
2199 2011-09-13  Sevak Sargsyan <sevak.sargsyan@ispras.ru>
2200
2201         * config/arm/neon.md (neon_vabd<mode>_2, neon_vabd<mode>_3): New
2202         define_insn patterns for combine.
2203
2204 2011-09-13  Giuseppe Scrivano  <gscrivano@gnu.org>
2205
2206         * reorg.c: Always define make_return_insns.
2207
2208 2011-09-13  Jan Hubicka  <jh@suse.cz>
2209
2210         PR other/49533
2211         * cgraphunit.c (assemble_thunks_and_aliases): Force alias to be output.
2212
2213 2011-09-13  Jan Hubicka  <jh@suse.cz>
2214
2215         PR other/49533
2216         * ipa-inline-transform.c (can_remove_node_now_p): Fix thunkos.
2217
2218 2011-09-13  Paul Brook  <paul@codesourcery.com>
2219
2220         * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
2221         (ARM_TARGET2_DWARF_FORMAT): Provide default definition.
2222         * config/arm/linux-eabi.h (ARM_TARGET2_DWARF_FORMAT): Define.
2223         * config/arm/symbian.h (ARM_TARGET2_DWARF_FORMAT): Define.
2224         * config/arm/uclinux-eabi.h(ARM_TARGET2_DWARF_FORMAT): Define.
2225         * config/arm/t-bpabi (EXTRA_HEADERS): Add unwind-arm-common.h.
2226         * config/arm/t-symbian (EXTRA_HEADERS): Add unwind-arm-common.h.
2227         * config/c6x/c6x.c (c6x_output_file_unwind): Don't rely on dwarf2 code
2228         enabling unwind tables.
2229         (c6x_debug_unwind_info): New function.
2230         (TARGET_ARM_EABI_UNWINDER): Define.
2231         (TARGET_DEBUG_UNWIND_INFO): Define.
2232         * config/c6x/c6x.h (DWARF_FRAME_RETURN_COLUMN): Define.
2233         (TARGET_EXTRA_CFI_SECTION): Remove.
2234         * config/c6x/t-c6x-elf (EXTRA_HEADERS): Set.
2235         * ginclude/unwind-arm-common.h: New file.
2236
2237 2011-09-13  Georg-Johann Lay  <avr@gjlay.de>
2238
2239         PR target/50358
2240         * config/avr/predicates.md (const_1_to_6_operand): New predicate.
2241         * config/avr/avr.md: (extend_s): New code attribute.
2242         (mul_r_d): New code attribute.
2243         (*maddqihi4, *umaddqihi4): New insns.
2244         (*msubqihi4, *umsubqihi4): New insns.
2245         (*usmaddqihi4, *sumaddqihi4): New insns.
2246         (*usmsubqihi4, *susubdqihi4): New insns.
2247         (*umaddqihi4.uconst, *maddqihi4.sconst): New insn-and-splits.
2248         (*umsubqihi4.uconst, *msubqihi4.sconst): New insn-and-splits.
2249         (*umsubqihi4.uconst.ashift): New insn-and-split.
2250         (*msubqihi4.sconst.ashift): New insn-and-split.
2251         (*sumaddqihi4.uconst): New insn-and-split.
2252         (*sumsubqihi4.uconst): New insn-and-split.
2253         * config/avr/avr.c (avr_rtx_costs): Report costs of above in case
2254         PLUS:HI and MINUS:HI.
2255
2256 2011-09-13  Revital Eres  <revital.eres@linaro.org>
2257
2258         modulo-sched.c (remove_node_from_ps): Return void instead of bool.
2259         (optimize_sc): Adjust call to remove_node_from_ps.
2260         (sms_schedule): Add print info.
2261
2262 2011-09-13  Bernd Schmidt  <bernds@codesourcery.com>
2263
2264         * rtl.c (copy_rtx): Do not handle frame_related, jump or call
2265         flags specially.
2266
2267 2011-09-12  Jakub Jelinek  <jakub@redhat.com>
2268
2269         PR bootstrap/50010
2270         * dwarf2cfi.c (add_cfis_to_fde): Ignore non-active insns in between
2271         NOTE_INSN_CFI notes, with the exception of
2272         NOTE_INSN_SWITCH_TEXT_SECTIONS.
2273
2274 2011-09-12  Bernd Schmidt  <bernds@codesourcery.com>
2275             Richard Sandiford  <rdsandiford@googlemail.com>
2276
2277         * config/mips/mips.c (mips_epilogue): New structure.
2278         (mips16e_save_restore_reg): Queue REG_CFA_RESTORE notes when
2279         restoring registers.
2280         (mips_epilogue_emit_cfa_restores): New function.
2281         (mips_epilogue_set_cfa): Likewise.
2282         (mips_restore_reg): Queue REG_CFA_RESTORE notes.  When restoring
2283         the current CFA register from the stack, redefine the CFA in terms
2284         of the stack pointer.
2285         (mips_expand_epilogue): Set up mips_epilogue.  Attach CFA information
2286         to the epilogue instructions.
2287
2288 2011-09-12  Richard Sandiford  <rdsandiford@googlemail.com>
2289
2290         * config/mips/mips.c (mips16e_save_restore_reg): Add a reg_parm_p
2291         argument.
2292         (mips16e_build_save_restore): Update accordingly.
2293
2294 2011-09-12  Jakub Jelinek  <jakub@redhat.com>
2295
2296         PR rtl-optimization/50212
2297         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
2298         Skip also lps with NULL landing_pad or non-LABEL_P landing_pad.
2299
2300         PR debug/50299
2301         * calls.c (load_register_parameters): Use use_reg_mode instead
2302         of use_reg when adding a single register CALL_INSN_FUNCTION_USAGE
2303         entry.
2304         (expand_call): Set EXPR_LIST mode to TYPE_MODE of the argument
2305         for stack CALL_INSN_FUNCTION_USAGE uses.
2306         * expr.h (use_reg_mode): New prototype.
2307         (use_reg): Changed into inline around use_reg_mode.
2308         * expr.c (use_reg): Renamed to...
2309         (use_reg_mode): ... this.  Added MODE argument, set EXPR_LIST
2310         mode to that mode instead of VOIDmode.
2311         * var-tracking.c (prepare_call_arguments): Don't track parameters
2312         whose EXPR_LIST mode is VOIDmode, BLKmode or X mode isn't convertible
2313         to it using lowpart_subreg.  Convert VALUE and REG/MEM to the
2314         EXPR_LIST mode.
2315
2316 2011-09-12  Georg-Johann Lay  <avr@gjlay.de>
2317
2318         PR target/43746
2319         * config/avr/avr.c (AVR_SECTION_PROGMEM): New Define.
2320         (progmem_section): New Variable.
2321         (avr_asm_init_sections): Initialize it.
2322         (TARGET_ASM_SELECT_SECTION): Define to...
2323         (avr_asm_select_section): ... this new Function.
2324         (avr_replace_prefix): New Function.
2325         (avr_asm_function_rodata_section): Use it.
2326         (avr_insert_attributes): Don't add section attribute for PROGMEM.
2327         (avr_section_type_flags): Use avr_progmem_p instead of section
2328         name to detect if object is in PROGMEM.
2329         (avr_asm_named_section): Set section name prefix for objects in
2330         PROGMEM.
2331
2332 2011-09-12  Jakub Jelinek  <jakub@redhat.com>
2333
2334         PR bootstrap/50352
2335         * config/arm/arm.md (*push_fp_multi): Add % before %( and %) in the
2336         sprintf format string.
2337
2338 2011-09-12  Richard Guenther  <rguenther@suse.de>
2339
2340         PR tree-optimization/50343
2341         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check
2342         that the reduction is over an SSA name before checking its definition.
2343
2344 2011-09-11  Richard Sandiford  <rdsandiford@googlemail.com>
2345
2346         * config/cris/cris.md: Use match_test rather than eq/ne symbol_ref
2347         throughout file.
2348
2349 2011-09-11  Richard Sandiford  <rdsandiford@googlemail.com>
2350
2351         * config/mips/mips.md: Use match_test rather than eq/ne symbol_ref
2352         throughout file.
2353         * config/mips/sb1.md: Likewise.
2354         * config/mips/predicates.md: Replace (match_test "!...")
2355         with (not (match_test "..."))
2356         * config/mips/constraints.md: Likewise.
2357
2358 2011-09-09  Andrew Stubbs  <ams@codesourcery.com>
2359
2360         * config/arm/arm-cores.def (generic-armv7-a): New architecture.
2361         * config/arm/arm-tables.opt: Regenerate.
2362         * config/arm/arm-tune.md: Regenerate.
2363         * config/arm/arm.c (arm_file_start): Output .arch directive when
2364         user passes -mcpu=generic-*.
2365         (arm_issue_rate): Add genericv7a support.
2366         * config/arm/arm.h (EXTRA_SPECS): Add asm_cpu_spec.
2367         (ASM_CPU_SPEC): New define.
2368         * config/arm/elf.h (ASM_SPEC): Use %(asm_cpu_spec).
2369         * config/arm/semi.h (ASM_SPEC): Likewise.
2370         * doc/invoke.texi (ARM Options): Document -mcpu=generic-*
2371         and -mtune=generic-*.
2372
2373 2011-09-09  Richard Guenther  <rguenther@suse.de>
2374
2375         PR tree-optimization/50328
2376         * tree-vect-loop.c (vect_is_simple_reduction_1): Allow one
2377         constant or default-def operand.
2378
2379 2011-09-09  Richard Guenther  <rguenther@suse.de>
2380
2381         * tree-ssa-pre.c (create_expression_by_pieces): Fold the
2382         last statement.
2383
2384 2011-09-09  Richard Guenther  <rguenther@suse.de>
2385
2386         * gimple.h (fold_stmt_inplace): Adjust to take a gimple_stmt_iterator
2387         instead of a statement.
2388         * gimple-fold.c (fold_stmt_inplace): Likewise.
2389         * sese.c (graphite_copy_stmts_from_block): Adjust.
2390         * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
2391         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Use
2392         fold_stmt.
2393         (forward_propagate_addr_into_variable_array_index): Likewise.
2394         (forward_propagate_addr_expr_1): adjust.
2395         (associate_plusminus): Likewise.
2396         (ssa_forward_propagate_and_combine): Likewise.
2397         * tree-ssa-mathopts.c (replace_reciprocal): Adjust.
2398         (execute_cse_reciprocals): Likewise.
2399         * tree-ssa.c (insert_debug_temp_for_var_def): Adjust.
2400
2401 2011-09-09  Nick Clifton  <nickc@redhat.com>
2402
2403         * config/mn10300/mn10300.c (mn10300_split_and_operand_count):
2404         Return a positive value to indicate that the bits at the
2405         bottom of the register should be cleared.
2406
2407 2011-09-09  Richard Guenther  <rguenther@suse.de>
2408
2409         * tree-ssa-operands.c (swap_tree_operands): Always adjust
2410         existing operand positions.
2411
2412 2011-09-09  Richard Guenther  <rguenther@suse.de>
2413
2414         PR middle-end/50333
2415         * tree-data-ref.c (split_constant_offset): Do not try to handle
2416         ternary ops.
2417
2418 2011-09-08  Andrew Stubbs  <ams@codesourcery.com>
2419
2420         PR tree-optimization/50318
2421         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Correct
2422         typo in use of mult_rhs1 and mult_rhs2.
2423
2424 2011-09-08  Uros Bizjak  <ubizjak@gmail.com>
2425
2426         * config/i386/i386.c (standard_sse_constant_p): Handle AVX2 modes.
2427         (standard_sse_constant_opcode) <case 2>: Change vpcmpeqd template.
2428
2429 2011-09-08  Bernd Schmidt  <bernds@codesourcery.com>
2430
2431         * config/arm/arm.md (push_multi): Emit predicates.
2432         (push_fp_multi): Likewise.
2433         * config/arm/arm.c (vfp_output_fstmd): Likewise.
2434
2435 2011-09-08  Dodji Seketeli  <dodji@redhat.com>
2436
2437         PR c++/33255 - Support -Wunused-local-typedefs warning
2438         * c-decl.c (lookup_name): Use the new maybe_record_typedef_use.
2439         (pushdecl): Use the new record_locally_defined_typedef.
2440         (store_parm_decls): Allocate cfun->language.
2441         (finish_function): Use the new maybe_warn_unused_local_typedefs,
2442         and free cfun->language.
2443         (c_push_function_context): Allocate cfun->language here only if needed.
2444         (c_pop_function_context): Likewise, mark cfun->language
2445         for collection only when it should be done.
2446         * c-common.c (handle_used_attribute): Don't ignore TYPE_DECL nodes.
2447         * c-typeck.c (c_expr_sizeof_type, c_cast_expr): Use the new
2448         maybe_record_local_typedef_use.
2449         * doc/invoke.texi: Update documentation for
2450         -Wunused-local-typedefs.
2451
2452 2011-09-08  Enkovich Ilya  <ilya.enkovich@intel.com>
2453
2454         * config/i386/i386-protos.h (ix86_lea_outperforms): New.
2455         (ix86_avoid_lea_for_add): Likewise.
2456         (ix86_avoid_lea_for_addr): Likewise.
2457         (ix86_split_lea_for_addr): Likewise.
2458
2459         * config/i386/i386.c (LEA_MAX_STALL): New.
2460         (increase_distance): Likewise.
2461         (insn_defines_reg): Likewise.
2462         (insn_uses_reg_mem): Likewise.
2463         (distance_non_agu_define_in_bb): Likewise.
2464         (distance_agu_use_in_bb): Likewise.
2465         (ix86_lea_outperforms): Likewise.
2466         (ix86_ok_to_clobber_flags): Likewise.
2467         (ix86_avoid_lea_for_add): Likewise.
2468         (ix86_avoid_lea_for_addr): Likewise.
2469         (ix86_split_lea_for_addr): Likewise.
2470         (distance_non_agu_define): Search in pred BBs added.
2471         (distance_agu_use): Search in succ BBs added.
2472         (IX86_LEA_PRIORITY): Value changed from 2 to 0.
2473         (LEA_SEARCH_THRESHOLD): Now depends on LEA_MAX_STALL.
2474         (ix86_lea_for_add_ok): Use ix86_lea_outperforms to make decision.
2475
2476         * config/i386/i386.md: Split added to transform non destructive
2477         add into move and add.
2478         (lea_1): transformed into insn_and_split to avoid AGU stalls.
2479         (lea<mode>_2): Likewise.
2480
2481 2011-09-08  Martin Jambor  <mjambor@suse.cz>
2482
2483         PR tree-optimization/50287
2484         * ipa-split.c (split_function): Do not create SSA names for
2485         non-gimple-registers.
2486
2487 2011-09-08  Richard Guenther  <rguenther@suse.de>
2488
2489         PR tree-optimization/19831
2490         * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Also
2491         skip builtins with vdefs that do not really store something.
2492         (propagate_necessity): For calls to free that we can associate
2493         with an allocation function do not mark the freed pointer
2494         definition necessary.
2495         (eliminate_unnecessary_stmts): Remove a call to free if
2496         the associated call to an allocation function is not necessary.
2497
2498 2011-09-08  Richard Guenther  <rguenther@suse.de>
2499
2500         PR tree-optimization/19831
2501         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Do not mark
2502         allocation functions as necessary.
2503
2504 2011-09-08  Iain Sandoe  <iains@gcc.gnu.org>
2505
2506         * config/darwin-driver.c (darwin_find_version_from_kernel): New routine
2507         cut from ...
2508         (darwin_default_min_version): Amended to provide defaults
2509         for the cross directory case.
2510         (darwin_driver_init): call darwin_default_min_version unconditionally.
2511         * config/darwin.h (DEF_MIN_OSX_VERSION): New.
2512         * config/darwin9.h: Likewise.
2513         * config/darwin10.h: Likewise.
2514         * config/rs6000/darwin7.h: Likewise.
2515
2516 2011-09-08  Jakub Jelinek  <jakub@redhat.com>
2517
2518         PR target/50310
2519         * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): Return
2520         code early if TARGET_AVX.
2521         (ix86_expand_fp_vcond): Handle LTGT and UNEQ.
2522
2523 2011-09-07  Jakub Jelinek  <jakub@redhat.com>
2524
2525         * config/i386/sse.md (sseinsnmode): Remove 32-byte integer vector
2526         duplicates.
2527
2528         PR target/50310
2529         * config/i386/sse.md (*andnot<mode>3, *<code><mode>3): Fix up
2530         "mode" attribute computation.
2531
2532 2011-09-07  Bernd Schmidt  <bernds@codesourcery.com>
2533
2534         * regrename.c (struct du_head): Make nregs signed.
2535         (closed_chains): Remove.
2536         (create_new_chain): Return the new chain.
2537         (chain_from_id): New static function.
2538         (dump_def_use_chain): Change argument to be an int, indicating
2539         the first ID to print.  All callers changed.
2540         (merge_overlapping_regs): Use chain_from_id.  Assert that
2541         chains don't conflict with themselves.
2542         (rename_chains): Take no argument.  Iterate over id_to_chain
2543         rather to find chains to rename.  Clear tick before the main loop.
2544         (struct incoming_reg_info): New struct.
2545         (struct bb_rename_info): New struct.
2546         (init_rename_info, set_incoming_from_chain, merge_chains): New
2547         static functions.
2548         (regrename_analyze): New static function, broken out of
2549         regrename_optimize.  Record and make use of open chain information
2550         at basic block boundaries, and merge chains where possible.
2551         (scan_rtx_reg): Make this_nregs signed.  Don't update
2552         closed_chains.
2553         (build_def_use): Return a bool to indicate success.  All callers
2554         changed.  Don't initialize global data here.
2555         (regrename_optimize): Move most code out of here into
2556         regrename_analyze.
2557         * regs.h (add_range_to_hard_reg_set, remove_range_from_hard_reg_set,
2558         range_overlaps_hard_reg_set_p, range_in_hard_reg_set_p): New
2559         static inline functions.
2560         * vec.h (FOR_EACH_VEC_ELT_FROM): New macro.
2561
2562         * bb-reorder.c (insert_section_boundary_note): Don't check
2563         optimize_function_for_speed_p.
2564         (gate_handle_partition_blocks): Do it here instead.
2565         (gate_handle_reorder_blocks): Move preliminary checks here ...
2566         (rest_of_handle_reorder_blocks): ... from here.
2567
2568 2011-09-07  Martin Jambor  <mjambor@suse.cz>
2569
2570         PR middle-end/50301
2571         * ipa-cp.c (find_more_values_for_callers_subset): Check jump
2572         function index bounds.
2573         (perhaps_add_new_callers): Likewise.
2574
2575 2011-09-07  Martin Jambor  <mjambor@suse.cz>
2576
2577         PR tree-optimization/49911
2578         * tree-sra.c (analyze_access_subtree): Change type of to-be-replaced
2579         enumerations to the corresponding plain integer type.
2580
2581 2011-09-07  Richard Guenther  <rguenther@suse.de>
2582
2583         PR tree-optimization/50319
2584         * tree-if-conv.c (set_bb_predicate): Assert we only set
2585         canonical predicates.
2586         (add_to_predicate_list): Simplify.  Allow TRUTH_NOT_EXPR
2587         around canonical predicates.
2588         (predicate_bbs): Do not re-gimplify already canonical
2589         predicates.  Properly unshare them though.
2590         (find_phi_replacement_condition): Simplify.
2591
2592 2011-09-07  Richard Sandiford  <richard.sandiford@linaro.org>
2593
2594         PR target/49030
2595         * config/arm/arm-protos.h (maybe_get_arm_condition_code): Declare.
2596         * config/arm/arm.c (maybe_get_arm_condition_code): New function,
2597         reusing the old code from get_arm_condition_code.  Return ARM_NV
2598         for invalid comparison codes.
2599         (get_arm_condition_code): Redefine in terms of
2600         maybe_get_arm_condition_code.
2601         * config/arm/predicates.md (arm_comparison_operator): Use
2602         maybe_get_arm_condition_code.
2603
2604 2011-09-07  Richard Guenther  <rguenther@suse.de>
2605
2606         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
2607         Canonicalize negated predicates by swapping edges.
2608         (forward_propagate_into_cond): Likewise.
2609
2610 2011-09-07  Richard Guenther  <rguenther@suse.de>
2611
2612         PR tree-optimization/50213
2613         * tree-flow.h (simple_iv_increment_p): Declare.
2614         * tree-ssa-dom.c (simple_iv_increment_p): Export.  Also handle
2615         POINTER_PLUS_EXPR.
2616         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Do
2617         not propagate simple IV counter increments.
2618
2619 2011-09-07  Eric Botcazou  <ebotcazou@adacore.com>
2620             Iain Sandoe  <iains@gcc.gnu.org>
2621
2622         * config/rs6000/rs6000.c (compute_save_world_info): Test
2623         cfun->has_nonlocal_label to determine if the out-of-line save
2624         world call may be used.
2625
2626 2011-09-07  Nick Clifton  <nickc@redhat.com>
2627
2628         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Set the jump
2629         label on the parallel part of the insn.
2630
2631 2011-09-07  Jakub Jelinek  <jakub@redhat.com>
2632
2633         PR debug/50191
2634         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Try
2635         avoid_constant_pool_reference first instead of last.
2636
2637 2011-09-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
2638
2639         * doc/configfiles.texi (Configuration Files): Update documentation
2640         about tm_p.h and remove FIXME comment.
2641
2642 2011-09-06  Uros Bizjak  <ubizjak@gmail.com>
2643
2644         * config/i386/i386.c (ix86_function_value_regno_p): Use AX_REG.
2645         (function_value_32): Do not check TARGET_MMX, TARGET_SSE or TARGET_AVX.
2646
2647 2011-09-06  Iain Sandoe  <iains@gcc.gnu.org>
2648
2649         * config/darwin10.h Remove duplicate LIB_SPEC.
2650
2651 2011-09-06  Enkovich Ilya  <ilya.enkovich@intel.com>
2652
2653         PR middle-end/44382
2654         * target.def (reassociation_width): New hook.
2655
2656         * doc/tm.texi.in (reassociation_width): Likewise.
2657
2658         * doc/tm.texi (reassociation_width): Likewise.
2659
2660         * doc/invoke.texi (tree-reassoc-width): New param documented.
2661
2662         * hooks.h (hook_int_uint_mode_1): New default hook.
2663
2664         * hooks.c (hook_int_uint_mode_1): Likewise.
2665
2666         * config/i386/i386.h (ix86_tune_indices): Add
2667         X86_TUNE_REASSOC_INT_TO_PARALLEL and X86_TUNE_REASSOC_FP_TO_PARALLEL.
2668
2669         (TARGET_REASSOC_INT_TO_PARALLEL): New.
2670         (TARGET_REASSOC_FP_TO_PARALLEL): Likewise.
2671
2672         * config/i386/i386.c (initial_ix86_tune_features): Add
2673         X86_TUNE_REASSOC_INT_TO_PARALLEL and X86_TUNE_REASSOC_FP_TO_PARALLEL.
2674
2675         (ix86_reassociation_width): New function.
2676
2677         * params.def (PARAM_TREE_REASSOC_WIDTH): New param added.
2678
2679         * tree-ssa-reassoc.c (get_required_cycles): New function.
2680         (get_reassociation_width): Likewise.
2681         (swap_ops_for_binary_stmt): Likewise.
2682         (rewrite_expr_tree_parallel): Likewise.
2683
2684         (rewrite_expr_tree): Refactored.  Part of code moved into
2685         swap_ops_for_binary_stmt.
2686
2687         (reassociate_bb): Now checks reassociation width to be used and
2688         call rewrite_expr_tree_parallel instead of rewrite_expr_tree if needed.
2689
2690 2011-09-06  Richard Guenther  <rguenther@suse.de>
2691
2692         PR tree-optimization/47025
2693         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): BUILT_IN_VA_END
2694         uses nothing.
2695         (call_may_clobber_ref_p_1): BUILT_IN_VA_END is a barrier like
2696         BUILT_IN_FREE.
2697         (stmt_kills_ref_p_1): BUILT_IN_VA_END kills what its argument
2698         definitely points to.
2699         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
2700         BUILT_IN_VA_START doesn't let its va_list argument escape.
2701         * tree-ssa-dce.c (propagate_necessity): BUILT_IN_VA_END does
2702         not make any previous stores necessary.
2703
2704 2011-09-06  Martin Jambor  <mjambor@suse.cz>
2705
2706         * ipa-inline.h (struct inline_summary): Move versionable flag...
2707         * cgraph.h (struct cgraph_local_info): ...here
2708         * ipa-cp.c (determine_versionability): Use the new versionable flag.
2709         (determine_versionability): Likewise.
2710         (ipcp_versionable_function_p): Likewise.
2711         (ipcp_generate_summary): Likewise.
2712         * ipa-inline-analysis.c (dump_inline_summary): Do not dump the
2713         versionable flag.
2714         (compute_inline_parameters): Do not clear the versionable flag.
2715         (inline_read_section): Do not stream the versionable flag.
2716         (inline_write_summary): Likewise.
2717         * lto-cgraph.c (lto_output_node): Stream the versionable flag.
2718         (input_overwrite_node): Likewise.
2719
2720 2011-09-06  Richard Guenther  <rguenther@suse.de>
2721
2722         PR tree-optimization/48149
2723         * tree-ssa-sccvn.c (vn_get_expr_for): Simplify.  Fix tuplification bug.
2724         (vn_valueize): Move earlier.
2725         (valueize_expr): Use vn_valueize.
2726         (simplify_binary_expression): Simplify, also combine COMPLEX_EXPR
2727         operands.
2728         (simplify_unary_expression): Simplify.
2729
2730 2011-09-06  Richard Guenther  <rguenther@suse.de>
2731
2732         PR tree-optimization/48317
2733         * tree-ssa-sccvn.h (struct vn_nary_op_s): Make op a true
2734         trailing array.
2735         (sizeof_vn_nary_op): New inline function.
2736         (vn_nary_op_lookup_pieces): Adjust.
2737         (vn_nary_op_insert_pieces): Likewise.
2738         * tree-ssa-sccvn.c (vn_nary_op_eq): Also compare the length.
2739         (init_vn_nary_op_from_pieces): Adjust signature.  Deal with
2740         any number of operands.
2741         (vn_nary_length_from_stmt): New function.
2742         (init_vn_nary_op_from_stmt): Adjust for CONSTRUCTOR handling.
2743         (vn_nary_op_lookup_pieces): Adjust signature and allocate properly
2744         sized temporary.
2745         (vn_nary_op_lookup): Likewise.
2746         (vn_nary_op_lookup_stmt): Likewise.
2747         (vn_nary_op_insert_into): Likewise.
2748         (vn_nary_op_insert_stmt): Likewise.
2749         (visit_use): Handle CONSTRUCTOR as nary.
2750         * tree-ssa-pre.c (phi_translate_1): Adjust.
2751         (create_expression_by_pieces): Likewise.
2752         (compute_avail): Likewise.
2753
2754 2011-09-06  Ira Rosen  <ira.rosen@linaro.org>
2755
2756          * config/arm/arm.c (arm_preferred_simd_mode): Check
2757         TARGET_NEON_VECTORIZE_DOUBLE instead of
2758         TARGET_NEON_VECTORIZE_QUAD.
2759         (arm_autovectorize_vector_sizes): Likewise.
2760         * config/arm/arm.opt (mvectorize-with-neon-quad): Make inverse
2761         mask of mvectorize-with-neon-double.  Add RejectNegative.
2762         (mvectorize-with-neon-double): New.
2763
2764 2011-09-06  Richard Guenther  <rguenther@suse.de>
2765
2766         * tree-ssa-sccvn.c (visit_use): CSE stmt pieces and simplify matching.
2767
2768 2011-09-06  Tom de Vries  <tom@codesourcery.com>
2769
2770         * recog.c (asm_labels_ok): New function.
2771         (check_asm_operands): Use asm_labels_ok.
2772
2773 2011-09-05  Richard Sandiford  <rdsandiford@googlemail.com>
2774
2775         PR target/49606
2776         * config/mips/mips.h (ABI_HAS_64BIT_SYMBOLS): Check Pmode.
2777         (PMODE_INSN): New macro.
2778         * config/mips/mips.c (gen_load_const_gp): Use PMODE_INSN.
2779         (mips_got_load, mips_expand_synci_loop): Likewise.
2780         (mips_save_gp_to_cprestore_slot): Handle SImode and DImode
2781         cprestore patterns.
2782         (mips_emit_loadgp): Use PMODE_INSN.  Handle SImode and DImode
2783         copygp_mips16 patterns.
2784         (mips_expand_prologue): Handle SImode and DImode potential_cprestore
2785         and use_cprestore patterns.
2786         (mips_override_options): Check for incompatible -mabi and -mlong
2787         combinations.
2788         * config/mips/mips.md (unspec_got<mode>): Rename to...
2789         (unspec_got_<mode>): ...this.
2790         (copygp_mips16): Use the Pmode iterator.
2791         (potential_cprestore, cprestore, use_cprestore): Likewise.
2792         (clear_cache, indirect_jump): Use PMODE_INSN.
2793         (indirect_jump<mode>): Rename to...
2794         (indirect_jump_<mode>): ...this.
2795         (tablejump): Use PMODE_INSN.
2796         (tablejump<mode>): Rename to...
2797         (tablejump_<mode>): ...this.
2798         (exception_receiver): Handle restore_gp_si and restore_gp_di.
2799         (restore_gp): Use the Pmode iterator.
2800         * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Use
2801         PMODE_INSN.
2802
2803 2011-09-05  Richard Sandiford  <rdsandiford@googlemail.com>
2804
2805         * config/mips/mips.c (mips_gimplify_va_arg_expr): Unshare off.
2806         Fix the type of the BIT_AND_EXPR.
2807
2808 2011-09-05  David S. Miller  <davem@davemloft.net>
2809
2810         * config.host: Add driver-sparc.o and sparc/x-sparc on
2811         native sparc*-*-linux* builds.
2812         * config/sparc/driver-sparc.c: Correct Linux strings.
2813         * config/sparc/linux.h: Add DRIVER_SELF_SPECS.
2814         * config/sparc/linux64.h: Likewise.
2815         * doc/invoke.texi: Document that Linux also supports
2816         -mcpu=native and -mtune=native on sparc.
2817
2818         * config/sparc/sparc-opts.h (PROCESSOR_NIAGARA3,
2819         PROCESSOR_NIAGARA4): New.
2820         * config/sparc/sparc.opt: Handle new processor types.
2821         * config/sparc/sparc.md: Add to "cpu" attribute.
2822         * config/sparc/sparc.h (TARGET_CPU_niagara3,
2823         TARGET_CPU_niagara4): New, treat as niagara2.
2824         * config/sparc/linux64.h: Handle niagara3 and niagara4 like niagara2.
2825         * config/sparc/sol2.h: Likewise.
2826         * config/sparc/niagara2.md: Schedule niagara3 like niagara2.
2827         * config/sparc/sparc.c (sparc_option_override): Add
2828         niagara3 and niagara4 handling.
2829         (sparc32_initialize_trampoline): Likewise.
2830         (sparc64_initialize_trampoline): Likewise.
2831         (sparc_use_sched_lookahead): Likewise.
2832         (sparc_issue_rate): Likewise.
2833         (sparc_register_move_cost): Likewise.
2834         * config/sparc/driver-sparc.c (cpu_names): Use niagara3
2835         and niagara4 as appropriate.
2836         * doc/invoke.texi: Document new processor types.
2837         * config.gcc: Recognize niagara3 and niagara4 in --with-cpu
2838         and --with-tune options.
2839
2840         * config/sparc/sol2-64.h: Move ...
2841         * config/sparc/default-64.h: ... to here.  Update comment.
2842         * config.gcc: Update Solaris sparc to use default-64.h, also
2843         prefix this header into the list on sparc64-*-linux.
2844         * config/sparc/linux64.h (TARGET_DEFAULT): Only override if
2845         TARGET_64BIT_DEFAULT is defined.  Remove commented out reference
2846         to MASK_HARD_QUAD.
2847
2848 2011-09-05  Georg-Johann Lay  <avr@gjlay.de>
2849
2850         PR target/50289
2851         * config/avr/avr.c (sequent_regs_live): Don't recognize sequences
2852         that contain global register variable.
2853
2854 2011-09-05  Richard Guenther  <rguenther@suse.de>
2855
2856         * tree-cfg.c (replace_uses_by): Use fold_stmt, not fold_stmt_inplace.
2857
2858 2011-09-05  Richard Guenther  <rguenther@suse.de>
2859
2860         * stor-layout.c (layout_type): Use size_binop for array size
2861         calculations.
2862
2863 2011-09-05  Georg-Johann Lay  <avr@gjlay.de>
2864
2865         * config/avr/avr.h (progmem_section): Remove Declaration.
2866         * config/avr/avr.c (progmem_section): Make static and rename to
2867         progmem_swtable_section.
2868         (avr_output_addr_vec_elt): No need to switch sections.
2869         (avr_asm_init_sections): Use output_section_asm_op as section
2870         callback for progmem_swtable_section.
2871         (avr_output_progmem_section_asm_op): Remove Function.
2872         (TARGET_ASM_FUNCTION_RODATA_SECTION): New Define.
2873         (avr_asm_function_rodata_section): New static Function.
2874         * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Output
2875         alignment 2**1 for jump tables.
2876
2877 2011-09-04  Jan Hubicka  <jh@suse.cz>
2878
2879         * ipa-inline-analysis.c (set_cond_stmt_execution_predicate): Check that
2880         parameter is SSA name.
2881
2882 2011-09-04  Richard Guenther  <rguenther@suse.de>
2883
2884         Revert
2885         2011-08-31  Richard Guenther  <rguenther@suse.de>
2886
2887         * fold-const.c (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE
2888         special-casing.
2889
2890 2011-09-04  Iain Sandoe  <iains@gcc.gnu.org>
2891
2892         PR debug/49901
2893         * config/darwin.h (DEBUG_MACRO_SECTION): New macro.
2894
2895 2011-09-04  Jakub Jelinek  <jakub@redhat.com>
2896             Ira Rosen  <ira.rosen@linaro.org>
2897
2898         PR tree-optimization/50208
2899         * tree-vect-patterns.c (vect_handle_widen_mult_by_const): Add an
2900         argument.  Check that def_stmt is inside the loop.
2901         (vect_recog_widen_mult_pattern): Update calls to
2902         vect_handle_widen_mult_by_cons.
2903         (vect_operation_fits_smaller_type): Check that def_stmt is
2904         inside the loop.
2905
2906 2011-09-04  Ira Rosen  <ira.rosen@linaro.org>
2907
2908         * tree-vectorizer.c (vect_print_dump_info): Print line
2909         number when dumping to a file.
2910         (vectorize_loops): Add new messages to dump file.
2911
2912 2011-09-03  Martin Jambor  <mjambor@suse.cz>
2913
2914         * ipa-prop.h (ipa_jump_func_t): New typedef.
2915         (struct ipa_edge_args): Removed field argument_count, field
2916         jump_functions turned into a vector.
2917         (ipa_set_cs_argument_count): Removed.
2918         (ipa_get_cs_argument_count): Updated to work on vectors.
2919         (ipa_get_ith_jump_func): Likewise.
2920         * ipa-prop.c (ipa_count_arguments): Removed.
2921         (compute_scalar_jump_functions): Use ipa_get_ith_jump_func to access
2922         jump functions.  Update caller.
2923         (compute_pass_through_member_ptrs): Likewise.
2924         (compute_cst_member_ptr_arguments): Likewise.
2925         (ipa_compute_jump_functions_for_edge): Get number of arguments from
2926         the statement, allocate vector.
2927         (ipa_compute_jump_functions): Do not call ipa_count_arguments.
2928         (duplicate_ipa_jump_func_array): Removed.
2929         (ipa_edge_duplication_hook): Use VEC_copy, do not copy argument count.
2930         (ipa_read_node_info): Allocate vector.
2931
2932 2011-09-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2933
2934         PR middle-end/50232
2935         * config/pa/pa.md (return): Define "return" insn pattern.
2936         (epilogue): Use it when no epilogue is needed.
2937         * config/pa/pa.c (pa_can_use_return_insn): New function.
2938         * config/pa/pa-protos.h (pa_can_use_return_insn): Declare.
2939
2940 2011-09-03  Eric Botcazou  <ebotcazou@adacore.com>
2941
2942         * cfgexpand.c (add_stack_var): Assert that the alignment is not zero.
2943         * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Revert latest change.
2944         Force at least BITS_PER_UNIT alignment on the new variable.
2945
2946 2011-09-02  Gary Funck <gary@intrepid.com>
2947
2948         * opts.c (print_specific_help): Fix off-by-one compare in
2949         assertion check.
2950         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
2951         CL_TARGET, CL_COMMON, CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED):
2952         Increase by +5 to allow for more languages.
2953         * optc-gen.awk: Generate #if that ensures that the number of
2954         languages is within the implementation-defined limit.
2955
2956 2011-09-02  Michael Matz  <matz@suse.de>
2957
2958         PR middle-end/50260
2959         * ipa-split.c (split_function): Call add_referenced_var.
2960
2961         * tree-ssa-phiopt.c (cond_store_replacement): Don't call get_var_ann.
2962         (cond_if_else_store_replacement_1): Ditto.
2963         * tree-ssa-pre.c (get_representative_for): Ditto.
2964         (create_expression_by_pieces): Ditto.
2965         (insert_into_preds_of_block): Ditto.
2966         * tree-sra.c (create_access_replacement): Ditto.
2967         (get_replaced_param_substitute): Ditto.
2968
2969 2011-09-02  Bernd Schmidt  <bernds@codesourcery.com>
2970
2971         * config/c6x/c6x.md (collapse-ndfa, no-comb-vect): New
2972         automata_options.
2973         (d1, l1, s1, m1, d2, l2, s2, m2): Changed to define_query_cpu_unit.
2974         (l1w, s1w, l2w, s2w): Define in the main automaton.
2975         (fps1, fpl1, adddps1, adddpl1, fps2, fpl2, adddps2, adddpl2): New
2976         units.
2977         * config/c6x/c6x.c (c6x_sched_insn_info): Add unit_mask member.
2978         (c6x_unit_names): Add the new units.
2979         (c6x_unit_codes): New static array.
2980         (UNIT_QID_D1, UNIT_QID_L1, UNIT_QID_S1, UNIT_QID_M1, UNIT_QID_FPS1,
2981         UNIT_QID_FPL1, UNIT_QID_ADDDPS1, UNIT_QID_ADDDPL1,
2982         UNIT_QID_SIDE_OFFSET): New macros.
2983         (RESERVATION_S2): Adjust value.
2984         (c6x_option_override): Compute c6x_unit_codes.
2985         (assign_reservations): Take the unit_mask of the last instruction
2986         into account.  Detect floating point reservations by looking for
2987         the new units.  Don't assign reservations if the field is already
2988         nonzero.
2989         (struct c6x_sched_context): Add member prev_cycle_state_ctx.
2990         (init_sched_state): Initialize it.
2991         (c6x_clear_sched_context): Free it.
2992         (insn_set_clock): Clear reservation.
2993         (prev_cycle_state): New static variable.
2994         (c6x_init_sched_context): Save it.
2995         (c6x_sched_init): Allocate space for it and clear it.
2996         (c6x_sched_dfa_pre_cycle_insn): New static function.
2997         (c6x_dfa_new_cycle): Save state at the start of a new cycle.
2998         (c6x_variable_issue): Only record units in the unit_mask that
2999         were not set at the start of the cycle.
3000         (c6x_variable_issue): Compute and store the unit_mask from the
3001         current state.
3002         (reorg_split_calls): Ensure the new information remains correct.
3003         (TARGET_SCHED_DFA_NEW_CYCLE, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
3004         TARGET_SCHED_DFA_PRE_CYCLE_INSN): Define.
3005         * config/c6x/c6x.h (CPU_UNITS_QUERY): Define.
3006         * config/c6x/c6x-sched.md.in (fp4_ls_N__CROSS_, adddp_ls_N__CROSS_):
3007         Add special reservations.
3008         * config/c6x/c6x-sched.md: Regenerate.
3009
3010 2011-09-02  Martin Jambor  <mjambor@suse.cz>
3011
3012         * ipa-prop.h (ipa_node_params): Removed fields
3013         called_with_var_arguments and node_versionable.
3014         (ipa_set_called_with_variable_arg): Removed.
3015         (ipa_is_called_with_var_arguments): Likewise.
3016         * ipa-cp.c (ipa_get_lattice): Fixed index check in an assert.
3017         (determine_versionability): Do not check for type attributes and va
3018         builtins.  Record versionability into inline summary.
3019         (initialize_node_lattices): Do not check
3020         ipa_is_called_with_var_arguments.
3021         (propagate_constants_accross_call): Likewise, ignore arguments we do
3022         not have PARM_DECLs for, set variable flag for parameters that were
3023         not passed a value.
3024         (create_specialized_node): Dump info that we cannot change signature.
3025         * ipa-prop.c (ipa_compute_jump_functions): Do not care about variable
3026         number of arguments.
3027         (ipa_make_edge_direct_to_target): Likewise.
3028         (ipa_update_after_lto_read): Likewise.
3029         (ipa_node_duplication_hook): Do not copy called_with_var_arguments flag.
3030         * tree-inline.c (copy_arguments_for_versioning): Copy PARM_DECLs if
3031         they were remapped.
3032
3033 2011-09-02  Richard Guenther  <rguenther@suse.de>
3034
3035         PR tree-optimization/27460
3036         PR middle-end/29269
3037         * doc/md.texi (vcond): Document.
3038         * genopinit.c (optabs): Turn vcond{,u}_optab into a conversion
3039         optab with two modes.
3040         * optabs.h (enum convert_optab_index): Add COI_vcond, COI_vcondu.
3041         (enum direct_optab_index): Remove DOI_vcond, DOI_vcondu.
3042         (vcond_optab): Adjust.
3043         (vcondu_optab): Likewise.
3044         (expand_vec_cond_expr_p): Adjust prototype.
3045         * optabs.c (get_vcond_icode): Adjust.
3046         (expand_vec_cond_expr_p): Likewise.
3047         (expand_vec_cond_expr): Likewise.
3048         * tree-vect-stmts.c (vect_is_simple_cond): Return the comparison
3049         vector type.
3050         (vectorizable_condition): Allow differing types for comparison
3051         and result.
3052         * config/i386/i386.c (ix86_expand_sse_cmp): Use proper mode
3053         for the comparison.
3054         * config/i386/sse.md (vcond<mode>): Split to
3055         vcond<V_256:mode><VF_256:mode>, vcond<V_128:mode><VF_128:mode>,
3056         vcond<V_128:mode><VI124_128:mode> and
3057         vcondu<V_128:mode><VI124_128:mode>.
3058         (vcondv2di): Change to vcond<VI8F_128:mode>v2di.
3059         (vconduv2di): Likewise.
3060         * config/arm/neon.md (vcond<mode>): Change to vcond*<mode><mode>.
3061         (vcondu<mode>): Likewise.
3062         * config/ia64/vect.md (vcond<mode>): Likewise.
3063         (vcondu<mode>): Likewise.
3064         (vcondv2sf): Likewise.
3065         * config/mips/mips-ps-3d.md (vcondv2sf): Likewise.
3066         * config/rs6000/paired.md (vcondv2sf): Likewise.
3067         * config/rs6000/vector.md (vcond<mode>): Likewise.
3068         (vcondu<mode>): Likewise.
3069         * config/spu/spu.md (vcond<mode>): Likewise.
3070         (vcondu<mode>): Likewise.
3071
3072 2011-09-02  Richard Guenther  <rguenther@suse.de>
3073
3074         * pretty-print.h (pp_unsigned_wide_integer): New.
3075         * tree-pretty-print.c (dump_generic_node): Print unsigned
3076         host-wide-int fitting INTEGER_CSTs with pp_unsigned_wide_integer.
3077
3078 2011-09-02  Richard Sandiford  <richard.sandiford@linaro.org>
3079
3080         PR target/49987
3081         * config/rs6000/rs6000.c (paired_expand_vector_init): Check for
3082         valid CONST_VECTOR operands.
3083         (rs6000_expand_vector_init): Likewise.
3084
3085 2011-09-02  Martin Jambor  <mjambor@suse.cz>
3086
3087         * cgraph.h (cgraph_indirect_call_info): Removed field thunk_delta.
3088         * gimple-fold.c (gimple_get_virt_method_for_binfo): Rewritten to use
3089         BINFO_VTABLE.  Parameter delta removed, all callers updated.
3090         * tree.c (free_lang_data_in_binfo): Clear BINFO_VIRTUALs instead
3091         BINFO_VTABLE.
3092         * cgraph.c (cgraph_make_edge_direct): Removed parameter delta, updated
3093         all calls.
3094         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Removed
3095         handling of thunk_delta.
3096         * ipa-cp.c (get_indirect_edge_target): Removed parameter delta.
3097         (devirtualization_time_bonus): Do not handle thunk deltas.
3098         (ipcp_discover_new_direct_edges): Likewise.
3099         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
3100         (try_make_edge_direct_simple_call): Likewise.
3101         (try_make_edge_direct_virtual_call): Likewise.
3102         * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise.  Mark
3103         parameter set as unused.
3104         (output_edge_opt_summary): Likewise.  Mark both parameters as unused.
3105         * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise.  Mark
3106         parameter set as unused.
3107         (output_edge_opt_summary): Likewise.  Mark both parameters as unused.
3108         (input_edge_opt_summary): Likewise.
3109         * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not stream
3110         BINFO_VIRTUALS at all.
3111         * lto-streamer-in.c (lto_input_ts_binfo_tree_pointers): Likewise.
3112
3113 2011-09-02  Richard Guenther  <rguenther@suse.de>
3114
3115         * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Do not fold alloca (0).
3116         (ccp_fold_stmt): Continue replacing args when folding alloca fails.
3117
3118 2011-08-31  Richard Guenther  <rguenther@suse.de>
3119
3120         * expr.c (expand_expr_real_2): Move COND_EXPR and VEC_COND_EXPR
3121         handling here, from ...
3122         (expand_expr_real_1): ... here.
3123         * gimple-pretty-print.c (dump_ternary_rhs): Handle COND_EXPR
3124         and VEC_COND_EXPR.
3125         * gimple.c (gimple_rhs_class_table): Make COND_EXPR and VEC_COND_EXPR
3126         a GIMPLE_TERNARY_RHS.
3127         * tree-cfg.c (verify_gimple_assign_ternary): Handle COND_EXPR
3128         and VEC_COND_EXPR here ...
3129         (verify_gimple_assign_single): ... not here.
3130         * gimple-fold.c (fold_gimple_assign): Move COND_EXPR folding.
3131         * tree-object-size.c (cond_expr_object_size): Adjust.
3132         (collect_object_sizes_for): Likewise.
3133         * tree-scalar-evolution.c (interpret_expr): Don't handle ternary RHSs.
3134         * tree-ssa-forwprop.c (forward_propagate_into_cond): Fix and simplify.
3135         (ssa_forward_propagate_and_combine): Adjust.
3136         * tree-ssa-loop-im.c (move_computations_stmt): Build the COND_EXPR
3137         as ternary.
3138         * tree-ssa-threadedge.c (fold_assignment_stmt): Adjust.
3139         * tree-vect-loop.c (vect_is_simple_reduction_1): Likewise.
3140         * tree-vect-stmt.c (vectorizable_condition): Likewise.
3141         * tree-vrp.c (extract_range_from_cond_expr): Likewise.
3142         (extract_range_from_assignment): Likewise.
3143
3144 2011-08-31  Richard Sandiford  <rdsandiford@googlemail.com>
3145
3146         * config/i386/i386.md: Use (match_test ...) for attribute tests.
3147         * config/i386/mmx.md: Likewise.
3148         * config/i386/sse.md: Likewise.
3149         * config/i386/predicates.md (call_insn_operand): Use
3150         (not (match_test "...")) instead of (match_test "!...")
3151         * config/i386/constraints.md (w): Likewise.
3152
3153 2011-08-31  Richard Sandiford  <rdsandiford@googlemail.com>
3154
3155         * doc/md.texi: Describe the use of match_tests in attribute tests.
3156         * rtl.def (MATCH_TEST): Update commentary.
3157         * genattrtab.c (attr_copy_rtx, check_attr_test, clear_struct_flag)
3158         (write_test_expr, walk_attr_value): Handle MATCH_TEST.
3159
3160 2011-08-31  Richard Sandiford  <rdsandiford@googlemail.com>
3161
3162         * genattrtab.c (attr_rtx_1): Hash SYMBOL_REFs.
3163         (attr_string): Use copy_md_ptr_loc.
3164
3165 2011-08-31  Martin Jambor  <mjambor@suse.cz>
3166
3167         PR middle-end/49886
3168         * ipa-inline-analysis.c (compute_inline_parameters): Set
3169         can_change_signature of noes with typde attributes.
3170         * ipa-split.c (split_function): Do not skip any arguments if
3171         can_change_signature is set.
3172
3173 2011-08-31  Martin Jambor  <mjambor@suse.cz>
3174
3175         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Alias
3176         check removed.
3177
3178 2011-08-31  Richard Guenther  <rguenther@suse.de>
3179
3180         * fold-const.c (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE
3181         special-casing.
3182
3183 2011-08-31  Marc Glisse  <marc.glisse@inria.fr>
3184
3185         * doc/generic.texi (Types for C++): CP_TYPE_QUALS -> cp_type_quals.
3186
3187 2011-08-31  Tom de Vries  <tom@codesourcery.com>
3188
3189         PR middle-end/43513
3190         * Makefile.in (tree-ssa-ccp.o): Add $(PARAMS_H) to rule.
3191         * tree-ssa-ccp.c (params.h): Include.
3192         (fold_builtin_alloca_for_var): New function.
3193         (ccp_fold_stmt): Use fold_builtin_alloca_for_var.
3194
3195 2011-08-30  Uros Bizjak  <ubizjak@gmail.com>
3196
3197         * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
3198         Handle FMA option.
3199
3200 2011-08-30  Andrew Stubbs  <ams@codesourcery.com>
3201
3202         * config/arm/arm.c (optimal_immediate_sequence_1): Make b1, b2,
3203         b3 and b4 unsigned.
3204
3205 2011-08-30  Andrew Stubbs  <ams@codesourcery.com>
3206
3207         * config/arm/arm.c (arm_gen_constant): Set can_negate correctly
3208         when code is SET.
3209
3210 2011-08-30  Richard Guenther  <rguenther@suse.de>
3211
3212         PR middle-end/48571
3213         * gimple.h (maybe_fold_offset_to_address): Remove.
3214         (maybe_fold_offset_to_reference): Likewise.
3215         (maybe_fold_stmt_addition): Likewise.
3216         (may_propagate_address_into_dereference): Likewise.
3217         * tree-inline.c (remap_gimple_op_r): Do not reconstruct
3218         array references.
3219         * gimple-fold.c (canonicalize_constructor_val): Likewise.
3220         Canonicalize invariant POINTER_PLUS_EXPRs to invariant MEM_REF
3221         addresses instead.
3222         (may_propagate_address_into_dereference): Remove.
3223         (maybe_fold_offset_to_array_ref): Likewise.
3224         (maybe_fold_offset_to_reference): Likewise.
3225         (maybe_fold_offset_to_address): Likewise.
3226         (maybe_fold_stmt_addition): Likewise.
3227         (fold_gimple_assign): Do not reconstruct array references but
3228         instead canonicalize invariant POINTER_PLUS_EXPRs to invariant
3229         MEM_REF addresses.
3230         (gimple_fold_stmt_to_constant_1): Likewise.
3231         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
3232         * gimplify.c (gimplify_conversion): Likewise.
3233         (gimplify_expr): Likewise.
3234
3235 2011-08-30  Ilya Tocar  <ilya.tocar@intel.com>
3236
3237         * config/i386/fmaintrin.h: New.
3238         * config.gcc: Add fmaintrin.h.
3239         * config/i386/i386.c
3240         (enum ix86_builtins) <IX86_BUILTIN_VFMADDSS3>: New.
3241         <IX86_BUILTIN_VFMADDSD3>: Likewise.
3242         * config/i386/sse.md (fmai_vmfmadd_<mode>): New.
3243         (*fmai_fmadd_<mode>): Likewise.
3244         (*fmai_fmsub_<mode>): Likewise.
3245         (*fmai_fnmadd_<mode>): Likewise.
3246         (*fmai_fnmsub_<mode>): Likewise.
3247         * config/i386/immintrin.h: Add fmaintrin.h.
3248
3249 2011-08-30  Bernd Schmidt  <bernds@codesourcery.com>
3250
3251         * genautomata.c (NO_COMB_OPTION): New macro.
3252         (no_comb_flag): New static variable.
3253         (gen_automata_option): Handle NO_COMB_OPTION.
3254         (comb_vect_p): False if no_comb_flag.
3255         (add_vect): Move computation of min/max values.  Return early if
3256         no_comb_flag.
3257         * doc/md.texi (automata_option): Document no-comb-vect.
3258
3259         * config/i386/i386.c (get_pc_thunk_name): Change prefix to
3260         "__x86.get_pc_thunk".
3261
3262         * bb-reorder.c (insert_section_boundary_note): Only do it if
3263         we reordered the blocks; i.e. not if !optimize_function_for_speed_p.
3264
3265 2011-08-30  Christian Bruel  <christian.bruel@st.com>
3266
3267         * coverage.c (coverage_init): Check flag_branch_probabilities instead of
3268         flag_profile_use.
3269
3270 2011-08-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
3271
3272         * config/rs6000/rs6000.opt (-msave-toc-indirect): Change default
3273         to off.  Document switch.
3274         * doc/invoke.texi (-msave-toc-indirect): Ditto.
3275
3276 2011-08-29  Jakub Jelinek  <jakub@redhat.com>
3277
3278         * gthr-posix.h (__gthread_active_p): Do not use preprocessor
3279         conditionals and comments inside macro arguments.
3280
3281 2011-08-29  Artjoms Sinkarovs  <artyom.shinkaroff@gmail.com>
3282             Richard Guenther  <rguenther@suse.de>
3283
3284         * tree.h (constant_boolean_node): Adjust prototype.
3285         * fold-const.c (fold_convert_loc): Move aggregate conversion
3286         leeway down.
3287         (constant_boolean_node): Make value parameter boolean, add
3288         vector type handling.
3289         (fold_unary_loc): Use constant_boolean_node.
3290         (fold_binary_loc): Preserve types properly when folding
3291         COMPLEX_EXPR <__real x, __imag x>.
3292         * gimplify.c (gimplify_expr): Handle vector comparison.
3293         * tree.def (EQ_EXPR, ...): Document behavior on vector typed
3294         comparison.
3295         * tree-cfg.c (verify_gimple_comparison): Verify vector typed
3296         comparisons.
3297
3298 2011-08-29  Jakub Jelinek  <jakub@redhat.com>
3299
3300         PR middle-end/48722
3301         * emit-rtl.c (unshare_all_rtl_again): For CALL_INSNs,
3302         reset_used_flags also in CALL_INSN_FUNCTION_USAGE.
3303         (verify_rtl_sharing): Likewise and verify_rtx_sharing
3304         in there too.
3305         (unshare_all_rtl_in_chain): For CALL_INSNs
3306         copy_rtx_if_shared also CALL_INSN_FUNCTION_USAGE.
3307
3308 2011-08-29  Richard Guenther  <rguenther@suse.de>
3309
3310         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Set a location
3311         on the built ADDR_EXPR.
3312
3313 2011-08-29  Jakub Jelinek  <jakub@redhat.com>
3314
3315         PR debug/50215
3316         * var-tracking.c (create_entry_value): Call cselib_lookup_from_insn
3317         before adding ENTRY_VALUE to val->locs.
3318
3319 2011-08-28  Mikael Pettersson  <mikpe@it.uu.se>
3320
3321         PR bootstrap/50218
3322         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Initialize
3323         comp.
3324
3325 2011-08-27  Bernd Schmidt  <bernds@codesourcery.com>
3326
3327         * doc/rtl.texi (simple_return): Document.
3328         (parallel, PATTERN): Here too.
3329         * doc/md.texi (return): Mention it's allowed to expand to simple_return
3330         in some cases.
3331         (simple_return): Document standard pattern.
3332         * gengenrtl.c (special_rtx): SIMPLE_RETURN is special.
3333         * final.c (final_scan_insn): Use ANY_RETURN_P on body.
3334         * reorg.c (function_return_label, function_simple_return_label):
3335         New static variables, replacing...
3336         (end_of_function_label): ... this.
3337         (simplejump_or_return_p): New static function.
3338         (optimize_skip, steal_delay_list_from_fallthrough,
3339         fill_slots_from_thread): Use it.
3340         (relax_delay_slots): Likewise.  Use ANY_RETURN_P on body.
3341         (rare_destination, follow_jumps): Use ANY_RETURN_P on body.
3342         (find_end_label): Take a new arg which is one of the two return
3343         rtxs.  Depending on which, set either function_return_label or
3344         function_simple_return_label.  All callers changed.
3345         (make_return_insns): Make both kinds.
3346         (dbr_schedule): Adjust for two kinds of end labels.
3347         * function.c (emit_return_into_block): Set JUMP_LABEL properly.
3348         * genemit.c (gen_exp): Handle SIMPLE_RETURN.
3349         (gen_expand, gen_split): Use ANY_RETURN_P.
3350         * df-scan.c (df_uses_record): Handle SIMPLE_RETURN.
3351         * rtl.def (SIMPLE_RETURN): New code.
3352         * ifcvt.c (find_if_case_1): Be more careful about
3353         redirecting jumps to the EXIT_BLOCK.
3354         * jump.c (condjump_p, condjump_in_parallel_p, any_condjump_p,
3355         returnjump_p_1): Handle SIMPLE_RETURNs.
3356         * print-rtl.c (print_rtx): Likewise.
3357         * rtl.c (copy_rtx): Likewise.
3358         * bt-load.c (compute_defs_uses_and_gen): Use ANY_RETURN_P.
3359         * combine.c (simplify_set): Likewise.
3360         * resource.c (find_dead_or_set_registers, mark_set_resources):
3361         Likewise.
3362         * emit-rtl.c (verify_rtx_sharing, classify_insn, copy_insn_1,
3363         copy_rtx_if_shared_1, mark_used_flags): Handle SIMPLE_RETURNs.
3364         (init_emit_regs): Initialize simple_return_rtx.
3365         * cfglayout.c (fixup_reorder_chain): Pass a JUMP_LABEL to
3366         force_nonfallthru_and_redirect.
3367         * rtl.h (ANY_RETURN_P): Allow SIMPLE_RETURN.
3368         (GR_SIMPLE_RETURN): New enum value.
3369         (simple_return_rtx): New macro.
3370         * basic-block.h (force_nonfallthru_and_redirect): Adjust
3371         declaration.
3372         * cfgrtl.c (force_nonfallthru_and_redirect): Take a new jump_label
3373         argument.  All callers changed.  Be careful about what kinds of
3374         returnjumps to generate.
3375         * config/i386/3i86.c (ix86_pad_returns, ix86_count_insn_bb,
3376         ix86_pad_short_function): Likewise.
3377         * config/arm/arm.c (arm_final_prescan_insn): Handle both kinds
3378         of return.
3379         * config/mips/mips.md (any_return): New code_iterator.
3380         (optab): Add cases for return and simple_return.
3381         (return): Expand to a simple_return.
3382         (simple_return): New pattern.
3383         (*<optab>, *<optab>_internal for any_return): New patterns.
3384         (return_internal): Remove.
3385         * config/mips/mips.c (mips_expand_epilogue): Make the last insn
3386         a simple_return_internal.
3387
3388 2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
3389
3390         * config/i386/sse.md (*absneg<mode>2): Fix split condition.
3391         (vec_extract_lo_<mode>): Prevent both operands in memory.
3392         (vec_extract_lo_v16hi): Ditto.
3393         (*vec_extract_v4sf_mem): Add TARGET_SSE insn constraint.
3394
3395 2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
3396
3397         * config/i386/sse.md (mulv16qi3): Attach REG_EQUAL note.
3398         (*sse2_mulv4si3): Ditto.
3399         (mulv2di3): Ditto.
3400         * config/i386/i386.c (legitimize_tls_address): Change REG_EQIV
3401         notes to REG_EQUAL.
3402
3403 2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
3404
3405         PR target/50202
3406         * config/i386/sse.md (sse4_2_pcmpestr): Emit NOTE_INSN_DELETED note
3407         when all outputs are unused.
3408         (sse4_2_pcmpistr): Ditto.
3409
3410 2011-08-26  Uros Bizjak  <ubizjak@gmail.com>
3411
3412         * config/i386/i386.md (round<mode>2): New expander.
3413         * config/i386/i386.c (enum ix86_builtins): Add
3414         IX86_BUILTIN_ROUND{PS,PD}_AZ{,256}.
3415         (struct builtin_description): Add __builtin_ia32_round{ps,pd}_az{,256}
3416         descriptions.
3417         (ix86_builtin_vectorized_function): Handle BUILT_IN_ROUND{,F} builtins.
3418         (ix86_build_const_vector): Rewrite using loop with RTVEC_ELT accessor.
3419
3420 2011-08-26  Uros Bizjak  <ubizjak@gmail.com>
3421
3422         PR middle-end/50083
3423         * convert.c (convert_to_integer) <BUIT_IN_ROUND{,F,L}>: Convert
3424         only when TARGET_C99_FUNCTIONS.
3425         <BUILT_IN_NEARBYINT{,F,L}>: Ditto.
3426         <BUILT_IN_RINT{,F,L}>: Ditto.
3427
3428 2011-08-26  Michael Matz  <matz@suse.de>
3429             Jakub Jelinek  <jakub@redhat.com>
3430
3431         PR lto/50165
3432         * lto-streamer-in.c (canon_file_name): Initialize new_slot->len;
3433         don't call strlen twice, use memcpy.
3434
3435 2011-08-26  H.J. Lu  <hongjiu.lu@intel.com>
3436
3437         * config/i386/bmi2intrin.h: Allow in <immintrin.h>.
3438         * config/i386/bmiintrin.h: Likewise.
3439         * config/i386/lzcntintrin.h: Likewise.
3440
3441         * config/i386/immintrin.h: Include <lzcntintrin.h>,
3442         <bmiintrin.h> and <bmi2intrin.h>.
3443
3444 2011-08-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3445
3446         PR target/50166
3447         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Check count in main.
3448         * configure: Regenerate.
3449
3450 2011-08-26  Jakub Jelinek  <jakub@redhat.com>
3451
3452         PR c/50179
3453         * c-typeck.c (c_process_expr_stmt): Skip over nops and
3454         call mark_exp_read even if exprv is ADDR_EXPR.
3455
3456 2011-08-26  Richard Sandiford  <richard.sandiford@linaro.org>
3457
3458         * df-problems.c (df_note_bb_compute): Pass uses rather than defs
3459         to df_set_dead_notes_for_mw.
3460
3461 2011-08-26  Richard Guenther  <rguenther@suse.de>
3462
3463         * varasm.c (decode_addr_const): Handle MEM_REF[&X, OFF].
3464
3465 2011-08-26  Zdenek Dvorak  <ook@ucw.cz>
3466             Tom de Vries  <tom@codesourcery.com>
3467
3468         * tree-ssa-loop-ivopts.c (struct cost_pair): Add comp field.
3469         (struct ivopts_data): Add loop_single_exit_p field.
3470         (niter_for_exit): Change parameter desc_p into return value.  Return
3471         desc if desc->may_be_zero.  Free desc if unused.
3472         (niter_for_single_dom_exit): Change return type.
3473         (find_induction_variables): Handle changed return type of
3474         niter_for_single_dom_exit.  Dump may_be_zero.
3475         (add_candidate_1): Keep original base and step type for IP_ORIGINAL.
3476         (set_use_iv_cost): Add and handle comp parameter.
3477         (determine_use_iv_cost_generic, determine_use_iv_cost_address): Add
3478         comp argument to set_use_iv_cost.
3479         (strip_wrap_conserving_type_conversions, expr_equal_p)
3480         (difference_cannot_overflow_p, iv_elimination_compare_lt): New function.
3481         (may_eliminate_iv): Add comp parameter.  Handle new return type of
3482         niter_for_exit.  Use loop_single_exit_p.  Use iv_elimination_compare_lt.
3483         (determine_use_iv_cost_condition): Add comp argument to set_use_iv_cost
3484         and may_eliminate_iv.
3485         (rewrite_use_compare): Move call to iv_elimination_compare to ...
3486         (may_eliminate_iv): Here.
3487         (tree_ssa_iv_optimize_loop): Initialize loop_single_exit_p.
3488
3489 2011-08-26  Tom de Vries  <tom@codesourcery.com>
3490
3491         * tree-pretty-print (dump_generic_node): Test for NULL_TREE before
3492         accessing TREE_TYPE.
3493
3494 2011-08-26  Jiangning Liu  <jiangning.liu@arm.com>
3495
3496         * config/arm/arm.md (*ior_scc_scc): Enable for Thumb2 as well.
3497         (*ior_scc_scc_cmp): Likewise
3498         (*and_scc_scc): Likewise.
3499         (*and_scc_scc_cmp): Likewise.
3500         (*and_scc_scc_nodom): Likewise.
3501         (*cmp_ite0, *cmp_ite1, *cmp_and, *cmp_ior): Handle Thumb2.
3502
3503 2011-08-26  Jakub Jelinek  <jakub@redhat.com>
3504
3505         * rtlanal.c (nonzero_bits1): Handle CLRSB.
3506
3507 2011-08-26  Richard Guenther  <rguenther@suse.de>
3508
3509         * expr.c (string_constant): Handle &MEM_REF.
3510
3511 2011-08-26  Andrew Stubbs  <ams@codesourcery.com>
3512
3513         * config/arm/arm.c (struct four_ints): New type.
3514         (count_insns_for_constant): Delete function.
3515         (find_best_start): Delete function.
3516         (optimal_immediate_sequence): New function.
3517         (optimal_immediate_sequence_1): New function.
3518         (arm_gen_constant): Move constant splitting code to
3519         optimal_immediate_sequence.
3520         Rewrite constant negation/invertion code.
3521
3522 2011-08-26  Andrew Stubbs  <ams@codesourcery.com>
3523
3524         * config/arm/arm-protos.h (const_ok_for_op): Add prototype.
3525         * config/arm/arm.c (const_ok_for_op): Add support for addw/subw.
3526         Remove prototype. Remove static function type.
3527         * config/arm/arm.md (*arm_addsi3): Add addw/subw support.
3528         Add arch attribute.
3529         * config/arm/constraints.md (Pj, PJ): New constraints.
3530
3531 2011-08-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3532
3533         * config/arm/cortex-a9.md ("cortex_a9_mult_long"): New.
3534         ("cortex_a9_multiply_long"): New and use above.  Handle all
3535         long multiply cases.
3536         ("cortex_a9_multiply"): Handle smmul and smmulr.
3537         ("cortex_a9_mac"): Handle smmla.
3538
3539 2011-08-25  Richard Henderson  <rth@redhat.com>
3540
3541         PR 50132
3542         PR 49864
3543         * cfgcleanup.c (old_insns_match_p): Don't allow cross-jump for
3544         non-constant stack adjutment.
3545         * expr.c (find_args_size_adjust): Break out from ...
3546         (fixup_args_size_notes): ... here.
3547         * rtl.h (find_args_size_adjust): Declare.
3548
3549 2011-08-25  Uros Bizjak  <ubizjak@gmail.com>
3550
3551         * config/i386/i386.md (isa): Add sse2, sse2_noavx, sse3,
3552         sse4 and sse4_noavx.
3553         (enabled): Handle sse2, sse2_noavx, sse3, sse4 and sse4_noavx.
3554         (*pushdf_rex64): Change Y2 register constraint to x.
3555         (*movdf_internal_rex64): Ditto.
3556         (*zero_extendsidi2_rex64): Ditto.
3557         (*movdi_internal): Change Y2 register constraint to x
3558         and update "isa" attribute.
3559         (*pushdf): Ditto.
3560         (*movdf internal): Ditto.
3561         (zero_extendsidi2_1): Ditto.
3562         (*truncdfdf_mixed): Ditto.
3563         (*truncxfdf2_mixed): Ditto.
3564         * config/i386/mmx.md (*mov<mode>_internal_rex64): Change Y2
3565         register constraint to x.
3566         (*movv2sf_internal_rex64): Ditto.
3567         (*mov<mode>_internal): Change Y2 register constraint to x
3568         and add "isa" attribute.
3569         (*movv2sf_internal): Ditto.
3570         (*vec_extractv2si_1): Ditto.
3571         * config/i386/sse.md ("vec_set<mode>_0): Change Y2 and Y4 register
3572         constraints to x and update "isa" attribute.
3573         (*vec_interleave_highv2df): Change Y3 registerconstraint
3574         to x and update "isa" attribute.
3575         (*vec_interleave_lowv2df): Ditto.
3576         (*vec_concatv2df): Change Y2 register constraint to x and
3577         update "isa" attribute.
3578         (sse2_loadld): Ditto.
3579         (*vec_extractv2di_1): Ditto.
3580         (*vec_dupv4si): Ditto.
3581         (*vec_dupv2di): Ditto.
3582         (*vec_concatv4si): Ditto.
3583         (vec_concatv2di): Ditto.
3584         * config/i386/constraints.md (Y2): Remove.
3585         (Y3): Ditto.
3586         (Y4): Ditto.
3587
3588 2011-08-25  Bernd Schmidt  <bernds@codesourcery.com>
3589
3590         * regrename.c (scan_rtx_reg, scan_rtx_address, build_def_use,
3591         dump_def_use_chain): Don't declare.
3592         (mark_conflict, create_new_chain): Move before users.
3593         (regrename_optimize): Move to near end of file.
3594
3595 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
3596
3597         * config/avr-protos.h (byte_immediate_operand): Remove Prototype.
3598         (secondary_input_reload_class): Remove Prototype.
3599         * config/avr/avr.c (byte_immediate_operand): Remove Function.
3600         * config/avr/avr.md (setmemhi): Use u8_operand.
3601         (strlenhi): Use const0_rtx for comparison.
3602         * config/avr/avr.h (avr_reg_order): Remove Declaration.
3603
3604 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
3605
3606         * config/avr/avr.c (reg_class_tab): Make local to
3607         avr_regno_reg_class.  Return smallest register class available.
3608
3609 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
3610
3611         * config/avr/avr.c (STR_PREFIX_P): New Define.
3612         (avr_asm_declare_function_name): Use it.
3613         (avr_asm_named_section): Use it.
3614         (avr_section_type_flags): Use it.
3615
3616 2011-08-25  Bernd Schmidt  <bernds@codesourcery.com>
3617
3618         * doc/md.texi (automata_option): Document collapse-ndfa.
3619         * genautomata.c (COLLAPSE_OPTION): New macro.
3620         (collapse_flag): New static variable.
3621         (struct description): New member normal_decls_num.
3622         (struct automaton): New members advance_ainsn and collapse_ainsn.
3623         (gen_automata_option): Check for COLLAPSE_OPTION.
3624         (collapse_ndfa_insn_decl): New static variable.
3625         (add_collapse_ndfa_insn_decl, special_decl_p): New functions.
3626         (find_arc): If insn is the collapse-ndfa insn, accept any arc we find.
3627         (transform_insn_regexps): Call add_collapse_ndfa_insn_decl if
3628         necessary.  Use normal_decls_num rather than decls_num, remove
3629         test for special decls.
3630         (create_alt_states, form_ainsn_with_same_reservs): Use special_decl_p.
3631         (make_automaton); Likewise.  Use the new advance_cycle_insn member
3632         of struct automaton.
3633         (create_composed_state): Disallow advance-cycle arcs if collapse_flag
3634         is set.
3635         (NDFA_to_DFA): Don't create composed states for the collapse-ndfa
3636         transition.  Create the necessary transitions for it.
3637         (create_ainsns): Return void.  Take an automaton_t argument, and
3638         update its ainsn_list, advance_ainsn and collapse_ainsn members.  All
3639         callers changed.
3640         (COLLAPSE_NDFA_VALUE_NAME): New macro.
3641         (output_tables): Output code to define it.
3642         (output_internal_insn_code_evaluation): Output code to accept
3643         const0_rtx as collapse-ndfa transition.
3644         (output_default_latencies, output_print_reservation_func,
3645         output_print_description): Reorganize loops to use normal_decls_num
3646         as loop bound; remove special case for advance_cycle_insn_decl.
3647         (initiate_automaton_gen): Handle COLLAPSE_OPTION.
3648         (check_automata_insn_issues): Check for collapse_ainsn.
3649         (expand_automate): Allocate sufficient space.  Initialize
3650         normal_decls_num.
3651
3652 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
3653
3654         * config/avr/avr.md: Fix indentation from r177991.
3655
3656 2011-08-25  Bernd Schmidt  <bernds@codesourcery.com>
3657
3658         * regrename.c (struct du_head): Remove member terminated.
3659         (create_new_chain): Don't initialize it.
3660         (scan_rtx_reg): Don't set or test it, test the open_chains_set
3661         bitmap instead.
3662         (tick, this_tick): New global variables, moved out of
3663         regrename_optimize.
3664         (current_id, open_chains, closed_chains, open_chains_set,
3665         live_in_chains, live_hard_regs): Reorder declarations.
3666         (dump_def_use_chain): Move function earlier in the file.
3667         (rename_chains): New static function, broken out of
3668         regrename_optimize.
3669         (regrename_optimize): Use it.  Remove #if 0'ed code.
3670
3671 2011-08-25  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
3672
3673         * varasm.c: (default_binds_local_p_1): Commentary typo fix.
3674
3675 2011-08-24  H.J. Lu  <hongjiu.lu@intel.com>
3676
3677         PR target/50172
3678         * config/i386/i386.c (ix86_expand_builtin): Convert to Pmode if needed.
3679
3680 2011-08-24  Richard Guenther  <rguenther@suse.de>
3681
3682         * tree-data-ref.c (dr_analyze_indices): Avoid unsharing the
3683         ref in the basic-block case.  Move stripping array-refs
3684         to the place we create an access-function for it.  Remove
3685         bogus stripping down a MEM_REF to its base.
3686
3687 2011-08-24  Richard Guenther  <rguenther@suse.de>
3688
3689         * fold-const.c (fold_comparison): Fold &a < &a + 4 even
3690         with -fno-strict-overflow.
3691
3692 2011-08-24  Richard Guenther  <rguenther@suse.de>
3693
3694         * tree-vectorizer.c (vect_print_dump_info): Avoid the
3695         file and location clutter when dumping to dump files.
3696
3697 2011-08-24  Simon Baldwin  <simonb@google.com>
3698
3699         * gengtype-state.c (write_state): Remove timestamped header line.
3700
3701 2011-08-24  Joseph Myers  <joseph@codesourcery.com>
3702
3703         * Makefile.in (CFLAGS-collect2.o, CFLAGS-c-family/c-opts.o)
3704         (CFLAGS-c-family/c-pch.o, CFLAGS-prefix.o, CFLAGS-version.o)
3705         (CFLAGS-lto-compress.o, CFLAGS-toplev.o, CFLAGS-intl.o)
3706         (CFLAGS-cppbuiltin.o, CFLAGS-cppdefault.o): New.
3707         (collect2.o, c-family/c-cppbuiltin.o, c-family/c-opts.o)
3708         (c-family/c-pch.o, prefix.o, version.o, lto-compress.o, toplev.o)
3709         (intl.o, cppbuiltin.o, cppdefault.o): Remove explicit compilation
3710         rules.
3711         (lto-wrapper$(exeext)): Use $(LINKER) not $(COMPILER).
3712
3713 2011-08-24  Joseph Myers  <joseph@codesourcery.com>
3714
3715         * Makefile.in (ALL_CXXFLAGS): Include $(CFLAGS-$@).
3716
3717 2011-08-24  Richard Guenther  <rguenther@suse.de>
3718
3719         PR tree-optimization/50067
3720         * tree-data-ref.c (dr_analyze_indices): Do not add an access
3721         function for a MEM_REF base that has no evolution in the loop
3722         nest or that is not analyzable.
3723
3724 2011-08-23  Vladimir Makarov  <vmakarov@redhat.com>
3725
3726         * ira.c (ira_init_register_move_cost): Check small subclasses
3727         through ira_reg_class_max_nregs and ira_available_class_regs.
3728
3729 2011-08-23  Uros Bizjak  <ubizjak@gmail.com>
3730
3731         * config/i386/constraints.md (Yp): New register constraint.
3732         * config/i386/i386.md (*addhi_1): Merge with *addhi_1_lea using
3733         Yp register constraint.
3734         (*addqi_1): Merge with *addqi_1_lea using Yp register constraint.
3735         (*ashlhi3_1): Merge with *ashlhi3_1_lea using Yp register constraint.
3736         (*ashlqi3_1): Merge with *ashlqi3_1_lea using Yp register constraint.
3737
3738 2011-08-23  Kirill Yukhin  <kirill.yukhin@intel.com>
3739
3740         * config/i386/sse.md (<s>mul<mode>3_highpart): Update.
3741
3742 2011-08-23  Mark Heffernan  <meheff@google.com>
3743
3744         PR middle-end/38509
3745         * common.opt (Wfree-nonheap-object): New option.
3746         * doc/invoke.texi (Warning options): Document -Wfree-nonheap-object.
3747         * builtins.c (maybe_emit_free_warning): Add OPT_Wfree_nonheap_object
3748         to warning.
3749         (expand_builtin): Make warning conditional.
3750
3751 2011-08-23  Uros Bizjak  <ubizjak@gmail.com>
3752
3753         * config/i386/i386.md (type): Add imulx, ishiftx and rotatex.
3754         (length_immediate): Handle imulx, ishiftx and rotatex.
3755         (imm_disp): Ditto.
3756         (isa): Add bmi2.
3757         (enabled): Handle bmi2.
3758         (*mul<mode><dwi>3): Split from *<u>mul<mode><dwi>3.
3759         (*umul<mode><dwi>3): Ditto.  Add imulx BMI2 alternative.
3760         (*bmi2_umulditi3_1): New insn pattern.
3761         (*bmi2_umulsidi3_1): Ditto.
3762         (*umul<mode><dwi>3 splitter): New splitter to avoid flags dependency.
3763         (*bmi2_ashl<mode>3_1): New insn pattern.
3764         (*ashl<mode>3_1): Add ishiftx BMI2 alternative.
3765         (*ashl<mode>3_1 splitter): New splitter to avoid flags dependency.
3766         (*bmi2_ashlsi3_1_zext): New insn pattern.
3767         (*ashlsi3_1_zext): Add ishiftx BMI2 alternative.
3768         (*ashlsi3_1_zext splitter): New splitter to avoid flags dependency.
3769         (*bmi2_<shiftrt_insn><mode>3_1): New insn pattern.
3770         (*<shiftrt_insn><mode>3_1): Add ishiftx BMI2 alternative.
3771         (*<shiftrt_insn><mode>3_1 splitter): New splitter to avoid
3772         flags dependency.
3773         (*bmi2_<shiftrt_insn>si3_1_zext): New insn pattern.
3774         (*<shiftrt_insn>si3_1_zext): Add ishiftx BMI2 alternative.
3775         (*<shiftrt_insn>si3_1_zext splitter): New splitter to avoid
3776         flags dependency.
3777         (*bmi2_rorx<mode>3_1): New insn pattern.
3778         (*<rotate_insn><mode>3_1): Add rotatex BMI2 alternative.
3779         (*rotate<mode>3_1 splitter): New splitter to avoid flags dependency.
3780         (*rotatert<mode>3_1 splitter): Ditto.
3781         (*bmi2_rorxsi3_1_zext): New insn pattern.
3782         (*<rotate_insn>si3_1_zext): Add rotatex BMI2 alternative.
3783         (*rotatesi3_1_zext splitter): New splitter to avoid flags dependency.
3784         (*rotatertsi3_1_zext splitter): Ditto.
3785
3786 2011-08-23  Kirill Yukhin  <kirill.yukhin@intel.com>
3787
3788         * common/config/i386/i386-common.c (OPTION_MASK_ISA_BMI2_SET): New.
3789         (OPTION_MASK_ISA_BMI2_UNSET): Likewise.
3790         (ix86_handle_option): Handle OPT_mbmi2 case.
3791         * config.gcc (i[34567]86-*-*): Add bmi2intrin.h.
3792         (x86_64-*-*): Likewise.
3793         * config/i386/bmi2intrin.h: New file.
3794         * config/i386/cpuid.h (bit_BMI2): New.
3795         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
3796         BMI2 feature.
3797         * config/i386/i386-c.c (ix86_target_macros_internal):
3798         Conditionally define __BMI2__.
3799         * config/i386/i386.c (ix86_option_override_internal): Define PTA_BMI2.
3800         Handle BMI2 option.
3801         (ix86_valid_target_attribute_inner_p): Handle BMI2 option.
3802         (print_reg): New code.
3803         (ix86_print_operand): Likewise.
3804         (ix86_builtins): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64,
3805         IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32,
3806         IX86_BUILTIN_PEXT64.
3807         (bdesc_args): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64,
3808         IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32,
3809         IX86_BUILTIN_PEXT64.
3810         * config/i386/i386.h (TARGET_BMI2): New.
3811         * config/i386/i386.md (UNSPEC_PDEP): New.
3812         (UNSPEC_PEXT): Likewise.
3813         (*bmi2_bzhi_<mode>3): Likewise.
3814         (*bmi2_pdep_<mode>3): Likewise.
3815         (*bmi2_pext_<mode>3): Likewise.
3816         * config/i386/i386.opt (mbmi2): New.
3817         * config/i386/x86intrin.h: Include bmi2intrin.h when __BMI2__
3818         is defined.
3819         * doc/extend.texi: Document BMI2 built-in functions.
3820         * doc/invoke.texi: Document -mbmi2.
3821
3822 2011-08-23  Jakub Jelinek  <jakub@redhat.com>
3823
3824         PR middle-end/50161
3825         * simplify-rtx.c (simplify_const_unary_operation): If
3826         op is CONST_INT, don't look at op_mode, but use instead mode.
3827         * optabs.c (add_equal_note): For FFS, CLZ, CTZ,
3828         CLRSB, POPCOUNT, PARITY and BSWAP use operand mode for
3829         operation and TRUNCATE/ZERO_EXTEND if needed.
3830         * doc/rtl.texi (ffs, clrsb, clz, ctz, popcount, parity, bswap):
3831         Document that operand mode must be same as operation mode,
3832         or VOIDmode.
3833         * config/avr/avr.md (paritysi2, *parityqihi2.libgcc,
3834         *paritysihi2.libgcc, popcountsi2, *popcountsi2.libgcc,
3835         *popcountqihi2.libgcc, clzsi2, *clzsihi2.libgcc, ctzsi2,
3836         *ctzsihi2.libgcc, ffssi2, *ffssihi2.libgcc): For unary ops
3837         use the mode of operand for the operation and add truncate
3838         or zero_extend around if needed.
3839         * config/c6x/c6x.md (ctzdi2): Likewise.
3840         * config/bfin/bfin.md (clrsbsi2, signbitssi2): Likewise.
3841
3842 2011-08-12  Michael Matz  <matz@suse.de>
3843
3844         * cfgexpand.c (expand_one_register_var): Use get_pointer_alignment.
3845         (gimple_expand_cfg): Merge alignment info for coalesced pointer
3846         SSA names.
3847
3848 2011-08-23  Richard Guenther  <rguenther@suse.de>
3849
3850         * Makefile.in (tree-data-ref.o): Add tree-affine.h dependency.
3851         * tree-affine.h (aff_comb_cannot_overlap_p): Declare.
3852         * tree-affine.c (aff_comb_cannot_overlap_p): New function, moved
3853         from ...
3854         * tree-ssa-loop-im.c (cannot_overlap_p): ... here.
3855         (mem_refs_may_alias_p): Adjust.
3856         * tree-data-ref.h (dr_may_alias_p): Adjust.
3857         * tree-data-ref.c: Include tree-affine.h.
3858         (dr_analyze_indices): Do nothing for the non-loop case.
3859         (dr_may_alias_p): Distinguish loop and non-loop case.  Disambiguate
3860         more cases in the non-loop case.
3861         * graphite-sese-to-poly.c (write_alias_graph_to_ascii_dimacs): Adjust
3862         calls to dr_may_alias_p.
3863         (write_alias_graph_to_ascii_ecc): Likewise.
3864         (write_alias_graph_to_ascii_dot): Likewise.
3865         (build_alias_set_optimal_p): Likewise.
3866
3867 2011-08-23  Richard Guenther  <rguenther@suse.de>
3868
3869         PR tree-optimization/50162
3870         * tree-vect-stmts.c (vectorizable_call): Fix argument lookup.
3871
3872 2011-08-23  Richard Guenther  <rguenther@suse.de>
3873
3874         * tree-data-ref.c (dr_analyze_indices): Add comments, handle
3875         REALPART_EXPR and IMAGPART_EXPR similar to ARRAY_REFs.
3876         (create_data_ref): Also dump access functions for the created data-ref.
3877
3878 2011-08-22  Uros Bizjak  <ubizjak@gmail.com>
3879             Kirill Yukhin  <kirill.yukhin@intel.com>
3880
3881         PR target/50155
3882         * config/i386/sse.md (VI_AVX2): New.
3883         (<plusminus_insn><mode>3): Use VI_AVX2 mode iterator.
3884         (*<plusminus_insn><mode>3): Ditto.
3885         (<sse2_avx2>_andnot<mode>3): Ditto.
3886         (*andnot<mode>3): Fix order of cond operands.
3887         Add asserts for correct TARGET_xxx.
3888         (*<any_logic:code><mode>3): Ditto.
3889
3890 2011-08-22  Anatoly Sokolov  <aesok@post.ru>
3891
3892         * config/m32c/m32c.h (CLASS_MAX_NREGS): Remove macro.
3893         * config/m32c/m32c-protos.h (m32c_class_max_nregs): Remove.
3894         * config/m32c/m32c.c (m32c_class_max_nregs): Make static. Change
3895         regclass argument type to reg_class_t. Change 'max' and 'v' vars
3896         and return types to unsigned char. Use reg_class_contents instead
3897         of class_contents.
3898         (TARGET_CLASS_MAX_NREGS): Define.
3899
3900 2011-08-22  Bernd Schmidt  <bernds@codesourcery.com>
3901
3902         * config/c6x/c6x.md (indirect_jump_shadow): Tweak representation
3903         to make computed_jump_p return true.
3904
3905 2011-08-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3906
3907         * configure.ac (GCC_PICFLAG_FOR_TARGET): Call it.
3908         (PICFLAG_FOR_TARGET): Substitute.
3909         * aclocal.m4: Regenerate.
3910         * configure: Regenerate.
3911
3912 2011-08-22  Dodji Seketeli  <dodji@redhat.com>
3913
3914         * c-family/c-pch.c (c_common_read_pch): Re-set line table right
3915         after reading in the pch.
3916
3917 2011-08-22  H.J. Lu  <hongjiu.lu@intel.com>
3918
3919         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Error if __ELF__ isn't defined.
3920         * configure: Regenerated.
3921
3922 2011-08-22  Jakub Jelinek  <jakub@redhat.com>
3923
3924         PR tree-optimization/50133
3925         * tree-vect-stmts.c (vect_finish_stmt_generation): Copy location
3926         from stmt instead of some statement around gsi.
3927
3928         PR middle-end/50141
3929         * expr.c (get_bit_range): Only use DECL_THREAD_LOCAL_P if
3930         innerdecl is a VAR_DECL.
3931
3932 2011-08-22  Kirill Yukhin  <kirill.yukhin@intel.com>
3933
3934         * config/i386/avx2intrin.h: New file.
3935         * config/i386/i386-builtin-types.def (PCINT, PCINT64, PV4SI,
3936         PV8SI, V32QI_FTYPE_V32QI, V32QI_FTYPE_V16QI, V16HI_FTYPE_V16HI,
3937         V16HI_FTYPE_V8HI, V8SI_FTYPE_V8SI, V16HI_FTYPE_V16QI,
3938         V8SI_FTYPE_V16QI, V4DI_FTYPE_V16QI, V8SI_FTYPE_V8HI,
3939         V4DI_FTYPE_V8HI, V4DI_FTYPE_V4SI, V4DI_FTYPE_PV4DI,
3940         V4DI_FTYPE_V2DI, V2DI_FTYPE_PCV2DI_V2DI, V4SI_FTYPE_PCV4SI_V4SI,
3941         V32QI_FTYPE_V16HI_V16HI, V16HI_FTYPE_V8SI_V8SI,
3942         V32QI_FTYPE_V32QI_V32QI, V16HI_FTYPE_V32QI_V32QI,
3943         V16HI_FTYPE_V16HI_V8HI, V16HI_FTYPE_V16HI_V16HI,
3944         V16HI_FTYPE_V16HI_INT, V16HI_FTYPE_V16HI_SI,
3945         V16HI_FTYPE_V16HI_V16HI_INT, V32QI_FTYPE_V32QI_V32QI_INT,
3946         V8SI_FTYPE_V8SI_V4SI, V8SI_FTYPE_V8SI_V8SI,
3947         V8SI_FTYPE_V16HI_V16HI, V8SI_FTYPE_V8SI_INT, V8SI_FTYPE_V8SI_SI,
3948         V8SI_FTYPE_PCV8SI_V8SI, V4DI_FTYPE_V4DI_V4DI,
3949         V4DI_FTYPE_V8SI_V8SI, V4DI_FTYPE_V4DI_V2DI,
3950         V4DI_FTYPE_PCV4DI_V4DI, V4DI_FTYPE_V4DI_INT,
3951         V2DI_FTYPE_V4DI_INT, V4DI_FTYPE_V4DI_V4DI_INT,
3952         V4DI_FTYPE_V4DI_V2DI_INT, VOID_FTYPE_PV2DI_V2DI_V2DI,
3953         VOID_FTYPE_PV4DI_V4DI_V4DI, VOID_FTYPE_PV4SI_V4SI_V4SI,
3954         VOID_FTYPE_PV8SI_V8SI_V8SI,
3955         V2DF_FTYPE_V2DF_PCDOUBLE_V4SI_V2DF_INT,
3956         V4DF_FTYPE_V4DF_PCDOUBLE_V4SI_V4DF_INT,
3957         V2DF_FTYPE_V2DF_PCDOUBLE_V2DI_V2DF_INT,
3958         V4DF_FTYPE_V4DF_PCDOUBLE_V4DI_V4DF_INT,
3959         V4SF_FTYPE_V4SF_PCFLOAT_V4SI_V4SF_INT,
3960         V8SF_FTYPE_V8SF_PCFLOAT_V8SI_V8SF_INT,
3961         V4SF_FTYPE_V4SF_PCFLOAT_V2DI_V4SF_INT,
3962         V4SF_FTYPE_V4SF_PCFLOAT_V4DI_V4SF_INT,
3963         V2DI_FTYPE_V2DI_PCINT64_V4SI_V2DI_INT,
3964         V4DI_FTYPE_V4DI_PCINT64_V4SI_V4DI_INT,
3965         V2DI_FTYPE_V2DI_PCINT64_V2DI_V2DI_INT,
3966         V4DI_FTYPE_V4DI_PCINT64_V4DI_V4DI_INT,
3967         V4SI_FTYPE_V4SI_PCINT_V4SI_V4SI_INT,
3968         V8SI_FTYPE_V8SI_PCINT_V8SI_V8SI_INT,
3969         V4SI_FTYPE_V4SI_PCINT_V2DI_V4SI_INT,
3970         V4SI_FTYPE_V4SI_PCINT_V4DI_V4SI_INT,
3971         V16HI_FTYPE_V16HI_SI_COUNT, V16HI_FTYPE_V16HI_V8HI_COUNT,
3972         V8SI_FTYPE_V8SI_SI_COUNT, V8SI_FTYPE_V8SI_V4SI_COUNT,
3973         V4DI_FTYPE_V4DI_INT_COUNT, V4DI_FTYPE_V4DI_V2DI_COUNT,
3974         V4DI_FTYPE_V4DI_INT_CONVERT,
3975         V4DI_FTYPE_V4DI_V4DI_INT_CONVERT): New.
3976         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MPSADBW256,
3977         IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256,
3978         IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256,
3979         IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256,
3980         IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256,
3981         IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256,
3982         IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256,
3983         IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256,
3984         IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256,
3985         IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I,
3986         IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256,
3987         IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256,
3988         IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
3989         IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
3990         IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
3991         IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256,
3992         IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256,
3993         IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256,
3994         IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256,
3995         IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256,
3996         IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256,
3997         IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256,
3998         IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256,
3999         IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256,
4000         IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256,
4001         IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256,
4002         IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256,
4003         IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256,
4004         IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256,
4005         IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256,
4006         IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256,
4007         IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256,
4008         IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256,
4009         IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256,
4010         IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256,
4011         IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256,
4012         IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256,
4013         IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256,
4014         IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256,
4015         IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256,
4016         IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256,
4017         IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256,
4018         IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256,
4019         IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256,
4020         IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256,
4021         IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256,
4022         IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256,
4023         IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256,
4024         IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256,
4025         IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256,
4026         IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256,
4027         IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256,
4028         IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256,
4029         IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256,
4030         IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256,
4031         IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256,
4032         IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256,
4033         IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256,
4034         IX86_BUILTIN_MOVNTDQA256, IX86_BUILTIN_VBROADCASTSS_PS,
4035         IX86_BUILTIN_VBROADCASTSS_PS256,
4036         IX86_BUILTIN_VBROADCASTSD_PD256,
4037         IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256,
4038         IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256,
4039         IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256,
4040         IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128,
4041         IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128,
4042         IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256,
4043         IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256,
4044         IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256,
4045         IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256,
4046         IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ,
4047         IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256,
4048         IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ,
4049         IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256,
4050         IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI,
4051         IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI,
4052         IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI,
4053         IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI,
4054         IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI,
4055         IX86_BUILTIN_GATHERSIV2DF, IX86_BUILTIN_GATHERSIV4DF,
4056         IX86_BUILTIN_GATHERDIV2DF, IX86_BUILTIN_GATHERDIV4DF,
4057         IX86_BUILTIN_GATHERSIV4SF, IX86_BUILTIN_GATHERSIV8SF,
4058         IX86_BUILTIN_GATHERDIV4SF, IX86_BUILTIN_GATHERDIV8SF,
4059         IX86_BUILTIN_GATHERSIV2DI, IX86_BUILTIN_GATHERSIV4DI,
4060         IX86_BUILTIN_GATHERDIV2DI, IX86_BUILTIN_GATHERDIV4DI,
4061         IX86_BUILTIN_GATHERSIV4SI, IX86_BUILTIN_GATHERSIV8SI,
4062         IX86_BUILTIN_GATHERDIV4SI, IX86_BUILTIN_GATHERDIV8SI.
4063         (bdesc_special_args): Add IX86_BUILTIN_MOVNTDQA256,
4064         IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ,
4065         IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256,
4066         IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ,
4067         IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256.
4068         (bdesc_args): Add  IX86_BUILTIN_MPSADBW256,
4069         IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256,
4070         IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256,
4071         IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256,
4072         IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256,
4073         IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256,
4074         IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256,
4075         IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256,
4076         IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256,
4077         IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I,
4078         IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256,
4079         IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256,
4080         IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
4081         IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
4082         IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
4083         IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256,
4084         IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256,
4085         IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256,
4086         IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256,
4087         IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256,
4088         IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256,
4089         IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256,
4090         IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256,
4091         IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256,
4092         IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256,
4093         IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256,
4094         IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256,
4095         IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256,
4096         IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256,
4097         IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256,
4098         IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256,
4099         IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256,
4100         IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256,
4101         IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256,
4102         IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256,
4103         IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256,
4104         IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256,
4105         IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256,
4106         IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256,
4107         IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256,
4108         IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256,
4109         IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256,
4110         IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256,
4111         IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256,
4112         IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256,
4113         IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256,
4114         IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256,
4115         IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256,
4116         IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256,
4117         IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256,
4118         IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256,
4119         IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256,
4120         IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256,
4121         IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256,
4122         IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256,
4123         IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256,
4124         IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256,
4125         IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256,
4126         IX86_BUILTIN_VBROADCASTSS_PS, IX86_BUILTIN_VBROADCASTSS_PS256,
4127         IX86_BUILTIN_VBROADCASTSD_PD256,
4128         IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256,
4129         IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256,
4130         IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256,
4131         IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128,
4132         IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128,
4133         IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256,
4134         IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256,
4135         IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256,
4136         IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256,
4137         IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI,
4138         IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI,
4139         IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI,
4140         IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI,
4141         IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI.
4142         (ix86_init_mmx_sse_builtins): Add IX86_BUILTIN_GATHERSIV2DF,
4143         IX86_BUILTIN_GATHERSIV4DF, IX86_BUILTIN_GATHERDIV2DF,
4144         IX86_BUILTIN_GATHERDIV4DF, IX86_BUILTIN_GATHERSIV4SF,
4145         IX86_BUILTIN_GATHERSIV8SF, IX86_BUILTIN_GATHERDIV4SF,
4146         IX86_BUILTIN_GATHERDIV8SF, IX86_BUILTIN_GATHERSIV2DI,
4147         IX86_BUILTIN_GATHERSIV4DI, IX86_BUILTIN_GATHERDIV2DI,
4148         IX86_BUILTIN_GATHERDIV4DI, IX86_BUILTIN_GATHERSIV4SI,
4149         IX86_BUILTIN_GATHERSIV8SI, IX86_BUILTIN_GATHERDIV4SI,
4150         IX86_BUILTIN_GATHERDIV8SI.
4151         (ix86_preferred_simd_mode): Support AVX2 modes.
4152         (ix86_expand_args_builtin): Support AVX2 builtins.
4153         (ix86_expand_special_args_builtin): Likewise.
4154         (ix86_expand_builtin): Likewise.
4155         * config/i386/i386.md (UNSPEC_VPERMSI): New.
4156         (UNSPEC_VPERMDF): Likewise.
4157         (UNSPEC_VPERMSF): Likewise.
4158         (UNSPEC_VPERMDI): Likewise.
4159         (UNSPEC_VPERMTI): Likewise.
4160         (UNSPEC_GATHER): Likewise.
4161         (ssemodesuffix): Extend.
4162         * config/i386/immintrin.h: Include avx2intrin.h when __AVX2__
4163         is defined.
4164         * config/i386/predicates.md (const1248_operand): New.
4165         * config/i386/sse.md (VI1_AVX2): New mode iterator.
4166         (VI2_AVX2): Likewise.
4167         (VI4_AVX2): Likewise.
4168         (VI8_AVX2): Likewise.
4169         (VIMAX_AVX2): Likewise.
4170         (SSESCALARMODE): Likewise.
4171         (VI12_AVX2): Likewise.
4172         (VI24_AVX2): Likewise.
4173         (VI124_AVX2): Likewise.
4174         (VI248_AVX2): Likewise.
4175         (VI48_AVX2): Likewise.
4176         (VI4SD_AVX2): Likewise.
4177         (V48_AVX2): Likewise.
4178         (AVX256MODE2P): Likewise.
4179         (AVXMODE48P_DI): Likewise.
4180         (sse2_avx2): New mode attribute.
4181         (ssse3_avx2): Likewise.
4182         (sse4_1_avx2): Likewise.
4183         (avx_avx2): Likewise.
4184         (ssebytemode): Likewise.
4185         (AVXTOSSEMODE): Likewise.
4186         (AVXMODE48P_DI): Likewise.
4187         (gthrfirstp): Likewise.
4188         (gthrlastp): Likewise.
4189         (lshift): New code_iterator
4190         (lshift): New code attribute.
4191         (lshift): Likewise.
4192         (ssescalarmodesuffix): Update.
4193         (sseunpackmode): Likewise.
4194         (ssepackmode): Likewise.
4195         (avx2_vec_dupv4sf): New insn pattern.
4196         (avx2_vec_dupv8sf): Likewise.
4197         (avx2_interleave_highv4di): Likewise.
4198         (avx2_interleave_lowv4di): Likewise.
4199         (avx2_umulv4siv4di3): Likewise
4200         (*avx2_umulv4siv4di3): Likewise
4201         (avx2_pmaddwd): Likewise.
4202         (*avx2_pmaddwd): Likewise.
4203         (avx2_lshrqv4di3): Likewise.
4204         (avx2_lshlqv4di3): Likewise.
4205         (avx2_lshl<mode>3): Likewise.
4206         (avx2_<umaxmin:code><mode>3): Likewise.
4207         (*avx2_<umaxmin:code><mode>3): Likewise.
4208         (avx2_<smaxmin:code><mode>3): Likewise.
4209         (*avx2_<smaxmin:code><mode>3): Likewise.
4210         (avx2_eq<mode>3): Likewise.
4211         (*avx2_eq<mode>3): Likewise.
4212         (avx2_gt<mode>3): Likewise.
4213         (avx2_interleave_highv32qi): New.
4214         (avx2_interleave_lowv32qi): Likewise.
4215         (avx2_interleave_highv16hi): Likewise.
4216         (avx2_interleave_lowv16hi): Likewise.
4217         (avx2_interleave_highv8si): Likewise.
4218         (avx2_interleave_lowv8si): Likewise.
4219         (avx2_pshufd): Likewise.
4220         (avx2_pshufd_1): Likewise.
4221         (avx2_pshuflwv3): Likewise.
4222         (avx2_pshuflw_1): Likewise.
4223         (avx2_pshufhwv3): Likewise.
4224         (avx2_pshufhw_1): Likewise.
4225         (avx2_uavgv32qi3): Likewise.
4226         (*avx2_uavgv32qi3): Likewise.
4227         (avx2_uavgv16hi3): Likewise.
4228         (*avx2_uavgv16hi3): Likewise.
4229         (avx2_pmovmskb): Likewise.
4230         (avx2_phaddwv16hi3): Likewise.
4231         (avx2_phadddv8si3): Likewise.
4232         (avx2_phaddswv16hi3): Likewise.
4233         (avx2_phsubwv16hi3): Likewise.
4234         (avx2_phsubdv8si3): Likewise.
4235         (avx2_phsubswv16hi3): Likewise.
4236         (avx2_pmaddubsw256): Likewise.
4237         (avx2_umulhrswv16hi3): Likewise.
4238         (*avx2_umulhrswv16hi3): Likewise.
4239         (avx2_packusdw): Likewise.
4240         (avx2_pblendd<mode>): Likewise.
4241         (avx2_<code>v16qiv16hi2): Likewise.
4242         (avx2_<code>v8qiv8si2): Likewise.
4243         (avx2_<code>v8hiv8si2): Likewise.
4244         (avx2_<code>v4qiv4di2): Likewise.
4245         (avx2_<code>v4hiv4di2): Likewise.
4246         (avx2_<code>v4siv4di2): Likewise.
4247         (avx2_pbroadcast<mode>): Likewise.
4248         (avx2_permvarv8si): Likewise.
4249         (avx2_permv4df): Likewise.
4250         (avx2_permvarv8sf): Likewise.
4251         (avx2_permv4di): Likewise.
4252         (avx2_permv2ti): Likewise.
4253         (avx2_vec_dupv4df): Likewise.
4254         (avx2_vbroadcasti128_<mode>): Likewise.
4255         (avx2_vec_set_lo_v4di): Likewise.
4256         (avx2_vec_set_hi_v4di): Likewise.
4257         (*avx2_maskmov<avx2modesuffix><avxmodesuffix>): Likewise.
4258         (avx2_extracti128): Likewise.
4259         (avx2_inserti128): Likewise.
4260         (avx2_ashrvv8si): Likewise.
4261         (avx2_ashrvv4si): Likewise.
4262         (avx2_<lshift>vv8si): Likewise.
4263         (avx2_<lshift>v<mode>): Likewise.
4264         (avx2_<lshift>vv2di): Likewise.
4265         (avx2_gathersi<mode>): Likewise.
4266         (*avx2_gathersi<mode>): Likewise.
4267         (avx2_gatherdi<mode>): Likewise.
4268         (*avx2_gatherdi<mode>): Likewise.
4269         (avx2_gatherdi<mode>256): Likewise.
4270         (*avx2_gatherdi<mode>256): Likewise.
4271         (<plusminus_insn><mode>3): Use VI mode iterator.
4272         (*<plusminus_insn><mode>3): Use VI mode iterator.
4273         (<sse2_avx2>_<plusminus_insn><mode>3): Rename from
4274         sse2_<plusminus_insn><mode>3.  Use VI12_AVX2 mode iterator.
4275         (*<sse2_avx2>_<plusminus_insn><mode>3): Rename from
4276         *sse2_<plusminus_insn><mode>3.  Use VI12_AVX2 mode iterator.
4277         (mul<mode>3): Rename from mulv8hi3.  Use VI2_AVX2 mode iterator.
4278         (*mul<mode>3): Rename from *mulv8hi3.  Use VI2_AVX2 mode iterator.
4279         (<s>mul<mode>3_highpart): Rename from <s>mulv8hi3_highpart.
4280         Use VI2_AVX2 mode iterator.
4281         (*<s>mul<mode>3_highpart): Rename from *<s>mulv8hi3_highpart.
4282         Use VI2_AVX2 mode iterator.
4283         (mul<mode>3): Rename from mulv4si3.  Use VI4_AVX2 mode iterator.
4284         (*mul<mode>3): Rename from *mulv4si3.  Use VI4_AVX2 mode iterator.
4285         (*<sse4_1_avx2>_mulv2siv2di3): Rename from *sse4_1_mulv4si3.
4286         Use VI4_AVX2 mode iterator.
4287         (ashr<mode>3): Use VI24_AVX2 mode iterator.
4288         (lshr<mode>3): Use VI248_AVX2 mode iterator.
4289         (<sse2_avx2>_ashl<mode>3): Rename from sse2_ashlv1ti3.
4290         Use VIMAX_AVX2 mode iterator.
4291         (<sse2_avx2>_andnot<mode>3): Rename from sse2_andnot<mode>3.
4292         Use VI mode iterator.
4293         (*andnot<mode>3): Update for AVX2.
4294         (*<any_logic:code><mode>3): Likewise.
4295         (<sse2_avx2>_packsswb): Rename from sse2_packsswb.
4296         Use VI1_AVX mode iterator.
4297         (<sse2_avx2>_packssdw):  Rename from sse2_packssdw.
4298         Use VI2_AVX mode iterator.
4299         (<sse2_avx2>_packuswb): Rename from sse2_packsswb.
4300         Use VI1_AVX mode iterator.
4301         (<sse2_avx2>_psadbw): Rename from sse2_psadbw.
4302         Use VI8_AVX2 mode iterator.
4303         (<ssse3_avx2>_pshufb<mode>3): Rename from ssse3_pshufbv16qi3.
4304         Use VI1_AVX2 mode iterator.
4305         (<ssse3_avx2>_psign<mode>3): Rename from ssse3_psign<mode>3.
4306         Use VI124_AVX2 mode iterator.
4307         (<ssse3_avx2>_palignr<mode>): Rename from ssse3_palignrti.
4308         Use SSESCALARMODE mode iterator.
4309         (abs<mode>2): Use VI124_AVX2 mode iterator.
4310         (<sse4_1_avx2>_movntdqa): Rename from sse4_1_movntdqa.
4311         Use VI8_AVX2 mode iterator.
4312         (<sse4_1_avx2>_mpsadbw): Rename from sse4_1_mpsadbw.
4313         Use VI1_AVX2 mode iterator.
4314         (<sse4_1_avx2>_pblendvb): Rename from sse4_1_pblendvb.
4315         Use VI1_AVX2 mode iterator.
4316         (<sse4_1_avx2>_pblendw): Rename from sse4_1_pblendvb.
4317         Use VI2_AVX2 mode iterator.
4318         (<avx_avx2>_maskload<avx2modesuffix><avxmodesuffix>): Rename from
4319         avx_maskload<ssemodesuffix><avxsizesuffix>. Use V48_AVX2 mode iterator.
4320         (<avx_avx2>_maskstore<avx2modesuffix><avxmodesuffix>): Rename from
4321         avx_maskstore<ssemodesuffix><avxsizesuffix>.
4322         Use V48_AVX2 mode iterator.
4323         * doc/extend.texi: Document AVX2 built-in functions.
4324         * doc/invoke.texi: Document -mavx2.
4325
4326 2011-08-22  Matthias Klose <doko@debian.org>
4327
4328         Revert:
4329         2011-07-11  Arthur Loiret  <aloiret@debian.org>
4330                     Matthias Klose <doko@debian.org>
4331         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
4332         tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
4333         convention.
4334         * config.gcc (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
4335
4336 2011-08-22  Mikael Pettersson  <mikpe@it.uu.se>
4337
4338         PR bootstrap/50146
4339         * ira-color.c (assign_hard_reg): Move saved_nregs declaration
4340         to #ifndef HONOR_REG_ALLOC_ORDER block.
4341
4342 2011-08-21  Richard Henderson  <rth@redhat.com>
4343
4344         * rtl.h (INSN_ANNULLED_BRANCH_P): Only allow JUMP_INSN.
4345         * dwarf2cfi.c (scan_trace): Test JUMP_P before INSN_ANNULLED_BRANCH_P.
4346         * resource.c (next_insn_no_annul): Likewise.
4347         (mark_set_resources): Likewise.
4348         * reorg.c (delete_from_delay_slot): Likewise.
4349         (dbr_schedule, redundant_insn, try_merge_delay_insns): Likewise.
4350         (get_branch_condition): Test pc_rtx and LABEL_REF before dereferencing.
4351
4352 2011-08-21  Uros Bizjak  <ubizjak@gmail.com>
4353
4354         * config/i386/i386.md (any_div): Remove.
4355         (sgnprefix): Update for removal.
4356         (u): Ditto.
4357
4358 2011-08-20  Vladimir Makarov  <vmakarov@redhat.com>
4359
4360         * ira-lives.c (mark_pseudo_regno_subword_live): Use allocno class
4361         for ira_reg_class_max_nregs.  Increase pressure by 1.
4362         (mark_pseudo_regno_subword_dead): Use allocno class
4363         for ira_reg_class_max_nregs.
4364
4365 2011-08-20  Richard Henderson  <rth@redhat.com>
4366
4367         * config/c6x/eqd.c, config/c6x/eqf.c, config/c6x/ged.c,
4368         config/c6x/gef.c, config/c6x/gtd.c, config/c6x/gtf.c,
4369         config/c6x/led.c, config/c6x/lef.c, config/c6x/ltd.c,
4370         config/c6x/ltf.c: Adjust include path for soft-fp.
4371
4372 2011-08-20  H.J. Lu  <hongjiu.lu@intel.com>
4373
4374         PR other/46770
4375         * config.gcc (tm_file): Add initfini-array.h if
4376         .init_arrary/.fini_array are supported.
4377
4378         * crtstuff.c: Don't generate .ctors nor .dtors sections if
4379         USE_INITFINI_ARRAY is defined.
4380
4381         * output.h (default_elf_init_array_asm_out_constructor): New.
4382         (default_elf_fini_array_asm_out_destructor): Likewise.
4383         * varasm.c (elf_init_array_section): Likewise.
4384         (elf_fini_array_section): Likewise.
4385         (get_elf_initfini_array_priority_section): Likewise.
4386         (default_elf_init_array_asm_out_constructor): Likewise.
4387         (default_elf_fini_array_asm_out_destructor): Likewise.
4388
4389         * config/initfini-array.h: New.
4390
4391 2011-08-20  Richard Sandiford  <rdsandiford@googlemail.com>
4392
4393         * config/mips/mips.c (mips_class_max_nregs): Check that the mode is
4394         OK for ST_REGS and FP_REGS before taking those classes into account.
4395
4396 2011-08-20  Richard Sandiford  <rdsandiford@googlemail.com>
4397
4398         * config/mips/mips.c (mips_reorg_process_insns): Check for jumps
4399         before checking for annulled branches.
4400
4401 2011-08-20  Uros Bizjak  <ubizjak@gmail.com>
4402
4403         * config/i386/i386.c (ix86_binary_operator_ok): Use
4404         satisfies_constraint_L.
4405
4406 2011-08-20  Uros Bizjak  <ubizjak@gmail.com>
4407             Michael Matz  <matz@suse.de>
4408
4409         * config/i386/i386.c (ix86_expand_round_sse4): Expand as
4410         trunc (a + copysign (nextafter (0.5, 0.0), a)).
4411
4412 2011-08-20  Anatoly Sokolov  <aesok@post.ru>
4413
4414         * doc/tm.texi.in (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
4415         * doc/tm.texi: Regenerate.
4416         * targhooks.c (default_preferred_output_reload_class): Don't use
4417         PREFERRED_OUTPUT_RELOAD_CLASS macro.
4418         * system.h (PREFERRED_OUTPUT_RELOAD_CLASS): Poison.
4419
4420 2011-08-20  Jakub Jelinek  <jakub@redhat.com>
4421
4422         PR tree-optimization/48739
4423         * tree-ssa.c: Include cfgloop.h.
4424         (execute_update_addresses_taken): When updating ssa, if in loop closed
4425         SSA form, call rewrite_into_loop_closed_ssa instead of update_ssa.
4426         * Makefile.in (tree-ssa.o): Depend on $(CFGLOOP_H).
4427
4428 2011-08-19  Vladimir Makarov  <vmakarov@redhat.com>
4429
4430         PR rtl-optimization/49936
4431         * ira.c (ira_init_register_move_cost): Ignore too small subclasses
4432         for calculation of max register move costs.
4433
4434 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
4435
4436         * c-parser.c (c_parser_postfix_expression): Convert operands of
4437         __builtin_complex to their semantic types.
4438
4439 2011-08-19  H.J. Lu  <hongjiu.lu@intel.com>
4440
4441         PR middle-end/49721
4442         * explow.c (convert_memory_address_addr_space): Also permute the
4443         conversion and addition of constant for zero-extend.
4444
4445 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
4446
4447         * c-parser.c (c_parser_postfix_expression): Handle RID_BUILTIN_COMPLEX.
4448         * doc/extend.texi (__builtin_complex): Document.
4449
4450 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
4451
4452         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Handle constants
4453         beyond conversions.
4454         (convert_mult_to_widen): Convert constant inputs to the right type.
4455         (convert_plusminus_to_widen): Don't automatically reject inputs that
4456         are not an SSA_NAME.
4457         Convert constant inputs to the right type.
4458
4459 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
4460
4461         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Convert add_rhs
4462         to the correct type.
4463
4464 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
4465
4466         * tree-ssa-math-opts.c (convert_mult_to_widen): Better handle
4467         unsigned inputs of different modes.
4468         (convert_plusminus_to_widen): Likewise.
4469
4470 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
4471
4472         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Add new argument
4473         'type'.
4474         Use 'type' from caller, not inferred from 'rhs'.
4475         Don't reject non-conversion statements. Do return lhs in this case.
4476         (is_widening_mult_p): Add new argument 'type'.
4477         Use 'type' from caller, not inferred from 'stmt'.
4478         Pass type to is_widening_mult_rhs_p.
4479         (convert_mult_to_widen): Pass type to is_widening_mult_p.
4480         (convert_plusminus_to_widen): Likewise.
4481
4482 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
4483
4484         * tree-ssa-math-opts.c (is_widening_mult_p): Remove FIXME.
4485         Ensure the the larger type is the first operand.
4486
4487 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
4488
4489         * tree-ssa-math-opts.c (convert_mult_to_widen): Convert
4490         unsupported unsigned multiplies to signed.
4491         (convert_plusminus_to_widen): Likewise.
4492
4493 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
4494
4495         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Permit a single
4496         conversion statement separating multiply-and-accumulate.
4497
4498 2011-08-19  Richard Guenther  <rguenther@suse.de>
4499
4500         PR tree-optimization/50067
4501         * tree-data-ref.c (dr_analyze_indices): Simplify, strip MEM_REF
4502         offset only if we accounted for it.
4503
4504 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
4505
4506         * config/arm/arm.md (maddhidi4): Remove '*' from name.
4507         * expr.c (expand_expr_real_2): Use find_widening_optab_handler.
4508         * optabs.c (find_widening_optab_handler_and_mode): New function.
4509         (expand_widen_pattern_expr): Use find_widening_optab_handler.
4510         (expand_binop_directly): Likewise.
4511         (expand_binop): Likewise.
4512         * optabs.h (find_widening_optab_handler): New macro define.
4513         (find_widening_optab_handler_and_mode): New prototype.
4514         * tree-cfg.c (verify_gimple_assign_binary): Adjust WIDEN_MULT_EXPR
4515         type precision rules.
4516         (verify_gimple_assign_ternary): Likewise for WIDEN_MULT_PLUS_EXPR.
4517         * tree-ssa-math-opts.c (build_and_insert_cast): New function.
4518         (is_widening_mult_rhs_p): Allow widening by more than one mode.
4519         Explicitly disallow mis-matched input types.
4520         (convert_mult_to_widen): Use find_widening_optab_handler, and cast
4521         input types to fit the new handler.
4522         (convert_plusminus_to_widen): Likewise.
4523
4524 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
4525
4526         * expr.c (expand_expr_real_2): Use widening_optab_handler.
4527         * genopinit.c (optabs): Use set_widening_optab_handler for $N.
4528         (gen_insn): $N now means $a must be wider than $b, not consecutive.
4529         * optabs.c (widened_mode): New function.
4530         (expand_widen_pattern_expr): Use widening_optab_handler.
4531         (expand_binop_directly): Likewise.
4532         (expand_binop): Likewise.
4533         * optabs.h (widening_optab_handlers): New struct.
4534         (optab_d): New member, 'widening'.
4535         (widening_optab_handler): New function.
4536         (set_widening_optab_handler): New function.
4537         * tree-ssa-math-opts.c (convert_mult_to_widen): Use
4538         widening_optab_handler.
4539         (convert_plusminus_to_widen): Likewise.
4540
4541 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
4542
4543         * c-decl.c (grokdeclarator): Diagnose _Noreturn for non-C1X if
4544         pedantic.
4545         * c-parser.c (c_parser_declspecs): Include _Noreturn in syntax comment.
4546         * ginclude/stdnoreturn.h (noreturn): Don't define for C++.
4547
4548 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
4549
4550         * opth-gen.awk: Do not declare target save/restore structures and
4551         functions if IN_RTS defined.
4552
4553 2011-08-19  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
4554
4555         PR target/49437
4556         * config/arm/arm.c (arm_output_epilogue): Properly handle epilogue
4557         when stack was realigned in interrupt handler prologue.
4558
4559 2011-08-18  Joseph Myers  <joseph@codesourcery.com>
4560
4561         * c-decl.c (shadow_tag_warned): Check for _Noreturn.
4562         (quals_from_declspecs): Assert _Noreturn not present.
4563         (grokdeclarator): Handle _Noreturn.
4564         (build_null_declspecs): Initialize noreturn_p.
4565         (declspecs_add_scspec): Handle RID_NORETURN.
4566         * c-parser.c (c_token_starts_declspecs, c_parser_declspecs)
4567         (c_parser_attributes): Handle RID_NORETURN.
4568         * c-tree.h (struct c_declspecs): Add noreturn_p.
4569         * ginclude/stdnoreturn.h: New.
4570         * Makefile.in (USER_H): Add stdnoreturn.h.
4571
4572 2011-08-18  Kirill Yukhin  <kirill.yukhin@intel.com>
4573
4574         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX2_SET): New.
4575         (OPTION_MASK_ISA_AVX_UNSET): Update.
4576         (OPTION_MASK_ISA_AVX2_UNSET): New.
4577         (ix86_handle_option): Handle OPT_mavx2 case.
4578         * config/i386/cpuid.h (bit_AVX2): New.
4579         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
4580         AVX2 feature.
4581         * config/i386/i386-c.c (ix86_target_macros_internal):
4582         Conditionally define __AVX2__.
4583         * config/i386/i386.c (ix86_option_override_internal): Define PTA_AVX2.
4584         Define "core-avx2" processor alias.  Handle avx2 option.
4585         (ix86_valid_target_attribute_inner_p): Handle avx2 option.
4586         * config/i386/i386.h (TARGET_AVX2): New.
4587         * config/i386/i386.opt (mavx2): New.
4588         * doc/invoke.texi: Document -mavx2.
4589
4590 2011-08-18  Vladimir Makarov  <vmakarov@redhat.com>
4591
4592         PR rtl-optimization/49890
4593         * ira-costs.c (setup_regno_cost_classes_by_aclass): Don't exclude
4594         subclasses of class which is superset of a pressure class.
4595
4596 2011-08-18  H.J. Lu  <hongjiu.lu@intel.com>
4597             Igor Zamyatin <igor.zamyatin@intel.com>
4598
4599         * config/i386/i386-c.c (ix86_target_macros_internal): Replace int
4600         with HOST_WIDE_INT for isa_flag.
4601         (ix86_pragma_target_parse): Replace int with HOST_WIDE_INT for
4602         isa variables.
4603
4604         * config/i386/i386.c (ix86_target_string): Replace int with
4605         HOST_WIDE_INT for isa.  Use HOST_WIDE_INT_PRINT to print isa.
4606         (ix86_target_opts): Replace int with HOST_WIDE_INT on mask.
4607         (pta_flags): Removed.
4608         (PTA_XXX): Redefined as (HOST_WIDE_INT_1 << X).
4609         (pta): Use HOST_WIDE_INT on flags.
4610         (builtin_isa): Use HOST_WIDE_INT on isa.
4611         (ix86_add_new_builtins): Likewise.
4612         (def_builtin): Use HOST_WIDE_INT on mask.
4613         (def_builtin_const): Likewise.
4614         (builtin_description): Likewise.
4615
4616         * config/i386/i386.opt (ix86_isa_flags): Replace int with
4617         HOST_WIDE_INT.
4618         (ix86_isa_flags_explicit): Likewise.
4619         (x_ix86_isa_flags_explicit): Likewise.
4620
4621 2011-08-17  Vladimir Makarov  <vmakarov@redhat.com>
4622
4623         PR rtl-optimization/50107
4624         * ira-int.h (ira_hard_reg_not_in_set_p): Remove.
4625         (ira_hard_reg_in_set_p): New.
4626
4627         * ira-color.c (calculate_saved_nregs): New.
4628         (assign_hard_reg): Use it.  Set up allocated_hard_reg_p for all
4629         hard regs.
4630         (allocno_reload_assign, fast_allocation): Use
4631         ira_hard_reg_set_intersection_p instead of
4632         ira_hard_reg_not_in_set_p.
4633
4634         * ira.c (setup_reg_renumber): Use
4635         ira_hard_reg_set_intersection_p instead of
4636         ira_hard_reg_not_in_set_p.
4637         (setup_allocno_assignment_flags, calculate_allocation_cost): Use
4638         ira_hard_reg_in_set_p instead of ira_hard_reg_not_in_set_p.
4639
4640         * ira-costs.c (ira_tune_allocno_costs): Use
4641         ira_hard_reg_set_intersection_p instead of
4642         ira_hard_reg_not_in_set_p.
4643
4644 2011-08-18  H.J. Lu  <hongjiu.lu@intel.com>
4645             Igor Zamyatin <igor.zamyatin@intel.com>
4646
4647         * hwint.h (HOST_WIDE_INT_1): New.
4648
4649         * opt-functions.awk (switch_bit_fields): Initialize the
4650         host_wide_int field.
4651         (host_wide_int_var_name): New.
4652         (var_type_struct): Check and return HOST_WIDE_INT.
4653
4654         * opt-read.awk: Handle HOST_WIDE_INT for "Variable".
4655
4656         * optc-save-gen.awk: Support HOST_WIDE_INT on var_target_other.
4657
4658         * opth-gen.awk: Use HOST_WIDE_INT_1 on HOST_WIDE_INT.  Properly
4659         check masks for HOST_WIDE_INT.
4660
4661         * opts-common.c (set_option): Support HOST_WIDE_INT flag_var.
4662         (option_enabled): Likewise.
4663         (get_option_state): Likewise.
4664
4665         * opts.h (cl_option): Add cl_host_wide_int.  Change var_value
4666         to HOST_WIDE_INT.
4667
4668 2011-08-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4669             Marc Glisse  <marc.glisse@normalesup.org>
4670
4671         PR libstdc++-v3/1773
4672         * target.def (decl_mangling_context): New C++ hook.
4673         * doc/tm.texi: Regenerate.
4674         * config/sol2-cxx.c, config/sol2-stubs.c: New files.
4675         * config/sol2-protos.h: Group by source file.
4676         (solaris_cxx_decl_mangling_context): Declare.
4677         * config/sol2.h (TARGET_CXX_DECL_MANGLING_CONTEXT): Define.
4678         * config/t-sol2 (sol2-cxx.o, sol2-stubs.o): New targets.
4679         Use $<.
4680         * config.gcc (*-*-solaris2*): Add sol2-cxx.o to cxx_target_objs.
4681         Add sol2-stubs.o to extra_objs.
4682
4683 2011-08-18  Jakub Jelinek  <jakub@redhat.com>
4684
4685         PR target/50009
4686         * stor-layout.c (update_alignment_for_field): Don't ICE on
4687         packed flexible array members if ms_bitfield_layout_p.
4688
4689         PR target/50092
4690         * config/i386/i386.c (assign_386_stack_local): Call validize_mem
4691         on the result before returning it.
4692
4693         PR debug/50017
4694         * tree-vect-stmts.c (vect_finish_stmt_generation): If gsi_stmt (*gsi)
4695         is a debug stmt, use location of the first non-debug stmt after it.
4696
4697 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
4698
4699         * config/arm/arm.c (arm_rtx_costs_1): Don't modify the costs of SET.
4700         (arm_size_rtx_costs): Likewise.
4701
4702 2011-08-18  Richard Guenther  <rguenther@suse.de>
4703
4704         * tree.h (tree_int_cst_msb): Remove.
4705         * tree.c (tree_int_cst_msb): Likewise.
4706         (tree_int_cst_sign_bit): Move from ...
4707         * tree-ssa-loop-ivopts.c (tree_int_cst_sign_bit): ... here.
4708
4709 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
4710
4711         * doc/tm.texi.in (TARGET_RTX_COSTS): Add an opno paramter.
4712         * doc/tm.texi: Regenerate.
4713         * target.def (rtx_costs): Add an opno parameter.
4714         * hooks.h (hook_bool_rtx_int_int_intp_bool_false): Replace with...
4715         (hook_bool_rtx_int_int_int_intp_bool_false): ...this.
4716         * hooks.c (hook_bool_rtx_int_int_intp_bool_false): Replace with...
4717         (hook_bool_rtx_int_int_int_intp_bool_false): ...this.
4718         * cse.c (COST_IN): Add an opno parameter.
4719         (notreg_cost): Likewise.  Update call to rtx_cost.
4720         (COST, fold_rtx): Update accordingly.
4721         * dojump.c (prefer_and_bit_test): Update call to rtx_cost.
4722         * expmed.c (emit_store_flag): Likewise.
4723         * optabs.c (avoid_expensive_constant): Add an opno parameter.
4724         Update call to rtx_cost.
4725         (expand_binop_directly, expand_binop): Likewise.
4726         (expand_twoval_binop, prepare_cmp_insn): Likewise.
4727         * rtl.h (rtx_cost, get_full_rtx_cost): Add opno parameters.
4728         (set_src_cost, get_full_set_src_cost): Update accordingly.
4729         * rtlanal.c (rtx_cost): Add an opno parameter.  Update call
4730         to target hook.
4731         (get_full_rtx_cost): Add an opno paramter.  Update calls to rtx_cost.
4732         (default_adress_cost): Update calls to rtx_cost.
4733
4734         * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs)
4735         (arm_slowmul_rtx_costs): Adjust calls to rtx_cost.
4736         (arm_rtx_costs): Add an opno parameter.
4737         * config/alpha/alpha.c (alpha_rtx_costs): Add an opno parameter and
4738         adjust any recursive rtx-cost calls.
4739         * config/avr/avr.c (avr_operand_rtx_cost, avr_rtx_costs): Likewise.
4740         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
4741         * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
4742         * config/cris/cris.c (cris_rtx_costs): Likewise.
4743         * config/frv/frv.c (frv_rtx_costs): Likewise.
4744         * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
4745         * config/i386/i386.c (ix86_rtx_costs): Likewise.
4746         * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
4747         * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
4748         * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
4749         * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
4750         * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
4751         * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
4752         * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
4753         * config/mep/mep.c (mep_rtx_cost): Likewise.
4754         * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
4755         * config/mips/mips.c (mips_binary_cost): Update call to rtx_cost.
4756         (mips_zero_extend_cost): Add an opno parameter.
4757         * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
4758         * config/mn10300/mn10300.c (mn10300_address_cost): Update call
4759         to rtx_cost.
4760         (mn10300_rtx_costs): Add an opno parameter and adjust any recursive
4761         rtx-cost calls.
4762         * config/pa/pa.c (hppa_rtx_costs): Likewise.
4763         * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
4764         * config/picochip/picochip.c (picochip_rtx_costs): Likewise.
4765         * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
4766         (rs6000_debug_rtx_costs): Likewise.
4767         * config/s390/s390.c (s390_rtx_costs): Likewise.
4768         * config/score/score-protos.h (score_rtx_costs): Likewise.
4769         * config/score/score.c (score_rtx_costs): Likewise.
4770         * config/sh/sh.c (andcosts): Update call to rtx_cost.
4771         (sh_rtx_costs): Add an opno parameter.
4772         * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
4773         * config/spu/spu.c (spu_rtx_costs): Likewise.
4774         * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
4775         * config/v850/v850.c (v850_rtx_costs): Likewise.
4776         * config/vax/vax.c (vax_rtx_costs): Likewise.
4777         * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
4778
4779 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
4780
4781         * rtl.h (set_src_cost, get_full_set_src_cost): New functions.
4782         * auto-inc-dec.c (attempt_change): Use set_src_cost instead of
4783         rtx_cost.
4784         * calls.c (precompute_register_parameters): Likewise.
4785         * combine.c (expand_compound_operation, make_extraction): Likewise.
4786         (force_to_mode, distribute_and_simplify_rtx): Likewise.
4787         * dse.c (find_shift_sequence): Likewise.
4788         * expmed.c (init_expmed, expand_mult, expand_smod_pow2): Likewise.
4789         * expr.c (compress_float_constant): Likewise.
4790         * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
4791         * gcse.c (want_to_gcse_p): Likewise.
4792         * ifcvt.c (noce_try_sign_mask): Likewise.
4793         * loop-doloop.c (doloop_optimize): Likewise.
4794         * loop-invariant.c (create_new_invariant): Likewise.
4795         * optabs.c (avoid_expensive_constant): Likewise.
4796         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands)
4797         (try_replace_in_use, reload_cse_move2add): Likewise.
4798         * reload1.c (calculate_elim_costs_all_insns): Likewise.
4799         (note_reg_elim_costly): Likewise.
4800         * rtlanal.c (insn_rtx_cost): Likewise.
4801         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
4802         * stmt.c (lshift_cheap_p): Likewise.
4803         * tree-ssa-loop-ivopts.c (seq_cost, computation_cost): Likewise.
4804         * config/avr/avr.c (final_prescan_insn): Likewise.
4805         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
4806         * config/mips/mips.c (mips_binary_cost, mips_rtx_costs): Likewise.
4807
4808 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
4809
4810         * rtl.h (set_rtx_cost, get_full_set_rtx_cost): New functions.
4811         * auto-inc-dec.c (attempt_change): Use set_rtx_cost.
4812         * cfgloopanal.c (seq_cost): Likewise.
4813         * loop-invariant.c (create_new_invariant): Likewise.
4814         * postreload.c (move2add_use_add2_insn, move2add_use_add3_insn)
4815         (reload_cse_move2add): Use get_full_set_rtx_cost.
4816
4817 2011-08-18  Richard Guenther  <rguenther@suse.de>
4818
4819         * expr.c (get_inner_reference): Fix typo in last change.
4820
4821 2011-08-18  Paolo Carlini  <paolo.carlini@oracle.com>
4822             Joseph Myers  <joseph@codesourcery.com>
4823
4824         PR tree-optimization/49963
4825         * hwint.c (absu_hwi): Define.
4826         * hwint.h (absu_hwi): Declare.
4827         * fold-const.c (fold_plusminus_mult_expr): Use absu_hwi instead
4828         of abs_hwi.
4829         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
4830         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
4831
4832 2011-08-18  Richard Guenther  <rguenther@suse.de>
4833
4834         * expr.c (get_inner_reference): Sign-extend the constant
4835         twos-complement offset before doing arbitrary precision
4836         arithmetic on it.
4837         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
4838         (get_constraint_for_1): Pass the offset of a MEM_REF unchanged
4839         to get_constraint_for_ptr_offset.
4840
4841 2011-08-17  Kaz Kojima  <kkojima@gcc.gnu.org>
4842
4843         PR target/50068
4844         * config/sh/sh.c (sh_output_mi_thunk): Don't call dbr_schedule.
4845
4846 2011-08-17  Richard Guenther  <rguenther@suse.de>
4847
4848         * tree.h (convert_to_ptrofftype_loc): New function.
4849         (convert_to_ptrofftype): Define.
4850         * builtins.c (expand_builtin_bzero): Use size_type_node.
4851         (fold_builtin_bzero): Likewise.
4852         (std_gimplify_va_arg_expr): Build the BIT_AND_EXPR on the pointer.
4853         * c-typeck.c (build_unary_op): Use convert_to_ptrofftype_loc.
4854         * cgraphunit.c (thunk_adjust): Use fold_build_pointer_plus_loc.
4855         (cgraph_redirect_edge_call_stmt_to_callee): Use size_int.
4856         * expr.c (expand_expr_addr_expr_1): Use fold_build_pointer_plus.
4857         * fold-const.c (build_range_check): Negate using the original type.
4858         (fold_unary_loc): Use fold_build_pointer_plus_loc.
4859         * gimple-fold.c (gimple_adjust_this_by_delta): Use
4860         convert_to_ptrofftype.
4861         * gimplify.c (gimplify_self_mod_expr): Likewise.
4862         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Likewise.
4863         (graphite_create_new_loop_guard): Likewise.
4864         * graphite-sese-to-poly.c (my_long_long): Remove.
4865         (scop_ivs_can_be_represented): Adjust.
4866         * tree-cfg.c (verify_gimple_assign_unary): Use ptrofftype_p.
4867         * tree-chrec.c (chrec_fold_plus_1): Use fold_build_pointer_plus.
4868         * tree-loop-distribution.c (build_size_arg_loc): Use
4869         size_type_node.
4870         (generate_memset_zero): Simplify.
4871         * tree-mudflap.c: Use fold_convert, not convert.
4872         * tree-predcom.c (suitable_reference_p): Expand DR_OFFSET in
4873         its own type.
4874         (determine_offset): Likewise for DR_STEP.
4875         (valid_initializer_p): Likewise.
4876         * tree-profile.c (prepare_instrumented_value): Convert the pointer
4877         to an integer type of same size.
4878         * tree-scalar-evolution.c (interpret_rhs_expr): Do not refer
4879         to sizetype without need.
4880         * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
4881         * tree-ssa-loop-ivopts.c (find_bivs): Use convert_to_ptrofftype.
4882         * tree-ssa-loop-manip.c (create_iv): Likewise.
4883         (determine_exit_conditions): Adjust comment.
4884         * tree-ssa-pre.c (create_expression_by_pieces): Use
4885         convert_to_ptrofftype.
4886         * tree-ssa-structalias.c (get_constraint_for_1): Likewise.
4887         * varasm.c (array_size_for_constructor): Compute using double_ints.
4888
4889 2011-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4890
4891         * config/spu/spu.c (spu_emit_branch_or_set): Avoid reverse tests
4892         when generating an integer result where possible.  Short-cut
4893         comparison against 0 also for QImode.
4894
4895 2011-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4896
4897         * config/spu/spu.h (LEGITIMIZE_RELOAD_ADDRESS): New macro.
4898         * config/spu/spu-protos.h (spu_legitimize_reload_address): Add
4899         prototype.
4900         * config/spu/spu.c (spu_legitimize_reload_address): New function.
4901         (spu_legitimate_address_p): Do not check displacement if the base
4902         is an eliminable stack register.
4903
4904 2011-08-16  Anatoly Sokolov  <aesok@post.ru>
4905
4906         * config/m32c/m32c.h (PREFERRED_RELOAD_CLASS,
4907         PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
4908         * config/m32c/m32c-protos.h (m32c_preferred_reload_class,
4909         m32c_preferred_output_reload_class): Remove.
4910         * config/m32c/m32c.c (m32c_preferred_reload_class): Make static.
4911         Change rclass argument and return types to reg_class_t. Use
4912         reg_class_subset_p instead of class_sizes.
4913         (m32c_preferred_output_reload_class): Make static. Change rclass
4914         argument and return types to reg_class_t.
4915         (TARGET_PREFERRED_RELOAD_CLASS,
4916         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
4917
4918 2011-08-16  Kai Tietz  <ktietz@redhat.com>
4919
4920         * config/i386/mingw32.h (GOMP_SELF_SPEC): Add -pthread option.
4921
4922 2011-08-16  Richard GUenther  <rguenther@suse.de>
4923
4924         PR tree-optimization/50082
4925         * tree-ssa-forwprop.c (combine_cond_expr_cond): Handle overflow
4926         warnings here, instead of ...
4927         (ssa_forward_propagate_and_combine): ... here.
4928         (forward_propagate_into_comparison_1): Adjust.
4929         (forward_propagate_into_comparison): Likewise.
4930         (forward_propagate_into_gimple_cond): Likewise.
4931         (forward_propagate_into_cond): Likewise.
4932
4933 2011-08-16  Andreas Schwab  <schwab@redhat.com>
4934
4935         * ggc.h (ggc_alloc_rtvec_sized): Use ggc_alloc_zone_rtvec_def
4936         instead of ggc_alloc_zone_vec_rtvec_def.
4937
4938 2011-08-16  Richard Guenther  <rguenther@suse.de>
4939
4940         * tree.h (ptrofftype_p): New helper function.
4941         * tree-cfg.c (verify_expr): Use ptrofftype_p for POINTER_PLUS_EXPR
4942         offset verification.
4943         (verify_gimple_assign_binary): Likewise.
4944         * tree.c (build2_stat): Likewise.
4945         * tree-chrec.c (chrec_fold_plus_poly_poly): Likewise.
4946         (reset_evolution_in_loop): Likewise.
4947         * tree-chrec.h (build_polynomial_chrec): Likewise.
4948
4949 2011-08-16  Liang Wang  <lwang1@marvell.com>
4950
4951         * ggc.h (ggc_alloc_rtvec_sized): Change arguments of
4952         ggc_alloc_zone_vec_rtvec_def.
4953
4954 2011-08-16  Richard Guenther  <rguenther@suse.de>
4955
4956         * tree-vrp.c (extract_range_from_multiplicative_op_1): New
4957         helper factored out from ...
4958         (extract_range_from_binary_expr_1): ... here.  Re-structure
4959         to not glob handling too different tree codes.
4960
4961 2011-08-15  Richard Henderson  <rth@redhat.com>
4962
4963         PR middle-end/50006
4964         * explow.c (allocate_dynamic_stack_space): Move suppress_reg_args_size
4965         setting out to include allocate_stack named pattern as well.
4966         * builtins.c (expand_builtin_apply): Add ARG_SIZE 0 note.
4967         * stmt.c (expand_stack_restore): Likewise.
4968
4969 2011-08-15  Richard Guenther  <rguenther@suse.de>
4970
4971         PR middle-end/50082
4972         * fold-const.c (maybe_canonicalize_comparison_1): Properly
4973         convert the modified operand to the other operand type.
4974         (fold_comparison): Call maybe_canonicalize_comparison_1 with
4975         useless conversions stripped from comparison operands.
4976
4977 2011-08-15  Richard Guenther  <rguenther@suse.de>
4978
4979         * tree-vrp.c (value_range_nonnegative_p): Fix anti-range case.
4980         (extract_range_from_unary_expr_1): Restructure.
4981
4982 2011-08-15  Richard Guenther  <rguenther@suse.de>
4983
4984         PR tree-optimization/50058
4985         * tree-ssa-sccvn.c (vn_reference_lookup_3): Relax aggregate
4986         copy matching.
4987
4988 2011-08-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4989
4990         PR target/50022
4991         * config/arm/arm.c (output_move_double): Add 2 parameters
4992         to count the number of insns emitted and whether to emit or not.
4993         Use the flag to decide when to emit and count number of instructions
4994         that will be emitted.
4995         Handle case where output_move_double might be called for calculating
4996         lengths with an invalid constant.
4997         (arm_count_output_move_double_insns): Define.
4998         * config/arm/arm-protos.h (arm_count_output_move_double_insns): Declare.
4999         (output_move_double): Adjust prototype.
5000         * config/arm/vfp.md ("*movdi_vfp"): Adjust call to
5001         output_move_double.
5002         ("*movdi_vfp_cortexa8"): Likewise and add attribute
5003         for ce_count.
5004         * config/arm/arm.md ("*arm_movdi"): Adjust call to output_move_double.
5005         ("*movdf_soft_insn"): Likewise.
5006         * config/arm/cirrus.md ("*cirrus_arm_movdi"): Likewise.
5007         ("*cirrus_thumb2_movdi"): Likewise.
5008         ("*thumb2_cirrus_movdf_hard_insn"): Likewise.
5009         ("*cirrus_movdf_hard_insn"): Likewise.
5010         * config/arm/neon.md (*neon_mov<mode> VD): Likewise.
5011         * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Likewise.
5012         ("mov<mode>_internal VMMX"): Likewise.
5013         * config/arm/fpa.md (*movdf_fpa, *thumb2_movdf_fpa): Likewise.
5014
5015 2011-08-14  Uros Bizjak  <ubizjak@gmail.com>
5016
5017         * config/i386/i386.c (ix86_expand_round_sse4): New function.
5018         * config/i386/i386-protos.h (ix86_expand_round_sse4): New prototype.
5019         * config/i386/i386.md (round<mode>2): Use ix86_expand_round_sse4
5020         for TARGET_ROUND.
5021
5022         (rint<mode>2): Simplify TARGET_ROUND check.
5023         (floor<mode>2): Ditto.
5024         (ceil<mode>2): Ditto.
5025         (btrunc<mode>2): Ditto.
5026
5027 2011-08-14  Anatoly Sokolov  <aesok@post.ru>
5028
5029         * config/mmix/mmix.c (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Redefine
5030         as mmix_preferred_output_reload_class.
5031
5032 2011-08-14  Georg-Johann Lay  <avr@gjlay.de>
5033
5034         * PR target/49903
5035         * config/avr/avr.md (UNSPEC_IDENTITY): New c_enum.
5036         (branch_unspec): New insn.
5037         (branch): Beauty farm.
5038         * config/avr/avr.c (compare_condition): Use JUMP_P.  Test SET_SRC
5039         to be IF_THEN_ELSE.
5040         (avr_compare_pattern, avr_reorg_remove_redundant_compare):
5041         New static functions.
5042         (avr_reorg): Use them.  Use next_real_insn instead of NEXT_INSN.
5043         Use CONST_INT_P.  Beauty.
5044
5045 2011-08-12  Richard Henderson  <rth@redhat.com>
5046
5047         PR rtl-opt/49994
5048         * sched-init.h (struct deps_desc): Add sched_before_next_jump.
5049         * sched-deps.c (init_deps): Clear it.
5050         (deps_analyze_insn): Consume it.
5051         (sched_analyze_insn): Fill it.
5052
5053 2011-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5054
5055         PR target/48328
5056         * config/arm/arm.h (CASE_VECTOR_SHORTEN_MODE): Fix distance
5057         for tbh instructions.
5058
5059 2011-08-12  Diego Novillo  <dnovillo@google.com>
5060
5061         * data-streamer.h (streamer_write_zero): Rename from output_zero.
5062         (streamer_write_uhwi): Rename from lto_output_uleb128.
5063         (streamer_write_hwi): Rename from output_sleb128.
5064         (streamer_write_string): Rename from lto_output_string.
5065         (streamer_string_index): Rename from lto_string_index.
5066         (streamer_write_string_with_length): Rename from
5067         lto_output_string_with_length.
5068         (streamer_write_uhwi_stream): Rename from lto_output_uleb128_stream.
5069         (streamer_write_hwi_stream): Rename from lto_output_sleb128_stream.
5070         (streamer_read_string): Rename from lto_input_string.
5071         (streamer_read_indexed_string): Rename from input_string_internal.
5072         (streamer_read_uhwi): Rename from lto_input_uleb128.
5073         (streamer_read_hwi): Rename from lto_input_sleb128.
5074         (streamer_write_hwi_in_range): Rename from lto_output_int_in_range.
5075         (streamer_read_hwi_in_range): Rename from lto_input_int_in_range.
5076         (streamer_write_enum): Rename from lto_output_enum.
5077         (streamer_read_enum): Rename from lto_input_enum.
5078         (streamer_write_record_start): Rename from output_record_start.
5079         (streamer_read_record_start): Rename from input_record_start.
5080         (streamer_write_bitpack): Rename from lto_output_bitpack.
5081         (streamer_read_bitpack): Rename from lto_input_bitpack.
5082         (streamer_write_char_stream): Rename from lto_output_1_stream.
5083         (streamer_read_uchar): Rename from lto_input_1_unsigned.
5084         * tree-streamer.h (streamer_cache_d): Rename from lto_streamer_cache_d.
5085         (streamer_handle_as_builtin_p): Rename from lto_stream_as_builtin_p.
5086         (streamer_read_string_cst): Rename from input_string_cst.
5087         (streamer_read_chain): Rename from lto_input_chain.
5088         (streamer_alloc_tree): Rename from lto_materialize_tree.
5089         (streamer_read_tree_body): Rename from lto_input_tree_pointers.
5090         (streamer_get_pickled_tree): Rename from lto_get_pickled_tree.
5091         (streamer_get_builtin_tree): Rename from lto_get_builtin_tree.
5092         (streamer_read_integer_cst): Rename from lto_input_integer_cst.
5093         (streamer_read_tree_bitfields): Rename from tree_read_bitfields.
5094         (streamer_write_chain): Rename from lto_output_chain.
5095         (streamer_write_tree_header): Rename from lto_output_tree_header.
5096         (streamer_pack_tree_bitfields): Rename from pack_value_fields.
5097         (streamer_write_tree_body): Rename from lto_output_tree_pointers.
5098         (streamer_write_integer_cst): Rename from lto_output_integer_cst.
5099         (streamer_write_builtin): Rename from lto_output_builtin_tree.
5100         (streamer_check_handled_ts_structures): Rename from
5101         check_handled_ts_structures.
5102         (streamer_tree_cache_insert): Rename from lto_streamer_cache_insert.
5103         (streamer_tree_cache_insert_at): Rename from
5104         lto_streamer_cache_insert_at.
5105         (streamer_tree_cache_append): Rename from lto_streamer_cache_append.
5106         (streamer_tree_cache_lookup): Rename from lto_streamer_cache_lookup.
5107         (streamer_tree_cache_get): Rename from lto_streamer_cache_get.
5108         (streamer_tree_cache_create): Rename from lto_streamer_cache_create.
5109         (streamer_tree_cache_delete): Rename from lto_streamer_cache_delete.
5110         * tree-streamer-out.c (write_string_cst): Rename from output_string_cst.
5111         (write_identifier): Rename from output_identifier.
5112         (write_ts_common_tree_pointers): Rename from
5113         lto_output_ts_common_tree_pointers.
5114         (write_ts_vector_tree_pointers): Rename from
5115         lto_output_ts_vector_tree_pointers.
5116         (write_ts_complex_tree_pointers): Rename from
5117         lto_output_ts_complex_tree_pointers.
5118         (write_ts_decl_minimal_tree_pointers): Rename from
5119         lto_output_ts_decl_minimal_tree_pointers.
5120         (write_ts_decl_common_tree_pointers): Rename from
5121         lto_output_ts_decl_common_tree_pointers.
5122         (write_ts_decl_non_common_tree_pointers): Rename from
5123         lto_output_ts_decl_non_common_tree_pointers.
5124         (write_ts_decl_with_vis_tree_pointers): Rename from
5125         lto_output_ts_decl_with_vis_tree_pointers.
5126         (write_ts_field_decl_tree_pointers): Rename from
5127         lto_output_ts_field_decl_tree_pointers.
5128         (write_ts_function_decl_tree_pointers): Rename from
5129         lto_output_ts_function_decl_tree_pointers.
5130         (write_ts_type_common_tree_pointers): Rename from
5131         lto_output_ts_type_common_tree_pointers.
5132         (write_ts_type_non_common_tree_pointers): Rename from
5133         lto_output_ts_type_non_common_tree_pointers.
5134         (write_ts_list_tree_pointers): Rename from
5135         lto_output_ts_list_tree_pointers.
5136         (write_ts_vec_tree_pointers): Rename from
5137         lto_output_ts_vec_tree_pointers.
5138         (write_ts_exp_tree_pointers): Rename from
5139         lto_output_ts_exp_tree_pointers.
5140         (write_ts_block_tree_pointers): Rename from
5141         lto_output_ts_block_tree_pointers.
5142         (write_ts_binfo_tree_pointers): Rename from
5143         lto_output_ts_binfo_tree_pointers.
5144         (write_ts_constructor_tree_pointers): Rename from
5145         lto_output_ts_constructor_tree_pointers.
5146         (write_ts_target_option): Rename from lto_output_ts_target_option.
5147         (write_ts_translation_unit_decl_tree_pointers): Rename from
5148         lto_output_ts_translation_unit_decl_tree_pointers.
5149         * tree-streamer.c (streamer_tree_cache_add_to_node_array):
5150         Rename from lto_streamer_cache_add_to_node_array.
5151         (streamer_tree_cache_insert_1): Rename from lto_streamer_cache_insert_1.
5152         (record_common_node): Rename from lto_record_common_node.
5153
5154         * streamer-hooks.h (bitpack_d, lto_streamer_cache_d): Remove forward
5155         declarations.
5156         * data-streamer-in.c (lto_input_widest_uint_uleb128): Remove unused
5157         function.
5158         * data-streamer-out.c (lto_output_widest_uint_uleb128_stream): Remove
5159         unused function.
5160         * Makefile.in (lto-section-out.o): Add dependency on DATA_STREAMER_H.
5161         (ipa-reference.o): Likewise.
5162         * lto-section-out.c: Include data-streamer.h.
5163         * ipa-reference.c: Include data-streamer.h.
5164
5165 2011-08-12  Nick Clifton  <nickc@redhat.com>
5166
5167         * builtins.c (expand_builtin_memcmp): Do not use cmpstrnsi pattern.
5168         * doc/md.texi (cmpstrn): Note that the comparison stops if both
5169         fetched bytes are zero.
5170         (cmpstr): Likewise.
5171         (cmpmem): Note that the comparison does not stop if both of the
5172         fetched bytes are zero.
5173
5174 2011-08-12  Uros Bizjak  <ubizjak@gmail.com>
5175
5176         * builtins.def (BUILT_IN_ICEIL{,F,L}, BUILT_IN_IFLOOR{,F,L}
5177         BUILT_IN_IRINT{,F,L}, BUILT_IN_IROUND{,F,L}: New builtin definitions.
5178         * convert.c (convert_to_integer): Convert to BUILT_IN_ICEIL,
5179         BUILT_IN_IFLOOR, BUILT_IN_IRINT or BUILT_INT_IROUND when converting
5180         to integer_type_node.
5181         * fold-const.c (tree_call_nonnegative_warnv_p): Handle BUILT_IN_ICEIL,
5182         BUILT_IN_IFLOOR, BUILT_IN_IRINT and BUILT_INT_IROUND.
5183         * builtins.c (expand_builtin_in): Ditto.
5184         (mathfn_built_in_1): Ditto.
5185         (expand_builtin_int_roundingfn): Handle BUILT_IN_ICEIL and
5186         BUILT_IN_IFLOOR.
5187         (expand_builtin_int_roundingfn_2): Handle BUILT_IN_IRINT and
5188         BUILT_IN_IROUND.
5189         (fold_fixed_mathfn): Canonicalize BUILT_IN_ICEIL, BUILTIN_IN_IFLOOR
5190         BUILT_IN_IRINT and BUILT_IN_IROUND to BUILT_IN_LCEIL,
5191         BUILTIN_IN_LFLOOR, BUILT_IN_LRINT and BUILT_IN_LROUND on ILP32 targets.
5192
5193 2011-08-12  Richard Guenther  <rguenther@suse.de>
5194
5195         * tree-vrp.c (extract_range_from_unary_expr_1): Implement -X as 0 - X.
5196
5197 2011-08-12  Romain Geissler  <romain.geissler@gmail.com>
5198
5199         * Makefile.in (PLUGIN_HEADERS): Add C_TREE_H.
5200
5201 2011-08-12  Richard Sandiford  <rdsandiford@googlemail.com>
5202
5203         * config/arm/arm.c (get_label_padding): New function.
5204         (create_fix_barrier, arm_reorg): Use it.
5205
5206 2011-08-11  Uros Bizjak  <ubizjak@gmail.com>
5207
5208         PR target/49781
5209         * config/i386/i386.md (*lea_5_zext): New.
5210         (*lea_6_zext): Ditto.
5211         * config/i386/predicates.md (const_32bit_mask): New predicate.
5212         (lea_address_operand): Reject AND.
5213         * config/i386/i386.c (ix86_decompose_address): Allow Dimode AND with
5214         const_32bit_mask immediate.
5215         (ix86_print_operand_address): Handle AND.
5216         (memory_address_length): Ditto.
5217
5218 2011-08-11  Romain Geissler  <romain.geissler@gmail.com>
5219             Brian Hackett  <bhackett1024@gmail.com>
5220
5221         * plugin.def: Add event for finish_decl.
5222         * plugin.c (register_callback, invoke_plugin_callbacks): Same.
5223         * c-decl.c (finish_decl): Invoke callbacks on above event.
5224         * doc/plugins.texi: Document above event.
5225
5226 2011-08-11  Richard Guenther  <rguenther@suse.de>
5227
5228         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid redundant
5229         lookups, make looking through aggregate copies stronger.
5230
5231 2011-08-11  Richard Henderson  <rth@redhat.com>
5232
5233         PR bootstrap/50018
5234         * expr.c (fixup_args_size_notes): Accept and ignore normal calls.
5235
5236 2011-08-11  Richard Guenther  <rguenther@suse.de>
5237
5238         * lto-cgraph.c (input_node): Use DECL_BUILT_IN.
5239         * tree-vrp.c (stmt_interesting_for_vrp): Likewise.
5240         (vrp_visit_stmt): Likewise.
5241
5242 2011-08-11  Richard Guenther  <rguenther@suse.de>
5243
5244         PR middle-end/50040
5245         * gimplify.c (gimplify_modify_expr_complex_part): Mark the
5246         load of the other piece with TREE_NO_WARNING.
5247         * tree-flow.h (warn_uninit): Adjust prototype.
5248         * tree-ssa.c (warn_uninit): Take uninitialized SSA name,
5249         the base variable and the expression that is used separately.
5250         Properly query all TREE_NO_WARNING flags.
5251         (struct walk_data): Remove.
5252         (warn_uninitialized_var): Likewise.
5253         (warn_uninitialized_vars): Do not walk gimple pieces but simply
5254         look at all SSA uses of the statement.  Handle unused memory
5255         separately.
5256         * tree-ssa-uninit.c (warn_uninitialized_phi): Adjust.
5257
5258 2011-08-11   Kazuhiro Inaoka  <kazuhiro.inaoka.ud@renesas.com>
5259
5260         * config/rx/rx.md (movsicc): Allow register to register transfers.
5261         (*movsicc): Likewise.
5262         (*stcc): Restrict this pattern to EQ and NE compares.
5263         (*stcc_reg): New pattern.  Works for any comparison but only for
5264         register transfers.
5265
5266 2011-08-11   Diego Novillo  <dnovillo@google.com>
5267
5268         * tree-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers):
5269         Call stream_write_tree instead of output_record_start.
5270         (lto_output_ts_binfo_tree_pointers): Likewise.
5271
5272         * streamer-hooks.h (stream_write_tree): Move from tree-streamer.h.
5273         Convert it to a macro.
5274         (stream_read_tree): Likewise.
5275
5276         * lto-streamer.h (lto_stream_as_builtin_p): Move ...
5277         * tree-streamer.h (lto_stream_as_builtin_p): ... here.
5278
5279         * lto-streamer-in.c (lto_read_tree): Call lto_streamer_cache_append
5280         and tree_read_bitfields.
5281         * lto-streamer-out.c (lto_is_streamable): Move from lto-streamer.c
5282         (lto_write_tree): Call it.
5283         * lto-streamer.c (lto_is_streamable): Move to lto-streamer-out.c
5284         * streamer-hooks.h (struct streamer_hooks): Remove fields
5285         name, is_streamable and alloc_tree. Update all users.
5286         * tree-streamer-in.c (tree_read_bitfields): Factor out of ...
5287         (lto_materialize_tree): ... here.
5288         Handle CALL_EXPR codes.
5289         Remove call to lto_streamer_cache_append.
5290         * tree-streamer-out.c (lto_output_tree_header): Handle CALL_EXPR nodes.
5291         * tree-streamer.h (tree_read_bitfields): Declare.
5292
5293         * Makefile.in (TREE_STREAMER_H): Add STREAMER_HOOKS_H.
5294         (gimple-streamer-in.o): Add dependency on TREE_STREAMER_H.
5295         * tree-streamer.h (stream_read_tree): New.  Replace all calls
5296         to lto_input_tree with it.
5297         (stream_write_tree): New.  Replace all calls to lto_output_tree,
5298         lto_output_tree_ref and lto_output_tree_or_ref with it.
5299         * lto-streamer-in.c (lto_read_tree): Inline code from
5300         lto_streamer_read_tree.
5301         (lto_input_tree): Move from tree-streamer-in.c.
5302         * lto-streamer-out.c (lto_output_tree_ref): Make static.
5303         Remove handling of NULL values for EXPR.
5304         Do not handle EXPRs that are not indexable.
5305         (lto_write_tree): Move from tree-streamer-out.c.
5306         Inline lto_streamer_write_tree.
5307         (lto_output_tree): Move from tree-streamer-out.c.
5308         If REF_P is true and EXPR is indexable, call lto_output_tree_ref.
5309         * lto-streamer.c (lto_record_common_node): Move to tree-streamer.c.
5310         (lto_preload_common_nodes): Likewise.
5311         Remove assertions and adjustments for nodes
5312         main_identifier_node, ptrdiff_type_node and fileptr_type_node.
5313         (lto_streamer_hooks_init): Set streamer_hooks.write_tree to
5314         lto_output_tree and streamer_hooks.read_tree to lto_input_tree.
5315         * lto-streamer.h (lto_input_tree): Declare.
5316         (lto_output_tree_ref): Remove.
5317         * streamer-hooks.h (struct streamer_hooks): Remove fields
5318         preload_common_nodes, indexable_with_decls_p,
5319         pack_value_fields, unpack_value_fields and output_tree_header.
5320         Update all users.
5321         * tree-streamer-in.c (lto_materialize_tree): Make extern.
5322         (lto_input_tree_pointers): Likewise.
5323         (lto_read_tree): Move to lto-streamer-in.c.
5324         (lto_input_integer_cst): Make extern.
5325         (lto_get_pickled_tree): Likewise.
5326         (lto_get_builtin_tree): Likewise.
5327         (lto_input_tree): Move to lto-streamer-in.c.
5328         * tree-streamer-out.c (pack_value_fields): Make extern.
5329         (lto_output_tree_or_ref): Remove.  Replace all callers with
5330         calls to stream_write_tree.
5331         (lto_output_builtin_tree): Make extern.
5332         (lto_streamer_write_tree): Inline into lto_write_tree.
5333         (lto_output_tree_pointers): Make extern.
5334         (lto_output_tree_header): Likewise.
5335         (lto_output_integer_cst): Likewise.
5336         (lto_write_tree): Move to lto-streamer-out.c.
5337         (lto_output_tree): Likewise.
5338         * tree-streamer.c (lto_record_common_node): Move from lto-streamer.c
5339         (preload_common_nodes): Likewise.
5340         (lto_streamer_cache_create): Call it.
5341         * tree-streamer.h: Include streamer-hooks.h.
5342         (stream_write_tree): New.
5343         (stream_read_tree): New.
5344         (lto_input_tree): Remove.
5345         (lto_materialize_tree): Declare.
5346         (lto_input_tree_pointers): Declare.
5347         (lto_get_pickled_tree): Declare.
5348         (lto_get_builtin_tree): Declare.
5349         (lto_input_integer_cst): Declare.
5350         (lto_output_tree_header): Declare.
5351         (pack_value_fields): Declare.
5352         (lto_output_tree_pointers): Declare.
5353         (lto_output_integer_cst): Declare.
5354         (lto_output_builtin_tree): Declare.
5355
5356 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
5357
5358         * sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge
5359         only if producer writes to the register given by regno.
5360
5361 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
5362             Alexander Monakov  <amonakov@ispras.ru>
5363
5364         * sched-deps.c (sched_get_condition_with_rev): Rename to ...
5365         (sched_get_condition_with_rev_uncached): ... this.  Factor out
5366         condition caching logic into ...
5367         (sched_get_condition_with_rev): ... this.  Reimplement.  Do not
5368         attempt to use cache for instructions with zero luid.
5369         (sched_analyze_insn): Use INSN_CACHED_COND instead of INSN_COND.
5370         * sched-int.h (INSN_COND): Rename to INSN_CACHED_COND.
5371
5372 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
5373
5374         * sel-sched-ir.c (get_seqno_of_a_pred): Rename to
5375         get_seqno_for_a_jump.  Update the caller.
5376         (get_seqno_by_succs): New.  Use it ...
5377         (get_seqno_for_a_jump): ... here to find a seqno if looking at
5378         predecessors was not sufficient.
5379         (get_seqno_by_preds): Include head in iteration range, exclude insn.
5380
5381 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
5382
5383         * sel-sched-ir.c (invalidate_av_set): Remove the assert.
5384
5385 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
5386
5387         * sel-sched-ir.h (register_unavailable_p): Declare.
5388         * sel-sched-ir.c (register_unavailable_p): New.  Use it...
5389         (set_unavailable_target_for_expr): ... here to properly test
5390         availability of a register.
5391         (speculate_expr): Ditto.
5392         * sel-sched.c (substitute_reg_in_expr): Ditto.
5393         (av_set_could_be_blocked_by_bookkeeping_p): Ditto.
5394
5395 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
5396
5397         * sel-sched.c (verify_target_availability): Fix usage of
5398         hard_regno_nregs.
5399
5400 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
5401
5402         * sel-sched-ir.c (init_global_and_expr_for_insn): Forbid copying of
5403         recognized by cannot_copy_insn_p hook and volatile instructions.
5404
5405 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
5406
5407         * sel-sched-ir.c (merge_expr_data): Take maximum spec.
5408
5409 2011-08-11  Richard Sandiford  <richard.sandiford@linaro.org>
5410
5411         * doc/md.texi (define_bypass): Say that the instruction names can
5412         be filename-style globs.
5413         * Makefile.in (FNMATCH_H): Define.
5414         (build/genattrtab.o, build/genautomata.o): Depend on $(FNMATCH_H).
5415         * genattrtab.c: Include fnmatch.h.
5416         (bypass_list): Change field name from "insn" to "pattern".
5417         (gen_bypass_1): Update accordingly.
5418         (process_bypasses): Use fnmatch to check for matches between
5419         insn reservations and define_bypasses.
5420         * genautomata.c: Include fnmatch.h.
5421         (bypass_decl): Rename in_insn_name and out_insn_name to in_pattern
5422         and out_pattern respectively.
5423         (gen_bypass, insert_bypass): Update accordingly.
5424         (for_each_matching_insn, process_bypass_2, process_bypass_1)
5425         (process_bypass): New functions.
5426         (process_decls): Use process_bypass.  Update after field name changes.
5427
5428 2011-08-11  Georg-Johann Lay  <avr@gjlay.de>
5429
5430         PR target/49687
5431         * config/avr/avr.md (smulqi3_highpart): New insn.
5432         (umulqi3_highpart): New insn.
5433         (*subqi3.ashiftrt7): New insn.
5434         (smulhi3_highpart): New expander.
5435         (umulhi3_highpart): Nex expander.
5436         (*smulhi3_highpart_call): New insn.
5437         (*umulhi3_highpart_call): New insn.
5438         (extend_u): New code attribute.
5439         (extend_prefix): Rename code attribute to extend_su.
5440         * config/avr/avr.c (avr_rtx_costs): Report costs of highpart of
5441         widening QI/HI multiply.
5442
5443 2011-08-11  Ira Rosen  <ira.rosen@linaro.org>
5444
5445         PR tree-optimization/50039
5446         * tree-vect-patterns.c (vect_operation_fits_smaller_type): Check
5447         that DEF_STMT has a stmt_vec_info.
5448
5449 2011-08-10  Richard Guenther  <rguenther@suse.de>
5450
5451         * tree.h (can_trust_pointer_alignment): Remove.
5452         * builtins.c (can_trust_pointer_alignment): Remove.
5453
5454 2011-08-10  Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
5455
5456         * c-typeck.c (scalar_to_vector): New function. Try scalar to
5457         vector conversion.
5458         (stv_conv): New enum for scalar_to_vector return type.
5459         (build_binary_op): Adjust.
5460         * doc/extend.texi: Description of scalar to vector expansion.
5461
5462 2011-08-10  Richard Guenther  <rguenther@suse.de>
5463
5464         * tree.h (get_pointer_alignment): Remove max-align argument.
5465         (get_object_alignment): Likewise.
5466         * builtins.c (get_object_alignment_1): Adjust.
5467         (get_object_alignment): Remove max-align argument.
5468         (get_pointer_alignment): Likewise.
5469         (expand_builtin_strlen): Adjust.
5470         (expand_builtin_memcpy): Likewise.
5471         (expand_builtin_mempcpy_args): Likewise.
5472         (expand_builtin_strncpy): Likewise.
5473         (expand_builtin_memset_args): Likewise.
5474         (expand_builtin_memcmp): Likewise.
5475         (expand_builtin_strcmp): Likewise.
5476         (expand_builtin_strncmp): Likewise.
5477         (get_builtin_sync_mem): Likewise.
5478         (fold_builtin_memset): Likewise.
5479         (fold_builtin_memory_op): Likewise.
5480         (expand_builtin_memory_chk): Likewise.
5481         * emit-rtl.c (get_mem_align_offset): Likewise.
5482         (set_mem_attributes_minus_bitpos): Likewise.
5483         * expr.c (expand_assignment): Likewise.
5484         (expand_expr_real_1): Likewise.
5485         * tree-sra.c (tree_non_mode_aligned_mem_p): Likewise.
5486         * tree-ssa-forwprop.c (simplify_builtin_call): Likewise.
5487         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Likewise.
5488         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
5489         * value-prof.c (gimple_stringops_transform): Likewise.
5490
5491 2011-08-10  Paulo J. Matos  <paulo.matos@csr.com>
5492
5493         * doc/tm.texi.in (CLASS_MAX_NREGS): Fix typo.
5494         * doc/tm.texi: Regenerate.
5495
5496 2011-08-10  Georg-Johann Lay  <avr@gjlay.de>
5497
5498         PR target/29560
5499         * config/avr/avr.md (*ashlhiqi3): New insn-and-split.
5500         (*ashl<extend_prefix>qihiqi3): New insn-and-splits.
5501         (*ashl<extend_prefix>qihiqi3.mem): New insn-and-splits.
5502         Add peephole2 to map ashlhi3 to ashlqi3 if high part of
5503         shift target is unused.
5504
5505 2011-08-10  Richard Guenther  <rguenther@suse.de>
5506
5507         PR tree-optimization/49937
5508         * tree-ssa-ccp.c (get_value_from_alignment): Re-implement
5509         using get_object_alignment_1.
5510
5511 2011-08-09  Uros Bizjak  <ubizjak@gmail.com>
5512
5513         * config/i386/i386.c (ix86_emit_i387_round): New function.
5514         * config/i386/i386-protos.h (ix86_emit_i387_round): Declare.
5515         * config/i386/i386.md (round<mode>2): Use X87MODEF mode iterator.
5516         Use ix86_emit_i387_round to expand round function for i387 math.
5517         (lround<X87MODEF:mode><SWI248x:mode>2): Use X87MODEF mode iterator.
5518         Use ix86_emit_i387_round to expand {l,ll}round function for i387 math.
5519
5520 2011-08-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5521
5522         * config/sync.c: Move to ../libgcc.
5523         * Makefile.in (libgcc.mvars): Remove LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS.
5524         * config/mips/t-libgcc-mips16 (LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS):
5525         Remove.
5526
5527 2011-08-09  Anatoly Sokolov  <aesok@post.ru>
5528
5529         * config/mmix/mmix.h (REGISTER_MOVE_COST): Remove macro.
5530         * config/mmix/mmix-protos.h (mmix_register_move_cost): Remove.
5531         * config/mmix/mmix.c (mmix_register_move_cost): Make static.
5532         Change 'from' and 'to' arguments type to reg_class_t.
5533         (TARGET_REGISTER_MOVE_COST): Define.
5534
5535 2011-08-09  Vladimir Makarov  <vmakarov@redhat.com>
5536
5537         PR target/50026
5538         Revert:
5539         PR rtl-optimization/49990
5540         * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
5541         ignore classes which can not change mode.
5542         (find_costs_and_classes): Ditto.
5543
5544 2011-08-09  Richard Guenther  <rguenther@suse.de>
5545
5546         * tree-vrp.c (zero_nonzero_bits_from_vr): Also return precise
5547         information for ranges with only negative values.
5548         (extract_range_from_binary_expr_1): Adjust BIT_IOR_EXPR and
5549         BIT_AND_EXPR handling to handle ranges with negative values.
5550
5551 2011-08-09  Kirill Yukhin  <kirill.yukhin@intel.com>
5552
5553         * config/i386/i386.c: Remove traling spaces.
5554         * config/i386/sse.md: Likewise.
5555         (*fma_fmadd_<mode>): Fix insn alternative 1 mnemonic.
5556         (*fma_fmsub_<mode>): Likewise.
5557         (*fma_fnmadd_<mode>): Likewise.
5558         (*fma_fnmsub_<mode>): Likewise.
5559
5560 2011-08-09  Nick Clifton  <nickc@redhat.com>
5561
5562         * config/rx/rx.md: Disable extender peepholes at -O3.
5563
5564 2011-08-09  Uros Bizjak  <ubizjak@gmail.com>
5565
5566         PR target/49781
5567         * config/i386/i386.md (reload_noff_load): New.
5568         (reload_noff_store): Ditto.
5569         * config/i386/i386.c (ix86_secondary_reload): Use
5570         CODE_FOR_reload_noff_load and CODE_FOR_reload_noff_store to handle
5571         double-word moves from/to non-offsetable addresses instead of
5572         generating XMM temporary.
5573
5574 2011-08-09  Anatoly Sokolov  <aesok@post.ru>
5575
5576         * config/mmix/mmix.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Remove.
5577
5578 2011-08-09  Ira Rosen  <ira.rosen@linaro.org>
5579
5580         PR tree-optimization/50014
5581         * tree-vect-loop.c (vectorizable_reduction): Get def type before
5582         calling vect_get_vec_def_for_stmt_copy ().
5583
5584 2011-08-08  Vladimir Makarov  <vmakarov@redhat.com>
5585
5586         PR rtl-optimization/49990
5587         * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
5588         ignore classes which can not change mode.
5589         (find_costs_and_classes): Ditto.
5590
5591 2011-08-08  Richard Henderson  <rth@redhat.com>
5592
5593         PR middle-end/49990
5594         * config/i386/i386.c (ix86_expand_prologue): Call
5595         for SEH target gen_prologue_use instead of gen_blockage
5596         at prologue's end.
5597
5598 2011-08-08  Martin Jambor  <mjambor@suse.cz>
5599
5600         PR middle-end/49923
5601         * tree-sra.c (access_precludes_ipa_sra_p): Also check access
5602         memory alignment.
5603
5604 2011-08-08   Diego Novillo  <dnovillo@google.com>
5605
5606         * Makefile.in (LTO_STREAMER_H): Add DIAGNOSTIC_H.
5607         (DATA_STREAMER_H): New.
5608         (GIMPLE_STREAMER_H): New.
5609         (TREE_STREAMER_H): New.
5610         (STREAMER_HOOKS_H): New.
5611         (OBJS): Add data-streamer.o, data-streamer-in.o, data-streamer-out.o,
5612         gimple-streamer-in.o, gimple-streamer-out.o, streamer-hooks.o,
5613         tree-streamer.o, tree-streamer-in.o and tree-streamer-out.o.
5614         (data-streamer.o): New.
5615         (data-streamer-in.o): New.
5616         (data-streamer-out.o): New.
5617         (gimple-streamer-in.o): New.
5618         (gimple-streamer-out.o): New.
5619         (streamer-hooks.o): New.
5620         (tree-streamer.o): New.
5621         (tree-streamer-in.o): New.
5622         (tree-streamer-out.o): New.
5623         (lto-cgraph.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
5624         (lto-streamer-in.o): Add dependency on DATA_STREAMER_H,
5625         GIMPLE_STREAMER_H and TREE_STREAMER_H.
5626         (lto-streamer-out.o): Add dependency on DATA_STREAMER_H,
5627         GIMPLE_STREAMER_H and TREE_STREAMER_H.
5628         (lto-streamer.o): Add dependency on STREAMER_HOOKS_H.
5629         (ipa-prop.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
5630         (ipa-inline-analysis.o): Likewise.
5631         (ipa-pure-const.o): Likewise.
5632         * data-streamer-in.c: New.
5633         * data-streamer-out.c: New.
5634         * data-streamer.c: New.
5635         * data-streamer.h: New.
5636         * gimple-streamer-in.c: New.
5637         * gimple-streamer-out.c: New.
5638         * gimple-streamer.h: New.
5639         * ipa-inline-analysis.c: Include data-streamer.h.
5640         * ipa-prop.c: Include data-streamer.h.
5641         * ipa-pure-const.c: Include data-streamer.h.
5642         * lto-cgraph.c: Include data-streamer.h.
5643         * lto-section-in.c (lto_input_uleb128): Move to data-streamer-in.c.
5644         (lto_input_widest_uint_uleb128): Likewise.
5645         (lto_input_sleb128): Likewise.
5646         (bp_unpack_var_len_unsigned): Likewise.
5647         (bp_unpack_var_len_int): Likewise.
5648         * lto-section-out.c (lto_output_uleb128_stream): Move to
5649         data-streamer-out.c.
5650         (lto_output_widest_uint_uleb128_stream): Likewise.
5651         (lto_output_sleb128_stream): Likewise.
5652         (bp_pack_var_len_unsigned): Likewise.
5653         (bp_pack_var_len_int): Likewise.
5654         * lto-streamer-in.c: Include data-streamer.h and gimple-streamer.h.
5655         (struct string_slot): Remove.  Update all users.
5656         (lto_tag_check_set): Make extern.
5657         (lto_tag_check_range): Move to lto-streamer.h.
5658         (lto_tag_check): Likewise.
5659         (hash_string_slot_node): Remove.  Update all users.
5660         (eq_string_slot_node): Remove.  Update all users.
5661         (string_for_index): Move to data-streamer-in.c
5662         (input_string_internal): Likewise.
5663         (input_string_cst): Move to tree-streamer-in.c.
5664         (input_identifier): Likewise.
5665         (lto_input_string): Move to data-streamer-in.c
5666         (input_record_start): Move to data-streamer.h
5667         (canon_file_name): Use new definition of struct string_slot
5668         from data-streamer.h.  Set S_SLOT.LEN.
5669         (lto_input_location): Make extern.
5670         (lto_input_chain): Move to tree-streamer-in.c.
5671         (lto_init_eh): Make extern.
5672         (input_phi): Move to gimple-streamer-in.c.
5673         (input_gimple_stmt): Likewise.
5674         (input_bb): Likewise.
5675         (unpack_ts_base_value_fields): Move to tree-streamer-in.c.
5676         (unpack_ts_real_cst_value_fields): Likewise.
5677         (unpack_ts_fixed_cst_value_fields): Likewise.
5678         (unpack_ts_decl_common_value_fields): Likewise.
5679         (unpack_ts_decl_wrtl_value_fields): Likewise.
5680         (unpack_ts_decl_with_vis_value_fields): Likewise.
5681         (unpack_ts_function_decl_value_fields): Likewise.
5682         (unpack_ts_type_common_value_fields): Likewise.
5683         (unpack_ts_block_value_fields): Likewise.
5684         (unpack_ts_translation_unit_decl_value_fields): Likewise.
5685         (unpack_value_fields): Likewise.
5686         (lto_materialize_tree): Likewise.
5687         (lto_input_ts_common_tree_pointers): Likewise.
5688         (lto_input_ts_vector_tree_pointers): Likewise.
5689         (lto_input_ts_complex_tree_pointers): Likewise.
5690         (lto_input_ts_decl_minimal_tree_pointers): Likewise.
5691         (lto_input_ts_decl_common_tree_pointers): Likewise.
5692         (lto_input_ts_decl_non_common_tree_pointers): Likewise.
5693         (lto_input_ts_decl_with_vis_tree_pointers): Likewise.
5694         (lto_input_ts_field_decl_tree_pointers): Likewise.
5695         (lto_input_ts_function_decl_tree_pointers): Likewise.
5696         (lto_input_ts_type_common_tree_pointers): Likewise.
5697         (lto_input_ts_type_non_common_tree_pointers): Likewise.
5698         (lto_input_ts_list_tree_pointers): Likewise.
5699         (lto_input_ts_vec_tree_pointers): Likewise.
5700         (lto_input_ts_exp_tree_pointers): Likewise.
5701         (lto_input_ts_block_tree_pointers): Likewise.
5702         (lto_input_ts_binfo_tree_pointers): Likewise.
5703         (lto_input_ts_constructor_tree_pointers): Likewise.
5704         (lto_input_ts_target_option): Likewise.
5705         (lto_input_ts_translation_unit_decl_tree_pointers): Likewise.
5706         (lto_input_tree_pointers): Likewise.
5707         (lto_get_pickled_tree): Likewise.
5708         (lto_get_builtin_tree): Likewise.
5709         (lto_read_tree): Likewise.
5710         (lto_input_integer_cst): Likewise.
5711         (lto_input_tree): Likewise.
5712         * lto-streamer-out.c: Include data-streamer.h,
5713         gimple-streamer.h and streamer-hooks.h.
5714         (struct string_slot): Move to data-streamer.h.
5715         (hash_string_slot_node): Likewise.
5716         (eq_string_slot_node): Likewise.
5717         (lto_string_index): Move to data-streamer-out.c.
5718         (lto_output_string_with_length): Likewise.
5719         (lto_output_string): Likewise.
5720         (output_string_cst): Move to tree-streamer-out.c.
5721         (output_identifier): Likewise.
5722         (output_zero): Move to data-streamer-out.c
5723         (output_uleb128): Likewise.
5724         (output_sleb128): Likewise.
5725         (output_record_start): Move to data-streamer.h
5726         (pack_ts_base_value_fields): Move to tree-streamer-out.c.
5727         (pack_ts_real_cst_value_fields): Likewise.
5728         (pack_ts_fixed_cst_value_fields): Likewise.
5729         (pack_ts_decl_common_value_fields): Likewise.
5730         (pack_ts_decl_wrtl_value_fields): Likewise.
5731         (pack_ts_decl_with_vis_value_fields): Likewise.
5732         (pack_ts_function_decl_value_fields): Likewise.
5733         (pack_ts_type_common_value_fields): Likewise.
5734         (pack_ts_block_value_fields): Likewise.
5735         (pack_ts_translation_unit_decl_value_fields): Likewise.
5736         (pack_value_fields): Likewise.
5737         (lto_output_chain): Likewise.
5738         (lto_output_ts_common_tree_pointers): Likewise.
5739         (lto_output_ts_vector_tree_pointers): Likewise.
5740         (lto_output_ts_complex_tree_pointers): Likewise.
5741         (lto_output_ts_decl_minimal_tree_pointers): Likewise.
5742         (lto_output_ts_decl_common_tree_pointers): Likewise.
5743         (lto_output_ts_decl_non_common_tree_pointers): Likewise.
5744         (lto_output_ts_decl_with_vis_tree_pointers): Likewise.
5745         (lto_output_ts_field_decl_tree_pointers): Likewise.
5746         (lto_output_ts_function_decl_tree_pointers): Likewise.
5747         (lto_output_ts_type_common_tree_pointers): Likewise.
5748         (lto_output_ts_type_non_common_tree_pointers): Likewise.
5749         (lto_output_ts_list_tree_pointers): Likewise.
5750         (lto_output_ts_vec_tree_pointers): Likewise.
5751         (lto_output_ts_exp_tree_pointers): Likewise.
5752         (lto_output_ts_block_tree_pointers): Likewise.
5753         (lto_output_ts_binfo_tree_pointers): Likewise.
5754         (lto_output_ts_constructor_tree_pointers): Likewise.
5755         (lto_output_ts_target_option): Likewise.
5756         (lto_output_ts_translation_unit_decl_tree_pointers): Likewise.
5757         (lto_output_tree_pointers): Likewise.
5758         (lto_output_tree_header): Likewise.
5759         (lto_output_builtin_tree): Likewise.
5760         (lto_write_tree): Likewise.
5761         (lto_output_integer_cst): Likewise.
5762         (lto_output_tree): Likewise.
5763         (output_phi): Move to gimple-streamer-out.c.
5764         (output_gimple_stmt): Likewise.
5765         (output_bb): Likewise.
5766         * lto-streamer.c: Include tree-streamer.h and streamer-hooks.h.
5767         (streamer_hooks): Move to streamer-hooks.c.
5768         (check_handled_ts_structures): Move to tree-streamer.c
5769         (lto_streamer_cache_add_to_node_array): Likewise.
5770         (lto_streamer_cache_insert_1): Likewise.
5771         (lto_streamer_cache_insert): Likewise.
5772         (lto_streamer_cache_insert_at): Likewise.
5773         (lto_streamer_cache_append): Likewise.
5774         (lto_streamer_cache_lookup): Likewise.
5775         (lto_streamer_cache_get): Likewise.
5776         (lto_record_common_node): Likewise.
5777         (lto_preload_common_nodes): Likewise.
5778         (lto_streamer_cache_create): Likewise.
5779         (lto_streamer_cache_delete): Likewise.
5780         (streamer_hooks_init): Move to streamer-hooks.c.
5781         * lto-streamer.h: Include diagnostic.h
5782         (struct output_block, struct lto_input_block,
5783         struct data_in, struct bitpack_d): Remove forward declarations.
5784         (struct bitpack_d): Move to data-streamer.h.
5785         (struct lto_streamer_cache_d): Move to tree-streamer.h.
5786         (struct streamer_hooks): Move to streamer-hooks.h.
5787         (bp_pack_var_len_unsigned): Move to data-streamer.h.
5788         (bp_pack_var_len_int): Likewise.
5789         (bp_unpack_var_len_unsigned): Likewise.
5790         (bp_unpack_var_len_int): Likewise.
5791         (lto_input_location): Declare.
5792         (lto_tag_check_set): Declare.
5793         (lto_init_eh): Declare.
5794         (lto_output_tree_ref): Declare.
5795         (lto_output_location): Declare.
5796         (bitpack_create): Move to data-streamer.h.
5797         (bp_pack_value): Likewise.
5798         (lto_output_bitpack): Likewise.
5799         (lto_input_bitpack): Likewise.
5800         (bp_unpack_value): Likewise.
5801         (lto_output_1_stream): Likewise.
5802         (lto_input_1_unsigned): Likewise.
5803         (lto_output_int_in_range): Likewise.
5804         (lto_input_int_in_range): Likewise.
5805         (bp_pack_int_in_range): Likewise.
5806         (bp_unpack_int_in_range): Likewise.
5807         (lto_output_enum): Likewise.
5808         (lto_input_enum): Likewise.
5809         (bp_pack_enum): Likewise.
5810         (bp_unpack_enum): Likewise.
5811         * streamer-hooks.c: New.
5812         * streamer-hooks.h: New.
5813         * tree-streamer-in.c: New.
5814         * tree-streamer-out.c: New.
5815         * tree-streamer.c: New.
5816         * tree-streamer.h: New.
5817
5818 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5819
5820         * gthr-posix95.h: Remove.
5821         * gthr.h [_PTHREADS95]: Remove.
5822         * configure.ac (enable_threads): Remove posix95.
5823         * configure: Regenerate.
5824         * doc/install.texi (Configuration, --enable-threads): Remove posix95.
5825
5826 2011-08-08  Uros Bizjak  <ubizjak@gmail.com>
5827
5828         PR target/49781
5829         * config/i386/i386.c (ix86_decompose_address): Allow zero-extended
5830         SImode addresses.
5831         (ix86_print_operand_address): Handle zero-extended addresses.
5832         (memory_address_length): Add length of addr32 prefix for
5833         zero-extended addresses.
5834         (ix86_secondary_reload): Handle moves to/from double-word general
5835         registers from/to zero-extended addresses.
5836         * config/i386/predicates.md (lea_address_operand): Reject
5837         zero-extended operands.
5838
5839 2011-08-08  H.J. Lu  <hongjiu.lu@intel.com>
5840
5841         PR other/48007
5842         * config.gcc (libgcc_tm_file): Add i386/value-unwind.h for Linux/x86.
5843
5844         * system.h (REG_VALUE_IN_UNWIND_CONTEXT): Poisoned.
5845         (ASSUME_EXTENDED_UNWIND_CONTEXT): Likewise.
5846
5847         * unwind-dw2.c (ASSUME_EXTENDED_UNWIND_CONTEXT): New.
5848         (_Unwind_Context_Reg_Val): Likewise.
5849         (_Unwind_Get_Unwind_Word): Likewise.
5850         (_Unwind_Get_Unwind_Context_Reg_Val): Likewise.
5851         (_Unwind_Context): Use _Unwind_Context_Reg_Val on the reg field.
5852         (_Unwind_IsExtendedContext): Check ASSUME_EXTENDED_UNWIND_CONTEXT
5853         for EXTENDED_CONTEXT_BIT.
5854         (__frame_state_for): Likewise.
5855         (uw_init_context_1): Likewise.
5856         (_Unwind_GetGR): Updated.
5857         (_Unwind_SetGR): Likewise.
5858         (_Unwind_GetGRPtr): Likewise.
5859         (_Unwind_SetGRPtr): Likewise.
5860         (_Unwind_SetGRValue): Likewise.
5861         (_Unwind_GRByValue): Likewise.
5862         (uw_install_context_1): Likewise.
5863
5864         * doc/tm.texi.in: Document REG_VALUE_IN_UNWIND_CONTEXT and
5865         ASSUME_EXTENDED_UNWIND_CONTEXT.
5866         * doc/tm.texi: Regenerated.
5867
5868 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5869
5870         * Makefile.in (gengtype$(exeext)): Add $(LDFLAGS).
5871
5872 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5873
5874         * doc/invoke.texi (DEC Alpha Options, -mcpu): native support isn't
5875         Linux/GNU-specific.
5876         (DEC Alpha Options, -mtune): Likewise.
5877         (MIPS Options, -march): native is supported on IRIX.
5878
5879 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5880
5881         * config/sparc/driver-sparc.c: New file.
5882         * config/sparc/x-sparc: New file.
5883         * config.host: Use driver-sparc.o, sparc/x-sparc on sparc*-*-solaris2*.
5884         * config/sparc/sparc.opt (native): New value for enum processor_type.
5885         * config/sparc/sparc-opts.h (PROCESSOR_NATIVE): Declare.
5886         * config/sparc/sparc.c (sparc_option_override): Abort if
5887         PROCESSOR_NATIVE gets here.
5888         * config/sparc/sol2.h [__sparc__] (host_detect_local_cpu): Declare.
5889         (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS,
5890         DRIVER_SELF_SPECS): Define.
5891         * doc/invoke.texi (SPARC Options, -mcpu): Document native.
5892         (SPARC Options, -mtune): Likewise.
5893         * configure.ac (EXTRA_GCC_LIBS): Check for libkstat.
5894         Substitute result.
5895         * configure: Regenerate.
5896         * Makefile.in (EXTRA_GCC_LIBS): Set.
5897         (xgcc$(exeext)): Add $(EXTRA_GCC_LIBS).
5898         (cpp$(exeext)): Likewise.
5899
5900 2011-08-08  Richard Guenther  <rguenther@suse.de>
5901
5902         * tree-vrp.c (extract_range_from_unary_expr_1): New function,
5903         split out from ...
5904         (extract_range_from_unary_expr): ... here.  Handle BIT_NOT_EXPR
5905         by composition.
5906
5907 2011-08-08  Mikael Pettersson  <mikpe@it.uu.se>
5908
5909         PR tree-optimization/50005
5910         * ipa-inline-analysis (remap_predicate): Add cast to
5911         silence signed/unsigned comparison warning.
5912
5913 2011-08-08  Richard Sandiford  <richard.sandiford@linaro.org>
5914
5915         * modulo-sched.c (get_sched_window): Use a table for the debug output.
5916         Print the current ii.
5917         (sms_schedule_by_order): Reduce whitespace in dump line.
5918
5919 2011-08-08  Richard Sandiford  <richard.sandiford@linaro.org>
5920
5921         * modulo-sched.c (get_sched_window): Use just one loop for predecessors
5922         and one loop for successors.  Fix upper bound of memory range.
5923
5924 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
5925
5926         PR target/50001
5927         * config/alpha/alpha.c (alpha_instantiate_decls): New function.
5928         (TARGET_INSTANTIATE_DECLS): New define.
5929
5930 2011-08-06  Paolo Bonzini  <bonzini@gnu.org>
5931             Mikael Morin   <mikael.morin@sfr.fr>
5932
5933         * Makefile.in (INCLUDES_FOR_TARGET): New.
5934         (LIBGCC2_CFLAGS): Use it.
5935         (CRTSTUFF_CFLAGS): Use it instead of INCLUDES.
5936
5937 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
5938
5939         * config/i386/i386.c (ix86_compute_frame_layout): Simplify
5940         frame->save_regs_using_mov calculation.
5941
5942 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
5943
5944         * config/i386/i386.md (ssemodesuffix): Remove V8SI mode.
5945         * config/i386/sse.md (castmode): New mode attribute.
5946         (avx_<castmode><avxsizesuffix>_<castmode>): Rename from
5947         avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>.
5948
5949 2011-08-05  Jan Hubicka  <jh@suse.cz>
5950
5951         PR middle-end/49494
5952         * ipa-inline-analysis.c (remap_predicate): Add bounds check.
5953
5954 2011-08-05  Jan Hubicka  <jh@suse.cz>
5955
5956         PR middle-end/49500
5957         * tree-emultls.c (new_emutls_decl):Add alias_of parameter;
5958         handle aliases.
5959         (create_emultls_var):New function.
5960         (ipa_lower_emutls): Handle aliases correctly.
5961
5962 2011-08-05  Jan Hubicka  <jh@suse.cz>
5963
5964         PR middle-end/49735
5965         * ipa-inline.c (recursive_inlining): Look through aliases.
5966
5967 2011-08-05  Jason Merrill  <jason@redhat.com>
5968
5969         * config/i386/i386.c (setup_incoming_varargs_ms_64): Move
5970         declarations to beginning of function.
5971
5972 2011-08-05  Bernd Schmidt  <bernds@codesourcery.com>
5973
5974         PR rtl-optimization/49900
5975         * sched-ebb.c (add_deps_for_risky_insns): Also add dependencies to
5976         ensure basic blocks stay in the same order.
5977
5978 2011-08-05  Aldy Hernandez  <aldyh@redhat.com>
5979
5980         * config/s390/s390.c (s390_expand_cs_hqi): Add new arguments to
5981         store_bit_field.
5982         (s390_expand_atomic): Same.
5983
5984 2011-08-05  Richard Henderson  <rth@redhat.com>
5985
5986         PR rtl-opt/49977
5987         * dwarf2cfi.c (scan_insn_after): Split out of ...
5988         (scan_trace): ... here.  Correctly place notes wrt sequences.
5989
5990 2011-08-05  Kaz Kojima  <kkojima@gcc.gnu.org>
5991             Richard Henderson  <rth@redhat.com>
5992
5993         PR rtl-opt/49982
5994         * expr.c (fixup_args_size_notes): Look through no-op moves.
5995
5996 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
5997
5998         * config/i386/i386.md (*push<mode>2): Use "o" constraint instead
5999         of "m" for operand 0.  Add type and mode attribute.
6000         (*pushxf_nointeger"): Use "<" constraint for operand 0.
6001         (*pushdf_rex64): New pattern, split out of *pushdf.  Use "m"
6002         constraint instead of "o" for opreand 1.
6003         (*pushdf): Disable for TARGET_64BIT.  Correct mode attribute.
6004         (*movdi_internal_rex64): Use "!o" constraint instead of "!m" for
6005         operand 0, alternative 4.
6006         (*movdf_internal_rex64): Ditto for operand 0, alernative 6.
6007
6008 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
6009
6010         * config/i386/predicates.md (lea_address_operand): Rename from
6011         no_seg_address_operand.
6012         * config/i386/i386.md (*lea_1): Update operand 1 predicate for rename.
6013         (*lea_1_zext): Ditto.
6014         (*lea_2): Ditto.
6015         (*lea_2_zext): Ditto.
6016
6017 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
6018
6019         * config/i386/i386.c (ix86_print_operand_address): Handle SUBREGs of
6020         parts.base and parts.index.
6021         * config/i386/predicates.md (aligned_operand): Ditto.
6022         (cmpxchg8b_pic_memory_operand): Ditto.
6023
6024 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6025
6026         * config/soft-fp: Move to ../libgcc.
6027         * Makefile.in (SFP_MACHINE): Remove.
6028         (libgcc-support): Remove $(SFP_MACHINE) dependency.
6029         * config/arm/sfp-machine.h: Move to ../libgcc/config/arm.
6030         * config/arm/t-arm-softfp: Move to
6031         ../libgcc/config/arm/t-softfp.
6032         * config/c6x/sfp-machine.h: Move to ../libgcc/config/c6x.
6033         * config/c6x/t-c6x-softfp: Remove.
6034         * config/i386/sfp-machine.h: Move to ../libgcc/config/i386.
6035         * config/i386/t-fprules-softfp: Move to
6036         ../libgcc/config/t-softfp-tf.
6037         * config/ia64/sfp-machine.h: Move to ../libgcc/config/ia64.
6038         * config/ia64/t-fprules-softfp: Remove.
6039         * config/lm32/sfp-machine.h: Move to ../libgcc/config/lm32.
6040         * config/lm32/t-fprules-softfp: Remove.
6041         * config/moxie/sfp-machine.h: Remove.
6042         * config/moxie/t-moxie-softfp: Remove.
6043         * config/rs6000/darwin-ldouble-format: Move to
6044         ../libgcc/config/rs6000/ibm-ldouble-format.
6045         * config/rs6000/darwin-ldouble.c: Move to
6046         ../libgcc/config/rs6000/ibm-ldouble.c
6047         * config/rs6000/libgcc-ppc-glibc.ver: Move to ../libgcc/config/rs6000.
6048         * config/rs6000/libgcc-ppc64.ver: Likewise.
6049         * config/rs6000/sfp-machine.h: Likewise.
6050         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Remove
6051         $(srcdir)/config/rs6000/libgcc-ppc64.ver.
6052         (LIB2FUNCS_EXTRA): Remove.
6053         (TARGET_LIBGCC2_CFLAGS): Remove.
6054         * config/rs6000/t-aix52: Likewise
6055         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
6056         $(srcdir)/config/rs6000/darwin-ldouble.c.
6057         (SHLIB_MAPFILES): Remove.
6058         * config/rs6000/t-darwin64 (LIB2FUNCS_EXTRA): Remove
6059         $(srcdir)/config/rs6000/darwin-ldouble.c.
6060         * config/rs6000/t-fprules-softfp: Move to
6061         ../libgcc/config/t-softfp-sfdf.
6062         * config/rs6000/t-freebsd: Move to ../libgcc/config/rs6000.
6063         * config/rs6000/t-linux64 (softfp_wrap_start, softfp_wrap_end): Remove.
6064         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Remove
6065         $(srcdir)/config/rs6000/darwin-ldouble.c.
6066         * config/score/sfp-machine.h: Move to ../libgcc/config/score.
6067         * config/score/t-score-softfp: Remove.
6068         * config.gcc (arm*-*-linux*): Remove arm/t-arm-softfp,
6069         soft-fp/t-softfp from tmake_file.
6070         (arm*-*-uclinux*): Likewise.
6071         (arm*-*-ecos-elf): Likewise.
6072         (arm*-*-eabi*, arm*-*-symbianelf*): Likewise.
6073         (arm*-*-rtems*): Likewise.
6074         (arm*-*-elf): Likewise.
6075         (moxie-*-elf): Remove moxie/t-moxie-softfp, soft-fp/t-softfp from
6076         tmake_file.
6077         (moxie-*-uclinux*): Likewise.
6078         (moxie-*-rtems*): Likewise.
6079         (lm32-*-elf*): Remove lm32/t-fprules-softfp, soft-fp/t-softfp from
6080         tmake_file.
6081         (lm32-*-rtems*): Likewise.
6082         (lm32-*-uclinux*): Likewise.
6083         (powerpc-*-freebsd*): Remove rs6000/t-freebsd,
6084         rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
6085         (powerpc-*-linux*, powerpc64-*-linux*): Remove
6086         rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
6087         (score-*-elf): Remove score/t-score-softfp, soft-fp/t-softfp from
6088         tmake_file.
6089         (tic6x-*-elf): Remove c6x/t-c6x-softfp, soft-fp/t-softfp from
6090         tmake_file.
6091         (tic6x-*-uclinux): Likewise.
6092         (i[34567]86-*-darwin*, x86_64-*-darwin*): Remove i386/t-fprules-softfp,
6093         soft-fp/t-softfp from tmake_file.
6094         (i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu)
6095         (x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Likewise.
6096         (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Likewise.
6097         (i[34567]86-*-cygwin*, i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
6098         (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Likewise.
6099
6100 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6101
6102         * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS, TPBIT_FUNCS): Remove.
6103         (libgcc-support): Remove $(FPBIT), $(DPBIT), $(TPBIT) dependencies.
6104         (libgcc.mvars): Remove FPBIT, FPBIT_FUNCS, DPBIT, DPBIT_FUNCS,
6105         TPBIT, TPBIT_FUNCS.
6106         * config/fp-bit.c, config/fp-bit.h: Move to ../libgcc.
6107         * config/arm/t-strongarm-elf (FPBIT, DPBIT, dp-bit.c, fp-bit.c):
6108         Remove.
6109         * config/arm/t-vxworks: Likewise.
6110         * config/arm/t-wince-pe: Likewise.
6111         * config/avr/t-avr (fp-bit.c, FPBIT): Remove.
6112         * config/bfin/t-bfin (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
6113         * config/bfin/t-bfin-elf: Likewise.
6114         * config/bfin/t-bfin-linux: Likewise.
6115         * config/bfin/t-bfin-uclinux: Likewise.
6116         * config/cris/t-cris (FPBIT, DPBIT, dp-bit.c, tmplibgcc_fp_bit.c):
6117         Remove.
6118         * config/fr30/t-fr30: Likewise.
6119         * config/frv/t-frv: Likewise.
6120         * config/h8300/t-h8300 (FPBIT, fp-bit.c): Remove.
6121         * config/iq2000/t-iq2000 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
6122         * config/m32c/t-m32c: Likewise.
6123         * config/m32r/t-linux: (LIB2FUNCS_EXTRA, fp-bit.c, dp-bit.c): Remove.
6124         * config/m32r/t-m32r (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
6125         * config/mcore/t-mcore: Likewise.
6126         * config/mep/t-mep: Likewise.
6127         * config/microblaze/t-microblaze: Likewise.
6128         * config/mips/t-linux64 (TPBIT, tp-bit.c): Remove.
6129         * config/mips/t-mips (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
6130         * config/mips/t-sdemtk (FPBIT, DPBIT): Remove.
6131         * config/mips/t-sr71k (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
6132         * config/mn10300/t-linux: Remove.
6133         * config/mn10300/t-mn10300 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
6134         * config/pdp11/t-pdp11: Likewise.
6135         * config/picochip/t-picochip (FPBIT, fp-bit.c): Remove.
6136         * config/rs6000/ppc64-fp.c: Move to ../libgcc/config/rs6000.
6137         * config/rs6000/t-aix43 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
6138         (LIB2FUNCS_EXTRA): Remove $(srcdir)/config/rs6000/ppc64-fp.c.
6139         * config/rs6000/t-aix52: Likewise.
6140         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
6141         $(srcdir)/config/rs6000/ppc64-fp.c.
6142         * config/rs6000/t-fprules-fpbit: Remove.
6143         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Remove.
6144         * config/rs6000/t-lynx (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
6145         * config/sh/t-netbsd (FPBIT, DPBIT): Remove.
6146         * config/sh/t-sh (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
6147         * config/sparc/t-elf: Likewise.
6148         * config/sparc/t-leon: Likewise.
6149         * config/sparc/t-leon3: Likewise.
6150         * config/spu/t-spu-elf: Likewise.
6151         (DPBIT_FUNCS): Remove.
6152         * config/stormy16/t-stormy16 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
6153         * config/v850/t-v850: Likewise.
6154         * config.gcc (avr-*-rtems*): Add avr/avr-lib.h to libgcc_tm_file.
6155         (avr-*-*): Likewise.
6156         (h8300-*-rtems*): Set libgcc_tm_file.
6157         (h8300-*-elf*): Likewise.
6158         (powerpc-*-eabisimaltivec*): Remove rs6000/t-fprules-fpbit from
6159         tmake_file.
6160         (powerpc-*-eabisim*): Likewise.
6161         (powerpc-*-elf*): Likewise.
6162         (powerpc-*-eabialtivec*): Likewise.
6163         (powerpc-xilinx-eabi*): Likewise.
6164         (powerpc-*-eabi*): Likewise.
6165         (powerpc-*-rtems*): Likewise.
6166         (powerpc-wrs-vxworks, powerpc-wrs-vxworksae): Likewise.
6167         (powerpcle-*-elf*): Likewise.
6168         (powerpcle-*-eabisim*): Likewise.
6169         (powerpcle-*-eabi*): Likewise.
6170         (rx-*-elf*): Add rx/rx-lib.h to libgcc_tm_file.
6171         (am33_2.0-*-linux*): Remove mn10300/t-linux from tmake_file.
6172         * doc/fragments.texi (Target Fragment, Floating Point Emulation):
6173         Remove.
6174
6175 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6176
6177         * Makefile.in (UNWIND_H): Remove.
6178         (LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): Move to
6179         ../libgcc/Makefile.in.
6180         (LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL): Likewise.
6181         (LIBUNWINDDEP): Remove.
6182         (libgcc-support): Remove LIB2ADDEH, $(srcdir)/emutls.c dependencies.
6183         (libgcc.mvars): Remove LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED,
6184         LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL.
6185         (stmp-int-hdrs): Remove $(UNWIND_H) dependency.
6186         Don't copy $(UNWIND_H).
6187         * config.gcc (ia64*-*-linux*): Remove with_system_libunwind handling.
6188         * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Remove.
6189         * aclocal.m4: Regenerate.
6190         * configure: Regenerate.
6191         * emutls.c, unwind-c.c, unwind-compat.c, unwind-compat.h,
6192         unwind-dw2-fde-compat.c, unwind-dw2-fde-glibc.c, unwind-dw2-fde.c,
6193         unwind-dw2-fde.h, unwind-dw2.c, unwind-dw2.h, unwind-generic.h,
6194         unwind-pe.h, unwind-sjlj.c, unwind.inc: Move to ../libgcc.
6195         * unwind-dw2-fde-darwin.c: Move to ../libgcc/config.
6196         * config/arm/libunwind.S, config/arm/pr-support.c,
6197         config/arm/unwind-arm.c, config/arm/unwind-arm.h: Move to
6198         ../libgcc/config/arm.
6199         * config/arm/t-bpabi (UNWIND_H, LIB2ADDEH): Remove.
6200         * config/arm/t-symbian (UNWIND_H, LIB2ADDEH): Remove.
6201         * config/frv/t-frv ($(T)frvbegin$(objext)): Use
6202         $(srcdir)/../libgcc to refer to unwind-dw2-fde.h.
6203         ($(T)frvend$(objext)): Likewise.
6204         * config/ia64/t-glibc (LIB2ADDEH): Remove.
6205         * config/ia64/t-glibc-libunwind: Move to ../libgcc/config/ia64.
6206         * config/ia64/fde-glibc.c, config/ia64/fde-vms.c,
6207         config/ia64/unwind-ia64.c, config/ia64/unwind-ia64.h: Move to
6208         ../libgcc/config/ia64.
6209         * config/ia64/t-hpux (LIB2ADDEH): Remove.
6210         * config/ia64/t-ia64 (LIB2ADDEH): Remove.
6211         * config/ia64/t-vms (LIB2ADDEH): Remove.
6212         * config/ia64/vms.h (UNW_IVMS_MODE,
6213         MD_UNW_COMPATIBLE_PERSONALITY_P): Remove.
6214         * config/picochip/t-picochip (LIB2ADDEH): Remove.
6215         * config/rs6000/aix.h (R_LR, MD_FROB_UPDATE_CONTEXT): Remove.
6216         * config/rs6000/t-darwin (LIB2ADDEH): Remove.
6217         * config/rs6000/darwin-fallback.c: Move to ../libgcc/config/rs6000.
6218         * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): Use
6219         $(srcdir)/../libgcc to refer to unwinder sources.
6220         * config/spu/t-spu-elf (LIB2ADDEH): Remove.
6221         * config/t-darwin (LIB2ADDEH): Remove.
6222         * config/t-freebsd (LIB2ADDEH): Remove.
6223         * config/t-libunwind (LIB2ADDEH, LIB2ADDEHSTATIC): Remove.
6224         * config/t-libunwind-elf: Move to ../libgcc/config.
6225         * config/t-linux (LIB2ADDEH): Remove.
6226         * config/t-sol2 (LIB2ADDEH): Remove.
6227         * config/xtensa/t-xtensa (LIB2ADDEH): Remove.
6228         * system.h (MD_FROB_UPDATE_CONTEXT): Poison.
6229
6230 2011-08-05  H.J. Lu  <hongjiu.lu@intel.com>
6231
6232         * config/i386/i386.c (processor_alias_table): Add core-avx-i.
6233
6234         * doc/invoke.texi: Document core-avx-i.
6235
6236 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6237
6238         * tsystem.h (CONST_CAST2, CONST_CAST): Define.
6239
6240 2011-08-05  Ira Rosen  <ira.rosen@linaro.org>
6241
6242         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use the
6243         result of multiple results reduction when extracting the final
6244         value using scalar code.
6245
6246 2011-08-05  Richard Guenther  <rguenther@suse.de>
6247
6248         PR tree-optimization/49984
6249         * tree-vrp.c (extract_range_from_binary_expr_1): Handle BIT_XOR_EXPR.
6250
6251 2011-08-05  Richard Guenther  <rguenther@suse.de>
6252
6253         * tree-vrp.c (zero_nonzero_bits_from_vr): Make sure to always
6254         return true for constant integer ranges.
6255         (extract_range_from_binary_expr_1): Simplify BIT_AND_EXPR and
6256         BIT_IOR_EXPR handling.
6257
6258 2011-08-04  Kai Tietz  <ktietz@redhat.com>
6259
6260         * config/i386/i386.c (setup_incoming_varargs_ms_64): Set
6261         ix86_varargs_gpr_size and ix86_varargs_fpr_size to zero.
6262
6263 2011-08-04  Ira Rosen  <ira.rosen@linaro.org>
6264
6265         * tree-vectorizer.h (struct _stmt_vec_info): Add new field for
6266         pattern def statement, and its access macro.
6267         (NUM_PATTERNS): Set to 5.
6268         * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
6269         pattern def statement.
6270         (vect_transform_loop): Likewise.
6271         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add new
6272         function vect_recog_over_widening_pattern ().
6273         (vect_operation_fits_smaller_type): New function.
6274         (vect_recog_over_widening_pattern, vect_mark_pattern_stmts):
6275         Likewise.
6276         (vect_pattern_recog_1): Move the code that marks pattern
6277         statements to vect_mark_pattern_stmts (), and call it.  Update
6278         documentation.
6279         * tree-vect-stmts.c (vect_supportable_shift): New function.
6280         (vect_analyze_stmt): Handle pattern def statement.
6281         (new_stmt_vec_info): Initialize pattern def statement.
6282
6283 2011-08-04  Richard Henderson  <rth@redhat.com>
6284
6285         PR target/49964
6286         * config/i386/i386.c (ix86_expand_call): Don't create nested
6287         PARALLELs for TARGET_VZEROUPPER.
6288         (ix86_split_call_vzeroupper): Fix extraction of the original call.
6289         * config/i386/i386.md (*call_rex64_ms_sysv_vzeroupper): Don't
6290         recognize nested PARALLELs.
6291         (*call_pop_vzeroupper, *sibcall_pop_vzeroupper,
6292         *call_value_rex64_ms_sysv_vzeroupper, *call_value_pop_vzeroupper,
6293         *sibcall_value_pop_vzeroupper): Likewise.
6294
6295 2011-08-04  Richard Henderson  <rth@redhat.com>
6296
6297         PR middle-end/49968
6298         * calls.c (expand_call): Use fixup_args_size_notes for
6299         emit_stack_restore.
6300         * expr.c (fixup_args_size_notes): Allow STACK_POINTER_REGNUM sets
6301         in non-standard modes.
6302
6303 2011-08-04  Jakub Jelinek  <jakub@redhat.com>
6304
6305         * gcc.c (self_spec): New variable.
6306         (static_specs): Add self_spec.
6307         (main): Call do_self_spec on "self_spec" specs after reading
6308         user specs files.  Move compare_debug handling right after that.
6309
6310 2011-08-04  Richard Guenther  <rguenther@suse.de>
6311
6312         * tree-vrp.c (vrp_expr_computes_nonnegative): Remove.
6313         (value_range_nonnegative_p): New function.
6314         (ssa_name_nonnegative_p): Use it.
6315         (value_range_constant_singleton): New function.
6316         (op_with_constant_singleton_value_range): Use it.
6317         (extract_range_from_binary_expr_1): New function, split out from ...
6318         (extract_range_from_binary_expr): ... this.  Remove fallback
6319         constant folding done here.
6320
6321 2011-08-04  Richard Guenther  <rguenther@suse.de>
6322
6323         PR tree-optimization/49806
6324         * tree-vrp.c (op_with_boolean_value_range_p): New function.
6325         (simplify_truth_ops_using_ranges): Simplify.  Allow inserting
6326         a new statement for a final conversion to bool.
6327
6328 2011-08-04  Romain Geissler  <romain.geissler@gmail.com>
6329
6330         * gengtype-state.c: Include "bconfig.h" if
6331         GENERATOR_FILE is defined, "config.h" otherwise.
6332         * gengtype.c: Likewise.
6333         * gengtype-lex.l: Likewise.
6334         * gengtype-parse.c: Likewise.
6335         * Makefile.in (gengtype-lex.o-warn): New variable.
6336         (plugin_resourcesdir): Likewise.
6337         (plugin_bindir): Likewise.
6338         (plugin_includedir): Use $(plugin_resourcesdir) as prefix base.
6339         (MOSTLYCLEANFILES): Add gengtype$(exeext).
6340         (native): Depend on gengtype$(exeext) is $enable_plugin
6341         is set to "yes".
6342         (gtype.state): Depend on s-gtype. Use temporary file.
6343         (gengtype-lex.o): New rule.
6344         (gengtype-parse.o): Likewise.
6345         (gengtype-state.o): Likewise.
6346         (gengtype$(exeext)): Likewise.
6347         (install-gengtype): Likewise.
6348         (gengtype.o): Likewise.
6349         (build/gengtype.o): Depend on version.h.
6350         (build/gengtype-state): Depend on double-int.h, version.h,
6351         $(HASHTAB_H), $(OBSTACK_H), $(XREGEX_H) and build/errors.o.
6352         (install-plugin): Depend on install-gengtype.
6353
6354 2011-08-04  Jakub Jelinek  <jakub@redhat.com>
6355
6356         PR middle-end/49905
6357         * tree.h (init_attributes): New prototype.
6358         * attribs.c (init_attributes): No longer static.
6359
6360 2011-08-04  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
6361
6362         * config/arm/arm.c (arm_set_fixed_optab_libfunc): Constify
6363         maybe_suffix.
6364
6365 2011-08-03   David Li  <davidxl@google.com>
6366
6367         * tree-optimize.c (execute_fixup_cfg): Fix up entry
6368         outgoing edge counts after inlining.
6369
6370 2011-08-03   David Li  <davidxl@google.com>
6371
6372         * profile.c (compute_branch_probabilities): Compute
6373         function frequency after profile annotation.
6374
6375 2011-08-04  Alan Modra  <amodra@gmail.com>
6376
6377         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Simplify
6378         use_backchain_to_restore_sp initialisation.
6379         (rs6000_legitimate_offset_address_p): Simplify offset test.
6380
6381 2011-08-03  Richard Henderson  <rth@redhat.com>
6382
6383         * config/spu/spu.md: Use define_c_enum instead of define_constants.
6384         (UNSPECV_BLOCKAGE, UNSPECV_LNOP, UNSPECV_SYNC): Rename from UNSPEC_*.
6385         (UNSPECV_NOP): New.
6386
6387 2011-08-03  Richard Henderson  <rth@redhat.com>
6388
6389         PR target/34888
6390         * config/avr/avr.md: New splitter for REG_ARGS_SIZE 0.
6391
6392 2011-08-03  Jakub Jelinek  <jakub@redhat.com>
6393
6394         PR tree-optimization/49948
6395         * gimple.c (walk_stmt_load_store_addr_ops): Walk CONSTRUCTOR elements.
6396
6397 2011-08-03  Anatoly Sokolov  <aesok@post.ru>
6398
6399         * config/m32c/m32c.c (class_sizes): Remove.
6400         (reduce_class): Change arguments and return type to reg_class_t.
6401         Change type cc var to HARD_REG_SET. Change type best var to
6402         reg_class_t. Change type best_size var to unsigned int. Remove
6403         initialization class_sizes var. Use reg_class_size array instead
6404         of class_sizes. Use reg_class_contents array instead
6405         of class_contents.
6406
6407 2011-08-03  Richard Guenther  <rguenther@suse.de>
6408
6409         PR middle-end/49958
6410         * fold-const.c (fold_binary_loc): Only associate
6411         (+ (+ (* a b) c) (* d e)) as (+ (+ (* a b) (* d e)) c) if
6412         overflow wraps.
6413
6414 2011-08-03  Alan Modra  <amodra@gmail.com>
6415
6416         PR rtl-optimization/49941
6417         * jump.c (mark_jump_label): Comment.
6418         (mark_jump_label_1): Set JUMP_LABEL for return jumps.
6419         * emit-rtl.c (copy_rtx_if_shared_1, copy_insn_1): Leave RETURN shared.
6420         (mark_used_flags): Don't mark RETURN.
6421
6422 2011-08-03  Richard Guenther  <rguenther@suse.de>
6423
6424         PR tree-optimization/49938
6425         * tree-scalar-evolution.c (interpret_loop_phi): Gracefully
6426         deal with a POLYNOMIAL_CHREC.
6427
6428 2011-08-03  Revital Eres  <revital.eres@linaro.org>
6429
6430         * modulo-sched.c (calculate_stage_count,
6431         calculate_must_precede_follow, get_sched_window,
6432         try_scheduling_node_in_cycle, remove_node_from_ps): Add
6433         declaration.
6434         (update_node_sched_params, set_must_precede_follow, optimize_sc):
6435         New functions.
6436         (reset_sched_times): Call update_node_sched_params.
6437         (sms_schedule): Call optimize_sc.
6438         (get_sched_window): Change function arguments.
6439         (sms_schedule_by_order): Update call to get_sched_window.
6440         Call set_must_precede_follow.
6441         (calculate_stage_count): Add function argument.
6442
6443 2011-08-02  Richard Henderson  <rth@redhat.com>
6444
6445         PR target/49864
6446         PR target/49879
6447         * reg-notes.def (REG_ARGS_SIZE): New.
6448         * calls.c (emit_call_1): Emit REG_ARGS_SIZE for call_pop.
6449         (expand_call): Add REG_ARGS_SIZE to emit_stack_restore.
6450         * cfgcleanup.c (old_insns_match_p): Don't allow cross-jumping to
6451         different stack levels.
6452         * combine-stack-adj.c (adjust_frame_related_expr): Remove.
6453         (maybe_move_args_size_note): New.
6454         (combine_stack_adjustments_for_block): Use it.
6455         * combine.c (distribute_notes): Place REG_ARGS_SIZE.
6456         * dwarf2cfi.c (dw_cfi_row_struct): Remove args_size member.
6457         (dw_trace_info): Add beg_true_args_size, end_true_args_size,
6458         beg_delay_args_size, end_delay_args_size, eh_head, args_size_undefined.
6459         (cur_cfa): New.
6460         (queued_args_size): Remove.
6461         (add_cfi_args_size): Assert size is non-negative.
6462         (stack_adjust_offset, dwarf2out_args_size): Remove.
6463         (dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust): Remove.
6464         (notice_args_size, notice_eh_throw): New.
6465         (dwarf2out_frame_debug_def_cfa): Use cur_cfa.
6466         (dwarf2out_frame_debug_adjust_cfa): Likewise.
6467         (dwarf2out_frame_debug_cfa_offset): Likewise.
6468         (dwarf2out_frame_debug_expr): Likewise.  Don't stack_adjust_offset.
6469         (dwarf2out_frame_debug): Don't handle non-frame-related-p insns.
6470         (change_cfi_row): Don't emit args_size.
6471         (maybe_record_trace_start_abnormal): Split out from ...
6472         (maybe_record_trace_start): Here.  Set args_size_undefined.
6473         (create_trace_edges): Update to match.
6474         (scan_trace): Handle REG_ARGS_SIZE.
6475         (connect_traces): Connect args_size between EH insns.
6476         * emit-rtl.c (try_split): Handle REG_ARGS_SIZE.
6477         * explow.c (suppress_reg_args_size): New.
6478         (adjust_stack_1): Split out from ...
6479         (adjust_stack): ... here.
6480         (anti_adjust_stack): Use it.
6481         (allocate_dynamic_stack_space): Suppress REG_ARGS_SIZE.
6482         * expr.c (mem_autoinc_base): New.
6483         (fixup_args_size_notes): New.
6484         (emit_single_push_insn_1): Rename from emit_single_push_insn.
6485         (emit_single_push_insn): New.  Generate REG_ARGS_SIZE.
6486         * recog.c (peep2_attempt): Handle REG_ARGS_SIZE.
6487         * reload1.c (reload_as_needed): Likewise.
6488         * rtl.h (fixup_args_size_notes): Declare.
6489
6490 2011-08-02  Paolo Carlini  <paolo.carlini@oracle.com>
6491
6492         PR bootstrap/49914
6493         * fold-const.c (fold_plusminus_mult_expr): Use abs_hwi instead
6494         of abs.
6495         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
6496         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
6497
6498 2011-08-02  Richard Henderson  <rth@redhat.com>
6499
6500         * config/h8300/h8300.c (push, pop): Return the insn.
6501         (h8300_swap_into_er6): Generate correct unwind info.
6502         (h8300_swap_out_of_er6): Likewise.
6503         * dwarf2cfi.c (def_cfa_1): Clear cfa_cfi if we no longer have a
6504         complex cfa expression.
6505         (dwarf2out_frame_debug_def_cfa): Allow (plus (mem) (const_int)) too.
6506
6507 2011-08-02  H.J. Lu  <hongjiu.lu@intel.com>
6508
6509         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
6510
6511 2011-08-02  Richard Henderson  <rth@redhat.com>
6512
6513         PR target/49878
6514         * config/h8300/h8300.c (h8300_move_ok): New.
6515         * config/h8300/h8300-protos.h: Declare it.
6516         * config/h8300/h8300.md (P): New mode iterator.
6517         (*movqi_h8300, *movqi_h8300hs, movqi): Use h8300_move_ok.
6518         (*movqi_h8sx, *movhi_h8300, *movhi_h8300hs, movhi): Likewise.
6519         (movsi, *movsi_h8300, *movsi_h8300hs): Likewise.
6520         (*pushqi1_h8300): Rename from pushqi1_h8300; use PRE_MODIFY.
6521         (*pushqi1_h8300hs_<P>): Macroize from pushqi1_h8300hs_advanced
6522         and pushqi1_h8300hs_normal; use PRE_MODIFY and
6523         register_no_sp_elim_operand.
6524         (*pushhi1_h8300hs_<P>): Similarly.
6525         (pushqi1, pushhi1, pushhi1_h8300): Remove.
6526         * config/h8300/predicates.md (register_no_sp_elim_operand): New.
6527
6528 2011-08-02  Richard Henderson  <rth@redhat.com>
6529
6530         PR target/49881
6531         * config/avr/avr.md (push<MPUSH>1): Don't constrain the operand.
6532
6533 2011-08-02  Jakub Jelinek  <jakub@redhat.com>
6534
6535         * c-parser.c (enum c_parser_prec): New enum, moved from within
6536         c_parser_binary_expression.
6537         (c_parser_binary_expression): Add PREC argument.  Stop parsing
6538         if operator has lower or equal precedence than PREC.
6539         (c_parser_conditional_expression, c_parser_omp_for_loop): Adjust
6540         callers.
6541         (c_parser_omp_atomic): Handle parsing OpenMP 3.1 atomics.
6542         Adjust c_finish_omp_atomic caller.
6543         (c_parser_omp_taskyield): New function.
6544         (c_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
6545         (c_parser_omp_clause_name): Handle final and mergeable clauses.
6546         (c_parser_omp_clause_final, c_parser_omp_clause_mergeable): New
6547         functions.
6548         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
6549         and PRAGMA_OMP_CLAUSE_MERGEABLE.
6550         (OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
6551         (c_parser_omp_clause_reduction): Handle min and max.
6552         * c-typeck.c (c_finish_omp_clauses): Don't complain about
6553         const qualified predetermined vars in firstprivate clause.
6554         andle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
6555         Handle MIN_EXPR and MAX_EXPR.
6556         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FINAL
6557         and OMP_CLAUSE_MERGEABLE.
6558         (dump_generic_node): Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD
6559         and OMP_ATOMIC_CAPTURE_NEW.
6560         * tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FINAL and
6561         OMP_CLAUSE_MERGEABLE.
6562         (omp_clause_code_name): Likewise.
6563         (walk_tree_1): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
6564         * tree.h (enum omp_clause_code): Add OMP_CLAUSE_FINAL
6565         and OMP_CLAUSE_MERGEABLE.
6566         (OMP_CLAUSE_FINAL_EXPR): Define.
6567         * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FINAL and
6568         OMP_CLAUSE_MERGEABLE.
6569         (expand_task_call): Likewise.
6570         (expand_omp_atomic_load, expand_omp_atomic_store): New functions.
6571         (expand_omp_atomic_fetch_op): Handle cases where old or new
6572         value is needed afterwards.
6573         (expand_omp_atomic): Call expand_omp_atomic_load resp.
6574         expand_omp_atomic_store.
6575         * gimplify.c (gimplify_omp_atomic, gimplify_expr): Handle
6576         OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and OMP_ATOMIC_CAPTURE_NEW.
6577         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
6578         OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
6579         * tree-nested.c (convert_nonlocal_omp_clauses,
6580         convert_local_omp_clauses): Likewise.
6581         * tree.def (OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD,
6582         OMP_ATOMIC_CAPTURE_NEW): New.
6583         * gimple.h (GF_OMP_ATOMIC_NEED_VALUE): New.
6584         (gimple_omp_atomic_need_value_p, gimple_omp_atomic_set_need_value):
6585         New inlines.
6586         * omp-builtins.def (BUILT_IN_GOMP_TASKYIELD): New builtin.
6587         * doc/generic.texi: Mention OMP_CLAUSE_COLLAPSE,
6588         OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
6589
6590 2011-08-02  Kai Tietz  <ktietz@redhat.com>
6591
6592         * gimple.c (canonicalize_cond_expr_cond): Handle cast from
6593         boolean-type.
6594         (ssa_forward_propagate_and_combine): Interprete result of
6595         forward_propagate_comparison.
6596         * gcc/gimple-fold.c (fold_gimple_assign): Add canonicalization for
6597         boolean-typed operands for comparisons.
6598
6599 2011-08-02  Georg-Johann Lay  <avr@gjlay.de>
6600
6601         * config/avr/libgcc.S: Gather related function in the
6602         same input section.
6603         (__mulqihi3, __mulqihi3, __divmodqi4, __divmodhi4, __udivmodsi4,
6604         __divmodsi4): Use XCALL/XJMP instead of rcall/rjmp for external
6605         references.
6606         (__udivmodqi4, __divmodqi4, __udivmodhi4, __divmodhi4,
6607         __udivmodsi4, __divmodsi4, __prologue_saves__,
6608         __epilogue_restores__, _exit, __tablejump2__, __tablejump__,
6609         __do_copy_data, __do_clear_bss, __do_global_ctors,
6610         __do_global_dtors, __tablejump_elpm__): Enclose in DEFUN/ENDF.
6611
6612 2011-08-02  Uros Bizjak  <ubizjak@gmail.com>
6613
6614         PR target/47766
6615         * doc/md.texi (stack_protect_set): The pattern moves ptr_mode value.
6616         (stack_protect_test): The pattern compares ptr_mode value.
6617
6618 2011-08-02  Alan Modra  <amodra@gmail.com>
6619
6620         * config/rs6000/rs6000.c (rs6000_emit_prologue): Add REG_CFA_RESTORE
6621         note for save_LR_around_toc_setup sequence.
6622
6623 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
6624
6625         * config/i386/lzcntintrin.h (__lzcnt64): Replace long with long long.
6626
6627 2011-08-01  Sebastian Pop  <sebastian.pop@amd.com>
6628             Joseph Myers  <joseph@codesourcery.com>
6629
6630         * Makefile.in (hwint.o): Depend on DIAGNOSTIC_CORE_H.
6631         * hwint.c: Include diagnostic-core.h.
6632         (abs_hwi): New.
6633         (gcd): Moved here...
6634         (pos_mul_hwi): New.
6635         (mul_hwi): New.
6636         (least_common_multiple): Moved here...
6637         * hwint.h (gcd): ... from here.
6638         (least_common_multiple): ... from here.
6639         (HOST_WIDE_INT_MIN): New.
6640         (HOST_WIDE_INT_MAX): New.
6641         (abs_hwi): Declared.
6642         (gcd): Declared.
6643         (pos_mul_hwi): Declared.
6644         (mul_hwi): Declared.
6645         (least_common_multiple): Declared.
6646         * omega.c (check_pos_mul): Removed.
6647         (check_mul): Removed.
6648         (omega_solve_geq): Use pos_mul_hwi instead of check_pos_mul and
6649         mul_hwi instead of check_mul.
6650
6651 2011-08-01  Richard Henderson  <rth@redhat.com>
6652
6653         PR target/49881
6654         * config/avr/avr.h (PUSH_ROUNDING): New.
6655         * config/avr/avr.md (pushqi1): Rename from *pushqi.
6656         (*pushhi, *pushsi, *pushsf): Remove.
6657         (MPUSH): New mode iterator.
6658         (push<MPUSH>1): New expander.
6659
6660 2011-08-01  Anatoly Sokolov  <aesok@post.ru>
6661
6662         * config/mmix/mmix.h (PREFERRED_RELOAD_CLASS,
6663         PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
6664         * config/mmix/mmix-protos.h (mmix_preferred_reload_class,
6665         mmix_preferred_output_reload_class): Remove.
6666         * config/mmix/mmix.c (mmix_preferred_reload_class,
6667         mmix_preferred_output_reload_class): Make static. Change rclass
6668         argument and return type to reg_class_t.
6669         (TARGET_PREFERRED_RELOAD_CLASS,
6670         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
6671
6672 2011-08-01  Joern Rennecke  <joern.rennecke@embecosm.com>
6673
6674         * mode-switching.c (optimize_mode_switching): Fix bug in MODE_AFTER
6675         handling.
6676
6677 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
6678
6679         PR target/47766
6680         * config/i386/i386.md (PTR): New.
6681         (stack_protect_set: Check TARGET_LP64 instead of TARGET_64BIT.
6682         (stack_protect_test): Likewise.
6683         (stack_protect_set_<mode>): Replace ":P" with ":PTR".
6684         (stack_tls_protect_set_<mode>): Likewise.
6685         (stack_tls_protect_test_<mode>): Likewise.
6686
6687 2011-08-01  Uros Bizjak  <ubizjak@gmail.com>
6688
6689         PR target/49927
6690         * config/i386/i386.c (ix86_address_subreg_operand): New.
6691         (ix86_decompose_address): Use ix86_address_subreg_operand.
6692         (ix86_legitimate_address_p): Do not assert that subregs satisfy
6693         register_no_elim_operand in DImode.
6694
6695 2011-08-01  Ira Rosen  <ira.rosen@linaro.org>
6696
6697         PR tree-optimization/49926
6698         * tree-vect-loop.c (vect_is_slp_reduction): Check that a statement
6699         in a chain doesn't have uses both inside and outside the loop.
6700
6701 2011-08-01  Georg-Johann Lay  <avr@gjlay.de>
6702
6703         * config/avr/avr.h (mcu_type_s): Add errata_skip field.
6704         * config/avr/avr-devices.c (avr_mcu_types): Use it.
6705         * config/avr/avr-mcus.def (AVR_MCU): Use it.
6706         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it to builtin
6707         define __AVR_ERRATA_SKIP__ and __AVR_ERRATA_SKIP_JMP_CALL__.
6708         * config/avr/libgcc.S (__mulshisi3, __ffshi2, __fmulsu_exit):
6709         Use __AVR_ERRATA_SKIP_JMP_CALL__ instead of __AVR_HAVE_JMP_CALL__
6710         to detect if XJMP must not be skipped.
6711
6712 2011-08-02  Alan Modra  <amodra@gmail.com>
6713
6714         * config/rs6000/rs6000-protos.h (rs6000_save_toc_in_prologue_p):
6715         Delete.
6716         * config/rs6000/rs6000.c (rs6000_save_toc_in_prologue_p): Make static.
6717         (rs6000_emit_prologue): Don't prematurely return when
6718         TARGET_SINGLE_PIC_BASE.  Don't emit eh_frame info in
6719         save_toc_in_prologue case.
6720         (rs6000_call_indirect_aix): Only disallow save_toc_in_prologue for
6721         calls_alloca.
6722
6723 2011-08-01  Georg-Johann Lay  <avr@gjlay.de>
6724
6725         * config/avr/avr-devices.c: Delete SVN property svn:executable.
6726         * config/avr/predicates.md: Ditto.
6727         * config/avr/driver-avr.c: Ditto.
6728         * config/avr/genopt.sh: Set SVN property svn:executable to *.
6729
6730 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
6731
6732         * calls.c (emit_library_call_value_1): Declare size only if
6733         BLOCK_REG_PADDING is defined.
6734
6735 2011-08-01  Kirill Yukhin  <kirill.yukhin@intel.com>
6736
6737         PR target/49547
6738         * config.gcc (i[34567]86-*-*): Replace abmintrin.h with lzcntintrin.h.
6739         (x86_64-*-*): Likewise.
6740         * config/i386/i386.opt (mlzcnt): New.
6741         * config/i386/abmintrin.h: File removed.
6742         (__lzcnt_u16, __lzcnt, __lzcnt_u64): Moved to ...
6743         * config/i386/lzcntintrin.h: ... here.  New file.
6744         (__lzcnt): Rename to ...
6745         (__lzcnt32): ... this.
6746         * config/i386/bmiintrin.h (head): Update copyright year.
6747         (__lzcnt_u16): Removed.
6748         (__lzcnt_u32): Likewise.
6749         (__lzcnt_u64): Likewise.
6750         * config/i386/x86intrin.h: Include lzcntintrin.h when __LZCNT__
6751         is defined, remove abmintrin.h.
6752         * config/i386/cpuid.h (bit_LZCNT): New.
6753         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
6754         LZCNT feature.
6755         * config/i386/i386-c.c (ix86_target_macros_internal): Define
6756         __LZCNT__ if needed.
6757         * config/i386/i386.c (ix86_target_string): New option -mlzcnt.
6758         (ix86_option_override_internal): Handle LZCNT option.
6759         (ix86_valid_target_attribute_inner_p): Likewise.
6760         (struct builtin_description bdesc_args) <IX86_BUILTIN_CLZS>: Update.
6761         * config/i386/i386.h (TARGET_LZCNT): New.
6762         (CLZ_DEFINED_VALUE_AT_ZERO): Update.
6763         * config/i386/i386.md (clz<mode>2): Update insn constraint.
6764         (clz<mode>2_lzcnt): Likewise.
6765         * doc/invoke.texi: Mention -mlzcnt option.
6766         * doc/extend.texi: Likewise.
6767
6768 2011-08-01  Julian Brown  <julian@codesourcery.com>
6769
6770         * configure.ac (fixed-point): Add ARM support.
6771         * configure: Regenerate.
6772         * config/arm/arm.c (arm_fixed_mode_set): New struct.
6773         (arm_set_fixed_optab_libfunc): New.
6774         (arm_set_fixed_conv_libfunc): New.
6775         (arm_init_libfuncs): Initialise fixed-point helper libfuncs with
6776         ARM-specific names.
6777         (aapcs_libcall_value): Return sub-word-size fixed-point libcall
6778         return values in SImode.
6779         (arm_return_in_msb): Return fixed-point types in the msb.
6780         (arm_pad_reg_upwards, arm_pad_arg_upwards): Pad fixed-point types
6781         upwards.
6782         (arm_scalar_mode_supported_p): Support fixed-point modes.
6783         (arm_vector_mode_supported_p): Support vector fixed-point modes.
6784         * config/arm/arm.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE)
6785         (LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE)
6786         (SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE)
6787         (LONG_LONG_ACCUM_TYPE_SIZE, MAX_FIXED_MODE_SIZE): Define.
6788         * config/arm/iterators.md (FIXED, ADDSUB, UQADDSUB, QADDSUB, QMUL):
6789         New mode iterators.
6790         (qaddsub_suf): New mode attribute.
6791         * config/arm/arm-modes.def (FRACT, UFRACT, ACCUM, UACCUM): Declare
6792         vector modes.
6793         * config/arm/predicates.md (sat_shift_operator): New predicate.
6794         * config/arm/arm-fixed.md: New.
6795         * config/arm/arm.md: Include arm-fixed.md.
6796         * config/arm/t-arm (MD_INCLUDES): Add arm-fixed.md.
6797
6798 2011-08-01  Julian Brown  <julian@codesourcery.com>
6799
6800         * calls.c (emit_library_call_value_1): Support padding for libcall
6801         arguments and return values.
6802         * config/arm/arm.c (arm_pad_arg_upward): Pad half-float values
6803         downwards in big-endian mode.
6804
6805 2011-08-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6806
6807         PR debug/49887
6808         * config/sol2.c (solaris_code_end): Rename to solaris_file_end.
6809         * config/sol2-protos.h: Likewise.
6810         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Don't call
6811         solaris_code_end.
6812         * config/i386/sol2.h [!USE_GAS] (TARGET_ASM_FILE_END): Redefine.
6813         * config/sparc/sparc.c (sparc_file_end) [TARGET_SOLARIS]: Call
6814         solaris_file_end.
6815         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Remove.
6816
6817 2011-08-01  Julian Brown  <julian@codesourcery.com>
6818
6819         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Support FIXED_CST.
6820
6821 2011-08-01  Julian Brown  <julian@codesourcery.com>
6822
6823         * final.c (output_addr_const): Print fixed-point constants as
6824         decimal not hex.
6825
6826 2011-08-01  Richard Guenther  <rguenther@suse.de>
6827
6828         * stor-layout.c (initialize_sizetypes): Properly sign-extend
6829         bitsiztype TYPE_MAX_VALUE.
6830
6831 2011-08-01  Julian Brown  <julian@codesourcery.com>
6832
6833         * optabs.c (prepare_cmp_insn): Use correct biasing for fixed-point
6834         comparison helpers.
6835
6836 2011-07-31  Richard Henderson  <rth@redhat.com>
6837
6838         * config/h8300/crti.asm: Add flags to .section directive.
6839         * config/h8300/crtn.asm: Likewise.
6840
6841 2011-07-31  Richard Henderson  <rth@redhat.com>
6842
6843         * stor-layout.c (initialize_sizetypes): Handle unsigned short.
6844         * tree.c (build_common_tree_nodes): Likewise.
6845
6846 2011-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
6847
6848         PR target/49880
6849         * config/sh/sh.md (udivsi3_i1): Enable for TARGET_DIVIDE_CALL_DIV1.
6850         (divsi3_i1): Likewise.
6851
6852 2011-07-31  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6853
6854         PR tree-optimization/49749
6855         * tree-ssa-reassoc.c (get_rank): New forward declaration.
6856         (PHI_LOOP_BIAS): New macro.
6857         (phi_rank): New function.
6858         (loop_carried_phi): Likewise.
6859         (propagate_rank): Likewise.
6860         (get_rank): Add calls to phi_rank and propagate_rank.
6861
6862 2011-07-31  H.J. Lu  <hongjiu.lu@intel.com>
6863
6864         * config/i386/x86-64.h (SIZE_TYPE): Check TARGET_LP64 instead
6865         of TARGET_64BIT.
6866         (PTRDIFF_TYPE): Likewise.
6867
6868 2011-07-31  Uros Bizjak  <ubizjak@gmail.com>
6869
6870         PR target/49920
6871         * config/i386/i386.md (strset): Do not expand strset_singleop
6872         when %eax or $edi are fixed.
6873         (*strsetdi_rex_1): Disable when %eax or %edi are fixed.
6874         (*strsetsi_1): Ditto.
6875         (*strsethi_1): Ditto.
6876         (*strsetqi_1): Ditto.
6877         (*rep_stosdi_rex64): Disable when %eax, %ecx or %edi are fixed.
6878         (*rep_stossi): Ditto.
6879         (*rep_stosqi): Ditto.
6880         (*strlenqi_1): Ditto.
6881         (cmpstrnsi): Also fail when %ecx is fixed.
6882         (*cmpstrnqi_nz_1): Disable when %ecx, %esi or %edi are fixed.
6883         (*cmpstrnqi_1): Ditto.
6884         (*strmovdi_rex_1): Disable when %esi or %edi are fixed.
6885         (*strmovsi_1): Ditto.
6886         (*strmovhi_1): Ditto.
6887         (*strmovqi_1): Ditto.
6888         (*rep_movdi_rex64): Disable when %ecx, %esi or %edi are fixed.
6889         (*rep_movsi): Ditto.
6890         (*rep_movqi): Ditto.
6891
6892 2011-07-31  Mikael Pettersson  <mikpe@it.uu.se>
6893
6894         PR target/47908
6895         * config/m68k/m68k.c (m68k_override_options_after_change): New function.
6896         Disable instruction scheduling for non-ColdFire targets.
6897         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
6898
6899 2011-07-31  Revital Eres  <revital.eres@linaro.org>
6900
6901         * ddg.c (create_ddg_dep_from_intra_loop_link): Remove the creation
6902         of anti-dep edge from a branch.
6903         (add_cross_iteration_register_deps): Create anti-dep edge from
6904         a branch.
6905
6906 2011-07-31  Revital Eres  <revital.eres@linaro.org>
6907
6908         * modulo-sched.c: Change comment.
6909         (reset_sched_times): Fix print message.
6910         (print_partial_schedule): Add print info.
6911
6912 2011-07-31  Tom de Vries  <tom@codesourcery.com>
6913
6914         PR middle-end/43513
6915         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Use max of
6916         get_object_alignment and TYPE_ALIGN.
6917
6918 2011-07-30  Tom de Vries  <tom@codesourcery.com>
6919
6920         PR middle-end/43513
6921         * tree-ssa-dce.c (ref_may_be_aliased): Add assert.
6922         (propagate_necessity): Handle WITH_SIZE_EXPR call arg.
6923
6924 2011-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6925
6926         * config/mips/driver-native.c [__sgi__]: Include <invent.h>,
6927         <sys/sbd.h>.
6928         (cpu_types): New array.
6929         (cputype): New function.
6930         (host_detect_local_cpu): Only define buf, f if !__sgi__.
6931         Use scaninvent instead of /proc/cpuinfo if __sgi__.
6932         * config.host: Also use driver-native.o, mips/x-native on
6933         mips-sgi-irix*.
6934         * config/mips/iris6.h [__mips__] (host_detect_local_cpu): Declare.
6935         (EXTRA_SPEC_FUNCTIONS, MARCH_MTUNE_NATIVE_SPECS): Define.
6936         (DRIVER_SELF_SPECS): Add MARCH_MTUNE_NATIVE_SPECS.
6937
6938 2011-07-29  Jakub Jelinek  <jakub@redhat.com>
6939
6940         PR middle-end/49897
6941         PR middle-end/49898
6942         * omp-low.c (use_pointer_for_field): If disallowing copy-in/out
6943         in nested parallel and outer is a gimple_reg, mark it as addressable
6944         and set its bit in task_shared_vars bitmap too.
6945
6946 2011-07-29  Uros Bizjak  <ubizjak@gmail.com>
6947
6948         * config/i386/predicates.md (tp_or_register_operand): Remove predicate.
6949
6950 2011-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6951
6952         * config/alpha/driver-alpha.c (IMPLVER_EV4_FAMILY,
6953         IMPLVER_EV5_FAMILY, IMPLVER_EV6_FAMILY, IMPLVER_EV7_FAMILY): Define.
6954         (AMASK_BWX, AMASK_FIX, AMASK_CIX, AMASK_MVI, AMASK_PRECISE,
6955         AMASK_LOCKPFTCHOK): Define.
6956         (host_detect_local_cpu): Remove buf, f, cpu_names.
6957         Define cpu_types, implver, amask.
6958         Use __builtin_alpha_implver, __builtin_alpha_amask to determine
6959         native CPU.
6960         * config.host: Also use driver-alpha.o, alpha/x-alpha on
6961         alpha*-dec-osf*.
6962         * config/alpha/osf5.h [__alpha__ || __alpha]
6963         (host_detect_local_cpu): Declare.
6964         (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS)
6965         (DRIVER_SELF_SPECS): Define.
6966
6967 2011-07-29  Uros Bizjak  <ubizjak@gmail.com>
6968
6969         PR target/47715
6970         * config/i386/i386.md (*load_tp_x32): New.
6971         (*load_tp_x32_zext): Ditto.
6972         (*add_tp_x32): Ditto.
6973         (*add_tp_x32_zext): Ditto.
6974         (*load_tp_<mode>): Disable for TARGET_X32 targets.
6975         (*add_tp_<mode>): Ditto.
6976         * config/i386/i386.c (get_thread_pointer): Load thread pointer in
6977         ptr_mode and convert to Pmode if needed.
6978
6979 2011-07-29  Georg-Johann Lay  <avr@gjlay.de>
6980
6981         PR target/49687
6982         * config/avr/avr.md (mulsi3, *mulsi3, mulu<mode>si3,
6983         muls<mode>si3, mulohisi3, mulhisi3, umulhisi3, usmulhisi3,
6984         *<any_extend:extend_prefix><any_extend2:extend_prefix>mul<QIHI:mode><QIHI2:mode>si3):
6985         Add X to register footprint: Clobber r26/r27.
6986
6987 2011-07-29  Richard Guenther  <rguenther@suse.de>
6988
6989         * builtins.c (fold_builtin_signbit): Build the comparison
6990         with a proper type.
6991
6992 2011-07-29  Richard Guenther  <rguenther@suse.de>
6993
6994         PR tree-optimization/49893
6995         * tree-predcom.c (suitable_reference_p): Volatile references
6996         are not suitable.
6997
6998 2011-07-29  Georg-Johann Lay  <avr@gjlay.de>
6999
7000         PR target/49313
7001         * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
7002         (__ctzsi2): Result for 0 may be undefined.
7003         (__ctzhi2): Result for 0 may be undefined.
7004         (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
7005         (__popcountsi2): Ditto. And don't clobber r26.
7006         (__popcountdi2): Ditto. And don't clobber r27.
7007         * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
7008         (parityhi2): New expand.
7009         (paritysi2): New expand.
7010         (popcounthi2): New expand.
7011         (popcountsi2): New expand.
7012         (clzhi2): New expand.
7013         (clzsi2): New expand.
7014         (ctzhi2): New expand.
7015         (ctzsi2): New expand.
7016         (ffshi2): New expand.
7017         (ffssi2): New expand.
7018         (copysignsf3): New insn.
7019         (bswapsi2): New expand.
7020         (*parityhi2.libgcc): New insn.
7021         (*parityqihi2.libgcc): New insn.
7022         (*paritysihi2.libgcc): New insn.
7023         (*popcounthi2.libgcc): New insn.
7024         (*popcountsi2.libgcc): New insn.
7025         (*popcountqi2.libgcc): New insn.
7026         (*popcountqihi2.libgcc): New insn-and-split.
7027         (*clzhi2.libgcc): New insn.
7028         (*clzsihi2.libgcc): New insn.
7029         (*ctzhi2.libgcc): New insn.
7030         (*ctzsihi2.libgcc): New insn.
7031         (*ffshi2.libgcc): New insn.
7032         (*ffssihi2.libgcc): New insn.
7033         (*bswapsi2.libgcc): New insn.
7034
7035 2011-07-29  Richard Guenther  <rguenther@suse.de>
7036
7037         * tree-vrp.c (get_value_range): Only set parameter default
7038         definitions to varying, leave others at undefined.
7039         (extract_range_from_binary_expr): Fix undefined handling.
7040         (vrp_visit_phi_node): Handle merged undefined state.
7041
7042 2011-07-29  Wei Guozhi  <carrot@google.com>
7043
7044         PR rtl-optimization/49799
7045         * combine.c (make_compound_operation): Check if the bit field is valid
7046         before change it to bit field extraction.
7047
7048 2011-07-29  Bernd Schmidt  <bernds@codesourcery.com>
7049
7050         PR rtl-optimization/49891
7051         * cfgrtl.c (force_nonfallthru_and_redirect): Set JUMP_LABEL for
7052         newly created returnjumps.
7053
7054 2011-07-28  DJ Delorie  <dj@redhat.com>
7055
7056         * expr.c (expand_expr_addr_expr_1): Detect a user request for a
7057         local frame in a naked function, and produce a suitable error for
7058         that specific case.
7059
7060         * config/m32c/m32c.c (m32c_secondary_reload_class): Allow PSI
7061         registers to be reloaded in HI classes when the target is HI.
7062
7063 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
7064
7065         * graphite-clast-to-gimple.c: Replace v1, v2, lb, ub with
7066         bound_one, bound_two.
7067
7068 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
7069
7070         PR middle-end/48648
7071         * graphite-clast-to-gimple.c (clast_get_body_of_loop): Handle
7072         CLAST assignments.
7073         (translate_clast): Same.
7074         (translate_clast_assignment): New.
7075
7076 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
7077
7078         PR tree-optimization/49876
7079         * sese.c (rename_uses): Do not return false on gloog_error: set
7080         the new_expr to integer_zero_node and continue code generation.
7081         (graphite_copy_stmts_from_block): Remove early exit on gloog_error.
7082
7083 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
7084
7085         PR debug/49846
7086         * var-tracking.c (prepare_call_arguments): For non-MODE_INT stack
7087         arguments also check if they aren't initialized with a MODE_INT
7088         mode of the same size.
7089
7090 2011-07-28  Aldy Hernandez  <aldyh@redhat.com>
7091
7092         * expr.c (get_bit_range): Handle *MEM_REF's.
7093
7094 2011-07-28  Bernd Schmidt  <bernds@codesourcery.com>
7095
7096         * rtlanal.c (tablejump_p): False for returns.
7097         * reorg.c (first_active_target_insn): New static function.
7098         (find_end_label): Set JUMP_LABEL for a new returnjump.
7099         (optimize_skip, get_jump_flags, rare_destination,
7100         mostly_true_jump, get_branch_condition,
7101         steal_delay_list_from_target, own_thread_p,
7102         fill_simple_delay_slots, follow_jumps, fill_slots_from_thread,
7103         fill_eager_delay_slots, relax_delay_slots, make_return_insns,
7104         dbr_schedule): Adjust to handle ret_rtx in JUMP_LABELs.
7105         * jump.c (delete_related_insns): Likewise.
7106         (jump_to_label_p): New function.
7107         (redirect_target): New static function.
7108         (redirect_exp_1): Use it.  Adjust to handle ret_rtx in JUMP_LABELS.
7109         (redirect_jump_1): Assert that the new label is nonnull.
7110         (redirect_jump): Likewise.
7111         (redirect_jump_2): Check for ANY_RETURN_P rather than NULL labels.
7112         * ifcvt.c (find_if_case_1): Take care when redirecting jumps to the
7113         exit block.
7114         (dead_or_predicable): Change NEW_DEST arg to DEST_EDGE.  All callers
7115         changed.  Ensure that the right label is passed to redirect_jump.
7116         * function.c (emit_return_into_block,
7117         thread_prologue_and_epilogue_insns): Ensure new returnjumps have
7118         ret_rtx in their JUMP_LABEL.
7119         * print-rtl.c (print_rtx): Handle ret_rtx in a JUMP_LABEL.
7120         * emit-rtl.c (skip_consecutive_labels): Allow the caller to
7121         pass ret_rtx as label.
7122         * cfglayout.c (fixup_reorder_chain): Use
7123         force_nonfallthru_and_redirect rather than force_nonfallthru.
7124         (duplicate_insn_chain): Copy JUMP_LABELs for returns.
7125         * rtl.h (ANY_RETURN_P): New macro.
7126         (jump_to_label_p): Declare.
7127         * resource.c (find_dead_or_set_registers): Handle ret_rtx in
7128         JUMP_LABELs.
7129         (mark_target_live_regs): Likewise.
7130         * basic-block.h (force_nonfallthru_and_redirect): Declare.
7131         * cfgrtl.c (force_nonfallthru_and_redirect): No longer static.
7132         * config/alpha/alpha.c (alpha_tablejump_addr_vec,
7133         alpha_tablejump_best_label): Remove functions.
7134         * config/alpha/alpha-protos.c (alpha_tablejump_addr_vec,
7135         alpha_tablejump_best_label): Remove declarations.
7136         * config/sh/sh.c (barrier_align, split_branches): Adjust for
7137         ret_rtx in JUMP_LABELs.
7138         * config/arm/arm.c (is_jump_table): Likewise.
7139
7140 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
7141
7142         * config/i386/predicates.md (pic_32bit_opreand): Do not define as
7143         special predicate.  Remove explicit mode checks.
7144
7145 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
7146
7147         * dwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize
7148         DW_AT_data_member_location containing just DW_OP_plus_uconst.
7149
7150         PR debug/49871
7151         * dwarf2out.c (size_of_die, value_format, output_die): Use
7152         DW_FORM_udata instead of DW_FORM_data[48] for
7153         dw_val_class_unsigned_const DW_AT_data_member_location for DWARF 3.
7154
7155 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
7156
7157         * config/i386/i386.md (*tls_global_dynamic_64): Update
7158         length attribute.
7159
7160 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
7161
7162         PR target/47715
7163         * config/i386/i386.md (*tls_global_dynamic_64): Remove mode from
7164         tls_symbolic_operand check.  Update code sequence for TARGET_X32.
7165         (tls_global_dynamic_64): Remove mode from tls_symbolic_operand check.
7166         (tls_dynamic_gnu2_64): Ditto.
7167         (*tls_dynamic_gnu2_lea_64): Ditto.
7168         (*tls_dynamic_gnu2_call_64): Ditto.
7169         (*tls_dynamic_gnu2_combine_64): Ditto.
7170
7171 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
7172
7173         * config.gcc: Set need_64bit_hwint to yes for x86 targets.
7174
7175 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
7176
7177         PR target/47364
7178         * config/i386/i386.md (strlen<mode>): Replace SWI48x with P.
7179
7180 2011-07-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
7181
7182         * config/arm/vfp.md ("*movdf_vfp"): Handle the VFP constraints
7183         before the core constraints. Adjust attributes.
7184         ("*thumb2_movdf_vfp"): Likewise.
7185
7186 2011-07-28  Kai Tietz  <ktietz@redhat.com>
7187
7188         * tree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case.
7189         (simplify_truth_ops_using_ranges): Likewise.
7190         (build_assert_expr_for): Likewise.
7191         (build_assert_expr_for_1): Remove TRUTH_NOT_EXPR case
7192         and handle BIT_NOT_EXPR for truth-operation.
7193
7194 2011-07-28  Georg-Johann Lay  <avr@gjlay.de>
7195
7196         PR target/49313
7197         Undo r176835 from trunk
7198         2011-07-27  Georg-Johann Lay
7199
7200 2011-07-28  Georg-Johann Lay  <avr@gjlay.de>
7201
7202         PR target/49687
7203         * config/avr/t-avr (LIB1ASMFUNCS): Remove _xmulhisi3_exit.
7204         Add _muluhisi3, _mulshisi3, _usmulhisi3.
7205         * config/avr/libgcc.S (__mulsi3): Rewrite.
7206         (__mulhisi3): Rewrite.
7207         (__umulhisi3): Rewrite.
7208         (__usmulhisi3): New.
7209         (__muluhisi3): New.
7210         (__mulshisi3): New.
7211         (__mulohisi3): New.
7212         (__mulqi3, __mulqihi3, __umulqihi3, __mulhi3): Use DEFUN/ENDF to
7213         declare.
7214         * config/avr/predicates.md (pseudo_register_operand): Rewrite.
7215         (pseudo_register_or_const_int_operand): New.
7216         (combine_pseudo_register_operand): New.
7217         (u16_operand): New.
7218         (s16_operand): New.
7219         (o16_operand): New.
7220         * config/avr/avr.c (avr_rtx_costs): Handle costs for mult:SI.
7221         * config/avr/avr.md (QIHI, QIHI2): New mode iterators.
7222         (any_extend, any_extend2): New code iterators.
7223         (extend_prefix): New code attribute.
7224         (mulsi3): Rewrite. Turn insn to expander.
7225         (mulhisi3): Ditto.
7226         (umulhisi3): Ditto.
7227         (usmulhisi3): New expander.
7228         (*mulsi3): New insn-and-split.
7229         (mulu<mode>si3): New insn-and-split.
7230         (muls<mode>si3): New insn-and-split.
7231         (mulohisi3): New insn-and-split.
7232         (*uumulqihisi3, *uumulhiqisi3, *uumulhihisi3, *uumulqiqisi3,
7233         *usmulqihisi3, *usmulhiqisi3, *usmulhihisi3, *usmulqiqisi3,
7234         *sumulqihisi3, *sumulhiqisi3, *sumulhihisi3, *sumulqiqisi3,
7235         *ssmulqihisi3, *ssmulhiqisi3, *ssmulhihisi3, *ssmulqiqisi3): New
7236         insn-and-split.
7237         (*mulsi3_call): Rewrite.
7238         (*mulhisi3_call): Rewrite.
7239         (*umulhisi3_call): Rewrite.
7240         (*usmulhisi3_call): New insn.
7241         (*muluhisi3_call): New insn.
7242         (*mulshisi3_call): New insn.
7243         (*mulohisi3_call): New insn.
7244         (extendqihi2): Use combine_pseudo_register_operand as predicate
7245         for operand 1.
7246         (extendqisi2): Ditto.
7247         (zero_extendqihi2): Ditto.
7248         (zero_extendqisi2): Ditto.
7249         (zero_extendhisi2): Ditto.
7250         (extendhisi2): Ditto. Don't early-clobber operand 0.
7251
7252 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
7253
7254         * config/i386/i386.c (add->lea splitter): Add SWI mode to PLUS RTX.
7255
7256 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
7257
7258         PR tree-optimization/49471
7259         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned
7260         iv only when the largest type is unsigned.  Do not call
7261         lang_hooks.types.type_for_size.
7262
7263 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
7264
7265         PR middle-end/45450
7266         * graphite-poly.c (apply_poly_transforms): Disable legality check
7267         after an openscop read.
7268
7269 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
7270
7271         PR middle-end/47691
7272         * graphite-clast-to-gimple.c (translate_clast_user): Update use of
7273         copy_bb_and_scalar_dependences.
7274         * sese.c (rename_uses): Do not call gcc_assert.  Set gloog_error.
7275         (graphite_copy_stmts_from_block): Update call to rename_uses.
7276         (copy_bb_and_scalar_dependences): Update call to
7277         graphite_copy_stmts_from_block.
7278         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
7279
7280 2011-07-27  Georg-Johann Lay  <avr@gjlay.de>
7281
7282         PR target/49313
7283         * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
7284         (__ctzsi2): Result for 0 may be undefined.
7285         (__ctzhi2): Result for 0 may be undefined.
7286         (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
7287         (__popcountsi2): Ditto. And don't clobber r26.
7288         (__popcountdi2): Ditto. And don't clobber r27.
7289         * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
7290         (parityhi2): New expand.
7291         (paritysi2): New expand.
7292         (popcounthi2): New expand.
7293         (popcountsi2): New expand.
7294         (clzhi2): New expand.
7295         (clzsi2): New expand.
7296         (ctzhi2): New expand.
7297         (ctzsi2): New expand.
7298         (ffshi2): New expand.
7299         (ffssi2): New expand.
7300         (copysignsf3): New insn.
7301         (bswapsi2): New expand.
7302         (*parityhi2.libgcc): New insn.
7303         (*parityqihi2.libgcc): New insn.
7304         (*paritysihi2.libgcc): New insn.
7305         (*popcounthi2.libgcc): New insn.
7306         (*popcountsi2.libgcc): New insn.
7307         (*popcountqi2.libgcc): New insn.
7308         (*popcountqihi2.libgcc): New insn-and-split.
7309         (*clzhi2.libgcc): New insn.
7310         (*clzsihi2.libgcc): New insn.
7311         (*ctzhi2.libgcc): New insn.
7312         (*ctzsihi2.libgcc): New insn.
7313         (*ffshi2.libgcc): New insn.
7314         (*ffssihi2.libgcc): New insn.
7315         (*bswapsi2.libgcc): New insn.
7316
7317 2011-07-27  Uros Bizjak  <ubizjak@gmail.com>
7318
7319         * config/i386/i386.c (ix86_expand_move): Do not explicitly check
7320         the mode of symbolic_opreand RTXes.
7321
7322 2011-07-27  Uros Bizjak  <ubizjak@gmail.com>
7323
7324         * config/i386/predicates.md (x86_64_movabs_operand): Return false
7325         for pic_32bit_operand RTXes.
7326         * config/i386/i386.c (ix86_expand_move): Check x86_64_movabs_operand
7327         in DImode.
7328
7329 2011-07-27  Kai Tietz  <ktietz@redhat.com>
7330
7331         * config/i386/i386.c (ix86_option_override_internal): Allow -mabi
7332         for 32-bit, too.
7333         (ix86_handle_abi_attribute): Allow function attributes
7334         ms_abi/sysv_abi in 32-bit mode, too.
7335         * doc/extend.texi: Adjust attribute documentation.
7336
7337         * gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR
7338         expression handling.
7339         (and_var_with_comparison_1): Likewise.
7340
7341 2011-07-27  Aldy Hernandez  <aldyh@redhat.com>
7342
7343         * params.h (ALLOW_STORE_DATA_RACES): New.
7344         * params.def (PARAM_ALLOW_STORE_DATA_RACES): New.
7345         * Makefile.in (expr.o): Depend on PARAMS_H.
7346         * machmode.h (get_best_mode): Add argument.
7347         * fold-const.c (optimize_bit_field_compare): Add argument to
7348         get_best_mode.
7349         (fold_truthop): Same.
7350         * ifcvt.c (noce_emit_move_insn): Add argument to store_bit_field.
7351         * expr.c (emit_group_store): Same.
7352         (copy_blkmode_from_reg): Same.
7353         (write_complex_part): Same.
7354         (optimize_bitfield_assignment_op): Add argument.
7355         Add argument to get_best_mode.
7356         (get_bit_range): New.
7357         (expand_assignment): Calculate maxbits and pass it down accordingly.
7358         (store_field): New argument.
7359         (expand_expr_real_2): New argument to store_field.  Include params.h.
7360         * expr.h (store_bit_field): New argument.
7361         * stor-layout.c (get_best_mode): Restrict mode expansion by taking
7362         into account maxbits.
7363         * calls.c (store_unaligned_arguments_into_pseudos): New argument
7364         to store_bit_field.
7365         * expmed.c (store_bit_field_1): New argument.  Use it.
7366         (store_bit_field): Same.
7367         (store_fixed_bit_field): Same.
7368         (store_split_bit_field): Same.
7369         (extract_bit_field_1): Pass new argument to get_best_mode.
7370         (extract_bit_field): Same.
7371         * stmt.c (store_bit_field): Pass new argument to store_bit_field.
7372         * doc/invoke.texi: Document parameter allow-store-data-races.
7373
7374 2011-07-27  Jakub Jelinek  <jakub@redhat.com>
7375
7376         * dwarf2out.c (gen_producer_string): Ignore also -fverbose-asm option.
7377
7378 2011-07-27  Kai Tietz  <ktietz@redhat.com>
7379
7380         * tree-vrp.c (extract_range_from_binary_expr): Remove
7381         TRUTH-binary cases and add new bitwise-cases.
7382         (extract_range_from_assignment): Likewise.
7383         (register_edge_assert_for_1): Likeiwise.
7384         (register_edge_assert_for): Likewise.
7385         (simplify_truth_ops_using_ranges): Likewise.
7386         (simplify_stmt_using_ranges): Likewise.
7387
7388 2011-07-26  H.J. Lu  <hongjiu.lu@intel.com>
7389
7390         PR target/47372
7391         * config/i386/i386.c (ix86_delegitimize_address): Call
7392         simplify_gen_subreg for PIC with mode of x only if modes of
7393         x and orig_x are different.
7394
7395 2011-07-26  Jakub Jelinek  <jakub@redhat.com>
7396
7397         * dwarf2out.c (output_macinfo_op): Ensure fd->filename points
7398         to GC allocated copy of the string.
7399         (dwarf2out_finish): Emit .debug_macinfo or .debug_macro sections
7400         before .debug_line, not after it.
7401
7402 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
7403
7404         PR middle-end/47046
7405         * tree-chrec.h (evolution_function_is_affine_p): Recursively call
7406         evolution_function_is_affine_p on CHREC_RIGHT.
7407
7408 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
7409
7410         * tree-data-ref.c (max_stmt_executions_tree): Do not call
7411         lang_hooks.types.type_for_size.
7412
7413 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
7414
7415         PR middle-end/47653
7416         * graphite-scop-detection.c (graphite_can_represent_loop): Discard
7417         loops using wrapping semantics.
7418
7419 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
7420
7421         PR middle-end/48805
7422         * tree-scalar-evolution.c (instantiate_scev_r): Return
7423         chrec_dont_know for ADDR_EXPR.
7424
7425 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
7426             H.J. Lu  <hongjiu.lu@intel.com>
7427
7428         PR target/47369
7429         PR target/49853
7430         * config/i386/i386.c (ix86_expand_move): Call convert_to_mode
7431         if legitimize_tls_address returned operand in wrong mode. Allow
7432         SImode and DImode symbolic operand for PIC.  Call convert_to_mode
7433         if legitimize_pic_address returned operand in wrong mode.
7434
7435 2011-07-26  Martin Jambor  <mjambor@suse.cz>
7436
7437         * tree-sra.c (tree_non_mode_aligned_mem_p): Strip conversions and
7438         return false for invariants.
7439
7440 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
7441
7442         * config/i386/i386.md (add->lea splitter): Implement using SWI
7443         mode iterator.  Change operand 2 predicate to <nonmemory_operand>.
7444         (add->lea zext splitter): Change operand 2 predicate to
7445         x86_64_nonmemory_operand.
7446
7447 2011-07-26  Richard Guenther  <rguenther@suse.de>
7448
7449         * predict.c (maybe_hot_frequency_p): Make sure a zero entry-block
7450         frequency makes everything hot.
7451
7452 2011-07-26  Richard Guenther  <rguenther@suse.de>
7453
7454         PR tree-optimization/49840
7455         * tree-vrp.c (range_fits_type_p): Properly handle full
7456         double-int precision.
7457
7458 2011-07-26  Martin Jambor  <mjambor@suse.cz>
7459
7460         PR bootstrap/49786
7461         * ipa-cp.c (update_profiling_info): Avoid overflow when updating
7462         counts.
7463         (update_specialized_profile): Likewise.
7464
7465 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
7466             H.J. Lu  <hongjiu.lu@intel.com>
7467
7468         PR target/47381
7469         PR target/49832
7470         PR target/49833
7471         * config/i386/i386.md (i): Change SImode attribute to "e".
7472         (g): Change SImode attribute to "rme".
7473         (di): Change SImode attribute to "nF".
7474         (general_operand): Change SImode attribute to x86_64_general_operand.
7475         (general_szext_operand): Change SImode attribute to
7476         x86_64_szext_general_operand.
7477         (immediate_operand): Change SImode attribute to
7478         x86_64_immediate_operand.
7479         (nonmemory_operand): Change SImode attribute to
7480         x86_64_nonmemory_operand.
7481         (*movdi_internal_rex64): Remove mode from pic_32bit_operand check.
7482         (*movsi_internal): Ditto.  Use "e" constraint in alternative 2.
7483         (*lea_1): Use SWI48 mode iterator.
7484         (*lea_1_zext): New insn pattern.
7485         (testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2.
7486         (*bt<mode>): Ditto.
7487         (*add<mode>1): Use x86_64_general_operand predicate for operand 2.
7488         Update operand constraints.
7489         (addsi_1_zext): Ditto.
7490         (*add<mode>2): Ditto.
7491         (*addsi_3_zext): Ditto.
7492         (*subsi_1_zext): Ditto.
7493         (*subsi_2_zext): Ditto.
7494         (*subsi_3_zext): Ditto.
7495         (*addsi3_carry_zext): Ditto.
7496         (*<plusminus_insn>si3_zext_cc_overflow): Ditto.
7497         (*mulsi3_1_zext): Ditto.
7498         (*andsi_1): Ditto.
7499         (*andsi_1_zext): Ditto.
7500         (*andsi_2_zext): Ditto.
7501         (*<any_or:code>si_1_zext): Ditto.
7502         (*<any_or:code>si_2_zext): Ditto.
7503         (*test<mode>_1): Use <general_operand> predicate for operand 1.
7504         (*and<mode>_2): Ditto.
7505         (mov<mode>cc): Use  <general_operand> predicate for operands 1 and 2.
7506         (add->lea splitter): Check operand modes in insn constraint.  Extend
7507         operands less than SImode wide to SImode.
7508         (add->lea zext splitter): Do not extend input operands to DImode.
7509         (*lea_general_1): Handle only QImode and HImode operands.
7510         (*lea_general_2): Ditto.
7511         (*lea_general_3): Ditto.
7512         (*lea_general_1_zext): Remove.
7513         (*lea_general_2_zext): Ditto.
7514         (*lea_general_3_zext): Ditto.
7515         (*lea_general_4): Check operand modes in insn constraint.  Extend
7516         operands less than SImode wide to SImode.
7517         (ashift->lea splitter): Ditto.
7518         * config/i386/i386.c (ix86_print_operand_address): Print address
7519         registers with 'q' modifier on 64bit targets.
7520         * config/i386/predicates.md (pic_32bit_opreand): Define as special
7521         predicate.  Reject non-SI and non-DI modes.
7522
7523 2011-07-25  Andrew Pinski  <apinski@cavium.com>
7524
7525         PR tree-opt/49671
7526         * tree-inline.c (remap_gimple_op_r): Copy TREE_THIS_VOLATILE and
7527         TREE_THIS_NOTRAP into the inner most MEM_REF.
7528         Always copy TREE_THIS_VOLATILE.
7529         * tree-sra.c (ptr_parm_has_direct_uses): Check that the lhs, rhs and
7530         arguments are not volatile references.
7531
7532 2011-07-25  Richard Henderson  <rth@redhat.com>
7533
7534         * insn-notes.def (NOTE_INSN_CFA_RESTORE_STATE): Remove.
7535         * final.c (final_scan_insn): Don't test for it.
7536         (rest_of_clean_state): Likewise.
7537
7538 2011-07-25  Richard Henderson  <rth@redhat.com>
7539
7540         PR debug/49841
7541         * config/rs6000/rs6000.c (rs6000_frame_related): Return the insn.
7542         (emit_frame_save): Likewise.
7543         (rs6000_emit_prologue): Move the FRAME_RELATED_EXPR from the save
7544         insn onto a dummy blockage insn after the join label.
7545
7546 2011-07-25  Richard Henderson  <rth@redhat.com>
7547
7548         * dwarf2cfi.c (dw_trace_info): Add ID member.
7549         (get_trace_index): Remove.  Change users to use ID member.
7550         (before_next_cfi_note): New.
7551         (connect_traces): Remove unreachable traces before the main loop.
7552         Look across one trace and generate remember/restore_state if needed.
7553
7554 2011-07-25  Richard Henderson  <rth@redhat.com>
7555
7556         * dwarf2cfi.c (dump_cfi_row, debug_cfi_row): New.
7557
7558 2011-07-25  Joern Rennecke  <joern.rennecke@embecosm.com>
7559
7560         * genattr.c (write_upcase, gen_attr <enum definition writing>):
7561         Move to ...
7562         * genattr-common.c ... here.
7563         (main): Call gen_attr.
7564         * optc-gen.awk: Make generated program include insn-attr-common.h .
7565         * Makefile.in (oprions.o): Depend on insn-attr-common.h
7566
7567 2011-07-25  Anatoly Sokolov  <aesok@post.ru>
7568
7569         * config/m32c/m32c.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
7570         PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
7571         * config/m32c/m32c-protos.h (m32c_print_operand_punct_valid_p,
7572         m32c_print_operand, m32c_print_operand_address): Remove.
7573         * config/m32c/m32c.c (m32c_print_operand_punct_valid_p): Make static.
7574         Change return type to bool. Change argument type to bool.
7575         (m32c_print_operand, m32c_print_operand_address): Make static.
7576         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
7577         TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
7578
7579 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7580
7581         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
7582         attributes): Document mmap.
7583
7584 2011-07-25  Anatoly Sokolov  <aesok@post.ru>
7585
7586         * config/mmix/mmix.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
7587         PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
7588         * config/mmix/mmix-protos.h (mmix_print_operand_punct_valid_p,
7589         mmix_print_operand, mmix_print_operand_address): Remove.
7590         * config/mmix/mmix.c (mmix_print_operand_punct_valid_p): Make static.
7591         Change return type to bool. Change argument type to bool.
7592         (mmix_print_operand, mmix_print_operand_address): Make static.
7593         (mmix_intval, mmix_output_condition): Change 'x' argument type
7594         to const_rtx.
7595         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
7596         TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
7597
7598 2011-07-25  Georg-Johann Lay  <avr@gjlay.de>
7599
7600         PR target/39386
7601         * config/avr/avr.c (out_shift_with_cnt): Use tmp_reg as
7602         shift counter for x << x and x >> x shifts.
7603
7604 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7605
7606         PR target/47124
7607         * config.gcc: Reject *-*-solaris2 configuration.
7608
7609 2011-07-25  Richard Sandiford  <richard.sandiford@linaro.org>
7610
7611         PR tree-optimization/49809
7612         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Use
7613         gimple_get_lhs instead of gimple_assign_lhs.
7614
7615 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7616
7617         * system.h [__cplusplus]: Wrap C function declarations in extern "C".
7618
7619 2011-07-25  Richard Guenther  <rguenther@suse.de>
7620
7621         PR tree-optimization/49822
7622         * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
7623         more.  Make sure to preserve stmts with side-effects.  Properly
7624         handle virtual defs, follow a longer def chain.
7625
7626 2011-07-22  Romain Geissler  <romain.geissler@gmail.com>
7627
7628         PR plugins/45348
7629         PR plugins/48425
7630         PR plugins/46577
7631         * Makefile.in: Do not flatten c-family directory when installing
7632         plugin headers.
7633
7634 2011-07-25  Eric Botcazou  <ebotcazou@adacore.com>
7635
7636         * ipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of
7637         original nodes if we are dealing with virtual clones.
7638
7639 2011-07-25  Bernd Schmidt  <bernds@codesourcery.com>
7640
7641         * common/config/c6x/c6x-common.c: New file.
7642
7643 2011-07-25  Roman Zhuykov  <zhroma@ispras.ru>
7644
7645         * tree-flow.h (tree_ssa_loop_version): Remove unused declaration.
7646
7647 2011-07-25  Richard Guenther  <rguenther@suse.de>
7648
7649         PR tree-optimization/49715
7650         * tree-vrp.c: Include expr.h and optabs.h.
7651         (range_fits_type_): New function.
7652         (simplify_float_conversion_using_ranges): Likewise.
7653         (simplify_stmt_using_ranges): Call it.
7654         * Makefile.in (tree-vrp.o): Add $(EXPR_H) and $(OPTABS_H) dependencies.
7655         * optabs.c (can_float_p): Export.
7656         * optabs.h (can_float_p): Declare.
7657
7658 2011-07-25  Richard Guenther  <rguenther@suse.de>
7659
7660         * tree-vrp.c (num_vr_values, values_propagated): New global vars.
7661         (get_value_range): For out-of-range SSA names or names created
7662         after propagation return a read-only varying range.
7663         (dump_all_value_ranges): Adjust.
7664         (vrp_initialize): Likewise.
7665         (vrp_finalize): Likewise.
7666
7667 2011-07-24  Richard Henderson  <rth@redhat.com>
7668
7669         PR debug/49831
7670         * dwarf2cfi.c (connect_traces): Allow unvisited traces.  Skip
7671         them entirely.
7672
7673 2011-07-24  Richard Henderson  <rth@redhat.com>
7674
7675         PR debug/49825
7676         * dwarf2cfi.c (dwarf2out_stack_adjust): Move A_O_A test earlier.
7677         (dwarf2out_notice_stack_adjust): Use args_size from call_insn.
7678
7679 2011-07-24  Richard Henderson  <rth@redhat.com>
7680
7681         PR debug/49827
7682         * dwarf2cfi.c (create_trace_edges): Handle sequences properly.
7683
7684 2011-07-24  Richard Henderson  <rth@redhat.com>
7685
7686         * dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter.
7687         Zero args_size for abnormal edges.  Adjust all callers.
7688
7689 2011-07-24  Richard Henderson  <rth@redhat.com>
7690
7691         PR debug/49825
7692         * dwarf2cfi.c (cfi_row_equal_p): Don't compare args_size.
7693
7694 2011-07-24  H.J. Lu  <hongjiu.lu@intel.com>
7695
7696         PR bootstrap/49835
7697         * collect2.c (demangle_flag): Removed.
7698
7699 2011-07-24  Sandra Loosemore  <sandra@codesourcery.com>
7700
7701         * configure.ac (demangler_in_ld): Default to yes.
7702         * configure: Regenerated.
7703         * collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't
7704         mess with COLLECT_NO_DEMANGLE, and just pass --demangle and
7705         --no-demangle options straight through to ld.  When
7706         HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a
7707         way that has the intended effect on Windows.
7708
7709 2011-07-23  Richard Henderson  <rth@redhat.com>
7710
7711         * dwarf2cfi.c: Include basic-block.h.
7712         (dw_label_info): Remove.
7713         (trace_work_list, trace_index): New.
7714         (remember_row, emit_cfa_remember): Remove.
7715         (dw_trace_info_hash, dw_trace_info_eq): New.
7716         (get_trace_index, get_trace_info): New.
7717         (save_point_p): New.
7718         (free_cfi_row): Remove.
7719         (add_cfi): Do not emit DW_CFA_remember_state.
7720         (cfa_row_equal_p): New.
7721         (barrier_args_size): Remove.
7722         (compute_barrier_args_size_1, compute_barrier_args_size): Remove.
7723         (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size.
7724         (maybe_record_trace_start, create_trace_edges, scan_trace): New.
7725         (dwarf2out_cfi_begin_epilogue): Remove.
7726         (dwarf2out_frame_debug_restore_state): Remove.
7727         (connect_traces, create_pseudo_cfg): New.
7728         (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces.
7729         * Makefile.in (dwarf2cfi.o): Update.
7730
7731 2011-07-23  Richard Henderson  <rth@redhat.com>
7732
7733         * dwarf2cfi.c (dw_trace_info): New.
7734         (dw_label_info): New.
7735         (cie_return_save): New.
7736         (cur_trace): New.
7737         (queued_args_size): Rename from args_size.  Update all users.
7738         (cfa_store, cfa_temp, regs_saved_in_regs): Remove.
7739         (def_cfa_1): Use cur_trace instead of cfa_*.
7740         (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise.
7741         (clobbers_queued_reg_save, reg_saved_in): Likewise.
7742         (dwarf2out_frame_debug_expr): Likewise.
7743         (create_cie_data): Split out from ...
7744         (execute_dwarf2_frame): ... here.  Initialize cur_trace.
7745
7746 2011-07-23  Richard Henderson  <rth@redhat.com>
7747
7748         * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc.
7749         Update all users to match.
7750         (execute_dwarf2_frame): Free reg_saved_in_data.
7751
7752 2011-07-23  Richard Henderson  <rth@redhat.com>
7753
7754         * dwarf2cfi.c (queued_reg_save): Reorder for packing.  Don't GTY.
7755         (queued_reg_saves): Don't GTY.  Change to a VEC.
7756         (queue_reg_save): Update to match.
7757         (dwarf2out_flush_queued_reg_saves): Likewise.
7758         (clobbers_queued_reg_save): Likewise.
7759         (reg_saved_in): Likewise.
7760         (execute_dwarf2_frame): Free queued_reg_saves.
7761
7762 2011-07-23  Richard Henderson  <rth@redhat.com>
7763
7764         * dwarf2cfi.c (dw_cfi_row_ref): Remove.  Update all users.
7765
7766 2011-07-23  Richard Henderson  <rth@redhat.com>
7767
7768         * dwarf2cfi.c (add_cfi_args_size): Split out from...
7769         (dwarf2out_args_size): ... here.
7770         (add_cfi_restore): Split out from ...
7771         (dwarf2out_frame_debug_cfa_restore): ... here.
7772         (def_cfa_0): Split out from ...
7773         (def_cfa_1): ... here.
7774         (cfi_oprnd_equal_p, cfi_equal_p): New.
7775         (change_cfi_row): New.
7776         (add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index.
7777         (create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note.
7778         (output_cfis): Remove.
7779         * dwarf2out.c (output_fde): Simplify output_cfi loop.
7780         (dwarf2out_switch_text_section): Don't call output_cfis.
7781         (dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New.
7782         * dwarf2out.h: Update decls.
7783         (enum dw_val_class): Add dw_val_class_none.
7784
7785 2011-07-23  Richard Henderson  <rth@redhat.com>
7786
7787         * dwarf2cfi.c (update_row_reg_save): New.
7788         (dwarf2out_frame_debug_cfa_expression): Use it.
7789         (dwarf2out_frame_debug_cfa_restore): Likewise.
7790         (reg_save): Likewise.  Do not emit DW_CFA_same_value.
7791
7792 2011-07-23  Richard Henderson  <rth@redhat.com>
7793
7794         * dwarf2cfi.c (add_cfi_insn): Rename from cfi_insn.  Update all users.
7795
7796 2011-07-23  Richard Henderson  <rth@redhat.com>
7797
7798         * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New.
7799         (cie_cfi_row): New.
7800         (new_cfi_row, copy_cfi_row, free_cfi_row): New.
7801         (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove.
7802         (cur_row, remember_row): New.
7803         (def_cfa_1): Use cur_row instead of the old_* variables.
7804         (dwarf2out_frame_debug_restore_state): Similarly.
7805         (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise.
7806         (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa.
7807         (dwarf2out_frame_debug_adjust_cfa): Likewise.
7808         (dwarf2out_frame_debug_cfa_offset): Likewise.
7809         (dwarf2out_frame_debug_expr): Likewise.
7810         (execute_dwarf2_frame): Set up cur_row.
7811         * dwarf2out.h (struct cfa_loc): Mark for GTY.
7812
7813 2011-07-23  Richard Henderson  <rth@redhat.com>
7814
7815         * basic-block.h (EDGE_PRESERVE): New.
7816         (EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it.
7817         * bb-reorder.c: Include except.h.
7818         (fix_up_crossing_landing_pad): New.
7819         (find_rarely_executed_basic_blocks_and_crossing_edges): Place
7820         landing pads in the right partition.  Duplicate as necessary.
7821         (partition_hot_cold_basic_blocks): Fix up DF info after
7822         duplicating landing pads.
7823         * cfg.c (dump_edge_info): Add crossing and preserve to bitnames.
7824         * cfgrtl.c (rtl_verify_flow_info_1): Validate that EDGE_CROSSING
7825         is set properly.  Validate that EH edges are not CROSSING.
7826         * except.c (expand_dw2_landing_pad_for_region): Split out from ...
7827         (dw2_build_landing_pads): ... here.
7828         (convert_to_eh_region_ranges): Remove code to fixup crossing
7829         landing pads.
7830         * except.h (expand_dw2_landing_pad_for_region): Declare.
7831         * tree-cfg.c (gimple_can_merge_blocks_p): Don't merge PRESERVE edges.
7832
7833 2011-07-23  Richard Earnshaw  <rearnsha@arm.com>
7834
7835         PR target/49816
7836         * arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure.
7837
7838 2011-07-22  Jason Merrill  <jason@redhat.com>
7839
7840         * doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing.
7841
7842 2011-07-22  Richard Henderson  <rth@redhat.com>
7843
7844         * bb-reorder.c (gate_handle_partition_blocks): Honor optimize.
7845
7846 2011-07-22  Richard Henderson  <rth@redhat.com>
7847
7848         * jump.c (maybe_propagate_label_ref): Split out of...
7849         (mark_all_labels): ... here.  Do not attempt label_ref
7850         propagation while in cfglayout mode.
7851
7852 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
7853
7854         * dwarf2out.c (struct macinfo_struct): Change code to unsigned char.
7855         (DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define.
7856         (dwarf_attr_name): Handle DW_AT_GNU_macros.
7857         (dwarf2out_define): If the vector is empty and
7858         lineno is 0, emit a dummy entry first.
7859         (dwarf2out_undef): Likewise.  Remove redundant semicolon.
7860         (htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op,
7861         optimize_macinfo_range): New functions.
7862         (output_macinfo): Use them.  If !dwarf_strict and .debug_str is
7863         mergeable, optimize longer strings using
7864         DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP,
7865         optimize longer sequences of define/undef ops from headers
7866         using DW_MACRO_GNU_transparent_include.  For !dwarf_strict
7867         emit a section headers.
7868         (dwarf2out_init): For !dwarf_strict set debug_macinfo_section
7869         and macinfo_section_label to DEBUG_MACRO_SECTION
7870         resp. DEBUG_MACRO_SECTION_LABEL.
7871         (dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros
7872         instead of DW_AT_macro_info.
7873
7874         PR other/32998
7875         * common.opt (grecord-gcc-switches, gno-record-gcc-switches): New
7876         options.
7877         * dwarf2out.c: Include opts.h.
7878         (dchar_p): New typedef.  Define heap VEC for it.
7879         (producer_string): New variable.
7880         (gen_producer_string): New function.
7881         (gen_compile_unit_die): Use it.
7882         (dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer if needed.
7883         * Makefile.in (dwarf2out.o): Depend on $(OPTS_H).
7884         * doc/invoke.texi: Document -grecord-gcc-switches and
7885         -gno-record-gcc-switches, add a -grecord-gcc-switches reference
7886         to -frecord-gcc-switches description.
7887
7888 2011-07-22  Jason Merrill  <jason@redhat.com>
7889
7890         PR c++/30112
7891         * c-decl.c (c_linkage_bindings): Define.
7892
7893 2011-07-22  Eric Botcazou  <ebotcazou@adacore.com>
7894
7895         PR debug/49815
7896         * var-tracking.c (vt_finalize): Always free windowed_parm_regs.
7897
7898 2011-07-22  H.J. Lu  <hongjiu.lu@intel.com>
7899
7900         * config/i386/i386.c (ix86_option_override_internal): Disallow
7901         MS ABI in x32 mode.
7902         (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi
7903         only for TARGET_LP64.
7904         (ix86_handle_abi_attribute): Check TARGET_LP64 instead of TARGET_64BIT.
7905
7906 2011-07-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
7907
7908         * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to
7909         avoid warnings when GCC is built with a C++ compiler.
7910
7911 2011-07-22  Martin Jambor  <mjambor@suse.cz>
7912
7913         PR lto/49796
7914         * cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false
7915         if decl node is in another partition, call cgraph_get_node only once.
7916
7917 2011-07-22  Uros Bizjak  <ubizjak@gmail.com>
7918
7919         * config.gcc (x86_64-*-linux*): Set
7920         default_gnu_indirect_function to yes.
7921
7922 2011-07-22  Richard Guenther  <rguenther@suse.de>
7923
7924         PR tree-optimization/45819
7925         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
7926         preserve volatile and notrap flags.
7927
7928 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7929             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7930
7931         PR bootstrap/49794
7932         * configure.ac: Test AM_ICONV with CXX.
7933         * configure: Regenerate.
7934         * config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST.
7935
7936 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7937
7938         PR bootstrap/49797
7939         * graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing.
7940         (set_cloog_options): Use it.
7941
7942 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
7943
7944         PR c++/49756
7945         * gcc.c (main): Call stack_limit_increase (64MB).
7946         * toplev.c (toplev_main): Likewise.
7947
7948 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
7949
7950         * config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg
7951         instead of force_reg.
7952
7953 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
7954
7955         * config/i386/i386.c (ix86_expand_move): Convert to Pmode if
7956         needed and use force_reg after convert.
7957         (ix86_expand_call): Likewise.
7958         (ix86_expand_special_args_builtin): Likewise.
7959         (ix86_expand_builtin): Likewise.
7960
7961 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
7962
7963         PR middle-end/47654
7964         PR middle-end/49649
7965         * graphite-clast-to-gimple.c (type_for_clast_term): Pass v1 and v2
7966         in parameter.  Initialize v1 and v2 based on the values returned
7967         by clast_name_to_lb_ub.
7968         (type_for_clast_red): Pass v1 and v2 in parameter, and set their
7969         values.
7970         (type_for_clast_bin): Same.
7971         (type_for_clast_expr): Same.
7972         (type_for_clast_eq): Update calls to type_for_clast_expr.
7973         (type_for_clast_for): Same.
7974         (build_iv_mapping): Same.
7975         * graphite-ppl.h (value_min): New.
7976
7977 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
7978
7979         * graphite-clast-to-gimple.c (type_for_interval): Generate signed
7980         types whenever possible.
7981
7982 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
7983
7984         * graphite-clast-to-gimple.c (struct clast_name_index): Add lb
7985         and ub fields.
7986         (new_clast_name_index): Add lb and ub parameters.
7987         (free_clast_name_index): New.
7988         (clast_name_to_lb_ub): New.
7989         (save_clast_name_index): Add lb and ub parameters.
7990         (compute_bounds_for_param): New.
7991         (type_for_level): Removed.
7992         (type_for_clast_for): Removed level parameter.  Do not call
7993         type_for_level.
7994         (graphite_create_new_loop): Store the lb and ub for the clast_name
7995         of the iterator of the loop that has been generated.
7996         (graphite_create_new_loop_guard): Remove parameter level.
7997         (create_params_index): Store the lb and ub of each parameter.
7998         (gloog): Use free_clast_name_index.  Pass to create_params_index
7999         the current scop.
8000
8001 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
8002
8003         * graphite-clast-to-gimple.c (max_signed_precision_type): Removed.
8004         (max_precision_type): Inline max_signed_precision_type.
8005         (type_for_clast_red): Use max_precision_type.
8006         (type_for_clast_bin): Same.
8007         (type_for_clast_for): Same.
8008
8009 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
8010
8011         * graphite-clast-to-gimple.c (gcc_type_for_interval): Renamed
8012         type_for_interval.
8013         (gcc_type_for_value): Renamed type_for_value.
8014         (gcc_type_for_clast_term): Renamed type_for_clast_term.
8015         (gcc_type_for_clast_expr): Renamed type_for_clast_expr.
8016         (gcc_type_for_clast_red): Renamed type_for_clast_red.
8017         (gcc_type_for_clast_bin): Renamed type_for_clast_bin.
8018         (gcc_type_for_clast_eq): Renamed type_for_clast_eq.
8019         (graphite_translate_clast_equation): Update calls.
8020         (compute_type_for_level): Renamed type_for_level.
8021         (gcc_type_for_iv_of_clast_loop): Renamed type_for_clast_for.
8022         (build_iv_mapping): Update calls.
8023         (graphite_create_new_loop_guard): Same.
8024
8025 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
8026
8027         * graphite-clast-to-gimple.c (clast_get_body_of_loop): Add fixme
8028         comment.
8029
8030 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
8031
8032         * graphite-clast-to-gimple.c (struct ivs_params): New.
8033         (clast_name_to_gcc): Use ivs_params to pass around parameters.
8034         (clast_to_gcc_expression): Same.
8035         (clast_to_gcc_expression_red): Same.
8036         (gcc_type_for_clast_term): Same.
8037         (gcc_type_for_clast_expr): Same.
8038         (gcc_type_for_clast_red): Same.
8039         (gcc_type_for_clast_bin): Same.
8040         (gcc_type_for_clast_eq): Same.
8041         (graphite_translate_clast_equation): Same.
8042         (graphite_create_guard_cond_expr): Same.
8043         (graphite_create_new_guard): Same.
8044         (graphite_create_new_loop): Same.
8045         (build_iv_mapping): Same.
8046         (translate_clast_user): Same.
8047         (graphite_create_new_loop_guard): Same.
8048         (translate_clast): Same.
8049         (translate_clast_for_loop): Same.
8050         (translate_clast_for): Same.
8051         (translate_clast_guard): Same.
8052         (initialize_cloog_names): Fix typo.
8053         (gloog): Initialize an ivs_params struct, pass it to translate_clast.
8054
8055 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
8056
8057         * graphite-clast-to-gimple.c (struct clast_name_index): Add level.
8058         (new_clast_name_index): Add level parameter.
8059         (clast_name_to_level): New.
8060         (save_clast_name_index): Add level parameter.
8061         (newivs_to_depth_to_newiv): Removed.
8062         (clast_name_to_gcc): Inlined newivs_to_depth_to_newiv.
8063         (graphite_create_new_loop): Add level parameter.  Pass level to
8064         save_clast_name_index.
8065         (translate_clast_for_loop): Pass level to graphite_create_new_loop.
8066         (create_params_index): Pass level to save_clast_name_index.
8067
8068 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
8069
8070         * graphite-clast-to-gimple.c (graphite_create_new_loop): Do not
8071         recompute type, lb, and ub.  Get them from...
8072         (graphite_create_new_loop_guard): ...here.  Pass in parameter
8073         pointers to type, lb, and ub.
8074         (translate_clast_for_loop): Update function calls.
8075         (translate_clast_for): Same.
8076
8077 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
8078
8079         * graphite-clast-to-gimple.c (compute_bounds_for_level): Call
8080         psct_dynamic_dim.
8081         (translate_clast_for_loop): Pass loop level to dependency_in_loop_p.
8082         (gcc_type_for_iv_of_clast_loop): Update use of level.
8083         (gloog): Start counting nesting level from 0.
8084         * graphite-clast-to-gimple.h (get_scattering_level): Removed.
8085         * graphite-dependences.c (graphite_carried_dependence_level_k): Call
8086         psct_dynamic_dim on level.
8087
8088 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
8089
8090         * config/i386/i386.c (ix86_legitimize_address): Convert to
8091         Pmode if needed.
8092
8093 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
8094
8095         * config/i386/i386.c (function_value_64): Always return pointers
8096         in Pmode.
8097         (ix86_promote_function_mode): New.
8098         (TARGET_PROMOTE_FUNCTION_MODE): Likewise.
8099
8100 2011-07-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8101
8102         PR tree-optimization/49749
8103         * tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and
8104         remove no-longer-used maxrank variable.
8105
8106 2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
8107
8108         * config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs.
8109
8110 2011-07-21  Jason Merrill  <jason@redhat.com>
8111
8112         * system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New.
8113         * recog.h (struct insn_data_d): Check it instead of
8114         HAVE_DESIGNATED_INITIALIZERS.
8115         * genoutput.c (output_insn_data): Likewise.
8116
8117 2011-07-21  Richard Guenther  <rguenther@suse.de>
8118
8119         PR tree-optimization/49770
8120         * tree-ssa-sccvn.c (valueize_refs_1): Return whether we
8121         valueized any operand.  Renamed from ...
8122         (valueize_refs): ... this.  New wrapper around valueize_refs_1.
8123         (valueize_shared_reference_ops_from_ref): Return whether we
8124         valueized any operand.
8125         (vn_reference_lookup): Only when we valueized any operand
8126         use the valueized reference for alias analysis.  Do not preserve
8127         the original reference tree in this case.
8128
8129 2011-07-21  Uros Bizjak  <ubizjak@gmail.com>
8130
8131         * config/i386/i386.c (ix86_decompose_address): Reject all but
8132         register operands and subregs of DImode hard registers in index.
8133
8134 2011-07-21  Kai Tietz  <ktietz@redhat.com>
8135
8136         * fold-const.c (fold_unary_loc): Preserve indirect
8137         comparison cast to none-boolean type.
8138         * tree-ssa.c (useless_type_conversion_p): Preserve cast
8139         from/to boolean-type.
8140         * gimplify.c (gimple_boolify): Handle boolification of comparisons.
8141         (gimplify_expr): Boolifiy non aggregate-typed comparisons.
8142         * tree-cfg.c (verify_gimple_comparison): Check result
8143         type of comparison expression.
8144         * tree-ssa-forwprop.c (forward_propagate_comparison): Adjust test
8145         of condition result and disallow type-cast sinking into comparison.
8146
8147 2011-07-21  Richard Guenther  <rguenther@suse.de>
8148
8149         * tree-ssa-forwprop.c (combine_conversions): Return whether
8150         we have to run cfg-cleanup.  Properly remove dead stmts.
8151         (ssa_forward_propagate_and_combine): Adjust.
8152
8153 2011-07-21  Richard Sandiford  <richard.sandiford@linaro.org>
8154
8155         * regcprop.c (maybe_mode_change): Check HARD_REGNO_MODE_OK.
8156
8157 2011-07-21  Kai Tietz  <ktietz@redhat.com>
8158
8159         * tree-ssa-propagate.c (substitute_and_fold): Use
8160         do_dce flag to deside, if BB's statements are scanned
8161         in last to first, or first to last order.
8162
8163 2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
8164
8165         * config/avr/avr.c (avr_rtx_costs): Set cost of CONST, LABEL_REF to 0.
8166
8167 2011-07-20  H.J. Lu  <hongjiu.lu@intel.com>
8168             Uros Bizjak  <ubizjak@gmail.com>
8169             Richard Henderson  <rth@redhat.com>
8170
8171         * config/i386/constraints.md (w): New.
8172
8173         * config/i386/i386.c (ix86_output_addr_vec_elt): Check
8174         TARGET_LP64 instead of TARGET_64BIT for ASM_QUAD.
8175
8176         * config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64
8177         instead of TARGET_64BIT.
8178
8179         * config/i386/i386.md (indirect_jump): Replace
8180         nonimmediate_operand with indirect_branch_operand.
8181         (*indirect_jump): Likewise.  Replace constraint "m" with "w".
8182         (tablejump): Replace nonimmediate_operand with indirect_branch_operand.
8183         Convert operand 0 to Pmode for x32 if not PIC.
8184         (*tablejump_1): Replace nonimmediate_operand with
8185         indirect_branch_operand.  Replace constraint "m" with "w".
8186         (*call_vzeroupper): Replace constraint "m" with "w".
8187         (*call): Likewise.
8188         (*call_rex64_ms_sysv_vzeroupper): Likewise.
8189         (*call_rex64_ms_sysv): Likewise.
8190         (*call_value_vzeroupper): Likewise.
8191         (*call_value): Likewise.
8192         (*call_value_rex64_ms_sysv_vzeroupper): Likewise.
8193         (*call_value_rex64_ms_sysv): Likewise.
8194         (set_got_offset_rex64): Check TARGET_LP64 instead of TARGET_64BIT.
8195
8196         * config/i386/predicates.md (indirect_branch_operand): New.
8197         (call_insn_operand): Support x32.
8198
8199 2011-07-20  Michael Eager  <eager@eagercon.com>
8200
8201         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Default to 12.
8202
8203 2011-07-20  Richard Henderson  <rth@redhat.com>
8204
8205         * cfg.c (dump_bb_info): Dump basic_block->flags.
8206         * cfgrtl.c (print_rtl_with_bb): Use dump_bb_info.
8207
8208 2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
8209
8210         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
8211         of DImode hard registers in index.
8212         (ix86_legitimate_address_p): Allow subregs of base and index to span
8213         more than a word.  Assert that subregs of base and index satisfy
8214         register_no_elim_operand predicates.  Reject addresses where
8215         base and index have different modes.
8216
8217 2011-07-20  Robert Millan  <rmh@gnu.org>
8218
8219         * config.gcc (mips*-*-linux*): Remove redundant tm_file entry.
8220
8221 2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8222
8223         * bb-reorder.c (fix_crossing_conditional_branches): Fix crash by
8224         removing now-unnecessary assignment.
8225
8226 2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8227
8228         * emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting
8229         memory address space to the type's address space.
8230
8231 2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
8232
8233         PR target/36467
8234         PR target/49687
8235         * config/avr/avr.md (mulhi3): Use register_or_s9_operand for operand2
8236         and expand appropriately if there is a CONST_INT in operand2.
8237         (usmulqihi3): New insn.
8238         (*sumulqihi3): New insn.
8239         (*osmulqihi3): New insn.
8240         (*oumulqihi3): New insn.
8241         (*muluqihi3.uconst): New insn_and_split.
8242         (*muluqihi3.sconst): New insn_and_split.
8243         (*mulsqihi3.sconst): New insn_and_split.
8244         (*mulsqihi3.uconst): New insn_and_split.
8245         (*mulsqihi3.oconst): New insn_and_split.
8246         (*ashifthi3.signx.const): New insn_and_split.
8247         (*ashifthi3.signx.const7): New insn_and_split.
8248         (*ashifthi3.zerox.const): New insn_and_split.
8249         (mulsqihi3): New insn.
8250         (muluqihi3): New insn.
8251         (muloqihi3): New insn.
8252         * config/avr/predicates.md (const_2_to_7_operand): New.
8253         (const_2_to_6_operand): New.
8254         (u8_operand): New.
8255         (s8_operand): New.
8256         (o8_operand): New.
8257         (s9_operand): New.
8258         (register_or_s9_operand): New.
8259
8260 2011-07-20  Kai Tietz  <ktietz@redhat.com>
8261
8262         * builtins.c (fold_builtin_expect): See through the cast
8263         from truthvalue_type_node to long.
8264
8265 2011-07-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
8266
8267         * config/rs6000/vsx.md (vsx_fma*): Use 4 argument fma instructions
8268         where we can use them from the standard and altivec instruction
8269         sets, instead of always using the 3 operand VSX forms that require
8270         the destination to overlap one of the inputs.
8271         (vsx_fms*): Ditto.
8272         (vsx_fnma*): Ditto.
8273         (vsx_fnms*): Ditto.
8274
8275         * config/rs6000/rs6000.md (fmadf4_fpr): Set fp_type fp_maddsub_d
8276         for DF types.
8277         (fmsdf4_fpr): Ditto.
8278         (nfmadf4_fpr): Ditto.
8279         (nfmsdf4_fpr): Ditto.
8280
8281 2011-07-20  Sandra Loosemore  <sandra@codesourcery.com>
8282
8283         * genrecog.c (make_insn_sequence): Correct position numbering
8284         when filtering out match_scratch and match_dup.
8285
8286 2011-07-20  Richard Guenther  <rguenther@suse.de>
8287
8288         * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
8289         against already removed statements.
8290         (forward_propagate_into_comparison): Remove dead defining stmts.
8291         (forward_propagate_into_gimple_cond): Likewise.
8292         (forward_propagate_into_cond): Simplify.
8293         (ssa_forward_propagate_and_combine): Handle changed cfg from
8294         forward_propagate_into_comparison.
8295         * tree-ssa-phiopt.c (conditional_replacement): Use proper
8296         locations for newly built statements.
8297
8298 2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
8299
8300         * config/avr/avr.c (avr_rtx_costs): Set cost of SYMBOL_REF to 0.
8301
8302 2011-07-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8303
8304         * config/s390/s390.c (s390_class_max_nregs): Fix return type.
8305         * config/s390/s390-protos.h (s390_class_max_nregs): Likewise.
8306
8307 2011-07-20  Richard Guenther  <rguenther@suse.de>
8308
8309         PR middle-end/18908
8310         * tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision.
8311         * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus
8312         ADDR_EXPR folding.  Canonicalize X ^ ~0 as ~X.
8313
8314 2011-07-20  Vladimir Makarov  <vmakarov@redhat.com>
8315
8316         * config/frv/frv.c (frv_register_move_cost): Define explicitly
8317         costs for subclasses of GR_REGS.
8318
8319 2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
8320
8321         PR target/49780
8322         * config/i386/predicates.md (no_seg_addres_operand): No more special.
8323         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
8324         of DImode hard registers in base.
8325         (ix86_legitimate_address_p): Allow SImode and DImode base and index
8326         registers.
8327
8328 2011-07-20  Richard Guenther  <rguenther@suse.de>
8329
8330         * tree-ssa-structalias.c (new_var_info): Allocate oldsolution lazily.
8331         (unify_nodes): Deal with that.
8332         (solve_graph): Likewise.
8333
8334 2011-07-20  Chung-Lin Tang  <cltang@codesourcery.com>
8335
8336         * config/arm/arm.c (arm_canonicalize_comparison): Add case to
8337         canonicalize left operand from ZERO_EXTEND to AND.
8338
8339 2011-07-20  Anatoly Sokolov  <aesok@post.ru>
8340
8341         * target.def (class_max_nregs): New hook.
8342         * doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document.
8343         * doc/tm.texi: Regenerate.
8344         * targhooks.c (default_class_max_nregs): New function.
8345         * targhooks.h (default_class_max_nregs): Declare.
8346         * ira.h (target_ira): Change type x_ira_reg_class_max_nregs and
8347         x_ira_reg_class_min_nregs arrays to unsigned char.
8348         * ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target
8349         hook instead of CLASS_MAX_NREGS macro.
8350         * reginfo.c (restore_register_info): Ditto.
8351         * ira-conflicts.c (process_regs_for_copy): Use
8352         ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
8353         Change type rclass and aclass vars to reg_class_t.
8354         * ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs
8355         array instead of CLASS_MAX_NREGS macro. Change type rclass var to
8356         reg_class_t.
8357         * reload.c (combine_reloads, find_reloads, find_reloads_address_1):
8358         Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
8359
8360         * config/i386/i386.h (CLASS_MAX_NREGS): Remove.
8361         * config/i386/i386.c (ix86_class_max_nregs): New function.
8362         (ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook
8363         instead of CLASS_MAX_NREGS macro.
8364         (TARGET_CLASS_MAX_NREGS): Define.
8365         * config/avr/avr.h (CLASS_MAX_NREGS): Remove.
8366         * config/avr/avr-protos.h (class_max_nregs): Remove declaration.
8367         * config/avr/avr.c (class_max_nregs): Remove function.
8368         * config/alpha/alpha.h (CLASS_MAX_NREGS): Remove.
8369         * config/spu/spu.h (CLASS_MAX_NREGS): Remove.
8370         * config/mep/mep.h (CLASS_MAX_NREGS): Remove.
8371         * config/m32r/m32r.h (CLASS_MAX_NREGS): Remove.
8372         * config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove.
8373         * config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove.
8374         * config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove.
8375         * config/lm32/lm32.h (CLASS_MAX_NREGS): Remove.
8376         * config/moxie/moxie.h (CLASS_MAX_NREGS): Remove.
8377         * config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove.
8378         * config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove.
8379         * config/score/score.h (CLASS_MAX_NREGS): Remove.
8380         * config/vax/vax.h (CLASS_MAX_NREGS): Remove.
8381         * config/h8300/h8300.h (CLASS_MAX_NREGS): Remove.
8382         * config/v850/v850.h (CLASS_MAX_NREGS): Remove.
8383
8384 2011-07-19  Eric Botcazou  <ebotcazou@adacore.com>
8385
8386         * cif-code.def (OVERWRITABLE): Fix typo and move around.
8387         (TARGET_OPTIMIZATION_MISMATCH): Delete.
8388         (EH_PERSONALITY): Fix typo.
8389         (NON_CALL_EXCEPTIONS): Fix message.
8390         (OPTIMIZATION_MISMATCH): Adjust message.
8391         * ipa-inline.c (can_inline_edge_p): Use CIF_OPTIMIZATION_MISMATCH.
8392
8393 2011-07-19  Ian Lance Taylor  <iant@google.com>
8394
8395         * doc/install.texi (Configuration): Document
8396         --enable-build-poststage1-with-cxx.
8397
8398 2011-07-19  Robert Millan  <rmh@gnu.org>
8399
8400         * config/mips/gnu-user.h: Copy from linux.h.  Update comments.
8401         (GLIBC_DYNAMIC_LINKER): Remove.
8402
8403         * config/mips/gnu-user64.h: Copy from linux64.h.  Update comments.
8404         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
8405         (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
8406         (BIONIC_DYNAMIC_LINKERN32, GNU_USER_DYNAMIC_LINKERN32): Remove.
8407         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32,
8408         GNU_USER_DYNAMIC_LINKER64 and GNU_USER_LINK_EMULATIONN32.
8409
8410         * config/mips/linux.h: Remove everything except for ...
8411         (GLIBC_DYNAMIC_LINKER): ... this macro.
8412
8413         * config/mips/linux64.h: Remove everything except for ...
8414         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
8415         (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
8416         (BIONIC_DYNAMIC_LINKERN32): ... these macros.
8417         (GNU_USER_LINK_EMULATION32, GNU_USER_LINK_EMULATION64)
8418         (GNU_USER_LINK_EMULATIONN32): New macros.
8419
8420         * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux* | mips-*-linux*):
8421         Use the new headers.
8422
8423 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
8424
8425         * rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs.
8426         Add offset_known_p and size_known_p fields.
8427         (MEM_OFFSET_KNOWN_P): Update accordingly.
8428         (MEM_OFFSET, MEM_SIZE_KNOWN_P, MEM_SIZE): Likewise.
8429         * emit-rtl.c (mem_attrs_htab_hash): Update after mem_attrs changes.
8430         (mem_attrs_eq_p, set_mem_attributes_minus_bitpos, set_mem_offset)
8431         (clear_mem_offset, set_mem_size, clear_mem_size, change_address)
8432         (adjust_address_1, widen_memory_access, set_mem_attrs_for_spill)
8433         (init_emit_regs): Likewise.
8434
8435 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
8436
8437         * doc/rtl.texi (MEM_OFFSET_KNOWN_P): Document.
8438         (MEM_OFFSET): Change from returning an rtx to returning a
8439         HOST_WIDE_INT.
8440         * rtl.h (MEM_OFFSET_KNOWN_P): New macro.
8441         (MEM_OFFSET): Return a HOST_WIDE_INT rather than an rtx.
8442         * emit-rtl.h (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
8443         (clear_mem_offset): Declare.
8444         * alias.c (ao_ref_from_mem): Adjust uses of MEM_OFFSET, using
8445         MEM_OFFSET_KNOWN_P to test whether the offset is known, and
8446         MEM_OFFSET to get a HOST_WIDE_INT offset.
8447         (nonoverlapping_memrefs_p): Likewise.  Adjust calls to...
8448         (adjust_offset_for_component_ref): Take a bool "known_p"
8449         parameter and a HOST_WIDE_INT "offset" parameter.
8450         * builtins.c (get_memory_rtx): As for ao_ref_from_mem.
8451         Adjust calls to set_mem_offset, passing a HOST_WIDE_INT rather
8452         than an rtx.  Use clear_mem_offset to clear the offset.
8453         * cfgcleanup.c (merge_memattrs): Likewise.
8454         * dwarf2out.c (tls_mem_loc_descriptor): Likewise.
8455         * function.c (assign_parm_find_stack_rtl): Likewise.
8456         (assign_parm_setup_stack): Likewise.
8457         * print-rtl.c (print_rtx): Likewise.
8458         * reload.c (find_reloads_subreg_address): Likewise.
8459         * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
8460         * var-tracking.c (INT_MEM_OFFSET): Likewise.
8461         * emit-rtl.c (set_reg_attrs_from_value): Likewise.
8462         (get_mem_align_offset): Likewise.
8463         (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
8464         (clear_mem_offset): New function.
8465         * config/mips/mips.c (r10k_safe_mem_expr_p): Take a HOST_WIDE_INT
8466         offset rather than an rtx.  Assume both the expressio and offset
8467         are available.
8468         (r10k_needs_protection_p_1): Update accordingly, checking the
8469         expression and offset availability here instead.
8470
8471 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
8472
8473         * doc/rtl.texi (MEM_SIZE_KNOWN_P): Document.
8474         (MEM_SIZE): Change from returning an rtx to returning a HOST_WIDE_INT.
8475         * rtl.h (MEM_SIZE_KNOWN_P): New macro.
8476         (MEM_SIZE): Return a HOST_WIDE_INT rather than an rtx.
8477         * emit-rtl.h (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
8478         (clear_mem_size): Declare.
8479         * emit-rtl.c (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
8480         (clear_mem_size): New function.
8481         * alias.c (ao_ref_from_mem): Adjust uses of MEM_SIZE, using
8482         MEM_SIZE_KNOWN_P to test whether the size is known, and MEM_SIZE
8483         to get a HOST_WIDE_INT size.  Adjust calls to set_mem_size,
8484         passing a HOST_WIDE_INT rather than an rtx.  Use clear_mem_size
8485         to clear the size.
8486         (nonoverlapping_memrefs_p): Likewise.
8487         * builtins.c (get_memory_rtx, expand_builtin_memcmp): Likewise.
8488         (expand_builtin_init_trampoline): Likewise.
8489         * calls.c (compute_argument_addresses): Likewise.
8490         * cfgcleanup.c (merge_memattrs): Likewise.
8491         * dce.c (find_call_stack_args): Likewise.
8492         * dse.c (record_store, scan_insn): Likewise.
8493         * dwarf2out.c (dw_sra_loc_expr): Likewise.
8494         * expr.c (emit_block_move_hints): Likewise.
8495         * function.c (assign_parm_find_stack_rtl): Likewise.
8496         * print-rtl.c (print_rtx): Likewise.
8497         * reload.c (find_reloads_subreg_address): Likewise.
8498         * rtlanal.c (may_trap_p_1): Likewise.
8499         * var-tracking.c (track_expr_p): Likewise.
8500         * varasm.c (assemble_trampoline_template): Likewise.
8501         * config/arm/arm.c (arm_print_operand): Likewise.
8502         * config/h8300/h8300.c (h8sx_emit_movmd): Likewise.
8503         * config/i386/i386.c (expand_movmem_via_rep_mov): Likewise.
8504         (expand_setmem_via_rep_stos, expand_constant_movmem_prologue)
8505         (expand_constant_setmem_prologue): Likewise.
8506         * config/mips/mips.c (mips_get_unaligned_mem): Likewise.
8507         * config/rs6000/rs6000.c (expand_block_move): Likewise.
8508         (adjacent_mem_locations): Likewise.
8509         * config/s390/s390.c (s390_expand_setmem): Likewise.
8510         (s390_expand_insv): Likewise.
8511         * config/s390/s390.md (*extzv<mode>, *extv<mode>): Likewise.
8512         (*extendqi<mode>2_short_displ): Likewise.
8513         * config/sh/sh.c (expand_block_move): Likewise.
8514         * config/sh/sh.md (extv, extzv): Likewise.
8515
8516 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
8517
8518         * emit-rtl.c (mem_attrs_eq_p): New function, split out from...
8519         (mem_attrs_htab_eq): ...here.
8520         (find_mem_attrs): Replace with...
8521         (set_mem_attrs): ...this function.  Take a mem_attrs structure
8522         rather than individual fields.
8523         (set_mem_attributes_minus_bitpos, set_mem_alias_set)
8524         (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
8525         (set_mem_size, change_address, adjust_address_1, offset_address)
8526         (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
8527         Update accordingly.
8528
8529 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
8530
8531         * rtl.h (MEM_ALIAS_SET, MEM_EXPR, MEM_OFFSET, MEM_ADDR_SPACE)
8532         (MEM_SIZE, MEM_ALIGN): Redefine in terms of get_mem_attrs.
8533         Provide a dummy definition of MEM_ADDR_SPACE for generators.
8534         (target_rtl): Add x_mode_mem_attrs.
8535         (mode_mem_attrs): New macro.
8536         (get_mem_attrs): New function.
8537         * emit-rtl.c (get_mem_attrs): Rename to...
8538         (find_mem_attrs): ...this.
8539         (set_mem_attributes_minus_bitpos, set_mem_alias_set)
8540         (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
8541         (set_mem_size, change_address, adjust_address_1, offset_address)
8542         (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
8543         Update accordingly.
8544         (init_emit_regs): Initialize mode_mem_attrs.
8545
8546 2011-07-19  Richard Guenther  <rguenther@suse.de>
8547
8548         * tree-ssa-forwprop.c (lookup_logical_inverted_value): Remove
8549         TRUTH_*_EXPR handling.
8550         * tree-ssa-operands.c (get_expr_operands): Likewise.
8551         * tree-ssa-pre.c (fully_constant_expression): Likewise.
8552         * tree-ssa-uninit.c (use_pred_not_overlap_with_undef_path_pre):
8553         Likewise.
8554         (is_and_or_or): Likewise.
8555         (is_norm_cond_subset_of): Likewise.
8556
8557 2011-07-19  Richard Guenther  <rguenther@suse.de>
8558
8559         * tree.h (fold_build_pointer_plus_loc): New helper function.
8560         (fold_build_pointer_plus_hwi_loc): Likewise.
8561         (fold_build_pointer_plus): Define.
8562         (fold_build_pointer_plus_hwi): Likewise.
8563         * builtins.c (std_gimplify_va_arg_expr): Use fold_build_pointer_plus.
8564         (fold_builtin_memory_op): Likewise.
8565         (fold_builtin_stpcpy): Likewise.
8566         (fold_builtin_memchr): Likewise.
8567         (fold_builtin_strstr): Likewise.
8568         (fold_builtin_strchr): Likewise.
8569         (fold_builtin_strrchr): Likewise.
8570         (fold_builtin_strpbrk): Likewise.
8571         (fold_builtin_strcat): Likewise.
8572         (expand_builtin_memory_chk): Likewise.
8573         (fold_builtin_memory_chk): Likewise.
8574         * c-typeck.c (build_unary_op): Likewise.
8575         * cgraphunit.c (thunk_adjust): Likewise.
8576         * fold-const.c (build_range_check): Likewise.
8577         (fold_binary_loc): Likewise.
8578         * omp-low.c (extract_omp_for_data): Likewise.
8579         (expand_omp_for_generic): Likewise.
8580         (expand_omp_for_static_nochunk): Likewise.
8581         (expand_omp_for_static_chunk): Likewise.
8582         * tree-affine.c (add_elt_to_tree): Likewise.
8583         * tree-data-ref.c (split_constant_offset_1): Likewise.
8584         * tree-loop-distribution.c (generate_memset_zero): Likewise.
8585         * tree-mudflap.c (mf_xform_derefs_1): Likewise.
8586         * tree-predcom.c (ref_at_iteration): Likewise.
8587         * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
8588         (add_to_parts): Likewise.
8589         (create_mem_ref): Likewise.
8590         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
8591         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Likewise.
8592         (number_of_iterations_le): Likewise.
8593         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise.
8594         * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
8595         (vect_create_addr_base_for_vector_ref): Likewise.
8596         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Likewise.
8597         (vect_create_cond_for_alias_checks): Likewise.
8598         * tree-vrp.c (extract_range_from_assert): Likewise.
8599         * config/alpha/alpha.c (alpha_va_start): Likewise.
8600         (alpha_gimplify_va_arg_1): Likewise.
8601         * config/i386/i386.c (ix86_va_start): Likewise.
8602         (ix86_gimplify_va_arg): Likewise.
8603         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
8604         * config/mep/mep.c (mep_expand_va_start): Likewise.
8605         (mep_gimplify_va_arg_expr): Likewise.
8606         * config/mips/mips.c (mips_va_start): Likewise.
8607         (mips_gimplify_va_arg_expr): Likewise.
8608         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
8609         * config/rs6000/rs6000.c (rs6000_va_start): Likewise.
8610         (rs6000_gimplify_va_arg): Likewise.
8611         * config/s390/s390.c (s390_va_start): Likewise.
8612         (s390_gimplify_va_arg): Likewise.
8613         * config/sh/sh.c (sh_va_start): Likewise.
8614         (sh_gimplify_va_arg_expr): Likewise.
8615         * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
8616         * config/spu/spu.c (spu_va_start): Likewise.
8617         (spu_gimplify_va_arg_expr): Likewise.
8618         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
8619         Likewise.
8620         (xstormy16_gimplify_va_arg_expr): Likewise.
8621         * config/xtensa/xtensa.c (xtensa_va_start): Likewise.
8622         (xtensa_gimplify_va_arg_expr): Likewise.
8623
8624 2011-07-19  Richard Guenther  <rguenther@suse.de>
8625
8626         * expr.c (expand_expr_real_2): Remove TRUTH_*_EXPR handling.
8627         (expand_expr_real_1): Remove TRUTH_*IF_EXPR and STATEMENT_LIST
8628         handling.
8629
8630         PR middle-end/18908
8631         * expr.c (expand_expr_real_2): Do not unnecessarily truncate the
8632         result of BIT_*_EXPR to bitfield precision.
8633
8634 2011-07-19  Richard Sandiford  <richard.sandiford@linaro.org>
8635
8636         PR tree-optimization/49742
8637         * tree-data-ref.c (get_references_in_stmt): Treat the lhs of a call
8638         as a potential write.
8639
8640 2011-07-19  Richard Guenther  <rguenther@suse.de>
8641
8642         * Makefile.in (tree-ssa-forwprop.o): Depend on gimple-pretty-print.h.
8643         * tree-ssa-forwprop.c: Include gimple-pretty-print.h.
8644         (forward_propagate_comparison): Simplify, remove obsolete code.
8645
8646 2011-07-19  Richard Guenther  <rguenther@suse.de>
8647
8648         * gimplify.c (gimplify_expr): Gimplify TRUTH_NOT_EXPR as
8649         BIT_XOR_EXPR, same as the RTL expander does.
8650         * tree-cfg.c (verify_expr): Disallow TRUTH_NOT_EXPR in the gimple IL.
8651         (verify_gimple_assign_unary): Likewise.
8652         * tree-ssa-propagate.c (valid_gimple_rhs_p): Disallow TRUTH_*_EXPR.
8653         * tree-ssa-forwprop.c (forward_propagate_comparison): Handle
8654         BIT_NOT_EXPR and BIT_XOR_EXPR instead of TRUTH_NOT_EXPR.
8655
8656 2011-07-19  Jakub Jelinek  <jakub@redhat.com>
8657
8658         PR tree-optimization/49768
8659         * gimple-fold.c (fold_nonarray_ctor_reference): Return NULL
8660         if offset is smaller than bitoffset, but offset+size is bigger
8661         than bitoffset.
8662
8663 2011-07-19  Ira Rosen  <ira.rosen@linaro.org>
8664
8665         PR tree-optimization/49771
8666         * tree-vect-loop-manip.c (vect_vfa_segment_size): In case of
8667         zero step, set segment length to the size of the data-ref's type.
8668
8669 2011-07-18  Martin Jambor  <mjambor@suse.cz>
8670
8671         * ipa-prop.h: Include alloc-pool.h, all sorts of updates to general
8672         comments.
8673         (ipcp_values_pool): Declare.
8674         (ipcp_sources_pool): Likewise.
8675         (ipcp_lattice): Changed to forward declaration.
8676         (ipa_param_descriptor): Removed fields ipcp_lattice, types and
8677         cannot_devirtualize.
8678         (ipa_node_params): New fields descriptors, lattices, known_vals,
8679         clone_for_all_contexts and node dead, removed fields params and
8680         count_scale.
8681         (ipa_set_param_count): Removed.
8682         (ipa_get_param_count): Made to work with descriptors vector.
8683         (ipa_get_param): Updated.
8684         (ipa_param_cannot_devirtualize_p): Removed.
8685         (ipa_param_types_vec_empty): Likewise.
8686         (ipa_set_param_used): New function.
8687         (ipa_get_param_used): Updated to use descriptors vector.
8688         (ipa_func_list): Removed.
8689         (ipa_init_func_list): Removed declaration.
8690         (ipa_push_func_to_list_1): Likewise.
8691         (ipa_pop_func_from_list): Likewise.
8692         (ipa_push_func_to_list): Removed.
8693         (ipa_lattice_from_jfunc): Remove declaration.
8694         (ipa_get_jf_pass_through_result): Declare.
8695         (ipa_get_jf_ancestor_result): Likewise.
8696         (ipa_value_from_jfunc): Likewise.
8697         (ipa_get_lattice): Update.
8698         (ipa_lat_is_single_const): New function.
8699         * ipa-prop.c (ipa_push_func_to_list_1): Removed.
8700         (ipa_init_func_list): Likewise.
8701         (ipa_pop_func_from_list): Likewise.
8702         (ipa_get_param_decl_index): Fix coding style.
8703         (count_formal_params): Removed.
8704         (count_formal_params_1): Renamed to count_formal_params.
8705         (ipa_populate_param_decls): Update to use descriptors vector.
8706         (ipa_initialize_node_params): Likewise.
8707         (visit_ref_for_mod_analysis): Use ipa_set_param_used.
8708         (ipa_analyze_params_uses): Likewise.
8709         (ipa_free_node_params_substructures): Likewise and free also lattices
8710         and known values.
8711         (duplicate_array): Removed.
8712         (ipa_edge_duplication_hook): Add the new edge to the list of edge
8713         clones.
8714         (ipa_node_duplication_hook): Update to use new lattices.
8715         (ipa_free_all_structures_after_ipa_cp): Free alloc pools.
8716         (ipa_free_all_structures_after_iinln): Likewise.
8717         (ipa_write_node_info): Update to use new lattices.
8718         (ipa_read_node_info): Likewise.
8719         (ipa_get_jf_pass_through_result): New function.
8720         (ipa_get_jf_ancestor_result): Likewise.
8721         (ipa_value_from_jfunc): Likewise.
8722         (ipa_cst_from_jfunc): Reimplemented using ipa_value_from_jfunc.
8723         * ipa-cp.c: Reimplemented.
8724         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): Removed.
8725         (PARAM_IPA_CP_VALUE_LIST_SIZE): New parameter.
8726         (PARAM_IPA_CP_EVAL_THRESHOLD): Likewise.
8727         * Makefile.in (IPA_PROP_H): Added alloc-pool.h to dependencies.
8728         * doc/invoke.texi (devirt-type-list-size): Removed description.
8729         (ipa-cp-value-list-size): Added description.
8730
8731 2011-07-18  Richard Henderson  <rth@redhat.com>
8732
8733         * bb-reorder.c (fix_crossing_conditional_branches): Emit all insns
8734         before calling create_basic_block.
8735
8736 2011-07-18  Jakub Jelinek  <jakub@redhat.com>
8737
8738         PR middle-end/49675
8739         * tree.c (build_common_builtin_nodes): Register
8740         __builtin_return_address, __cyg_profile_func_enter
8741         and __cyg_profile_func_exit.
8742
8743 2011-07-18  Richard Henderson  <rth@redhat.com>
8744
8745         * bb-reorder.c (emit_barrier_after_bb): Split out of ...
8746         (add_labels_and_missing_jumps): ... here.
8747         (fix_up_fall_thru_edges, fix_crossing_conditional_branches): Use it.
8748
8749 2011-07-18  Uros Bizjak  <ubizjak@gmail.com>
8750
8751         PR target/47744
8752         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
8753         of DImode hard registers in PLUS address chains.
8754
8755 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8756
8757         PR bootstrap/49769
8758         * config.gcc (alpha*-*-linux*): Add crtfastmath.o to extra_parts.
8759         (alpha*-*-freebsd*): Likewise.
8760         (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
8761         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
8762         i[34567]86-*-kopensolaris*-gnu): Add crtprec32.o, crtprec64.o,
8763         crtprec80.o, crtfastmath.o to extra_parts for all targets.
8764         (ia64*-*-elf*): Remove extra_parts.
8765         (sparc-*-linux*): Add crtfastmath.o to extra_parts.
8766         (sparc64-*-linux*): Likewise.
8767         (sparc64-*-freebsd*): Likewise.
8768
8769         Revert:
8770         * config.gcc (ia64*-*-freebsd*): Remove crtfastmath.o from extra_parts.
8771         (ia64*-*-linux*): Likewise.
8772         (mips64*-*-linux*): Likewise.
8773         (mips*-*-linux*): Likewise.
8774
8775 2011-07-18  David Edelsohn  <dje.gcc@gmail.com>
8776
8777         * doc/install.texi (Specific, *-ibm-aix*): AIX assembler bug.
8778
8779 2011-07-18  Richard Guenther  <rguenther@suse.de>
8780
8781         * gimplify.c (gimplify_expr): Use input_location, not saved_location
8782         when building new trees.
8783
8784 2011-07-18  Richard Guenther  <rguenther@suse.de>
8785
8786         * expr.c (expand_expr_real_2): Properly truncate the BIT_NOT_EXPR
8787         expansion result to bitfield precision if required.
8788
8789 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8790
8791         * config.gcc (i[3456x]86-*-netware*): Remove.
8792
8793         * gthr-nks.h: Remove.
8794         * configure.ac (enable_threads): Remove nks.
8795         * configure: Regenerate.
8796
8797         * config/i386/i386.c (ix86_encode_section_info): Remove netware
8798         reference.
8799         * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): Remove
8800         <netware.h> reference.
8801
8802         * config/i386/netware-libgcc.c,
8803         gcc/config/i386/netware-libgcc.def,
8804         gcc/config/i386/netware-libgcc.exp, gcc/config/i386/netware.c,
8805         gcc/config/i386/netware.h, gcc/config/i386/netware.opt,
8806         gcc/config/i386/nwld.c, gcc/config/i386/nwld.h,
8807         gcc/config/i386/t-netware, gcc/config/i386/t-nwld: Remove
8808
8809         * doc/extend.texi (Function Attributes,
8810         callee_pop_aggregate_return): Remove i?86-netware reference.
8811         * doc/install.texi (Configuration, --enable-threads): Remove nks.
8812
8813 2011-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8814
8815         PR target/49746
8816         Revert:
8817         2010-12-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8818
8819         * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean
8820         patterns.
8821
8822 2011-07-17  Eric Botcazou  <ebotcazou@adacore.com>
8823
8824         PR middle-end/49732
8825         * tree.c (walk_tree_1) <DECL_EXPR>: Do not walk a pointed-to type.
8826
8827 2011-07-16  Matthias Klose  <doko@ubuntu.com>
8828
8829         * doc/install.texi: Document --enable-static-libjava.
8830
8831 2011-07-15  Richard Henderson  <rth@redhat.com>
8832
8833         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
8834         Replace all three arguments by returning a VEC of edges.
8835         (add_labels_and_missing_jumps): Accept a VEC of edges, not bare
8836         pointers and counts.
8837         (fix_edges_for_rarely_executed_code): Merge ...
8838         (rest_of_handle_partition_blocks): ... into...
8839         (partition_hot_cold_basic_blocks): ... here.  Return todo items if
8840         any work was performed.
8841         (pass_partition_blocks): Clear todo_flags_finish.
8842
8843 2011-07-15  Paolo Carlini  <paolo.carlini@oracle.com>
8844             Jakub Jelinek  <jakub@redhat.com>
8845             Jonathan Wakely  <jwakely.gcc@gmail.com>
8846
8847         PR libstdc++/49745
8848         * gthr-posix.h: Do not include <unistd.h> unconditionally; use
8849         _GTHREADS_USE_MUTEX_TIMEDLOCK instead of _POSIX_TIMEOUTS.
8850
8851 2011-07-15  Jason Merrill  <jason@redhat.com>
8852
8853         PR testsuite/49741
8854         * Makefile.in ($(lang_checks_parallelized)): Allow --extra_opts
8855         rather than --tool_opts.
8856
8857 2011-07-15  Basile Starynkevitch  <basile@starynkevitch.net>
8858
8859         * doc/plugins.texi (Building GCC plugins): gengtype needs its
8860         corresponding gtype.state.
8861
8862 2011-07-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8863
8864         PR target/49723
8865         * config/pa/pa.md (casesi): Use gen_int_mode instead of GEN_INT.
8866
8867 2011-07-15  Eric Botcazou  <ebotcazou@adacore.com>
8868
8869         PR target/48220
8870         * doc/md.texi (Standard Names): Document window_save.
8871         * cfgexpand.c (expand_debug_parm_decl): New function extracted from
8872         expand_debug_expr and expand_debug_source_expr.  If the target has
8873         a window_save instruction, adjust the ENTRY_VALUE_EXP.
8874         (expand_debug_expr) <SSA_NAME>: Call expand_debug_parm_decl if the
8875         SSA_NAME_VAR is a parameter.
8876         (expand_debug_source_expr) <PARM_DECL>: Call expand_debug_parm_decl.
8877         * var-tracking.c (parm_reg_t): New type and associated vector type.
8878         (windowed_parm_regs): New variable.
8879         (adjust_insn): If the target has a window_save instruction and this
8880         is the instruction, make its effect on parameter registers explicit.
8881         (next_non_note_insn_var_location): New function.
8882         (emit_notes_in_bb): Use it instead of NEXT_INSN throughout.
8883         (vt_add_function_parameter): If the target has a window_save insn,
8884         adjust the incoming RTL and record that in windowed_parm_regs.
8885         (vt_finalize): Free windowed_parm_regs.
8886
8887 2011-07-15  Bernd Schmidt  <bernds@codesourcery.com>
8888
8889         * doc/invoke.texi (C6X Options): New section.
8890         * doc/md.texi (TI C6X family): New section.
8891         * config.gcc: Handle tic6x, in particular tic6x-*-elf and
8892         tic6x-*-uclinux.
8893         * longlong.h (add_ssaaaa, __umulsidi3, umul_ppmm,
8894         count_leading_zeros, count_trailing_zeros, UMUL_TIME, UDIV_TIME):
8895         Provide C6X definitions.
8896         * config/c6x/c6x.md: New file.
8897         * config/c6x/constraints.md: New file.
8898         * config/c6x/predicates.md: New file.
8899         * config/c6x/c6x-sched.md.in: New file.
8900         * config/c6x/c6x-sched.md: New file.
8901         * config/c6x/gensched.sh: New file.
8902         * config/c6x/c6x-mult.md.in: New file.
8903         * config/c6x/genmult.sh: New file.
8904         * config/c6x/c6x-mult.md: New file.
8905         * config/c6x/sync.md: New file.
8906         * config/c6x/c6x-protos.h: New file.
8907         * config/c6x/sfp-machine.h: New file.
8908         * config/c6x/c6x.c: New file.
8909         * config/c6x/c6x.h: New file.
8910         * config/c6x/crti.s: New file.
8911         * config/c6x/crtn.s: New file.
8912         * config/c6x/lib1funcs.asm: New file.
8913         * config/c6x/c6x-modes.def: New file.
8914         * config/c6x/genopt.sh: New file.
8915         * config/c6x/c6x.opt: New file.
8916         * config/c6x/c6x-tables.opt: New file.
8917         * config/c6x/c6x-opts.h: New file.
8918         * config/c6x/c6x-isas.def: New file.
8919         * config/c6x/elf.h: New file.
8920         * config/c6x/elf-common.h: New file.
8921         * config/c6x/uclinux-elf.h: New file.
8922         * config/c6x/t-c6x: New file.
8923         * config/c6x/t-c6x-elf: New file.
8924         * config/c6x/t-c6x-uclinux: New file.
8925         * config/c6x/t-c6x-softfp: New file.
8926         * config/c6x/gtd.c: New file.
8927         * config/c6x/gtf.c: New file.
8928         * config/c6x/ltd.c: New file.
8929         * config/c6x/ltf.c: New file.
8930         * config/c6x/ged.c: New file.
8931         * config/c6x/gef.c: New file.
8932         * config/c6x/led.c: New file.
8933         * config/c6x/lef.c: New file.
8934         * config/c6x/eqd.c: New file.
8935         * config/c6x/eqf.c: New file.
8936         * config/c6x/libgcc-c6xeabi.ver: New file.
8937
8938         Revert
8939         2003-07-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
8940         PR rtl-optimization/11320
8941         * sched-int.h (struct deps) [reg_conditional_sets]: New field.
8942         (struct sched_info) [compute_jump_reg_dependencies]: New prototype.
8943         * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to
8944         current_sched_info->compute_jump_reg_dependencies. Record which
8945         registers are used and which registers are set by the jump.
8946         Clear deps->reg_conditional_sets after a barrier.
8947         Set deps->reg_conditional_sets if the insn is a COND_EXEC.
8948         Clear deps->reg_conditional_sets if the insn is not a COND_EXEC.
8949         (init_deps): Initialize reg_conditional_sets.
8950         (free_deps): Clear reg_conditional_sets.
8951         * sched-ebb.c (compute_jump_reg_dependencies): New prototype.
8952         Mark registers live on entry of the fallthrough block and conditionally
8953         set as set by the jump. Mark registers live on entry of non-fallthrough
8954         blocks as used by the jump.
8955         * sched-rgn.c (compute_jump_reg_dependencies): New prototype.
8956         Mark new parameters as unused.
8957
8958 2011-07-14  Andrew Pinski  <pinskia@gmail.com>
8959
8960         PR tree-opt/49309
8961         * tree-mudflap.c (mf_xform_derefs_1 <case MEM_REF>):
8962         Use fold_build2_loc instead of build2.
8963         Use the correct type for the new tree.
8964
8965 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
8966
8967         PR rtl-optimization/11320
8968         * config/ia64/ia64.md (load_symptr_low): Show a MEM.
8969         * config/ia64/ia64.c (ia64_expand_load_address): Generate it.
8970
8971 2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
8972
8973         PR target/49487
8974         * config/avr/avr.md (rotl<mode>3): Generate SCRATCH instead
8975         of REG.
8976         (*rotw<mode>): Use const_int_operand for operand2.
8977         Use match_scatch for operand3.
8978         (*rotb<mode>): Ditto
8979         * config/avr/avr.c (avr_rotate_bytes): Treat SCRATCH.
8980
8981 2011-07-14  Richard Guenther  <rguenther@suse.de>
8982
8983         PR tree-optimization/49651
8984         * tree-ssa-structalias.c (get_constraint_for_1): Properly
8985         handle dereferences with subvariables.
8986
8987 2011-07-14  Richard Guenther  <rguenther@suse.de>
8988
8989         * gimple-fold.c (fold_gimple_assign): Remove operand swapping.
8990         (fold_stmt_1): Do it here directly on gimple and as a first thing.
8991
8992 2011-07-14  Richard Guenther  <rguenther@suse.de>
8993
8994         * fold-const.c (fold_binary_loc): Convert the !bool_var result,
8995         not bool_var when folding bool_var != 1 or bool_var == 0.
8996
8997 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
8998
8999         * haifa-sched.c (schedule_insns): Remove outdated comment.
9000         (schedule_block): When computing a known value for TODO_SPEC,
9001         just set it rather than using logical operations.
9002         (try_ready): Likewise.  Use a local variable rather than a
9003         pointer to TODO_SPEC.  Reorder an if statement to move the
9004         easy case to the then block.
9005         * sched-deps.c (dep_spec_p): New static function.
9006         (update_dep): Use it to decide whether to call
9007         change_spec_dep_to_hard.
9008         (get_back_and_forw_lists): Use it.
9009         (sd_resolve_dep): Likewise.
9010         (init_dep): If !USE_DEPS_LIST, use zero to initialize status.
9011         (haifa_note_mem_dep): Likewise.
9012         (check_dep): Likewise.
9013         (sd_add_dep): Also clear SPECULATIVE bits if not DO_SPECULATION.
9014         (sched_free_deps): Free in two passes.
9015
9016 2011-07-14  Richard Sandiford  <richard.sandiford@linaro.org>
9017
9018         PR middle-end/49736
9019         * expr.c (all_zeros_p): Undo bogus part of last change.
9020
9021 2011-07-14  Matthias Klose <doko@ubuntu.com>
9022
9023         * doc/extend.texi (optimize attribute): Fix typo.
9024
9025 2011-07-14  Richard Guenther  <rguenther@suse.de>
9026
9027         * gimplify.c (gimplify_expr): Only do required conversions.
9028
9029 2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
9030
9031         PR target/43746
9032         * config/avr/elf.h (TARGET_ASM_SELECT_SECTION): Remove,
9033         i.e. use default_elf_select_section.
9034         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Remove.
9035         (READONLY_DATA_SECTION_ASM_OP): Remove.
9036         (TARGET_ASM_NAMED_SECTION): Move from here...
9037         * config/avr/avr.c: ...to here.
9038         (avr_asm_init_sections): Set unnamed callback of readonly_data_section.
9039         (avr_asm_named_section): Make static.
9040
9041 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9042
9043         PR bootstrap/49739
9044         * config.gcc (extra_parts): Add crtprec32.o crtprec64.o crtprec80.o
9045         and crtfastmath.o for Linux/x86.
9046
9047 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
9048
9049         * haifa-sched.c: Include "hashtab.h"
9050         (sched_no_dce): New global variable.
9051         (INSN_EXACT_TICK, INSN_TICK_ESTIMATE, FEEDS_BACKTRACK_INSN,
9052         SHADOW_P): New macros.
9053         (last_clock_var, cycle_issued_insns): Move declarations.
9054         (must_backtrack): New static variable.
9055         (struct delay_pair): New structure.
9056         (delay_htab, delay_htab_i2): New static variables.
9057         (delay_hash_i1, delay_hash_i2, delay_i1_eq, delay_i2_eq,
9058         record_delay_slot_pair, pair_delay, add_delay_dependencies): New
9059         functions.
9060         (dep_cost_1): If delay pairs exist, try to look up the insns and
9061         use the correct pair delay if we find them.
9062         (rank-for_schedule): Tweak priority for insns that must be scheduled
9063         soon to avoid backtracking.
9064         (queue_insn): Detect conditions which force backtracking.
9065         (ready_add): Likewise.
9066         (struct sched_block_state): Add member shadows_only_p.
9067         (struct haifa_save_data): New structure.
9068         (backtrack_queue): New static variable.
9069         (mark_backtrack_feeds, copy_insn_list, save_backtrack_point,
9070         unschedule_insns_until, restore_last_backtrack_point,
9071         free_topmost_backtrack_point, free_backtrack_queue,
9072         estimate_insn_tick, estimate_shadow_tick): New functions.
9073         (prune_ready_list): New arg shadows_only_p.  All callers changed.
9074         If true, remove everything that isn't SHADOW_P.  Look up delay
9075         pairs and estimate ticks to avoid scheduling the first insn too early.
9076         (verify_shadows): New function.
9077         (schedule_block): Add machinery to enable backtracking.
9078         (sched_init): Take sched_no_dce into account when setting
9079         DF_LR_RUN_DCE.
9080         (free_delay_pairs): New function.
9081         (init_h_i_d): Initialize INSN_EXACT_TICK.
9082         * Makefile.in (haifa-sched.o): Add $(HASHTAB_H).
9083         * sched-deps.c (sd_unresolve_dep): New function.
9084         * sched-int. (struct haifa_sched_info): New fields save_state
9085         and restore_state.
9086         (struct _haifa_insn_data): New fields exact_tick, tick_estimate,
9087         feeds_backtrack_insn and shadow_p.
9088         (DO_BACKTRACKING): New value in enum SCHED_FLAGS.
9089         (sched_no_dce): Declare variable.
9090         (record_delay_slot_pair, free_delay_pairs, add_delay_dependencies,
9091         sd_unresolve_dep): Declare functions.
9092         * modulo-sched.c (sms_sched_info): Clear the two new fields.
9093         * sched-rgn.c (rgn_const_sched_info): Likewise.
9094         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
9095         * sched-ebb.c (save_ebb_state, restore_ebb_state): New functions.
9096         (ebb_sched_info): Add them for the two new fields.
9097         (add_deps_for_risky_insns): Call add_delay_dependencies.
9098
9099 2011-07-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
9100
9101         * config/rs6000/rs6000.opt (-mpointers-to-nested-functions):
9102         Rename -mr11.
9103         * config/rs6000/rs6000.c (rs6000_trampoline_init): Ditto.
9104         (rs6000_call_indirect_aix): Ditto.
9105         * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Ditto.
9106         (call_indirect_aix<ptrsize>_internal): Ditto.
9107         (call_indirect_aix<ptrsize>_nor11): Ditto.
9108         (call_indirect_aix<ptrsize>_internal2): Ditto.
9109         (call_value_indirect_aix<ptrsize>): Ditto.
9110         (call_value_indirect_aix<ptrsize>_internal): Ditto.
9111         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
9112         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
9113         * doc/invoke.texi (RS/6000 and PowerPC Options): Ditto.
9114
9115 2011-07-13  Jason Merrill  <jason@redhat.com>
9116
9117         * Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts.
9118
9119 2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9120
9121         * config/spu/spu.c (spu_init_libfuncs): Install __clrsbdi2.
9122         * config/spu/spu.md ("clrsb<mode>2"): New expander.
9123
9124 2011-07-13  Thomas Schwinge  <thomas@schwinge.name>
9125
9126         * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Use AS_ECHO instead of echo.
9127         * configure: Regenerate.
9128
9129 2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9130
9131         * config/spu/spu.c (TARGET_ASM_FILE_START): Do not define.
9132         (asm_file_start): Remove.
9133         (spu_machine_dependent_reorg): Call compute_bb_for_insn and
9134         free_bb_for_insn around code that modifies insns before
9135         restarting df analysis.
9136
9137 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9138
9139         PR target/49541
9140         * config/sol2.h (LIB_SPEC): Simplify.  Move LIB_THREAD_LDFLAGS_SPEC ...
9141         (LINK_SPEC): ... here.
9142
9143 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
9144
9145         * haifa-sched.c (struct sched_block_state): New.
9146         (schedule_block): Move some local variables into such a structure.
9147
9148 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9149
9150         * config/i386/crtprec.c: Move to ../libgcc/config/i386.
9151         * config/i386/t-crtpc: Remove.
9152         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
9153         * config.gcc (i[34567]86-*-darwin*): Remove i386/t-crtpc from
9154         tmake_file.
9155         (x86_64-*-darwin*): Likewise.
9156         (i[34567]86-*-linux*): Likewise.
9157         (x86_64-*-linux*): Likewise.
9158
9159         * config/i386/sol2.h (ENDFILE_SPEC): Redefine.
9160         Handle -mpc32, -mpc64, -mpc80.
9161
9162 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9163
9164         * config/alpha/crtfastmath.c: Move to ../libgcc/config/alpha.
9165         * config/alpha/t-crtfm: Remove.
9166         * config/i386/crtfastmath.c: Move to ../libgcc/config/i386.
9167         * config/i386/t-crtfm: Remove.
9168         * config/ia64/crtfastmath.c: Move to ../libgcc/config/ia64.
9169         * config/mips/crtfastmath.c: Move to ../libgcc/config/mips.
9170         * config/sparc/crtfastmath.c: Move to ../libgcc/config/sparc.
9171         * config/sparc/t-crtfm: Remove.
9172
9173         * config.gcc (alpha*-*-linux*): Remove alpha/t-crtfm from tmake_file.
9174         (alpha*-*-freebsd*): Likewise.
9175         (i[34567]86-*-darwin*): Remove i386/t-crtfm from tmake_file.
9176         (x86_64-*-darwin*): Likewise.
9177         (i[34567]86-*-linux*): Likewise.
9178         (x86_64-*-linux*): Likewise.
9179         (x86_64-*-mingw*): Likewise.
9180         (ia64*-*-elf*): Remove crtfastmath.o from extra_parts.
9181         (ia64*-*-freebsd*): Likewise.
9182         (ia64*-*-linux*): Likewise.
9183         (mips64*-*-linux*): Likewise.
9184         (mips*-*-linux*): Likewise.
9185         (sparc-*-linux*): Remove sparc/t-crtfm from tmake_file.
9186         (sparc64-*-linux*): Likewise.
9187         (sparc64-*-freebsd*): Likewise.
9188
9189 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9190
9191         * config/darwin-crt2.c: Move to ../libgcc/config/rs6000.
9192         * config/darwin-crt3.c: Move to ../libgcc/config.
9193         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
9194         ($(T)crt3$(objext)): Remove.
9195         * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Remove.
9196         ($(T)crt2$(objext)): Remove.
9197         * config.gcc (powerpc-*-darwin*): Remove extra_parts.
9198         (powerpc64-*-darwin*): Likewise.
9199
9200 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
9201
9202         * config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode != Pmode.
9203
9204         * config/i386/i386.md (*addsi_1_zext): Renamed to ...
9205         (addsi_1_zext): This.
9206
9207 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
9208
9209         * doc/tm.texi.in (TARGET_ASM_MERGEABLE_RODATA_PREFIX): Add hook.
9210         * doc/tm.texi: Regenerate.
9211         * target.def (mergeable_rodata_prefix): New defhookpod.
9212         * varasm.c (mergeable_string_section, mergeable_constant_section):
9213         Use it. Allocate name with alloca.
9214
9215 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
9216
9217         * doc/invoke.texi (x86): Remove -mfused-madd and add -mfma.
9218
9219 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
9220
9221         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Tighten
9222         overlap check.
9223
9224 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
9225
9226         * tree.h (categorize_ctor_elements): Remove comment.  Fix long line.
9227         (count_type_elements): Delete.
9228         (complete_ctor_at_level_p): Declare.
9229         * expr.c (flexible_array_member_p): New function, split out from...
9230         (count_type_elements): ...here.  Make static.  Replace allow_flexarr
9231         parameter with for_ctor_p.  When for_ctor_p is true, return the
9232         number of elements that should appear in the top-level constructor,
9233         otherwise return an estimate of the number of scalars.
9234         (categorize_ctor_elements): Replace p_must_clear with p_complete.
9235         (categorize_ctor_elements_1): Likewise.  Use complete_ctor_at_level_p.
9236         (complete_ctor_at_level_p): New function, borrowing union logic
9237         from old categorize_ctor_elements_1.
9238         (mostly_zeros_p): Return true if the constructor is not complete.
9239         (all_zeros_p): Update call to categorize_ctor_elements.
9240         * gimplify.c (gimplify_init_constructor): Update call to
9241         categorize_ctor_elements.  Don't call count_type_elements.
9242         Unconditionally prevent clearing for variable-sized types,
9243         otherwise rely on categorize_ctor_elements to detect
9244         incomplete initializers.
9245
9246 2011-07-13  Richard Guenther  <rguenther@suse.de>
9247
9248         * tree-vrp.c (simplify_conversion_using_ranges): Make sure
9249         the final type is integral.
9250
9251 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
9252
9253         * sched-int.h (struct _dep): Add member cost.
9254         (DEP_COST, UNKNOWN_DEP_COST): New macros.
9255         * sched-deps.c (init_dep_1): Initialize DEP_COST.
9256         * haifa-sched.c (dep_cost_1): Use and set DEP_COST.
9257         (sched_change_pattern): Reset it for dependent insns.
9258
9259 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9260
9261         * Makefile.in (CRT0STUFF_T_CFLAGS): Remove.
9262         ($(T)crt0.o, $(T)mcrt0.o, s-crt0): Remove.
9263         * config/i386/netware-crt0.c: Move to ../libgcc/config/i386.
9264         * config/i386/t-nwld (CRTSTUFF_T_CFLAGS, CRT0STUFF_T_CFLAGS): Remove.
9265         (CRT0_S, MCRT0_S): Remove.
9266         ($(T)libgcc.def, $(T)libc.def, $(T)libcpre.def, $(T)posixpre.def):
9267         Remove.
9268         (s-crt0): Remove.
9269         * config.gcc (i[3456x]86-*-netware*): Remove extra_parts.
9270
9271 2011-07-12  Eric Botcazou  <ebotcazou@adacore.com>
9272
9273         * cse.c (insert_with_costs): Put semi-colon after empty loop body
9274         on the next line.
9275         * emit-rtl.c (push_to_sequence): Likewise.
9276         * haifa-sched.c (max_issue): Likewise.
9277         * matrix-reorg.c (add_allocation_site): Likewise.
9278         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
9279         * reload.c (alternative_allows_const_pool_ref): Likewise.
9280         * sched-rgn.c (rgn_add_block): Likewise.
9281         (rgn_fix_recovery_cfg): Likewise.
9282         * tree.c (attribute_list_contained): Likewise.
9283
9284 2011-07-12  Uros Bizjak  <ubizjak@gmail.com>
9285
9286         * config/i386/i386.c: Tidy processor feature bitmasks.
9287         (m_P4_NOCONA): New.
9288
9289 2011-07-12  Andrew Pinski  <pinskia@gmail.com>
9290
9291         PR rtl-opt/49474
9292         * cprop.c (find_implicit_sets): Correct the condition.
9293
9294 2011-07-12  Richard Henderson  <rth@redhat.com>
9295
9296         PR target/49713
9297         * dwarf2out.h (dwarf_frame_regnum): Remove.
9298         * dwarf2out.c (based_loc_descr): Revert last change.  Initialize regno
9299         earlier from DWARF_FRAME_REGNUM.  Never use dbx_reg_number.
9300         * dwarf2cfi.c (dw_stack_pointer_regnum, dw_frame_pointer_regnum): New.
9301         (execute_dwarf2_frame): Initialize them.
9302         (DW_STACK_POINTER_REGNUM, DW_FRAME_POINTER_REGNUM): Remove; replace
9303         users of the macros with the variables.
9304         (expand_builtin_dwarf_sp_column): Revert last change.
9305         (expand_builtin_init_dwarf_reg_sizes): Likewise.  Compute the
9306         result of DWARF_FRAME_REGNUM into a local variable.
9307
9308 2011-07-12  Richard Henderson  <rth@redhat.com>
9309
9310         PR target/49714
9311         * config/i386/i386.c (x86_output_mi_thunk): Use
9312         machopic_indirect_call_target instead of machopic_indirection_name
9313         directly.
9314
9315 2011-07-12  Laurent GUERBY  <laurent@guerby.net>
9316             Eric Botcazou  <ebotcazou@adacore.com>
9317
9318         * prefix.h: Wrap up in extern "C" block.
9319
9320 2011-07-12  Harsha Jagasia  <harsha.jagasia@amd.com>
9321
9322         AMD bdver2 Enablement
9323         * config.gcc (i[34567]86-*-linux* | ...): Add bdver2.
9324         (case ${target}): Add bdver2.
9325         * config/i386/driver-i386.c (host_detect_local_cpu): Let
9326         -march=native recognize bdver2 processors.
9327         * config/i386/i386-c.c (ix86_target_macros_internal): Add
9328         bdver2 def_and_undef
9329         * config/i386/i386.c (struct processor_costs bdver2_cost): New
9330         bdver2 cost table.
9331         (m_BDVER2): New definition.
9332         (m_AMD_MULTIPLE): Includes m_BDVER2.
9333         (initial_ix86_tune_features): Add bdver2 tuning.
9334         (processor_target_table): Add bdver2 entry.
9335         (static const char *const cpu_names): Add bdver2 entry.
9336         (ix86_option_override_internal): Add bdver2 instruction sets.
9337         (ix86_issue_rate): Add bdver2.
9338         (ix86_adjust_cost): Add bdver2.
9339         (has_dispatch): Add bdver2.
9340         * config/i386/i386.h (TARGET_BDVER2): New definition.
9341         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver2.
9342         (enum processor_type): Add PROCESSOR_BDVER2.
9343         * config/i386/i386.md (define_attr "cpu"): Add bdver2.
9344         * config/i386/i386.opt ( mdispatch-scheduler): Add bdver2 to
9345         description.
9346
9347 2011-07-12  Richard Henderson  <rth@redhat.com>
9348
9349         PR target/49714
9350         * config/i386/i386.c (x86_output_mi_thunk): Fix mode for
9351         destination address in memory on some paths.
9352
9353 2011-07-12  Bernd Schmidt  <bernds@codesourcery.com>
9354
9355         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Mention
9356         TARGET_FUNCTION_ARG_ROUND_BOUNDARY.
9357         (TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Add hook.
9358         * function.c (locate_and_pad_parm): Take it into account.
9359         * target.def (function_arg_round_boundary): New hook.
9360         * targhooks.c (default_function_arg_round_boundary): New function.
9361         * targhooks.h (default_function_arg_round_boundary): Declare.
9362         * doc/tm.texi: Regenerate.
9363
9364 2011-07-12  Richard Guenther  <rguenther@suse.de>
9365
9366         * tree-ssa-copyrename.c (rename_ssa_copies): Zero statistics.
9367         Do not perform no-op changes.
9368
9369 2011-07-12  Richard Sandiford  <richard.sandiford@linaro.org>
9370
9371         * config/arm/predicates.md (neon_struct_operand): Make a normal
9372         predicate.
9373         (neon_struct_or_register_operand): New predicate.
9374         * config/arm/neon.md (movmisalign<mode>): Replace predicates
9375         with neon_struct_or_register_operand.
9376         (*movmisalign<mode>_neon_store, *movmisalign<mode>_neon_load): Use
9377         neon_struct_operand instead of memory_operand.
9378
9379 2011-07-12  Martin Jambor  <mjambor@suse.cz>
9380
9381         * cgraph.h (cgraph_get_node_or_alias): Removed declaration.
9382         * cgraph.c (cgraph_get_node_or_alias): Removed.
9383         (change_decl_assembler_name): Changed all calls to
9384         cgraph_get_node_or_alias to a call to cgraph_get_node.
9385         (cgraph_make_decl_local): Likewise.
9386         * lto-symtab.c (lto_symtab_resolve_symbols): Likewise.
9387         * varasm.c (default_binds_local_p_1): Likewise.
9388         (decl_binds_to_current_def_p): Likewise.
9389
9390 2011-07-12  Jakub Jelinek  <jakub@redhat.com>
9391
9392         PR tree-optimization/49712
9393         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF.
9394
9395 2011-07-11  Bernd Schmidt  <bernds@codesourcery.com>
9396
9397         * genautomata.c (add_arc): Return void.  All callers changed.
9398         (make_automaton): Remove dead code.
9399
9400 2011-07-11  Richard Henderson  <rth@redhat.com>
9401
9402         * dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New.
9403         (DW_FRAME_POINTER_REGNUM): New.
9404         (expand_builtin_init_dwarf_reg_sizes): Use unsigned for rnum.
9405         (def_cfa_1): Do not convert reg to DWARF_FRAME_REGNUM here.
9406         (dwf_regno): New.
9407         (dwarf2out_flush_queued_reg_saves, dwarf2out_frame_debug_def_cfa,
9408         dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_register,
9409         dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_expr):
9410         Use it.
9411         * dwarf2out.c (based_loc_descr): Use dwarf_frame_regnum.
9412         * dwarf2out.h (dwarf_frame_regnum): New.
9413         (struct cfa_loc): Document the domain of the reg member.
9414
9415 2011-07-11  Uros Bizjak  <ubizjak@gmail.com>
9416
9417         * config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr.
9418         Use offset everywhere.  Always assert that offset <= TRAMPOLINE_SIZE.
9419
9420 2011-07-11  Jakub Jelinek  <jakub@redhat.com>
9421
9422         PR debug/49676
9423         * dwarf2out.c (int_shift_loc_descriptor): New function.
9424         (int_loc_descriptor): If shorter, emit i as
9425         (i >> shift), shift, DW_OP_shl for suitable shift value.
9426         Similarly, try to optimize large negative values using
9427         DW_OP_neg of a positive value if shorter.
9428         (size_of_int_shift_loc_descriptor): New function.
9429         (size_of_int_loc_descriptor): Adjust to match int_loc_descriptor
9430         changes.
9431         (mem_loc_descriptor) <case CONST_INT>: Emit zero-extended constants
9432         that fit into DWARF2_ADDR_SIZE bytes as int_loc_descriptor +
9433         DW_OP_GNU_convert instead of DW_OP_GNU_const_type if the former
9434         is shorter.
9435         (resolve_addr_in_expr): Optimize DW_OP_plus_uconst with a large
9436         addend as added DW_OP_plus if it is shorter.
9437
9438 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9439
9440         * config/i386/sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define.
9441         (DTORS_SECTION_ASM_OP): Define.
9442
9443 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9444
9445         * config/dfp-bit.c, config/dfp-bit.h: Move to ../libgcc.
9446         * config/t-dfprules: Move to ../libgcc/config.
9447         * config.gcc (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
9448         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
9449         i[34567]86-*-kopensolaris*-gnu): Remove t-dfprules from tmake_file.
9450         (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
9451         Likewise.
9452         (i[34567]86-*-cygwin*): Likewise.
9453         (i[34567]86-*-mingw*,  x86_64-*-mingw*): Likewise.
9454         (powerpc-*-linux*, powerpc64-*-linux*): Likewise.
9455         * Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): Remove.
9456         (libgcc.mvars): Remove DFP_ENABLE, DFP_CFLAGS, D32PBIT_FUNCS,
9457         D64PBIT_FUNCS, D128PBIT_FUNCS.
9458
9459 2011-07-11  Richard Guenther  <rguenther@suse.de>
9460
9461         * tree-vrp.c (simplify_conversion_using_ranges): Manually
9462         translate the source value-range through the conversion chain.
9463
9464 2011-07-11  Richard Sandiford  <richard.sandiford@linaro.org>
9465
9466         * expr.c (expand_expr_real_1): Use expand_insn for movmisalign.
9467
9468 2011-07-11  Arthur Loiret  <aloiret@debian.org>
9469
9470         * config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build
9471         a bi-arch compiler defaulting to 31-bit. In this case:
9472         (tmake_file): Add s390/t-linux64.
9473         * doc/install.texi: Add s390-linux to the list of targets supporting
9474         --enable-targets=all.
9475
9476 2011-07-11  Arthur Loiret  <aloiret@debian.org>
9477             Matthias Klose <doko@debian.org>
9478
9479         * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build
9480         a tri-arch compiler defaulting to 32-bit (ABI o32). In this case:
9481         (tm_file): Add mips/linux64.h.
9482         (tmake_file): Add mips/t-linux64.
9483         (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
9484         * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT
9485         instead of hardcoded mabi=n32.
9486         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
9487         tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
9488         convention.
9489
9490 2011-07-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9491
9492         * passes.c (init_optimization_passes): Add invariant motion pass
9493         after induction variable optimization.
9494
9495 2011-07-11  Georg-Johann Lay  <avr@gjlay.de>
9496
9497         PR target/39633
9498         * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only
9499         offsets 1..5 set cc0 in a usable way.
9500
9501 2011-07-11  Romain Geissler  <romain.geissler@gmail.com>
9502
9503         * tree.h (call_expr_arg): Remove.
9504         (call_expr_argp): Likewise.
9505
9506 2011-07-11  Eric Botcazou  <ebotcazou@adacore.com>
9507
9508         * config/sparc/sparc.md (save_register_window_1): Rename to...
9509         (window_save): ...this.
9510         * config/sparc/sparc.c (emit_save_register_window): Rename to...
9511         (emit_window_save): ...this.
9512         (sparc_expand_prologue): Adjust to above renaming.
9513
9514 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
9515
9516         * config/i386/i386.c (ix86_trampoline_init): Use movl instead
9517         of movabs for x32.
9518
9519 2011-07-10  Richard Henderson  <rth@redhat.com>
9520
9521         * config/i386/i386.c (x86_output_mi_thunk): Generate rtl and
9522         run final, instead of emitting text directly.
9523
9524 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
9525
9526         * config/i386/i386.c (ix86_option_override_internal): Turn on
9527         OPTION_MASK_ISA_64BIT for TARGET_X32.  Only allow small and
9528         small PIC models for TARGET_X32.
9529
9530 2011-07-10  Hans-Peter Nilsson  <hp@axis.com>
9531
9532         PR target/49684
9533         * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Don't include
9534         $(LIBGCC2_CFLAGS).
9535
9536         PR bootstrap/49680
9537         * config/cris/cris.c (cris_asm_output_case_end): Robustify against
9538         stray notes and debug insns by using prev_nonnote_nondebug_insn
9539         instead of PREV_INSN.
9540
9541 2011-07-09  Richard Henderson  <rth@redhat.com>
9542
9543         * defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE,
9544         DWARF_TYPE_SIGNATURE_SIZE): Move from ...
9545         * dwarf2out.c: ... here.
9546         (output_all_cfis): Remove.
9547         (dwarf2out_switch_text_section): Use output_cfis directly.
9548         (size_of_locs): Export.
9549         (output_loc_sequence, output_loc_sequence_raw): Export.
9550         (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi,
9551         output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc,
9552         output_cfa_loc_raw): Move to ...
9553         * dwarfcfi.c: ... here.
9554         * dwarf2out.h: Update decls.
9555
9556 2011-07-09  Richard Henderson  <rth@redhat.com>
9557
9558         * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN,
9559         DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ...
9560         * dwarf2cfi.c: ... here.
9561         (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove.
9562         (DWARF_ROUND, DWARF_CIE_ID): Remove.
9563         * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove.
9564         (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove.
9565         (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove.
9566
9567 2011-07-09  Richard Henderson  <rth@redhat.com>
9568
9569         * dwarf2cfi.c (cie_return_save): New.
9570         (queue_reg_save): Use compare_reg_or_pc.
9571         (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column.
9572         (dwarf2out_frame_debug_expr): Likewise.
9573         (dwarf2out_frame_debug_cfa_register): Record saved reg for pc too.
9574         (initial_return_save): Likewise.
9575         (execute_dwarf2_frame): Save and restore initial return save from
9576         the cie to the fde.
9577         * config/mips/mips.c (mips_frame_set): Remove special case for
9578         DWARF_FRAME_RETURN_COLUMN.
9579
9580 2011-07-09  Richard Henderson  <rth@redhat.com>
9581
9582         * dwarf2cfi.c (lookup_cfa): Remove.
9583         (execute_dwarf2_frame): Assert queues are empty on entry.
9584         Setup initial cfa directly, not via lookup_cfa.
9585         Don't clear args_size state here.
9586
9587 2011-07-09  Richard Henderson  <rth@redhat.com>
9588
9589         * dwarf2cfi.c (add_cfi_vec): New.
9590         (add_cfi): Rename from add_fde_cfi.  Add the element to add_cfi_vec.
9591         (def_cfa_1, reg_save): Remove for_cie argument.  Update all callers.
9592         (execute_dwarf2_frame): Set add_cfi_vec.
9593
9594 2011-07-09  Richard Henderson  <rth@redhat.com>
9595
9596         * defaults.h (ASM_COMMENT_START): Move here...
9597         * dwarf2asm.c: ... from here.
9598         * dwarf2out.c, final.c, vmsdbgout.c: Remove duplicates.
9599         * toplev.c: Remove ifndef tests of ASM_COMMENT_START.
9600         * varasm.c: Likewise.
9601
9602 2011-07-09  Richard Henderson  <rth@redhat.com>
9603
9604         PR debug/49686
9605         * dwarf2cfi.c (dwarf2out_frame_debug): Don't set cfi_insn here...
9606         (create_cfi_notes): ... do it here instead.
9607
9608 2011-07-09  Jakub Jelinek  <jakub@redhat.com>
9609
9610         PR debug/49676
9611         * dwarf2out.c (size_of_int_loc_descriptor): New function.
9612         (address_of_int_loc_descriptor): Use it.
9613         (scompare_loc_descriptor): Optimize EQ/NE comparison with constant.
9614
9615 2011-07-09  Richard Henderson  <rth@redhat.com>
9616
9617         * config/pdp11/pdp11.md (define_c_enum "unspecv"): New.
9618         (prologue, epilogue): New.
9619         (return, *rts): New.
9620         (blockage, setd, seti): New.
9621         * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
9622         (TARGET_ASM_FUNCTION_EPILOGUE): Remove.
9623         (pdp11_saved_regno): New.
9624         (pdp11_expand_prologue): Rename from pdp11_output_function_prologue;
9625         generate rtl instead of text.
9626         (pdp11_expand_epilogue): Similarly from pdp11_output_function_epilogue.
9627         (pdp11_sp_frame_offset): Export.  Use pdp11_saved_regno.
9628         * config/pdp11/pdp11-protos.h: Update.
9629
9630 2011-07-09  Richard Henderson  <rth@redhat.com>
9631
9632         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
9633         try to insert an rtl prologue here.
9634         (rs6000_output_function_epilogue): Similarly.
9635         * config/rs6000/rs6000.md (prologue): Emit a barrier to
9636         satisfy !TARGET_SCHED_PROLOG.
9637         (epilogue, sibcall_epilogue): Likewise.
9638
9639 2011-07-09  Eric Botcazou  <ebotcazou@adacore.com>
9640
9641         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Move around.
9642         (FP_REG_P): Delete.
9643         (IN_OR_GLOBAL_P): Likewise.
9644
9645 2011-07-08  Jason Merrill  <jason@redhat.com>
9646
9647         PR c++/45437
9648         * gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in
9649         compound assignment.
9650
9651         * cgraph.c (cgraph_add_to_same_comdat_group): New.
9652         * cgraph.h: Declare it.
9653         * ipa.c (function_and_variable_visibility): Make sure thunks
9654         have the right visibility.
9655
9656 2011-07-08  Richard Henderson  <rth@redhat.com>
9657
9658         PR bootstrap/49680
9659         * dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after
9660         any tablejump vector.
9661
9662         PR bootstrap/49680
9663         * dwarf2cfi.c (create_cfi_notes): Flush queued saves at the
9664         end of the prologue.
9665
9666 2011-07-08  Jakub Jelinek  <jakub@redhat.com>
9667
9668         PR target/49621
9669         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use
9670         CONST0_RTX (dest_mode) instead of const0_rtx as second operand of NE.
9671         * config/rs6000/vector.md (vector_select_<mode>,
9672         vector_select_<mode>_uns): Change second operand of NE to
9673         CONST0_RTX (<MODE>mode) instead of const0_rtx.
9674         * config/rs6000/altivec.md (*altivec_vsel<mode>,
9675         *altivec_vsel<mode>_uns): Expect second operand of NE to be
9676         zero_constant of the corresponding vector mode.
9677         * config/rs6000/vsx.md (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns):
9678         Likewise.
9679
9680 2011-07-08  Sebastian Pop  <sebastian.pop@amd.com>
9681
9682         * graphite-dependences.c (build_alias_set_powerset): Remove
9683         continue from loop, add one more assert.
9684
9685 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
9686
9687         PR target/46779
9688         * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
9689         In particular, allow 8-bit values in r28 and r29.
9690         (avr_hard_regno_scratch_ok): Disallow any register that might be
9691         part of the frame pointer.
9692         (avr_hard_regno_rename_ok): Same.
9693         (avr_legitimate_address_p): Don't allow SUBREGs.
9694
9695 2011-07-08  Julian Brown  <julian@codesourcery.com>
9696
9697         * config/arm/neon.md (vec_shr_<mode>, vec_shl_<mode>): Disable in
9698         big-endian mode.
9699         (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_smin_<mode>)
9700         (reduc_smax_<mode>, reduc_umin_<mode>, reduc_umax_<mode>)
9701         (neon_vec_unpack<US>_lo_<mode>, neon_vec_unpack<US>_hi_<mode>)
9702         (vec_unpack<US>_hi_<mode>, vec_unpack<US>_lo_<mode>)
9703         (neon_vec_<US>mult_lo_<mode>, vec_widen_<US>mult_lo_<mode>)
9704         (neon_vec_<US>mult_hi_<mode>, vec_widen_<US>mult_hi_<mode>)
9705         (vec_pack_trunc_<mode>, neon_vec_pack_trunc_<mode>): Disable for Q
9706         registers in big-endian mode.
9707
9708 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
9709
9710         * genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined
9711         in terms of another.
9712         (write_attr_value): Write a cast if necessary.
9713
9714         * defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default.
9715         * doc/tm.texi.in (WORDS_BIG_ENDIAN): Mention REG_WORDS_BIG_ENDIAN.
9716         (REG_WORDS_BIG_ENDIAN): Document.
9717         * doc/tm.texi: Regenerate.
9718         * reload.c (operands_match_p): Take it into account.
9719         (reload_adjust_reg_for_mode): Likewise.
9720         * rtlanal.c (subreg_get_info): Likewise.
9721
9722 2011-07-08  Richard Guenther  <rguenther@suse.de>
9723
9724         * fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index
9725         folding.
9726
9727 2011-07-08  Kai Tietz  <ktietz@redhat.com>
9728
9729         * fold-const.c (fold_truth_andor): Factored out truth_andor
9730         label from fold_binary as function.
9731         (fold_binary_loc): Replace truth_andor lable
9732         by function fold_truth_andor.
9733
9734 2011-07-08  Kirill Yukhin  <kirill.yukhin@intel.com>
9735
9736         PR middle-end/49519
9737         * calls.c (mem_overlaps_already_clobbered_arg_p): Additional
9738         check if address is stored in register. If so - give up.
9739         (check_sibcall_argument_overlap_1): Do not perform check of
9740         overlapping when it is call to address.
9741
9742 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
9743
9744         * config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead
9745         of magic '31'.
9746
9747 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
9748
9749         * optabs.c (expand_binop): Use GET_MODE_PRECISION instead of
9750         GET_MODE_BITSIZE where appropriate.
9751         (widen_leading, expand_parity, expand_ctz, expand_ffs,
9752         expand_unop, expand_abs_nojump, expand_one_cmpl_abs_nojump,
9753         expand_float, expand_fix): Likewise.
9754         * expr.c (convert_move, convert_modes, expand_expr_real_2,
9755         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
9756         * stor-layout.c (get_mode_bounds): Likewise.
9757         * cfgexpand.c (convert_debug_memory_address, expand_debug_expr):
9758         Likewise.
9759         * convert.c (convert_to_integer): Likewise.
9760         * expmed.c (expand_shift_1): Likewise.
9761
9762         * rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against
9763         a bitsize.
9764
9765         * optabs.c (expand_binop): Tighten conditions for doubleword
9766         expansions.
9767         (widen_bswap): Assert that mode bitsize and precision are the same.
9768         * stor-layout.c (get_best_mode): Skip modes that have lower
9769         precision than bitsize.
9770         * recog.c (simplify_while_replacing): Assert that bitsize and
9771         precision are the same.
9772
9773 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9774
9775         * Makefile.in (LIBGCOV): Remove.
9776         (libgcc.mvars): Remove LIBGCOV.
9777         * libgov.c: Move to ../libgcc.
9778
9779 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9780
9781         * config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc.
9782
9783 2011-07-08  Martin Jambor  <mjambor@suse.cz>
9784
9785         * tree-sra.c (analyze_all_variable_accesses): Dump that a struture
9786         is too big for total scalarization.
9787
9788 2011-07-07  Richard Henderson  <rth@redhat.com>
9789
9790         * config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef.
9791         (DBX_DEBUGGING_INFO): Undef.
9792
9793 2011-07-07  Richard Henderson  <rth@redhat.com>
9794
9795         * dwarf2out.c (output_cfi_directive): Export.  Add FILE parameter.
9796         Handle some opcodes specially for debugging.
9797         * print-rtl.c: Include dwarf2out.h
9798         (print_rtx): Handle NOTE_INSN_CFI.
9799         * Makefile.in (print-rtl.o): Update.
9800
9801 2011-07-07  Richard Henderson  <rth@redhat.com>
9802
9803         * tree-pass.h (pass_dwarf2_frame): Declare.
9804         * passes.c (init_optimization_passes): Add it.
9805         * dwarf2cfi.c (dwarf2out_frame_debug): Make static.
9806         (create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue;
9807         make static, do not call add_cfis_to_fde.
9808         (dwarf2out_frame_debug_init, dwarf2cfi_function_init,
9809         dwarf2out_frame_init): Merge into...
9810         (execute_dwarf2_frame): ... here.  New function.
9811         (dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean.  Change
9812         saved_do_cfi_asm to a tri-state variable.
9813         (gate_dwarf2_frame, pass_dwarf2_frame): New.
9814         * dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde
9815         if it has yet to be done.  Don't call dwarf2cfi_function_init.
9816         * dwarf2out.h, debug.h: Update decls.
9817         * final.c (final_start_function): Don't call
9818         dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue.
9819         * lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init.
9820         * toplev.c (lang_dependent_init): Likewise.
9821
9822 2011-07-07  Richard Henderson  <rth@redhat.com>
9823
9824         * dwarf2out.c (fde_table, fde_table_allocated, fde_table_in_use,
9825         FDE_TABLE_INCREMENT): Replace with...
9826         (fde_vec): ... this, a new vector.
9827         (current_fde): Remove.  Replace all users with cfun->fde.
9828         (output_call_frame_info): Use FOR_EACH_VEC_ELT over fde_vec.
9829         (size_of_aranges, dwarf2out_finish): Likewise.
9830         (dwarf2out_alloc_current_fde): Break out from ...
9831         (dwarf2out_begin_prologue): ... here.
9832         (dwarf2out_frame_init): Remove.
9833         * dwarf2cfi.c: Update all users of current_fde.
9834         (dwarf2out_frame_init): Rename from dwarf2cfi_frame_init.
9835         * dwarf2out.h: Update decls.
9836         (dw_fde_node): Add fde_index member.
9837         * function.h (struct function): Add fde member.
9838
9839 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
9840             Richard Henderson  <rth@redhat.com>
9841
9842         * dwarf2cfi.c (add_cfi): Remove.
9843         (dwarf2out_cfi_label): Remove force argument.  Only generate the
9844         label name.
9845         (add_fde_cfi): Simplify the different code paths.
9846         (add_cie_cfi): New.
9847         (old_cfa, old_cfa_remember): New.
9848         (def_cfa_1, reg_save): Remove label, add for_cie parameter.
9849         (last_reg_save_label): Remove.
9850         (dwarf2out_args_size, dwarf2out_stack_adjust, queue_reg_save,
9851         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
9852         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
9853         dwarf2out_frame_debug_cfa_expression,
9854         dwarf2out_frame_debug_cfa_restore,
9855         dwarf2out_frame_debug_cfa_window_save,
9856         dwarf2out_frame_debug_expr): Remove label parameter.
9857         (cfi_label_required_p, add_cfis_to_fde): New.
9858         (dwarf2out_frame_debug_after_prologue): New.
9859         (dwarf2cfi_frame_init): Initialize old_cfa.
9860         (dwarf2out_frame_debug_restore_state): Likewise.
9861         * dwarf2out.c (dwarf2out_emit_cfi): Only do output for cfi_asm.
9862         (dwarf2out_switch_text_section): Don't clear dw_fde_current_label here.
9863         * final.c (final_start_function): Call
9864         dwarf2out_frame_debug_after_prologue.
9865
9866 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
9867             Richard Henderson  <rth@redhat.com>
9868
9869         * dwarf2cfi.c (cfi_insn): New.
9870         (dwarf2out_cfi_label): Don't emit cfi label here.
9871         (add_fde_cfi): Create a NOTE_INSN_CFI.
9872         (dwarf2out_frame_debug): Setup cfi_insn.
9873         (dwarf2out_frame_debug_init): Loop over insns creating CFI notes.
9874         (dwarf2out_cfi_begin_epilogue): Make static.
9875         (dwarf2out_frame_debug_restore_state): Make static.
9876         * dwarf2out.c (output_cfi_directive): Make static.
9877         (dwarf2out_emit_cfi): New.
9878         * dwarf2out.h: Update.
9879         * final.c (final): Remove CFI notes.
9880         (final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue,
9881         dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug.
9882         Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL.
9883         * insn-notes.def (NOTE_INSN_CFI): New.
9884         (NOTE_INSN_CFI_LABEL): New.
9885         * rtl.h (union rtunion_def): Add rt_cfi member.
9886         (XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New.
9887
9888 2011-07-07  Richard Henderson  <rth@redhat.com>
9889
9890         * dwarf2cfi.c: New file.
9891         * Makefile.in (OBJS): Add it.
9892         (GTFILES): Add dwarf2cfi.c and dwarf2out.h.
9893         * gengtype.c (open_base_files): Include dwarf2out.h.
9894         * coretypes.h (enum var_init_status): Move from ...
9895         * rtl.h: ... here.
9896         * dwarf2out.c (saved_do_cfi_asm, dwarf2out_do_frame,
9897         dwarf2out_do_cfi_asm, cie_cfi_vec, dwarf2out_cfi_label_num,
9898         expand_builtin_dwarf_sp_column, init_return_column_size,
9899         expand_builtin_init_dwarf_reg_sizes, new_cfi, add_cfi,
9900         dwarf2out_cfi_label, emit_cfa_remember, any_cfis_emitted, add_fde_cfi,
9901         lookup_cfa_1, lookup_cfa, cfa, cfa_store, cfa_remember, args_size,
9902         old_args_size, cfa_equal_p, def_cfa_1, reg_save, initial_return_save,
9903         stack_adjust_offset, barrier_args_size, compute_barrier_args_size_1,
9904         compute_barrier_args_size, dwarf2out_args_size,
9905         dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust,
9906         queued_reg_saves, reg_saved_in_data, regs_saved_in_regs,
9907         compare_reg_or_pc, record_reg_saved_in_reg, last_reg_save_label,
9908         queue_reg_save, dwarf2out_flush_queued_reg_saves,
9909         clobbers_queued_reg_save, reg_saved_in, cfa_temp,
9910         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
9911         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
9912         dwarf2out_frame_debug_cfa_expression,
9913         dwarf2out_frame_debug_cfa_restore,
9914         dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr,
9915         dwarf2out_frame_debug, dwarf2out_frame_debug_init,
9916         dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state,
9917         get_cfa_from_loc_descr): Move to dwarf2cfi.c.
9918         (dw_cfi_ref, dw_fde_ref, dw_cfi_oprnd_ref, enum dw_cfi_oprnd_type,
9919         dw_cfi_oprnd, dw_cfi_node, cfi_vec, dw_cfa_location, dw_fde_node,
9920         dw_val_ref, dw_die_ref, const_dw_die_ref, dw_loc_descr_ref,
9921         dw_loc_list_ref, enum dw_val_class, dw_vec_const, dw_val_node,
9922         dw_loc_descr_node): Move to dwarf2out.h.
9923         (current_fde, output_cfi_directive, build_cfa_loc, get_address_mode,
9924         mem_loc_descriptor): Export.
9925         (build_cfa_aligned_loc): Export.  Take CFA as a parameter.
9926         (dwarf2out_frame_init): Extract CIE generation code to
9927         dwarf2cfi_frame_init.
9928
9929 2011-07-07  Eric Botcazou  <ebotcazou@adacore.com>
9930
9931         PR target/49660
9932         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add
9933         MASK_V8PLUS, remove commented out flag and reorder.
9934
9935 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
9936
9937         PR c/49644
9938         * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
9939         one non-complex and one complex argument, call c_save_expr on both
9940         operands.
9941
9942 2011-07-07  Martin Jambor  <mjambor@suse.cz>
9943
9944         PR middle-end/49495
9945         * cgraphunit.c (verify_edge_corresponds_to_fndecl): New function.
9946         (verify_cgraph_node): Some functinality moved to
9947         verify_edge_corresponds_to_fndecl, call it.
9948
9949 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
9950
9951         * config.gcc (*local*): Remove.
9952         * doc/install-old.texi: Don't mention local configurations.
9953
9954 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
9955
9956         PR debug/49522
9957         * df-problems.c (dead_debug_reset): Remove dead_debug_uses
9958         referencing debug insns that have been reset.
9959         (dead_debug_insert_before): Don't assert reg is non-NULL,
9960         instead return immediately if it is NULL.
9961
9962 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
9963
9964         * config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa: Remove.
9965
9966 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
9967
9968         * hw-doloop.c: New file.
9969         * hw-doloop.h: New file.
9970         * Makefile.in (OBJS): Add hw-doloop.o.
9971         (hw-doloop.o): New rule.
9972         ($(obj_out_file)): Add hw-doloop.h dependency.
9973         * config/bfin/bfin.c: Include "hw-doloop.h".
9974         (loop_info, DEF_VEC_P for loop_info, loop_info_d): Remove.
9975         (bfin_dump_loops, bfin_bb_in_loop, bfin_scan_loop): Remove.
9976         (hwloop_optimize): Renamed from bfin_optimize_loop.  Argument
9977         type changed to hwloop_info.  Return bool, true if the loop was
9978         successfully optimized.  Remove code that was moved to
9979         hw-doloop.c, and adjust other parts.
9980         (hwloop_fail): New static function, containing parts that used
9981         to be in bfin_optimize_loop.
9982         (bfin_discover_loop, bfin_discover_loops, free_loops,
9983         bfin_reorder_loops): Remove.
9984         (hwloop_pattern_reg): New static function.
9985         (bfin_doloop_hooks): New variable.
9986         (bfin_reorg_loops): Remove most code, call reorg_loops.
9987         * config/bfin/bfin.md (doloop_end splitter): Also enable if
9988         loop counter is a memory_operand.
9989
9990 2011-07-07  H.J. Lu  <hongjiu.lu@intel.com>
9991
9992         * config.gcc: Support --with-multilib-list for x86 Linux targets.
9993
9994         * configure.ac: Mention x86-64 for --with-multilib-list.
9995         * configure: Regenerated.
9996
9997         * config/i386/gnu-user64.h (SPEC_64): Support x32.
9998         (SPEC_32): Likewise.
9999         (ASM_SPEC): Likewise.
10000         (LINK_SPEC): Likewise.
10001         (TARGET_THREAD_SSP_OFFSET): Likewise.
10002         (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise.
10003         (SPEC_X32): New.
10004
10005         * config/i386/i386.h (TARGET_X32): New.
10006         (TARGET_LP64): New.
10007         (LONG_TYPE_SIZE): Likewise.
10008         (POINTER_SIZE): Likewise.
10009         (POINTERS_EXTEND_UNSIGNED): Likewise.
10010         (OPT_ARCH64): Support x32.
10011         (OPT_ARCH32): Likewise.
10012
10013         * config/i386/i386.opt (mx32): New.
10014
10015         * config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New.
10016         (GLIBC_DYNAMIC_LINKERX32): Likewise.
10017         * config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise.
10018         (GLIBC_DYNAMIC_LINKERX32): Likewise.
10019
10020         * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New.
10021         (BIONIC_DYNAMIC_LINKERX32): Likewise.
10022         (GNU_USER_DYNAMIC_LINKERX32): Likewise.
10023
10024         * config/i386/t-linux64: Support TM_MULTILIB_CONFIG.
10025
10026         * doc/install.texi: Document --with-multilib-list for Linux/x86-64.
10027
10028         * doc/invoke.texi: Document -mx32.
10029
10030 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
10031
10032         * doc/invoke.texi (mwords-little-endian): Deprecate.
10033         * config/arm/arm.opt (mwords-little-endian): Likewise.
10034         * config/arm/arm.c (arm_option_override): Warn about the deprecation
10035         of -mwords-little-endian.
10036
10037 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
10038
10039         * reload1.c (choose_reload_regs): Use mode sizes to check whether
10040         an old reload register completely defines the required value.
10041
10042 2011-07-07  Richard Guenther  <rguenther@suse.de>
10043
10044         * fold-const.c (fold_unary_loc): Do not strip sign-changes
10045         for NEGATE_EXPR.
10046
10047 2011-07-07  Richard Guenther  <rguenther@suse.de>
10048
10049         * tree-vrp.c (simplify_conversion_using_ranges): New function.
10050         (simplify_stmt_using_ranges): Call it.
10051
10052 2011-07-07  Kai Tietz  <ktietz@redhat.com>
10053
10054         * tree-ssa-forwprop.c (truth_valued_ssa_name): New function.
10055         (lookup_logical_inverted_value): Likewise.
10056         (simplify_bitwise_binary_1): Likewise.
10057         (simplify_bitwise_binary): Use simplify_bitwise_binary_1.
10058
10059 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
10060
10061         * gcc.c (%[Spec]): Don't document.
10062         (struct spec_list): Update comment.
10063         (do_spec_1): Don't handle %[Spec].
10064         * doc/invoke.texi (%[@var{name}]): Remove documentation of spec.
10065
10066 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
10067
10068         * common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't
10069         default based on TARGET_ASM_NAMED_SECTION.
10070         * common/common-target.def (have_named_sections): Default to true.
10071         * common/config/default-common.c: Don't include tm.h.
10072         * common/config/picochip/picochip-common.c
10073         (TARGET_HAVE_NAMED_SECTIONS): Don't define.
10074         * common/config/m32c/m32c-common.c: Remove.
10075         * config.gcc (m32c*-*-*): Set target_has_targetm_common=no.
10076         * config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
10077         * config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
10078         * config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
10079         * config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
10080         * config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
10081         * config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
10082
10083 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
10084
10085         PR middle-end/49640
10086         * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF operands
10087         and last COMPONENT_REF operand call gimplify_expr on it if non-NULL.
10088
10089 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10090
10091         PR libmudflap/49550
10092         * gcc.c (MFWRAP_SPEC): Also wrap mmap64.
10093
10094 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10095
10096         PR target/39150
10097         * configure.ac (gcc_cv_as_hidden): Also accept
10098         x86_64-*-solaris2.1[0-9]*.
10099         (gcc_cv_as_cfi_directive): Likewise.
10100         (gcc_cv_as_comdat_group_group): Likewise.
10101         (set_have_as_tls): Likewise.
10102         * configure: Regenerate.
10103         * config.gcc (i[34567]86-*-solaris2*): Also handle
10104         x86_64-*-solaris2.1[0-9]*.
10105         * config.host (i[34567]86-*-solaris2*): Likewise.
10106         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
10107         * config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine.
10108         [USE_GLD] (ARCH_DEFAULT_EMULATION): Define.
10109         (TARGET_LD_EMULATION): Use it.
10110         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define.
10111         (SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default.
10112         * config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define.
10113         (ASM_CPU64_DEFAULT_SPEC): Define.
10114         (ASM_CPU_SPEC): Use %(asm_cpu_default).
10115         (ASM_SPEC): Redefine.
10116         (DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT.
10117         * config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce.
10118         * doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*): Document.
10119         (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]*
10120         configuration.
10121         (Specific, x86_64-*-solaris2.1[0-9]*): Document.
10122
10123 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10124
10125         * config/sol2.h (ASM_SPEC): Split into ...
10126         (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this.
10127         * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE.
10128         * config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine.
10129         (ASM_SPEC): Use ASM_SPEC_BASE.
10130         * config/sparc/sol2.h (ASM_SPEC): Redefine.
10131
10132 2011-07-07  Georg-Johann Lay  <avr@gjlay.de>
10133
10134         * config/avr/avr.md (*reload_insi): Change predicate #1 to
10135         const_int_operand.  Ditto for peep2 producing this insn.
10136         Add argument to output_reload_insisf call.
10137         (*movsi,*movsf): Add argument to output_movsisf call.
10138         (*reload_insf): New insn and new peep2 to produce it.
10139         * config/avr/avr-protos.h (output_movsisf): Change prototype.
10140         (output_reload_insisf): Change prototype.
10141         * config/avr/avr.c (avr_asm_len): New function.
10142         (output_reload_insisf): Rewrite.
10143         (output_movsisf): Change prototype.  output_reload_insisf for
10144         all CONST_INT and CONST_DOUBLE.  ALlow moving 0.0f to memory.
10145         (adjust_insn_length): Add argument to output_movsisf and
10146         output_reload_insisf call.
10147
10148 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
10149
10150         * emit-rtl.c (paradoxical_subreg_p): New function.
10151         * rtl.h (paradoxical_subreg_p): Declare.
10152         * combine.c (set_nonzero_bits_and_sign_copies, get_last_value,
10153         apply_distributive_law, simplify_comparison, simplify_set): Use it.
10154         * cse.c (record_jump_cond, cse_insn): Likewise.
10155         * expr.c (force_operand): Likewise.
10156         * rtlanal.c (num_sign_bit_copies1): Likewise.
10157         * reload1.c (eliminate_regs_1, strip_paradoxical_subreg): Likewise.
10158         * reload.c (push_secondary_reload, find_reloads_toplev): Likewise.
10159         (push_reload): Use precision to check for paradoxical subregs.
10160         * expmed.c (extract_bit_field_1): Likewise.
10161
10162         * machmode.h (HWI_COMPUTABLE_MODE_P): New macro.
10163         * combine.c (set_nonzero_bits_and_sign_copies): Use it.
10164         (find_split-point, combine_simplify_rtx, simplify_if_then_else,
10165         simplify_set, simplify_logical, expand_compound_operation,
10166         make_extraction, force_to_mode, if_then_else_cond, extended_count,
10167         try_widen_shift_mode, simplify_shift_const_1, simplify_comparison,
10168         record_value_for_reg): Likewise.
10169         * expmed.c (expand_widening_mult, expand_mult_highpart): Likewise.
10170         * simplify-rtx. c (simplify_unary_operation_1,
10171         simplify_binary_operation_1, simplify_const_relational_operation):
10172         Likewise.
10173
10174         * explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION
10175         instead of GET_MODE_BITSIZE where appropriate.
10176         * rtlanal.c (subreg_lsb_1, subreg_get_info, nonzero_bits1,
10177         num_sign_bit_copies1, canonicalize_condition, low_bitmask_len,
10178         init_num_sign_bit_copies_in_rep): Likewise.
10179         * cse.c (fold_rtx, cse_insn): Likewise.
10180         * loop-doloop.c (doloop_modify, doloop_optimize): Likewise.
10181         * simplify-rtx.c (simplify_unary_operation_1,
10182         simplify_const_unary_operation, simplify_binary_operation_1,
10183         simplify_const_binary_operation, simplify_ternary_operation,
10184         simplify_const_relational_operation, simplify_subreg): Likewise.
10185         * combine.c (try_combine, find_split_point, combine_simplify_rtx,
10186         simplify_if_then_else, simplify_set, expand_compound_operation,
10187         expand_field_assignment, make_extraction, if_then_else_cond,
10188         make_compound_operation, force_to_mode, make_field_assignment,
10189         reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine,
10190         extended_count, try_widen_shift_mode, simplify_shift_const_1,
10191         simplify_comparison, record_promoted_value, simplify_compare_const,
10192         record_dead_and_set_regs_1): Likewise.
10193
10194         Revert:
10195         * simplify-rtx.c (simplify_const_binary_operation): Use the
10196         shift_truncation_mask hook instead of performing modulo by width.
10197         Compare against mode precision, not bitsize.
10198         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
10199         Use shift_truncation_mask instead of constructing the value manually.
10200
10201 2011-07-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
10202
10203         * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): New
10204         declaration.
10205         (rs6000_save_toc_in_prologue_p): Ditto.
10206
10207         * config/rs6000/rs6000.opt (-mr11): New switch to disable loading
10208         up the static chain (r11) during indirect function calls.
10209         (-msave-toc-indirect): New undocumented debug switch.
10210
10211         * config/rs6000/rs6000.c (struct machine_function): Add
10212         save_toc_in_prologue field to note whether the prologue needs to
10213         save the TOC value in the reserved stack location.
10214         (rs6000_emit_prologue): Use TOC_REGNUM instead of 2.  If we need
10215         to save the TOC in the prologue, do so.
10216         (rs6000_trampoline_init): Don't allow creating AIX style
10217         trampolines if -mno-r11 is in effect.
10218         (rs6000_call_indirect_aix): New function to create AIX style
10219         indirect calls, adding support for -mno-r11 to suppress loading
10220         the static chain, and saving the TOC in the prologue instead of
10221         the call body.
10222         (rs6000_save_toc_in_prologue_p): Return true if we are saving the
10223         TOC in the prologue.
10224
10225         * config/rs6000/rs6000.md (STACK_POINTER_REGNUM): Add more fixed
10226         register numbers.
10227         (TOC_REGNUM): Ditto.
10228         (STATIC_CHAIN_REGNUM): Ditto.
10229         (ARG_POINTER_REGNUM): Ditto.
10230         (SFP_REGNO): Delete, unused.
10231         (TOC_SAVE_OFFSET_32BIT): Add constants for AIX TOC save and
10232         function descriptor offsets.
10233         (TOC_SAVE_OFFSET_64BIT): Ditto.
10234         (AIX_FUNC_DESC_TOC_32BIT): Ditto.
10235         (AIX_FUNC_DESC_TOC_64BIT): Ditto.
10236         (AIX_FUNC_DESC_SC_32BIT): Ditto.
10237         (AIX_FUNC_DESC_SC_64BIT): Ditto.
10238         (ptrload): New mode attribute for the appropriate load of a pointer.
10239         (call_indirect_aix32): Delete, rewrite AIX indirect function calls.
10240         (call_indirect_aix64): Ditto.
10241         (call_value_indirect_aix32): Ditto.
10242         (call_value_indirect_aix64): Ditto.
10243         (call_indirect_nonlocal_aix32_internal): Ditto.
10244         (call_indirect_nonlocal_aix32): Ditto.
10245         (call_indirect_nonlocal_aix64_internal): Ditto.
10246         (call_indirect_nonlocal_aix64): Ditto.
10247         (call): Rewrite AIX indirect function calls.  Add support for
10248         eliminating the static chain, and for moving the save of the TOC
10249         to the function prologue.
10250         (call_value): Ditto.
10251         (call_indirect_aix<ptrsize>): Ditto.
10252         (call_indirect_aix<ptrsize>_internal): Ditto.
10253         (call_indirect_aix<ptrsize>_internal2): Ditto.
10254         (call_indirect_aix<ptrsize>_nor11): Ditto.
10255         (call_value_indirect_aix<ptrsize>): Ditto.
10256         (call_value_indirect_aix<ptrsize>_internal): Ditto.
10257         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
10258         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
10259         (call_nonlocal_aix32): Relocate in the rs6000.md file.
10260         (call_nonlocal_aix64): Ditto.
10261
10262         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mr11 and
10263         -mno-r11 documentation.
10264
10265 2011-07-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
10266
10267         PR other/49658
10268         * doc/extend.texi (Compound Literals): Fix typo.
10269
10270 2011-07-06  James Greenhalgh  <james.greenhalgh@arm.com>
10271
10272         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add __ARM_FEATURE_DSP.
10273
10274 2011-07-06  Basile Starynkevitch  <basile@starynkevitch.net>
10275
10276         * configure.ac (plugin-version.h): Generate
10277         GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR,
10278         GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer
10279         macros.
10280
10281         * configure: Regenerate.
10282
10283         * doc/plugins.texi (Building GCC plugins): Mention
10284         GCCPLUGIN_VERSION ... constant macros in plugin-version.h.
10285
10286 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
10287
10288         * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro.
10289         * combine.c (make_extraction, gen_lowpart_or_truncate,
10290         apply_distributive_law, simplify_comparison,
10291         reg_truncated_to_mode, record_truncated_value): Use it.
10292         * cse.c (notreg_cost): Likewise.
10293         * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
10294         * expr.c (convert_move, convert_modes): Likewise.
10295         * optabs.c (expand_binop, expand_unop): Likewise.
10296         * postreload.c (move2add_last_label): Likewise.
10297         * regmove.c (optimize_reg_copy_3): Likewise.
10298         * rtlhooks.c (gen_lowpart_general): Likewise.
10299         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
10300
10301 2011-07-06  Joseph Myers  <joseph@codesourcery.com>
10302
10303         * config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define.
10304
10305 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
10306
10307         * cse.c (find_comparison_args): Use val_mode_signbit_set_p.
10308         * simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION.
10309         (val_mode_signbit_p, val_mode_signbit_set_p): New functions.
10310         (simplify_const_unary_operation, simplify_binary_operation_1,
10311         simplify_const_binary_operation, simplify_const_relational_operation):
10312         Use them.  Use GET_MODE_MASK for masking and sign-extensions.
10313         * combine.c (set_nonzero_bits_and_sign_copies, simplify_set,
10314         combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine,
10315         simplify_shift_const_1, simplify_comparison): Likewise.
10316         * expr.c (convert_modes): Likewise.
10317         * rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise.
10318         * expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag): Likewise.
10319         * rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare.
10320
10321         * simplify-rtx.c (simplify_ternary_operation): Remove dead code.
10322
10323 2011-07-06  Richard Guenther  <rguenther@suse.de>
10324
10325         PR tree-optimization/49645
10326         * c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global
10327         register variables.
10328         * tree-ssa-sccvn.c (vn_reference_op_eq): Disregard differences
10329         in type qualification here ...
10330         (copy_reference_ops_from_ref): ... not here.
10331         (vn_reference_lookup_3): ... or here.
10332         (copy_reference_ops_from_ref): Record decl bases as MEM[&decl].
10333         (vn_reference_lookup): Do the lookup with a valueized ao-ref.
10334
10335 2011-07-06  Ian Lance Taylor  <iant@google.com>
10336
10337         * doc/install.texi (Configuration): It's
10338         --enable-gnu-indirect-function, not --enable-indirect-function.
10339
10340 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
10341
10342         * simplify-rtx.c (simplify_const_binary_operation): Use the
10343         shift_truncation_mask hook instead of performing modulo by width.
10344         Compare against mode precision, not bitsize.
10345         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
10346         Use shift_truncation_mask instead of constructing the value manually.
10347
10348 2011-07-06  H.J. Lu  <hongjiu.lu@intel.com>
10349
10350         PR middle-end/47383
10351         * tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for
10352         address computation and convert to address_mode if needed.
10353
10354 2011-07-06  Richard Guenther  <rguenther@suse.de>
10355
10356         * tree.c (build_common_tree_nodes_2): Merge with
10357         build_common_tree_nodes.
10358         * tree.h (build_common_tree_nodes): Adjust prototype.
10359         (build_common_tree_nodes_2): Remove.
10360         * doc/tm.texi.in (lang_hooks.builtin_function): Adjust.
10361         * doc/tm.texi (lang_hooks.builtin_function): Regenerate.
10362
10363 2011-07-05  Jakub Jelinek  <jakub@redhat.com>
10364
10365         PR tree-optimization/49618
10366         * tree-eh.c (tree_could_trap_p) <case CALL_EXPR>: For DECL_WEAK
10367         t recurse on the decl.
10368         <case FUNCTION_DECL, case VAR_DECL>: For DECL_WEAK decls
10369         return true if expr isn't known to be defined in current
10370         TU or some other LTO partition.
10371
10372 2011-07-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
10373
10374         * params.def (PARAM_CASE_VALUES_THRESHOLD): New parameter to
10375         override CASE_VALUES_THRESHOLD.
10376
10377         * stmt.c (toplevel): Include params.h.
10378         (case_values_threshold): Use the --param case-values-threshold
10379         value if non-zero, otherwise use machine dependent value.
10380         (expand_case): Use case_values_threshold.
10381
10382         * Makefile.in (stmt.o): Add $(PARAMS_H) dependency.
10383
10384         * doc/invoke.texi (--param case-values-threshold): Document.
10385
10386 2011-07-05  Richard Henderson  <rth@redhat.com>
10387
10388         * dwarf2out.c (dwarf2out_cfi_label): Make static.
10389         (dwarf2out_flush_queued_reg_saves): Make static.
10390         (dwarf2out_reg_save): Remove.
10391         (dwarf2out_return_save): Remove.
10392         (dwarf2out_return_reg): Remove.
10393         (dwarf2out_reg_save_reg): Remove.
10394         (dwarf2out_def_cfa): Merge into ...
10395         (dwarf2out_frame_init): ... here.
10396         * dwarf2out.h, tree.h: Remove declarations as necessary.
10397
10398 2011-07-05  Richard Henderson  <rth@redhat.com>
10399
10400         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): Remove.
10401         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
10402         (ia64_expand_epilogue): Emit an empty FRAME_RELATED_EXPR for
10403         the alloc insn.
10404
10405         * config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove.
10406         (IA64_CHANGE_CFA_IN_EPILOGUE): Remove.
10407         (process_epilogue): Don't call dwarf2out_def_cfa.
10408
10409         * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to
10410         indicate the return address save.
10411         (process_cfa_register): Likewise.
10412
10413         * config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove.
10414         (process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it.
10415
10416         * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER
10417         for ar.pfs save at alloc insn.
10418
10419 2011-07-05  Richard Henderson  <rth@redhat.com>
10420
10421         * config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove.
10422         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
10423         (arm_expand_prologue): Use REG_CFA_REGISTER to mark the
10424         stack pointer save.
10425         (arm_unwind_emit_set): Don't recognize UNSPEC_STACK_ALIGN.
10426         (arm_unwind_emit): Walk REG_NOTES for unwinding notes.  Emit
10427         proper unwind info for a REG_CFA_REGISTER save of stack pointer.
10428         * config/arm/arm.md (UNSPEC_STACK_ALIGN): Remove.
10429
10430 2011-07-05  Richard Henderson  <rth@redhat.com>
10431
10432         * config/vax/vax.md (define_c_enum unspecv): New.  Define the
10433         VUNSPEC_* constants here instead of via define_constants.
10434         (VUNSPEC_PEM): New constant.
10435         (procedure_entry_mask): New insn.
10436         (prologue): New expander.
10437         * config/vax/vax.c (vax_add_reg_cfa_offset): New.
10438         (vax_expand_prologue): Rename from vax_output_function_prologue;
10439         emit rtl instead of text.
10440         (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
10441         (print_operand): Add 'x' prefix.
10442
10443 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
10444
10445         PR middle-end/47715
10446         * calls.c (precompute_register_parameters): Promote the function
10447         argument before checking non-legitimate constant.
10448
10449 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
10450
10451         PR tree-optimization/47654
10452         * graphite-blocking.c (pbb_strip_mine_time_depth): Do not return bool.
10453         (lst_do_strip_mine_loop): Return an int.
10454         (lst_do_strip_mine): Same.
10455         (scop_do_strip_mine): Same.
10456         (scop_do_block): Loop blocking should strip-mine at least two loops.
10457         * graphite-interchange.c (lst_interchange_select_outer): Return an int.
10458         (scop_do_interchange): Same.
10459         * graphite-poly.h (scop_do_interchange): Update declaration.
10460         (scop_do_strip_mine): Same.
10461
10462 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
10463
10464         * graphite-clast-to-gimple.c (precision_for_value): Removed.
10465         (precision_for_interval): Removed.
10466         (gcc_type_for_interval): Use mpz_sizeinbase.
10467
10468 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
10469
10470         * graphite-ppl.h (value_max): Correct computation of max.
10471
10472 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
10473
10474         * graphite-clast-to-gimple.c (clast_name_to_index): Add missing space.
10475
10476 2011-07-05  Richard Guenther  <rguenther@suse.de>
10477
10478         * c-decl.c (c_init_decl_processing): Defer building common
10479         tree nodes to c_common_nodes_and_builtins.
10480
10481 2011-07-05  Razya Ladelsky  <razya@il.ibm.com>
10482
10483         PR tree-optimization/49580
10484         * tree-cfg.c (gimple_duplicate_sese_tail): Remove handling of
10485         the loop's number of iterations.
10486         * tree-parloops.c (transform_to_exit_first_loop): Add the
10487         handling of the loop's number of iterations before the call
10488         to gimple_duplicate_sese_tail.
10489         Insert the stmt caclculating the new rhs of the loop's
10490         condition stmt to the preheader instead of iters_bb.
10491
10492 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
10493
10494         PR rtl-optimization/47449
10495         * fwprop.c (forward_propagate_subreg): Don't propagate hard
10496         register nor zero/sign extended hard register.
10497
10498 2011-07-05  Richard Guenther  <rguenther@suse.de>
10499
10500         PR tree-optimization/49518
10501         PR tree-optimization/49628
10502         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Skip
10503         irrelevant and invariant data-references.
10504         (vect_analyze_data_ref_access): For invariant loads clear the
10505         group association.
10506
10507 2011-07-04  Jakub Jelinek  <jakub@redhat.com>
10508
10509         PR rtl-optimization/49619
10510         * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification
10511         pass VOIDmode as op0_mode to recursive call, and return temp even
10512         when different from tor, just if it is not IOR of the original
10513         PLUS arguments.
10514
10515         PR rtl-optimization/49472
10516         * simplify-rtx.c (simplify_unary_operation_1) <case NEG>: When
10517         negating MULT, negate the second operand instead of first.
10518         (simplify_binary_operation_1) <case MULT>: If one operand is
10519         a NEG and the other is MULT, don't attempt to optimize by negation
10520         of the MULT operand if it only moves the NEG operation around.
10521
10522         PR debug/49602
10523         * tree-into-ssa.c (rewrite_debug_stmt_uses): Disregard
10524         get_current_def return value if it can't be trusted to be
10525         the current value of the variable in the current bb.
10526
10527 2011-07-04  Uros Bizjak  <ubizjak@gmail.com>
10528
10529         PR target/49600
10530         * config/i386/i386.md (SSE2 int->float split): Push operand 1 in
10531         general register to memory for !TARGET_INTER_UNIT_MOVES.
10532
10533 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
10534
10535         PR target/44643
10536         * config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY
10537         instead of TREE_READONLY.
10538
10539 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
10540
10541         * doc/extend.texi (AVR Built-in Functions): Update documentation
10542         of __builtin_avr_fmul*.
10543         * config/avr/avr.c (avr_init_builtins): Don't depend on AVR_HAVE_MUL.
10544         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Ditto.
10545         * config/avr/avr.md (fmul): Rename to fmul_insn.
10546         (fmuls): Rename to fmuls_insn.
10547         (fmulsu): Rename to fmulsu_insn.
10548         (fmul,fmuls,fmulsu): New expander.
10549         (*fmul.call,*fmuls.call,*fmulsu.call): New Insn.
10550         * config/avr/t-avr (LIB1ASMFUNCS): Add _fmul, _fmuls, _fmulsu.
10551         * config/avr/libgcc.S (__fmul): New function.
10552         (__fmuls): New function.
10553         (__fmulsu,__fmulsu_exit): New function.
10554
10555 2011-07-04  Richard Guenther  <rguenther@suse.de>
10556
10557         PR tree-optimization/49615
10558         * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix
10559         basic-block index check.
10560
10561 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
10562
10563         * longlong.h (count_leading_zeros, count_trailing_zeros,
10564         COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16
10565         resp. 64.
10566
10567 2011-07-03  Ira Rosen  <ira.rosen@linaro.org>
10568
10569         PR tree-optimization/49610
10570         * tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has
10571         a basic block.
10572
10573 2011-07-02  Eric Botcazou  <ebotcazou@adacore.com>
10574             Olivier Hainque  <hainque@adacore.com>
10575             Nicolas Setton  <setton@adacore.com>
10576
10577         * tree.h (TYPE_ARTIFICIAL): New flag.
10578         * dwarf2out.c (modified_type_die): Add a DW_AT_artificial attribute to
10579         the DIE of the type if it is artificial.
10580         (gen_array_type_die): Likewise.
10581         (gen_enumeration_type_die): Likewise.
10582         (gen_struct_or_union_type_die): Likewise.
10583         * lto-streamer-in.c (unpack_ts_base_value_fields): Use TYPE_ARTIFICIAL.
10584         * lto-streamer-out.c (pack_ts_base_value_fields): Likewise.
10585
10586 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
10587
10588         * tree-object-size.c (pass_through_call): Handle
10589         BUILT_IN_ASSUME_ALIGNED.
10590
10591 2011-07-01  Martin Jambor  <mjambor@suse.cz>
10592
10593         * tree-sra.c (tree_non_mode_aligned_mem_p): Also ignore MEM_REFs.
10594
10595 2011-07-01  H.J. Lu  <hongjiu.lu@intel.com>
10596
10597         PR middle-end/48016
10598         * explow.c (update_nonlocal_goto_save_area): Use proper mode
10599         for stack save area.
10600         * function.c (expand_function_start): Likewise.
10601
10602 2011-07-01  Richard Guenther  <rguenther@suse.de>
10603
10604         PR middle-end/49596
10605         * cgraph.h (varpool_all_refs_explicit_p): Not analyzed nodes
10606         may have unknown refs.
10607
10608 2011-07-01  Kai Tietz  <ktietz@redhat.com>
10609
10610         * tree-ssa-forwprop.c (simplify_bitwise_binary): Fix typo.
10611
10612 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10613
10614         * config.gcc: Obsolete alpha*-dec-osf5.1, mips-sgi-irix6.5.
10615         * doc/install.texi (Specific, alpha*-dec-osf5.1): Document it.
10616         (Specific, mips-sgi-irix6): Likewise.
10617
10618 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10619
10620         PR libmudflap/49549
10621         * doc/sourcebuild.texi (Effective-Target Keywords): Document gld.
10622
10623 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
10624
10625         * tree-pretty-print.c (dump_generic_code) <case CONSTRUCTOR>: Print
10626         [idx]= and [idx1 ... idx2]= before initializers if needed for
10627         array initializers.
10628
10629 2011-07-01  Chen Liqin  <liqin.gcc@gmail.com>
10630
10631         * config.gcc (score-*-elf): Remove score7.o.
10632         * config/score/t-score-elf: Likewise.
10633         * config/score/score.c: Merge score7 to score.c and
10634         remove forwarding functions.
10635         * config/score/score7.c: Deleted.
10636         * config/score/score7.h: Deleted.
10637
10638 2011-07-01  Richard Guenther  <rguenther@suse.de>
10639
10640         PR tree-optimization/49603
10641         * tree-vect-stmts.c (vectorizable_load): Remove unnecessary assert.
10642
10643 2011-06-30  Martin Jambor  <mjambor@suse.cz>
10644
10645         * tree-sra.c (struct access): Rename total_scalarization to
10646         grp_total_scalarization
10647         (completely_scalarize_var): New function.
10648         (sort_and_splice_var_accesses): Set total_scalarization in the
10649         representative access.
10650         (analyze_access_subtree): Propagate total scalarization accross the
10651         tree, no holes in totally scalarized trees, simplify coverage
10652         computation.
10653         (analyze_all_variable_accesses): Call completely_scalarize_var instead
10654         of completely_scalarize_record.
10655
10656 2011-06-30  Richard Henderson  <rth@redhat.com>
10657
10658         * config/i386/i386.h (X86_TUNE_DEEP_BRANCH_PREDICTION): Remove.
10659         (TARGET_DEEP_BRANCH_PREDICTION): Remove.
10660         * config/i386/i386.c: Don't include dwarf2out.h.
10661         (initial_ix86_tune_features): Remove X86_TUNE_DEEP_BRANCH_PREDICTION.
10662         (output_set_got): Don't test TARGET_DEEP_BRANCH_PREDICTION, delete
10663         all code dead thereafter.  Don't do dwarf2out_flush_queued_reg_saves.
10664         (ix86_expand_prologue): Set REG_CFA_FLUSH_QUEUE on set_got insn.
10665         (machopic_output_stub): Don't test TARGET_DEEP_BRANCH_PREDICTION.
10666
10667 2011-06-30  Richard Henderson  <rth@redhat.com>
10668
10669         * reg-notes.def (REG_CFA_FLUSH_QUEUE): New.
10670         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
10671         * final.c (final_scan_insn): Look for it, and invoke
10672         dwarf2out_frame_debug before the insn if found.
10673
10674 2011-06-30  Richard Henderson  <rth@redhat.com>
10675
10676         * dwarf2out.c (dwarf2out_frame_debug_cfa_offset): Allow PC_RTX
10677         as a source, and interpret that as DWARF_FRAME_RETURN_COLUMN.
10678
10679 2011-06-30  Richard Henderson  <rth@redhat.com>
10680
10681         * dwarf2out.c (struct reg_saved_in_data): Provide a typedef.
10682         Define a vector of this type.
10683         (regs_saved_in_regs): Use a VEC.
10684         (num_regs_saved_in_regs): Remove.
10685         (compare_reg_or_pc): New.
10686         (record_reg_saved_in_reg): Split out from...
10687         (dwarf2out_flush_queued_reg_saves): ... here.
10688         (clobbers_queued_reg_save): Update for VEC.
10689         (reg_saved_in): Likewise.
10690         (dwarf2out_frame_debug_init): Likewise.
10691         (dwarf2out_reg_save_reg): Use record_reg_saved_in_reg.
10692         (dwarf2out_frame_debug_cfa_register): Likewise.
10693
10694 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
10695
10696         PR tree-optimization/49572
10697         * tree-ssa-dom.c (initialize_hash_element) <GIMPLE_SINGLE_RHS>: Use the
10698         type of the RHS instead of that of the LHS for the expression type.
10699
10700 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
10701
10702         * df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro
10703         unconditionally.
10704
10705 2011-06-30  Richard Guenther  <rguenther@suse.de>
10706
10707         * opts.c (finish_options): Do not disable IPA-PTA during ltrans.
10708         * tree-ssa-structalias.c (create_variable_info_for): Do not
10709         add initial constraints for non-var-decls.  Properly handle
10710         globals in other ltrans partitions.
10711         (intra_create_variable_infos): Manually create constraints for
10712         the fake no-alias parameter.
10713         (ipa_pta_execute): Dump the cgraph, handle ltrans partitions properly
10714         and assert there are no clones.
10715
10716 2011-06-30  Richard Guenther  <rguenther@suse.de>
10717
10718         PR tree-optimization/46787
10719         * tree-data-ref.c (dr_address_invariant_p): Remove.
10720         (find_data_references_in_stmt): Invariant accesses are ok now.
10721         * tree-vect-stmts.c (vectorizable_load): Handle invariant loads.
10722         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
10723         invariant loads.
10724
10725 2011-06-30  Martin Jambor  <mjambor@suse.cz>
10726
10727         PR tree-optimization/49094
10728         * tree-sra.c (tree_non_mode_aligned_mem_p): New function.
10729         (build_accesses_from_assign): Use it.
10730
10731 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
10732
10733         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
10734         handling of BUILT_IN_ASSUME_ALIGNED.
10735
10736         PR debug/49364
10737         * dwarf2out.c (output_abbrev_section): Don't return early
10738         if abbrev_die_table_in_use is 1.
10739         (dwarf2out_finish): Instead don't call output_abbrev_section
10740         nor emit abbrev_section_label in that case.
10741
10742 2011-06-30  Nick Clifton  <nickc@redhat.com>
10743
10744         * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling
10745         for the V850E.
10746
10747 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
10748
10749         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
10750         handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK.
10751
10752 2011-06-30  Ira Rosen  <ira.rosen@linaro.org>
10753
10754         * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
10755         both pattern and original statements if necessary.
10756         (vect_transform_loop): Likewise.
10757         * tree-vect-patterns.c (vect_pattern_recog): Update documentation.
10758         * tree-vect-stmts.c (vect_mark_relevant): Add new argument.
10759         Mark the pattern statement only if the original statement doesn't
10760         have its own uses.
10761         (process_use): Call vect_mark_relevant with additional parameter.
10762         (vect_mark_stmts_to_be_vectorized): Likewise.
10763         (vect_get_vec_def_for_operand): Use vectorized pattern statement.
10764         (vect_analyze_stmt): Handle both pattern and original statements
10765         if necessary.
10766         (vect_transform_stmt): Don't store vectorized pattern statement
10767         in the original statement.
10768         (vect_is_simple_use_1): Use related pattern statement only if the
10769         original statement is irrelevant.
10770         * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
10771
10772 2011-06-29  Changpeng Fang  <changpeng.fang@amd.com>
10773
10774         * config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask
10775         option.
10776         * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL
10777         entry.
10778         (TARGET_AVX128_OPTIMAL): New definition.
10779         * config/i386/i386.c (initial_ix86_tune_features): Initialize
10780         X86_TUNE_AVX128_OPTIMAL entry.
10781         (ix86_option_override_internal): Enable the generation
10782         of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set.
10783         (ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128.
10784         (ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128.
10785
10786 2011-06-29  Eric Botcazou  <ebotcazou@adacore.com>
10787
10788         PR tree-optimization/49539
10789         * tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA
10790         names by means of stmt_references_abnormal_ssa_name.
10791         (associate_plusminus): Call can_propagate_from before propagating
10792         from definition statements.
10793         (ssa_forward_propagate_and_combine): Remove superfluous newline.
10794
10795 2011-06-29  Richard Guenther  <rguenther@suse.de>
10796
10797         * doc/invoke.texi: Document -scev dump modifier.
10798         * tree-pass.h (TDF_SCEV): New dump flag.
10799         * tree-dump.c (dump_option_value_in): Add scev.
10800         * tree-chrec.c: Replace all TDF_DETAILS checks with TDF_SCEV.
10801         * tree-scalar-evolution.c: Likewise.
10802
10803 2011-06-29  Nathan Sidwell  <nathan@codesourcery.com>
10804
10805         * config/arm/unwind-arm.c (enum __cxa_type_match_result): New.
10806         (cxa_type_match): Correct declaration.
10807         (__gnu_unwind_pr_common): Reconstruct additional indirection
10808         when __cxa_type_match returns succeeded_with_ptr_to_base.
10809
10810 2011-06-29  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10811
10812         PR rtl-optimization/49114
10813         * reload.c (struct replacement): Remove SUBREG_LOC member.
10814         (push_reload): Do not set it.
10815         (push_replacement): Likewise.
10816         (subst_reload): Remove dead code.
10817         (copy_replacements): Remove assertion.
10818         (copy_replacements_1): Do not handle SUBREG_LOC.
10819         (move_replacements): Likewise.
10820         (find_replacement): Remove dead code.  Use reload_adjust_reg_for_mode.
10821         Detect subregs via recursive descent instead of via SUBREG_LOC.
10822
10823 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
10824
10825         * config/avr/avr.c (avr_encode_section_info): Dispatch to
10826         default_encode_section_info.
10827
10828 2011-06-29  Richard Sandiford  <richard.sandiford@linaro.org>
10829
10830         PR tree-optimization/49545
10831         * builtins.c (get_object_alignment_1): Update function comment.
10832         Do not use DECL_ALIGN for functions, but test
10833         TARGET_PTRMEMFUNC_VBIT_LOCATION instead.
10834         * fold-const.c (get_pointer_modulus_and_residue): Don't check
10835         for functions here.
10836         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
10837
10838 2011-06-29  Jakub Jelinek  <jakub@redhat.com>
10839
10840         PR debug/49567
10841         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up for
10842         non-MODE_INT modes instead of asserting the mode has MODE_INT class.
10843
10844 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
10845
10846         PR target/34734
10847         * config/avr/avr.c (avr_handle_progmem_attribute): Move warning
10848         about uninitialized data attributed 'progmem' from here...
10849         (avr_encode_section_info): ...to this new function.
10850         (TARGET_ENCODE_SECTION_INFO): New define.
10851         (avr_section_type_flags): For data in ".progmem.data", remove
10852         section flag SECTION_WRITE.
10853
10854 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
10855
10856         * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3,
10857         _xmulhisi3_exit.
10858         * config/avr/libgcc.S (_xmulhisi3_exit): New Function.
10859         (__mulhisi3): Optimize if have MUL*.  Use XJMP instead of rjmp.
10860         (__umulhisi3): Ditto.
10861         * config/avr/avr.md (mulhisi3): New insn expender.
10862         (umulhisi3): New insn expender.
10863         (*mulhisi3_call): New insn.
10864         (*umulhisi3_call): New insn.
10865
10866 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
10867
10868         * Makefile.in (LIBGCC2_CFLAGS): Remove -D__GCC_FLOAT_NOT_NEEDED.
10869
10870 2011-06-28  Richard Henderson  <rth@redhat.com>
10871
10872         * config/arm/arm.c (thumb_pop): Rename from thumb_pushpop.  Delete
10873         all code and arguments that handled pushes.  Update all callers.
10874
10875 2011-06-28  Richard Henderson  <rth@redhat.com>
10876
10877         * config/arm/arm.c (arm_output_function_prologue): Don't call
10878         thumb1_output_function_prologue.
10879         (arm_expand_prologue): Avoid dead store.
10880         (number_of_first_bit_set): Use ctz_hwi.
10881         (thumb1_emit_multi_reg_push): New.
10882         (thumb1_expand_prologue): Merge thumb1_output_function_prologue
10883         to emit the entire prologue as rtl.
10884         (thumb1_output_interwork): Split out from
10885         thumb1_output_function_prologue.
10886         (thumb1_output_function_prologue): Remove.
10887         (arm_attr_length_push_multi): Handle thumb1.
10888         * config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New.
10889         (prologue_thumb1_interwork): New.
10890         (*push_multi): Allow thumb1; use push_mult_memory_operand.
10891         * config/arm/predicates.md (push_mult_memory_operand): New.
10892
10893 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
10894
10895         * config/sparc/sync.md (*stbar): Delete.
10896         (*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8.
10897
10898 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
10899
10900         * tree-ssa-dom.c (initialize_hash_element): Fix oversight.
10901
10902 2011-06-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10903
10904         * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove.
10905         (TARGET_64BIT_DEFAULT): Define.
10906         * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front
10907         of tm_file.
10908         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define.
10909
10910 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
10911
10912         * common.opt (in_lto_p): New Variable entry.
10913         * flags.h (in_lto_p): Move to common.opt.
10914         * gcc.c: Include params.h.
10915         (set_option_handlers): Also use common_handle_option and
10916         target_handle_option.
10917         (main): Call global_init_params, finish_params and init_options_struct.
10918         * opts.c (debug_type_names): Move from toplev.c.
10919         (print_filtered_help): Access quiet_flag through opts pointer.
10920         (common_handle_option): Return early in the driver for some options.
10921         Access in_lto_p, dwarf_version and warn_maybe_uninitialized through
10922         opts pointer.
10923         * toplev.c (in_lto_p): Move to common.opt.
10924         (debug_type_names): Move to opts.c.
10925         * Makefile.in (OBJS): Remove opts.o.
10926         (OBJS-libcommon-target): Add opts.o.
10927         (gcc.o): Update dependencies.
10928
10929 2011-06-28  Kai Tietz  <ktietz@redhat.com>
10930
10931         * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve type sinking.
10932
10933 2011-06-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
10934
10935         * config/arm/vfp.md ("*divsf3_vfp"): Replace '+' constraint modifier
10936         with '=' constraint modifier.
10937         (*divdf3_vfp): Likewise.
10938         ("*mulsf3_vfp"): Likewise.
10939         ("*muldf3_vfp"): Likewise.
10940         ("*mulsf3negsf_vfp"): Likewise.
10941         ("*muldf3negdf_vfp"): Likewise.
10942
10943 2011-06-28  Nick Clifton  <nickc@redhat.com>
10944
10945         * config/mn10300/mn10300.h (LINK_SPEC): Do not use linker
10946         relaxation when performing an incremental link.
10947
10948 2011-06-28  Kai Tietz  <ktietz@redhat.com>
10949
10950         * tree-ssa-math-opts.c (execute_optimize_bswap): Search
10951         within BB from last to first.
10952
10953 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
10954
10955         * genattr-common.c: New.  Based on genattr.c.
10956         * Makefile.in (INSN_ATTR_H): Include insn-attr-common.h.
10957         (MOSTLYCLEANFILES): Add insn-attr-common.h.
10958         (opts.o): Update dependencies.
10959         (.PRECIOUS): Add insn-attr-common.h.
10960         (simple_rtl_generated_h): Add insn-attr-common.h.
10961         (build/genattr-common.o): New.
10962         (genprogrtl): Add attr-common.
10963         * genattr.c (main): Include insn-attr-common.h.  Don't generate
10964         definitions of DELAY_SLOTS or INSN_SCHEDULING.
10965         * opts.c: Include insn-attr-common.h instead of rtl.h and insn-attr.h.
10966
10967 2011-06-28  Georg-Johann Lay  <avr@gjlay.de>
10968
10969         * config.gcc (tm_file): Add elfos.h and avr/elf.h for
10970         avr-*-* and avr-*-rtems* targets.
10971
10972         * config/avr/elf.h: New file.
10973         (ASM_OUTPUT_BEFORE_CASE_LABEL): Define.
10974         (TARGET_ASM_SELECT_SECTION): Define.
10975         (INIT_SECTION_ASM_OP): Undefine.
10976         (FINI_SECTION_ASM_OP): Undefine.
10977         (READONLY_DATA_SECTION_ASM_OP): Undefine.
10978         (PCC_BITFIELD_TYPE_MATTERS): Undefine.
10979         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine.
10980         * config/avr/avr.h:
10981         (PREFERRED_DEBUGGING_TYPE): Move to elf.h.
10982         (TARGET_ASM_NAMED_SECTION): Move to elf.h.
10983         (MAX_OFILE_ALIGNMENT): Move to elf.h.
10984         (STRING_LIMIT): Move to elf.h.
10985         (ASM_DECLARE_FUNCTION_NAME): Move to elf.h.
10986         (ASM_DECLARE_OBJECT_NAME): Remove.
10987         (ESCAPES): Remove.
10988         (ASM_OUTPUT_SKIP): Remove.
10989         (DWARF2_DEBUGGING_INFO): Remove.
10990         (OBJECT_FORMAT_ELF): Remove.
10991         (USER_LABEL_PREFIX): Remove.
10992         (ASM_OUTPUT_EXTERNAL): Remove.
10993         (ASM_OUTPUT_ASCII): Remove.
10994         (TYPE_ASM_OP): Remove.
10995         (SIZE_ASM_OP): Remove.
10996         (WEAK_ASM_OP): Remove.
10997         (STRING_ASM_OP): Remove.
10998         (SET_ASM_OP): Remove.
10999         (ASM_WEAKEN_LABEL): Remove.
11000         (TYPE_OPERAND_FMT): Remove.
11001         (ASM_DECLARE_FUNCTION_SIZE): Remove.
11002         (ASM_FINISH_DECLARE_OBJECT): Remove.
11003         (NO_DOLLAR_IN_LABEL): Remove.
11004         (ASM_GENERATE_INTERNAL_LABEL): Remove.
11005         (ASM_OUTPUT_CASE_LABEL): Remove.
11006         * config/avr/avr.c (avr_asm_output_aligned_decl_common): Use
11007         ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON.
11008         (gas_output_ascii): Remove.
11009         (gas_output_limited_string): Remove.
11010         (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
11011         * config/avr/avr-protos.h
11012         (gas_output_ascii): Remove prototye.
11013         (gas_output_limited_string): Remove prototype.
11014
11015 2011-06-27  Richard Earnshaw  <rearnsha@arm.com>
11016
11017         PR target/48637
11018         * arm.c (arm_print_operand): Allow sym+offset.  Don't abort on invalid
11019         asm operands.
11020
11021 2011-06-27  Jan Hubicka  <jh@suse.cz>
11022
11023         * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of
11024         node instead of references in node.
11025
11026 2011-06-27  Richard Henderson  <rth@redhat.com>
11027
11028         * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition.
11029         * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins
11030         inside ifdef.
11031
11032 2011-06-27  Jakub Jelinek  <jakub@redhat.com>
11033
11034         * c-decl.c (union lang_tree_node): Use it in chain_next expression.
11035
11036         * builtin-types.def (BT_FN_PTR_CONST_PTR_SIZE_VAR): New.
11037         * builtins.def (BUILT_IN_ASSUME_ALIGNED): New builtin.
11038         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
11039         find_func_clobbers): Handle BUILT_IN_ASSUME_ALIGNED.
11040         * tree-ssa-ccp.c (bit_value_assume_aligned): New function.
11041         (evaluate_stmt, execute_fold_all_builtins): Handle
11042         BUILT_IN_ASSUME_ALIGNED.
11043         * tree-ssa-dce.c (propagate_necessity): Likewise.
11044         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
11045         call_may_clobber_ref_p_1): Likewise.
11046         * builtins.c (is_simple_builtin, expand_builtin): Likewise.
11047         (expand_builtin_assume_aligned): New function.
11048         * doc/extend.texi (__builtin_assume_aligned): Document.
11049
11050         PR debug/49544
11051         * cselib.c (promote_debug_loc): If cselib_preserve_constants
11052         and l has two DEBUG_INSN owned locs instead of just one, adjust
11053         the second location's setting_insn too.
11054
11055 2011-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11056
11057         PR libmudflap/38738
11058         * config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define.
11059
11060 2011-06-27  Nick Clifton  <nickc@redhat.com>
11061
11062         * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to convert
11063         bit position of highest bit set into a count of the high zero bits.
11064
11065 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
11066
11067         * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types.
11068
11069 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
11070
11071         PR lto/48492
11072         * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list
11073         to a NULL parent.
11074
11075 2011-06-27  Richard Guenther  <rguenther@suse.de>
11076
11077         PR tree-optimization/49394
11078         * passes.c (execute_one_pass): Restore current_pass after
11079         applying IPA transforms.
11080
11081 2011-06-27  Kai Tietz  <ktietz@redhat.com>
11082
11083         * tree-ssa-math-opts.c (do_shift_rotate): Zero bits
11084         out of type precision after operation.
11085         (find_bswap): Take for limit value the integer auto-promotion
11086         into account.
11087
11088 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
11089
11090         * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the
11091         forward scan as well.
11092
11093 2011-06-27  Tristan Gingold  <gingold@adacore.com>
11094
11095         PR target/44241
11096         * config/vms/vms-protos.h: New file.
11097         * config/vms/vms-crtlmap.map: New file.
11098         * config/vms/vms.c: New file.
11099         * config/vms/make-crtlmap.awk: New file.
11100         * config/vms/vms-crtl.h: File removed.
11101         * config/vms/vms-crtl-64.h: File removed.
11102         * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets.
11103         * config/alpha/vms64.h: Do not include vms-crtl-64.h
11104         * config/alpha/alpha.c (alpha_init_builtins): Remove code to
11105         clear some builtins on VMS.  Calls vms_patch_builtins.
11106         (avms_asm_output_external): Remove.
11107         * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove.
11108         (struct crtl_name_spec): Remove
11109         (DO_CTRL_NAMES): Remove.
11110         * config/ia64/vms.h (struct crtl_name_spec): Remove
11111         (DO_CTRL_NAMES): Remove.
11112         * config/ia64/ia64.c (alpha_init_builtins): Remove code to
11113         clear some builtins on VMS.  Calls vms_patch_builtins.
11114         (ia64_asm_output_external): Remove DO_CRTL_NAME.
11115         * config/ia64/vms64.h: Do not include vms-crtl-64.h
11116         * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, tm_p_file.
11117
11118 2011-06-27  Tristan Gingold  <gingold@adacore.com>
11119
11120         * config/alpha/alpha.c (alpha_end_function): Always generate .end
11121         directive on VMS.
11122
11123 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
11124
11125         * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if
11126         the function receives nonlocal gotos.
11127
11128 2011-06-27  Richard Guenther  <rguenther@suse.de>
11129
11130         PR tree-optimization/49536
11131         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
11132         For non-scalar inner types use a scalar type according to
11133         the scalar inner mode.
11134
11135 2011-06-27  Richard Guenther  <rguenther@suse.de>
11136
11137         PR tree-optimization/49365
11138         * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9.
11139
11140 2011-06-27  Richard Guenther  <rguenther@suse.de>
11141
11142         PR tree-optimization/49169
11143         * fold-const.c (get_pointer_modulus_and_residue): Don't rely on
11144         the alignment of function decls.
11145
11146 2011-06-26  Iain Sandoe  <iains@gcc.gnu.org>
11147
11148         PR target/47997
11149         * config/darwin.c (darwin_mergeable_string_section): Place string
11150         constants in '.cstring' rather than '.const' when CF/NSStrings are
11151         active.
11152
11153 2011-06-26  Eric Botcazou  <ebotcazou@adacore.com>
11154
11155         * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment.
11156         (emit_save_register_window): Likewise.
11157         (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables.
11158         (sparc_flat_expand_prologue): Add comment.  Always emit blockage.
11159         Swap back %o7/%i7 in register naming.
11160
11161 2011-06-25  Iain Sandoe  <iains@gcc.gnu.org>
11162
11163         PR driver/49371
11164         * config/darwin.c (darwin_override_options): Improve warning when
11165         mdynamic-no-pic is given together with fPIC/fpic, also warn when it
11166         is given with fpie/fPIE.
11167         * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC.
11168         * config/darwin9.h (PIE_SPEC): New.
11169
11170 2011-06-25  Basile Starynkevitch  <basile@starynkevitch.net>
11171
11172         * timevar.c (timevar_print): Increase width for display of timevar
11173         name.
11174
11175 2011-06-24  Jakub Jelinek  <jakub@redhat.com>
11176
11177         PR c++/46400
11178         * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
11179         instead of TYPE_CHAIN for chain_next for types.
11180
11181 2011-06-24  Richard Henderson  <rth@redhat.com>
11182
11183         * config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove.
11184         (create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove.
11185         * config/sparc/sparc.c (gen_create_flat_frame_1): Remove.
11186         (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove.
11187         (sparc_flat_expand_prologue): Emit individual instructions
11188         instead of one of the above.
11189
11190 2011-06-24  Easwaran Raman  <eraman@google.com>
11191
11192         PR rtl-optimization/49429
11193         PR target/49454
11194         * expr.c (emit_block_move_hints):  Mark MEM_EXPR(x) and
11195         MEM_EXPR(y) addressable if emit_block_move_via_libcall is
11196         used to copy y into x.
11197         * calls.c (initialize_argument_information): Mark
11198         an argument addressable if it is passed by invisible reference.
11199         (emit_library_call_value_1): Mark  MEM_EXPR (val) addressable
11200         if it is passed by reference.
11201
11202 2011-06-24  H.J. Lu  <hongjiu.lu@intel.com>
11203
11204         PR rtl-optimization/49504
11205         * rtlanal.c (nonzero_bits1): Properly handle addition or
11206         subtraction of a pointer in Pmode if pointers extend unsigned.
11207         (num_sign_bit_copies1): Likewise.
11208
11209 2011-06-24  Martin Jambor  <mjambor@suse.cz>
11210
11211         PR tree-optimizations/49516
11212         * tree-sra.c (sra_modify_assign): Choose the safe path for
11213         aggregate copies if we also did scalar replacements.
11214
11215 2011-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
11216
11217         PR target/49335
11218         * config/arm/predicates.md (add_operator): New.
11219         * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage in Thumb2.
11220
11221 2011-06-24  Andi Kleen  <ak@linux.intel.com>
11222
11223         * tree-sra.c (type_internals_preclude_sra_p): Add msg
11224         parameter. Split up ifs and report reason in *msg.
11225         (reject): Add.
11226         (find_var_candiate): Add msg variable.
11227         Split up ifs and report reason to reject.
11228         (find_param_candidates): Add msg variable.
11229         Pass msg to type_internals_preclude_sra_p.
11230
11231 2011-06-23  Jeff Law  <law@redhat.com>
11232
11233         PR middle-end/48770
11234         * reload.h (reload): Change to return a bool.
11235         * ira.c (ira): If requested by reload, run a fast DCE pass after
11236         reload has completed.  Fix comment typo.
11237         * reload1.c (need_dce): New file scoped static.
11238         (reload): Set reload_completed here.  Return whether or not a DCE
11239         pass after reload is needed.
11240         (delete_dead_insn): Set need_dce as needed.
11241
11242         PR middle-end/49465
11243         * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition
11244         to detect threading through joiner block.  If there was already
11245         an edge to the new target, then do not change the PHI nodes.
11246
11247 2011-06-23  Jakub Jelinek  <jakub@redhat.com>
11248
11249         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
11250         get_pointer_alignment to see if base isn't sufficiently aligned.
11251
11252 2011-06-23  Jan Hubicka  <jh@suse.cz>
11253
11254         PR tree-optimize/49373
11255         * tree-pass.h (all_late_ipa_passes): Declare.
11256         * cgraphunit.c (init_lowered_empty_function): Fix properties.
11257         (cgraph_optimize): Execute late passes; remove unreachable funcions
11258         after materialization.
11259         * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or
11260         LTOing.
11261         * passes.c (all_late_ipa_passes): Declare.
11262         (dump_passes, register_pass): Handle late ipa passes.
11263         (init_optimization_passes): Move ipa_pta to late passes; schedule
11264         fixup_cfg at beggining of all_passes.
11265         (apply_ipa_transforms): New function.
11266         (execute_one_pass): When doing simple ipa pass, apply all transforms.
11267
11268 2011-06-23  Joseph Myers  <joseph@codesourcery.com>
11269
11270         * params.c: Include common/common-target.h.  Don't include tm.h.
11271         (lang_independent_params): Move from toplev.c.
11272         (global_init_params): New.
11273         * params.h (global_init_params): Declare.
11274         * target.def (default_params): Move to common-target.def.
11275         * toplev.c (lang_independent_options): Remove.
11276         (lang_independent_params): Move to params.c.
11277         (general_init): Use global_init_params.
11278         * common/common-target.def (option_default_params): Move from
11279         target.def.
11280         * common/config/ia64/ia64-common.c: Include params.h.
11281         (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
11282         from ia64.c.
11283         * common/config/rs6000/rs6000-common.c: Include params.h.
11284         (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
11285         from rs6000.c.
11286         * common/config/sh/sh-common.c: Include params.h.
11287         (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
11288         from sh.c.
11289         * common/config/spu/spu-common.c: Include params.h.
11290         (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
11291         from spu.c.
11292         * config/ia64/ia64.c (ia64_option_default_params,
11293         TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c.
11294         * config/rs6000/rs6000.c (rs6000_option_default_params,
11295         TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c.
11296         * config/sh/sh.c (sh_option_default_params,
11297         TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c.
11298         * config/spu/spu.c (spu_option_default_params,
11299         TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c.
11300         * Makefile.in (OBJS): Remove params.o.
11301         (OBJS-libcommon-target): Add params.o.
11302         (params.o, $(common_out_object_file)): Update dependencies.
11303         * doc/tm.texi: Regenerate.
11304
11305 2011-06-23  Alan Modra  <amodra@gmail.com>
11306
11307         PR bootstrap/49383
11308         * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
11309         invocation for 2011-06-09 changes.
11310
11311 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
11312
11313         PR libgomp/49490
11314         * omp-low.c (expand_omp_for_static_nochunk): Only
11315         use n ceil/ nthreads size for the first n % nthreads threads in the
11316         team instead of all threads except for the last few ones which
11317         get less work or none at all.
11318
11319         PR debug/49496
11320         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
11321         uses.
11322
11323 2011-06-22  Richard Guenther  <rguenther@suse.de>
11324
11325         PR tree-optimization/49493
11326         * tree-ssa-structalias.c (get_constraint_for_ssa_var):
11327         Refer to the alias target of variables.
11328         (associate_varinfo_to_alias_1): Remove.
11329         (ipa_pta_execute): Do not associate aliases with anything.
11330         * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors.
11331         (cgraph_function_node): Likewise.
11332         (cgraph_function_or_thunk_node): Likewise.
11333         (varpool_variable_node): Likewise.
11334
11335 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
11336
11337         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect typo.
11338         * config.gcc (arm*-*-linux*): Default to gnu tls.
11339         (arm*-*-*): Add --with-tls option.
11340         (all_defaults): Add 'tls'.
11341
11342 2011-06-22  Richard Henderson  <rth@redhat.com>
11343
11344         * reg-notes.def (REG_CFA_WINDOW_SAVE): New.
11345         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
11346         (dwarf2out_frame_debug_cfa_window_save): Rename from
11347         dwarf2out_window_save; make static.
11348         * tree.h (dwarf2out_window_save): Don't declare.
11349
11350         * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove.
11351         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
11352         (emit_save_register_window): Rename from gen_save_register_window;
11353         emit the insn and add REG_CFA_* notes.
11354         (sparc_expand_prologue): Update to match.
11355         * config/sparc/sparc.md (save_register_window_1): Simplify from
11356         save_register_window<P:mode>.
11357
11358 2011-06-22  H.J. Lu  <hongjiu.lu@intel.com>
11359
11360         PR target/49497
11361         * config/i386/i386.md (*lea_general_2): Always allow SImode.
11362         (*lea_general_2_zext): Likewise.
11363         (imul to lea peepholes): Use const359_operand and check
11364         TARGET_PARTIAL_REG_STALL.
11365
11366         * config/i386/predicates.md (const359_operand): New.
11367
11368 2011-06-22  Michael Matz  <matz@suse.de>
11369
11370         * cgraphunit.c (assemble_thunk): Use correct return type.
11371
11372 2011-06-22  Dmitry Plotnikov  <dplotnikov@ispras.ru>
11373             Dmitry Melnik  <dm@ispras.ru>
11374
11375         * config/arm/arm.c (neon_immediate_valid_for_shift): New function.
11376         (neon_output_shift_immediate): Ditto.
11377         * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New
11378         prototype.
11379         (neon_output_shift_immediate): Ditto.
11380         * config/arm/neon.md (vashl<mode>3): Modified constraint.
11381         (vashr<mode>3_imm): New insn pattern.
11382         (vlshr<mode>3_imm): Ditto.
11383         (vashr<mode>3): Modified constraint.
11384         (vlshr<mode>3): Ditto.
11385         * config/arm/predicates.md (imm_for_neon_lshift_operand): New
11386         predicate.
11387         (imm_for_neon_rshift_operand): Ditto.
11388         (imm_lshift_or_reg_neon): Ditto.
11389         (imm_rshift_or_reg_neon): Ditto.
11390
11391         * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.
11392
11393 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
11394
11395         * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for
11396         builtin calls even if likelyvalue is not CONSTANT.
11397         Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC.
11398         Return get_value_for_expr of first operand
11399         for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}.
11400         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
11401         BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like
11402         their non-checking counterparts.
11403         (call_may_clobber_ref_p_1): Likewise.
11404         (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK
11405         like their non-checking counterparts.
11406         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
11407         Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK
11408         like their non-checking counterparts.
11409         (find_func_clobbers): Likewise.
11410         * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK
11411         like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC.
11412
11413         * dwarf2out.c (size_of_loc_descr, output_loc_operands,
11414         mark_base_types, hash_loc_operands, compare_loc_operands): Allow
11415         DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead
11416         of base type reference as argument.
11417         (resolve_addr_in_expr): Likewise.  Fix keep computation.
11418         (convert_descriptor_to_signed): Renamed to...
11419         (convert_descriptor_to_mode): ... this.  For wider types convert to
11420         unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to untyped.
11421         (typed_binop): New function.
11422         (scompare_loc_descriptor, ucompare_loc_descriptor,
11423         minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes
11424         default to unsigned type instead of signed.
11425
11426         PR debug/47858
11427         * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
11428         (gimple_build_debug_source_bind_stat): New prototype.
11429         (gimple_build_debug_source_bind): Define.
11430         (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
11431         gimple_debug_source_bind_get_value,
11432         gimple_debug_source_bind_get_value_ptr,
11433         gimple_debug_source_bind_set_var,
11434         gimple_debug_source_bind_set_value): New inlines.
11435         * gimple.c (gimple_build_debug_source_bind_stat): New function.
11436         * gimple-pretty-print.c (dump_gimple_debug): Handle
11437         GIMPLE_DEBUG_SOURCE_BIND.
11438         * sese.c (rename_uses): Handle gimple_debug_source_bind_p.
11439         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
11440         * tree-parloops.c (eliminate_local_variables,
11441         separate_decls_in_region): Likewise.
11442         (separate_decls_in_region_debug): Renamed from
11443         separate_decls_in_region_debug_bind.  Handle
11444         gimple_debug_source_bind_p.
11445         * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
11446         prototypes.
11447         (DECL_HAS_DEBUG_ARGS_P): Define.
11448         (struct tree_function_decl): Add has_debug_args_flag field.
11449         * tree.c (debug_args_for_decl): New variable.
11450         (decl_debug_args_lookup, decl_debug_args_insert): New functions.
11451         * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
11452         (rewrite_debug_stmt_uses): New function.
11453         (rewrite_stmt): Use it to rewrite debug stmt uses.
11454         * rtl.def (DEBUG_PARAMETER_REF): New.
11455         * rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
11456         * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
11457         DEBUG_PARAMETER_REF.
11458         * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
11459         * print-rtl.c (print_rtx): Likewise.
11460         * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
11461         SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
11462         debug stmts in the first bb.
11463         * tree-inline.c (remap_ssa_name): If remapping default def
11464         of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
11465         a source bind debug stmt.
11466         (remap_gimple_stmt): Handle gimple_debug_source_bind_p.
11467         (maybe_move_debug_stmts_to_successors): Likewise.
11468         (copy_debug_stmt): Likewise.  Avoid shadowing a variable.
11469         (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
11470         debug args vector from old_decl to new_decl.
11471         * ipa-prop.c (ipa_modify_call_arguments): For optimized away
11472         or modified parameters, add debug bind stmts before call
11473         setting DEBUG_EXPR_DECL which is remembered in debug args vector.
11474         * cfgexpand.c (expand_call_stmt): Call expand_debug_expr
11475         on DECL_DEBUG_EXPRs from debug args vector.
11476         (expand_debug_source_expr): New function.
11477         (expand_debug_locations): Use it for source bind insns.
11478         (expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
11479         * var-tracking.c (prepare_call_arguments): Add debug args
11480         to call_arguments if any.
11481         * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
11482         output_loc_operands, output_loc_operands_raw, resolve_addr_in_expr,
11483         compare_loc_operands): Handle DW_OP_GNU_parameter_ref.
11484         (get_ref_die_offset, parameter_ref_descriptor): New functions.
11485         (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
11486         (gen_subprogram_die): Handle parameters identified by
11487         DEBUG_PARAMETER_REF.
11488
11489 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
11490
11491         * doc/invoke.texi (ARM Options): Document -mtls-dialect option.
11492         * doc/install.texi (Configuration): Document --with-tls.
11493         * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ.
11494         (arm_call_tls_get_addr): Clean up. Assert not tls descriptor.
11495         (arm_tls_descseq_addr): New.
11496         (legitimize_tls_address): Add tlsdesc support.
11497         (arm_cannot_copy_insn_p): Check for tlscall.
11498         (arm_emit_tls_decoration): Likewise.
11499         * config/arm/arm.h (TARGET_GNU2_TLS): New.
11500         (OPTION_DEFAULT_SPECS): Add with-tls support.
11501         * config/arm/arm.md (R1_REGNUM): Define.
11502         (tlscall): New.
11503         * config/arm/arm.opt (tls_type): New enumeration type and values.
11504         (mtls-dialect): New switch.
11505         * config/arm/arm-opts.h (enum tls_type): New.
11506
11507 2011-06-21  Nicola Pero  <nicola.pero@meta-innovation.com>
11508
11509         * attribs.c (register_attribute): Added assert to check that all
11510         attribute specs are registered with a name that is not empty and
11511         does not start with '_'.
11512         (decl_attributes): Avoid the lookup of the "naked" attribute spec
11513         if the function has no attributes.
11514         * tree.c (is_attribute_with_length_p): Removed.
11515         (is_attribute_p): Removed.
11516         (private_is_attribute_p): New.
11517         (private_lookup_attribute): New.
11518         (lookup_attribute): Removed.
11519         (lookup_ident_attribute): New.
11520         (remove_attribute): Require the first argument to be in the form
11521         'text', not '__text__'.  Updated asserts.
11522         (merge_attributes): Use lookup_ident_attributes instead of
11523         lookup_attribute.
11524         (merge_dllimport_decl_attributes): Use remove_attribute.
11525         (attribute_list_contained): Likewise.
11526         (attribute_list_equal): Immediately return 1 if the arguments are
11527         identical pointers.
11528         * tree.h (is_attribute_p): Made inline.  Return a 'bool', not an
11529         'int'.  Require the first argument to be in the form 'text', not
11530         '__text__'.  Require the second argument to be an identifier.
11531         (lookup_attribute): Made inline.  Require the first argument to be
11532         in the form 'text', not '__text__'.
11533         (private_is_attribute_p, private_lookup_attribute): New.
11534         Updated comments.
11535
11536 2011-06-21  Andrew MacLeod  <amacleod@redhat.com>
11537
11538         * builtins.c: Add sync_ or SYNC__ to builtin names.
11539         * sync-builtins.def: Add sync_ or SYNC__ to builtin names.
11540         * omp-low.c: Add sync_ or SYNC__ to builtin names.
11541
11542 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
11543
11544         PR target/33049
11545         * config/avr/avr.md (extzv): New expander.
11546         (*extzv): New insn.
11547         (*extzv.qihi1, *extzv.qihi2): New insn-and-split.
11548         * config/avr/constraints.md (C04): New constraint.
11549         * doc/md.texi (Machine Constraints): Document it.
11550
11551 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
11552
11553         PR middle-end/49489
11554         * builtins.c (expand_builtin_unop): Call expand_unop with 0 as
11555         unsignedp argument instead of 1 for clrsb_optab.
11556         (fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT
11557         and < 2 * HOST_BITS_PER_WIDE_INT.  Optimize BUILT_IN_CLRSB*.
11558         (fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*.
11559         * optabs.c (widen_leading): Call widen_operand and expand_unop
11560         with 0 as unsignedp argument instead of 1 for clrsb_optab.
11561         (expand_unop): Subtract difference of mode sizes also for clrsb_optab.
11562
11563 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
11564
11565         * config/avr/avr.md (*jcindirect_jump): Fix build warning.
11566
11567 2011-06-21  Bernd Schmidt  <bernds@codesourcery.com>
11568
11569         * gensupport.c (add_define_attr): New static function.
11570         (is_predicable): Allow multi-alternative lists for the "predicable"
11571         attribute.
11572         (modify_attr_enabled_ce, alter_attrs_for_insn): New static functions.
11573         (process_one_cond_exec): Call alter_attrs_for_insn.
11574         * doc/md.texi (Defining Attributes): Mention some standard names.
11575         (Conditional Execution): Update documentation for "predicable".
11576
11577         * doc/extend.texi (__builtin_clrsb, __builtin_clrsbl,
11578         __builtin_clrsbll): Document.
11579         * doc/rtl.texi (clrsb): New entry.
11580         * optabs.c (widen_leading): Renamed from widen_clz.  New argument
11581         UNOPTAB.  All callers changed.  Use UNOPTAB instead of clz_optab.
11582         (expand_unop): Handle clrsb_optab.
11583         (init_optabs): Initialize it.
11584         * optabs.h (enum optab_index): New entry OTI_clrsb.
11585         (clrsb_optab): Define.
11586         * genopinit.c (optabs): Add an entry for it.
11587         * builtins.c (expand_builtin): Handle clrsb builtin functions.
11588         * builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL,
11589         BUILT_IN_CLRSBLL): New.
11590         * rtl.def (CLRSB): New code.
11591         * dwarf2out.c (mem_loc_descriptor): Handle it.
11592         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
11593         Use op_mode rather than mode when optimizing ffs, clz, ctz, parity
11594         and popcount.
11595         * libgcc2.c (__clrsbSI2, __clrsbDI2): New functions.
11596         * libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare.
11597         (__ctzDI2): Move declaration.
11598         * config/bfin/bfin.md (clrsbsi2): New expander.
11599         (signbitssi2): Use the CLRSB rtx.
11600         (clrsbhi2): Renamed from signbitshi2.  Use the CLRSB rtx.
11601         * config/bfin/bfin.c (bdesc_1arg): Changed accordingly.
11602
11603 2011-06-21  Richard Guenther  <rguenther@suse.de>
11604
11605         * ipa-inline-transform.c (inline_transform): Fix previous change.
11606
11607 2011-06-21  Ira Rosen  <ira.rosen@linaro.org>
11608
11609         PR tree-optimization/49478
11610         * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
11611         with constant operand.
11612
11613 2011-06-21  Richard Guenther  <rguenther@suse.de>
11614
11615         * ipa-inline-transform.c (inline_transform): Fix typo.
11616
11617 2011-06-21  Richard Guenther  <rguenther@suse.de>
11618
11619         PR tree-optimization/49483
11620         * tree-vect-stmts.c (vectorizable_assignment): Also handle
11621         VIEW_CONVERT_EXPR conversions.
11622
11623 2011-06-21  Joseph Myers  <joseph@codesourcery.com>
11624
11625         * config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
11626         * config/avr/avr-tables.opt: New file (generated).
11627         * config.gcc (avr-*-*): Use avr/avr-tables.opt.
11628         * config/avr/avr-devices.c (avr_mcu_types): Move contents to
11629         avr-mcus.def.
11630         * config/avr/avr.c (avr_help, TARGET_HELP): Remove.
11631         (avr_option_override): Don't process -mmcu= argument here.  Set
11632         avr_current_device using avr_mcu_index.
11633         (avr_file_start): Use avr_current_device->name instead of avr_mcu_name.
11634         * config/avr/avr.opt (mmcu=): Use Enum.
11635         * config/avr/t-avr (avr-devices.o): Update dependencies.
11636         ($(srcdir)/config/avr/avr-tables.opt): New.
11637         * target.def (help): Remove.
11638         * doc/tm.texi.in (TARGET_HELP): Remove.
11639         * doc/tm.texi: Regenerate.
11640         * opts.c: Don't include target.h.
11641         (common_handle_option): Don't call targetm.help.
11642         * system.h (TARGET_HELP): Poison.
11643         * Makefile.in (opts.o): Update dependencies.
11644
11645 2011-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11646
11647         * config/usegld.h: New file.
11648         * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove.
11649         (CPP_SUBTARGET_SPEC): Remove -compat-bsd support.
11650         (LIB_SPEC): Likewise.  Search /lib.
11651         (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support.
11652         (RDYNAMIC_SPEC): Handle GNU ld.
11653         [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC):
11654         Define.
11655         (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld.
11656         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define.
11657         [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine.
11658         (STACK_CHECK_STATIC_BUILTIN): Define.
11659         * config/sol2.opt (compat-bsd): Remove.
11660         * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef.
11661         * config/sol2-bi.h: New file.
11662         * config/sol2-gld.h: Remove.
11663         * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS.
11664         (NO_DBX_BNSYM_ENSYM): Remove.
11665         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
11666         (STACK_CHECK_STATIC_BUILTIN): Remove.
11667         Test USE_GLD instead of TARGET_GNU_LD.
11668         * config/i386/sol2-10.h: Rename to ...
11669         * config/i386/sol2-bi.h .. this.
11670         (SUBTARGET_EXTRA_SPECS): Redefine.
11671         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove.
11672         (MULTILIB_DEFAULTS): Remove.
11673         (DEFAULT_ARCH32_P): Define.
11674         (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove.
11675         (ARCH64_SUBDIR): Define.
11676         Test USE_GLD instead of TARGET_GNU_LD.
11677         (I386_EMULATION): Rename to ...
11678         (ARCH32_EMULATION): ... this.
11679         (X86_64_EMULATION): Rename to ...
11680         (ARCH64_EMULATION): ... this.
11681         (TARGET_LD_EMULATION): Remove.
11682         (LINK_ARCH_SPEC): Remove.
11683         * config/i386/sol2-gas.h: Remove.
11684         * config/i386/t-sol2-10: Rename to ...
11685         * config/i386/t-sol2-64: ... this.
11686         * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine.
11687         (AS_SPARC64_FLAG): Define.
11688         (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine.
11689         (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine
11690         depending on TARGET_CPU_DEFAULT.
11691         (CPP_CPU_SPEC): Redefine.
11692         (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P.
11693         (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine.
11694         (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine.
11695         (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC,
11696         ASM_ARCH_DEFAULT_SPEC): Redefine.
11697         (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
11698         LINK_ARCH_DEFAULT_SPEC.
11699         [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define.
11700         [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine.
11701         (ARCH64_SUBDIR): Define.
11702         (LINK_ARCH64_SPEC): Redefine.
11703         (CC1_SPEC): Redefine.
11704         (OPTION_DEFAULT_SPECS): Redefine.
11705         (MULTILIB_DEFAULTS): Define.
11706         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine.
11707         [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine.
11708         [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef.
11709         (NO_DBX_BNSYM_ENSYM): Remove.
11710         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
11711         (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS.
11712         (TARGET_ASM_NAMED_SECTION): Likewise.
11713         (STACK_CHECK_STATIC_BUILTIN): Remove.
11714         * config/sparc/sol2-bi.h: Remove.
11715         * config/sparc/sol2-gas-bi.h: Remove.
11716         * config/sparc/sol2-gas.h: Remove.
11717         * config/sparc/sol2-gld-bi.h: Remove.
11718         * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move
11719         common parts ...
11720         (*-*-solaris2*): ... here.
11721
11722 2011-06-21  Christian Bruel  <christian.bruel@st.com>
11723
11724         PR other/43564
11725         * ipa-inline.c (can_inline_edge_p): Check
11726         !DECL_DISREGARD_INLINE_LIMITS.
11727
11728 2011-06-21  Christian Bruel  <christian.bruel@st.com>
11729
11730         PR middle-end/49139
11731         * cgraphunit.c (process_function_and_variable_attributes): warn when
11732         always_inline functions that are not inline.
11733         * ipa-inline-transform.c (inline_transform): Always call
11734         optimize_inline.
11735         * tree-inline.c (tree_inlinable_function_p): Use error instead
11736         of sorry.
11737         (expand_call_inline): Likewise.
11738
11739 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
11740
11741         * Makefile.in (dg_target_exps): Set.
11742         (check_gcc_parallelize): Parallelize gcc testing into 10 jobs
11743         instead of 7, try to divide it more evenly.
11744
11745 2011-06-20  Changpeng Fang  <changpeng.fang@amd.com>
11746
11747         PR target/49089
11748         * config/i386/i386.c (avx256_split_unaligned_load): New definition.
11749         (avx256_split_unaligned_store): New definition.
11750         (ix86_option_override_internal): Enable avx256 unaligned load/store
11751         splitting only when avx256_split_unaligned_load/store is set.
11752
11753 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
11754
11755         * regrename.c (scan_rtx_reg): Handle the case where we write to an
11756         open chain in a smaller mode without failing the entire block.
11757
11758 2011-06-21  Alan Modra  <amodra@gmail.com>
11759
11760         * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
11761         CONST high part large-toc address.
11762         (rs6000_tls_referenced_p): Make static.
11763         * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.
11764
11765 2011-06-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
11766
11767         PR target/49385
11768         * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
11769         one of the operands is a register.
11770
11771 2011-06-20  Kai Tietz  <ktietz@redhat.com>
11772
11773         * fold-const.c (fold_binary_loc): Add missing folding for truth-not
11774         operations in combination with binary and.
11775
11776 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
11777
11778         * regrename.c (do_replace): Don't update notes.
11779
11780 2011-06-20  Alan Modra  <amodra@gmail.com>
11781
11782         * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
11783         of toc-relative address in CONST.
11784         (rs6000_delegitimize_address): Recognize changed address.
11785         (rs6000_legitimize_reload_address): Likewise.
11786         (rs6000_emit_move): Don't force these constants to memory.
11787         * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
11788         toc-relative address in CONST.
11789         (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
11790         (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
11791
11792 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
11793
11794         * longlong.h (count_leading_zeros): Use long long builtin for x86-64.
11795         (count_trailing_zeros): Likewise.
11796
11797 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
11798
11799         PR other/49325
11800         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
11801         .init_array can be used with .ctors on targets.
11802         * configure: Regenerated.
11803
11804 2011-06-18  Eric Botcazou  <ebotcazou@adacore.com>
11805
11806         * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
11807         if the element type is volatile.
11808
11809 2011-06-18  Jan Hubicka  <jh@suse.cz>
11810
11811         * lto-symtab.c (lto_varpool_replace_node): Remove code handling
11812         extra name aliases.
11813         (lto_symtab_resolve_can_prevail_p): Likewise.
11814         (lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
11815         * cgraphbuild.c (record_reference): Remove extra body alias code.
11816         (mark_load): Likewise.
11817         (mark_store): Likewise.
11818         * cgraph.h (varpool_node): Remove extra_name filed;
11819         add alias_of and extraname_alias.
11820         (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
11821         (varpool_alias_aliased_node): New inline function.
11822         (varpool_variable_node): New function.
11823         * cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
11824         * ipa-ref.c (ipa_record_reference): Allow aliases on variables.
11825         * lto-cgraph.c (lto_output_varpool_node): Update streaming.
11826         (input_varpool_node): Likewise.
11827         * lto-streamer-out.c (produce_symtab): Remove extra name aliases.
11828         (varpool_externally_visible_p): Remove extra body alias code.
11829         (function_and_variable_visibility): Likewise.
11830         * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
11831         (ipa_pta_execute): Use it.
11832         * varpool.c (varpool_remove_node): Remove extra name alias code.
11833         (varpool_mark_needed_node): Likewise.
11834         (varpool_analyze_pending_decls): Analyze aliases.
11835         (assemble_aliases): New functoin.
11836         (varpool_assemble_decl): Use it.
11837         (varpool_create_variable_alias): New function.
11838         (varpool_extra_name_alias): Rewrite.
11839         (varpool_for_node_and_aliases): New function.
11840
11841 2011-06-18  Jakub Jelinek  <jakub@redhat.com>
11842
11843         PR target/49411
11844         * config/i386/i386.c (ix86_expand_multi_arg_builtins): If
11845         last_arg_constant and last argument doesn't match its predicate,
11846         for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
11847         if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
11848         (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
11849         spelling of error message.
11850         * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
11851         vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
11852         const_0_to_255_operand instead of const_int_operand.
11853
11854         Revert:
11855         2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
11856
11857         * config/i386/sse.md (blendbits): Remove mode attribute.
11858         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
11859         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
11860         Check integer value of operand 3 in insn constraint.
11861
11862 2011-06-17  Hans-Peter Nilsson  <hp@axis.com>
11863
11864         PR rtl-optimization/48542
11865         * reload.c (find_equiv_reg): Stop looking when finding a
11866         setjmp-type call.
11867         * reload1.c (reload_as_needed): Invalidate all reload
11868         registers when crossing a setjmp-type call.
11869
11870 2011-06-16  Jeff Law  <law@redhat.com>
11871
11872         * tree-ssa-threadupdate.c (struct redirection_data): New field
11873         intermediate_edge.
11874         (THREAD_TARGET2): Define.
11875         (redirection_data_eq): Also check that the intermediate edge is equal.
11876         (lookup_redirection_data): Drop useless argument.  Extract the
11877         outgoing_edge and intermediate edge from E.  Callers updated.
11878         (copy_phi_args, update_destination_phis): New functions.
11879         (fix_duplicate_block_edges): Likewise.
11880         (create_edge_and_update_destination_phis): Duplicate all the edges
11881         hung off e->aux.  Use copy_phi_args.
11882         (create_duplicates): Use fix_duplicate_block_edges.
11883         (fixup_template_block): Likewise.
11884         (redirect_edges): If necessary, redirect the joiner block's incoming
11885         edge to the duplicate of the joiner block.
11886         (thread_block): Don't muck up loops when threading through a joiner
11887         block.
11888         (thread_through_loop_header): Handle threading through a joiner block.
11889         (mark_threaded_blocks, register_jump_thread): Likewise.
11890         * tree-flow.h (register_jump_thread): Add new argument.  Callers
11891         updated.
11892         * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
11893         (thread_across_edge): Handle threading through a joiner block.
11894
11895 2011-06-16  Martin Jambor  <mjambor@suse.cz>
11896
11897         PR tree-optimization/49343
11898         * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
11899         calculate offset, provide 2nd operand for the new COMPONENT_REF.
11900
11901 2011-06-16  Iain Sandoe  <iains@gcc.gnu.org>
11902
11903         * config/darwin-protos.h (machopic_select_rtx_section): Move to
11904         inside RTX_CODE ifdef.
11905
11906 2011-06-16  Tom de Vries  <tom@codesourcery.com>
11907
11908         PR target/45098
11909         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
11910         Disallow NULL pointer for pointer arithmetic.
11911
11912 2011-06-16  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
11913
11914         PR target/49398
11915         Revert.
11916         2011-06-10  Wei Guozhi  <carrot@google.com>
11917
11918         PR target/45335
11919         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
11920         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
11921         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
11922         related peephole2.
11923         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
11924         related peephole2.
11925         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
11926         (arm_legitimate_ldrd_p): New prototype.
11927         (arm_output_ldrd): New prototype.
11928         * config/arm/arm.c (arm_check_ldrd_operands): New function.
11929         (arm_legitimate_ldrd_p): New function.
11930         (arm_output_ldrd): New function.
11931
11932 2011-06-16  Joern Rennecke  <joern.rennecke@embecosm.com>
11933
11934         PR middle-end/46500
11935         * doc/tm.texi.in: Update Copyright date.
11936         * doc/tm.texi: Regenerate.
11937         * targhooks.c (default_setup_incoming_varargs): Replace
11938         CUMULATIVE_ARGS* argument type with cumulative_args_t.
11939         (default_pretend_outgoing_varargs_named): Likewise.
11940         (hook_pass_by_reference_must_pass_in_stack): Likewise.
11941         (hook_callee_copies_named): Likewise.
11942         (default_function_arg_advance): Likewise.
11943         (default_function_arg): Likewise.
11944         (default_function_incoming_arg): Likewise.
11945         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
11946         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
11947         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
11948         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
11949         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
11950         * targhooks.h (default_setup_incoming_varargs): Likewise.
11951         (default_pretend_outgoing_varargs_named): Likewise.
11952         (hook_pass_by_reference_must_pass_in_stack): Likewise.
11953         (hook_callee_copies_named): Likewise.
11954         (default_function_arg_advance): Likewise.
11955         (default_function_arg): Likewise.
11956         (default_function_incoming_arg): Likewise.
11957         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
11958         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
11959         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
11960         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
11961         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
11962         * target.def (pass_by_reference): Likewise.
11963         (setup_incoming_varargs, strict_argument_naming): Likewise.
11964         (pretend_outgoing_varargs_named, callee_copies): Likewise.
11965         (arg_partial_bytes, function_arg_advance, function_arg): Likewise.
11966         (function_incoming_arg): Likewise.
11967         * target.h: Don't include "tm.h" .
11968         (cumulative_args_t): New typedef.
11969         [GCC_TM_H] (get_cumulative_args): New static inline function.
11970         [GCC_TM_H] (pack_cumulative_args): Likewise.
11971         * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
11972         argument type with cumulative_args_t.
11973         (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
11974         (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
11975         * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
11976         (frv_arg_partial_bytes, frv_function_arg): Likewise.
11977         (frv_function_incoming_arg, frv_function_arg_advance): Likewise.
11978         (frv_function_arg_1): Likewise.
11979         * config/s390/s390.c (s390_pass_by_reference): Likewise.
11980         (s390_function_arg_advance, s390_function_arg): Likewise.
11981         * config/m32c/m32c.c (m32c_function_arg): Likewise.
11982         (m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
11983         (m32c_strict_argument_naming): Likewise.
11984         * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
11985         (spu_function_arg_advance): Likewise.
11986         (spu_setup_incoming_varargs): Likewise.  Make static.
11987         * config/spu/spu-protos.h (spu_setup_incoming_varargs):
11988         Remove prototype.
11989         * config/sparc/sparc.c (sparc_strict_argument_naming): Replace
11990         CUMULATIVE_ARGS* argument type with cumulative_args_t.
11991         (sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
11992         (sparc_function_arg, sparc_function_incoming_arg): Likewise.
11993         (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
11994         * config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
11995         (mep_pass_by_reference, mep_function_arg): Likewise.
11996         (mep_function_arg_advance): Likewise.
11997         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
11998         (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
11999         (m32r_function_arg, m32r_function_arg_advance): Likewise.
12000         * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
12001         * config/i386/i386.c (ix86_function_arg_advance): Likewise.
12002         (ix86_function_arg, ix86_pass_by_reference): Likewise.
12003         (ix86_setup_incoming_varargs): Likewise.
12004         * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
12005         (sh_strict_argument_naming): Likewise.
12006         (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
12007         (sh_callee_copies, sh_arg_partial_bytes): Likewise.
12008         (sh_function_arg_advance, sh_function_arg): Likewise.
12009         * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
12010         (pdp11_function_arg_advance): Likewise.
12011         * config/microblaze/microblaze.c (microblaze_function_arg_advance):
12012         Likewise.
12013         (microblaze_function_arg, function_arg_partial_bytes): Likewise.
12014         * config/avr/avr.c (avr_function_arg): Likewise.
12015         (avr_function_arg_advance): Likewise.
12016         * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
12017         (xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
12018         (xtensa_function_arg_1): Likewise.
12019         * config/stormy16/stormy16.c (xstormy16_function_arg_advance):
12020         Likewise.
12021         (xstormy16_function_arg): Likewise.
12022         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
12023         (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
12024         (fr30_function_arg_advance): Likewise.
12025         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
12026         (lm32_function_arg, lm32_function_arg_advance): Likewise.
12027         * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
12028         (moxie_function_arg, moxie_function_arg_advance): Likewise.
12029         (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
12030         * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
12031         (cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
12032         (cris_function_arg, cris_function_incoming_arg): Likewise.
12033         (cris_function_arg_advance, cris_function_arg_1): Likewise.
12034         * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
12035         (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
12036         (iq2000_function_arg, iq2000_function_arg_advance): Likewise.
12037         * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
12038         (mn10300_function_arg, mn10300_function_arg_advance): Likewise.
12039         (mn10300_arg_partial_bytes): Likewise.
12040         * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
12041         (ia64_arg_partial_bytes, ia64_function_arg): Likewise.
12042         (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
12043         (ia64_function_arg_1): Likewise.
12044         * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
12045         (m68k_function_arg): Likewise.
12046         * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
12047         (rs6000_function_arg, setup_incoming_varargs): Likewise.
12048         (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
12049         * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
12050         (picochip_function_arg, picochip_incoming_function_arg): Likewise.
12051         (picochip_arg_advance): Likewise.
12052         * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
12053         (mcore_arg_partial_bytes, mcore_function_arg): Likewise.
12054         (mcore_function_arg_advance): Likewise.
12055         * config/score/score.c (score_pass_by_reference): Likewise.
12056         (score_function_arg_advance): Likewise.
12057         (score_arg_partial_bytes): Likewise.  Make static.
12058         * config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
12059         * config/arm/arm.c (arm_arg_partial_bytes): Replace
12060         CUMULATIVE_ARGS* argument type with cumulative_args_t.
12061         (arm_function_arg, arm_function_arg_advance): Likewise.
12062         (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
12063         * config/pa/pa.c (pa_pass_by_reference): Likewise.
12064         (pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
12065         (pa_function_arg): Likewise.
12066         * config/mips/mips.c (mips_strict_argument_naming): Likewise.
12067         (mips_function_arg, mips_function_arg_advance): Likewise.
12068         (mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
12069         (mips_callee_copies, mips_setup_incoming_varargs): Likewise.
12070         * config/vax/vax.c (vax_function_arg): Likewise.
12071         (vax_function_arg_advance): Likewise.
12072         * config/h8300/h8300.c (h8300_function_arg): Likewise.
12073         (h8300_function_arg_advance): Likewise.
12074         * config/v850/v850.c (v850_pass_by_reference): Likewise.
12075         (v850_strict_argument_naming, v850_function_arg): Likewise.
12076         (v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
12077         (v850_setup_incoming_varargs): Likewise.
12078         * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
12079         (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
12080         (mmix_function_arg, mmix_pass_by_reference): Likewise.
12081         (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
12082         with const void *.
12083         * config/bfin/bfin.c (setup_incoming_varargs): Replace
12084         CUMULATIVE_ARGS* argument type with cumulative_args_t.
12085         (bfin_function_arg_advance, bfin_function_arg): Likewise.
12086         (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
12087         * calls.c (emit_call_1): Change type of args_so_far to
12088         cumulative_args_t.  Changed all callers.
12089         (initialize_argument_information): Likewise.
12090         (expand_call, emit_library_call_value_1): Use pack_cumulative_args.
12091         * dse.c (get_call_args): Likewise.
12092         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
12093         * function.c (pass_by_reference, reference_callee_copied): Likewise.
12094         (struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
12095         New member args_so_far_v.  Changed all users.
12096         * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
12097         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
12098         * config/mips/mips.c (mips_output_args_xfer): Likewise.
12099         * config/s390/s390.c (s390_call_saved_register_used): Likewise.
12100         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
12101         * config/microblaze/microblaze.c (microblaze_expand_prologue):
12102         Likewise.
12103         * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
12104         m32r_pass_by_reference.
12105
12106 2011-06-16  Ira Rosen  <ira.rosen@linaro.org>
12107
12108         * tree-vectorizer.h (vect_recog_func_ptr): Change the first
12109         argument to be a VEC of statements.
12110         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove the
12111         assert that pattern statements have to have their vector type set.
12112         * tree-vect-patterns.c (vect_recog_widen_sum_pattern):
12113         Change the first argument to be a VEC of statements.  Update
12114         documentation.
12115         (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
12116         (vect_handle_widen_mult_by_const): New function.
12117         (vect_recog_widen_mult_pattern):  Change the first argument to be a
12118         VEC of statements.  Update documentation.  Check that the constant is
12119         INTEGER_CST.  Support multiplication by a constant that fits an
12120         intermediate type - call vect_handle_widen_mult_by_const.
12121         (vect_pattern_recog_1): Update vect_recog_func_ptr and its
12122         call.  Handle additional pattern statements if necessary.
12123
12124 2011-06-16  Nick Clifton  <nickc@redhat.com>
12125
12126         PR target/49427
12127         * config.gcc: Set cpu_type to v850 for any V850 architecture.
12128         (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
12129         md_file, extra_modes, out_file and extra_options are these are all
12130         deduced from cpu_type.
12131
12132 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
12133
12134         * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
12135         truncation mask to 63.
12136
12137 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
12138
12139         PR target/49313
12140         PR target/29524
12141         * longlong.h: Add AVR support:
12142         (count_leading_zeros): New macro.
12143         (count_trailing_zeros): New macro.
12144         (COUNT_LEADING_ZEROS_0): New macro.
12145         * config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2,
12146         _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2,
12147         _parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
12148         _bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3.
12149         (LIB2FUNCS_EXCLUDE): Add _clz.
12150         * config/avr/libgcc.S (XCALL): Move up in file.
12151         (XJMP): New C Macro.
12152         (DEFUN): New asm macro.
12153         (ENDF): New asm macro.
12154         (__ffssi2): New function.
12155         (__ffshi2): New function.
12156         (__loop_ffsqi2): New function.
12157         (__ctzsi2): New function.
12158         (__ctzhi2): New function.
12159         (__clzdi2): New function.
12160         (__clzsi2): New function.
12161         (__clzhi2): New function.
12162         (__paritydi2): New function.
12163         (__paritysi2): New function.
12164         (__parityhi2): New function.
12165         (__parityqi2): New function.
12166         (__popcounthi2): New function.
12167         (__popcountsi2): New function.
12168         (__popcountdi2): New function.
12169         (__popcountqi2): New function.
12170         (__bswapsi2): New function.
12171         (__bswapdi2): New function.
12172         (__ashldi3): New function.
12173         (__ashrdi3): New function.
12174         (__lshrdi3): New function.
12175         Fix suspicous lines.
12176
12177 2011-06-16  Richard Guenther  <rguenther@suse.de>
12178
12179         * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
12180         the same as x != 0.
12181         * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0
12182         to (bool) X & 1.
12183         * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
12184         equality compares against zero for the lower bit.
12185
12186 2011-06-16  Jakub Jelinek  <jakub@redhat.com>
12187
12188         PR tree-optimization/49419
12189         * tree-vrp.c (execute_vrp): Call init_range_assertions
12190         before estimate_numbers_of_iterations, call
12191         free_number_of_iterations_estimates before calling
12192         remove_range_assertions.
12193
12194 2011-06-16  Revital Eres  <revital.eres@linaro.org>
12195
12196         * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
12197         (struct partial_schedule): Add rows_length field.
12198         (verify_partial_schedule): Check rows_length.
12199         (ps_insert_empty_row): Handle rows_length.
12200         (create_partial_schedule): Likewise.
12201         (free_partial_schedule): Likewise.
12202         (reset_partial_schedule): Likewise.
12203         (create_ps_insn): Remove rest_count argument.
12204         (remove_node_from_ps): Update rows_length.
12205         (add_node_to_ps): Update rows_length and call create_ps_insn
12206         without passing row_rest_count.
12207         (rotate_partial_schedule): Update rows_length.
12208
12209 2011-06-16  Revital Eres  <revital.eres@linaro.org>
12210
12211         * ddg.c (add_intra_loop_mem_dep): New function.
12212         (build_intra_loop_deps): Call it.
12213
12214 2011-06-13  Jeff Law  <law@redhat.com>
12215
12216         * df-problems.c (df_lr_local_compute): Manually CSE
12217         PIC_OFFSET_TABLE_REGNUM.
12218         * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
12219         (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
12220
12221 2011-06-13  Jan Hubicka  <jh@suse.cz>
12222
12223         * cgraphunit.c (handle_alias_pairs): New function.
12224         (cgraph_finalize_compilation_unit): Use it.
12225         * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
12226         as externally visible.
12227
12228 2011-06-15  Richard Guenther  <rguenther@suse.de>
12229
12230         * expr.c (expand_expr_real_2): Reduce all integral types to
12231         bitfield precision.
12232         (expand_expr_real_1): Likewise.
12233
12234 2011-06-15  Martin Jambor  <mjambor@suse.cz>
12235
12236         PR tree-optimization/48613
12237         * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
12238         ipa_node_params_vector is NULL.
12239
12240 2011-06-15  Jakub Jelinek  <jakub@redhat.com>
12241
12242         PR debug/49382
12243         * dwarf2out.c (dw_loc_list_node): Add force field.
12244         (add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming
12245         location in the list, even if it is modified before first real insn.
12246         (output_loc_list): Emit empty ranges with force flag set.
12247         (dw_loc_list): If first range of a PARM_DECL is empty, set force flag.
12248
12249 2011-06-15  Alexander Monakov  <amonakov@ispras.ru>
12250
12251         PR target/49349
12252         * sel-sched.c (find_place_for_bookkeeping): Add new parameter
12253         (fence_to_rewind).  Use it to notice when bookkeeping will be placed
12254         above a fence.  Update comments.
12255         (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
12256         placed just above it.  Do not allow NULL place_to_insert.
12257
12258 2011-06-15  Ira Rosen  <ira.rosen@linaro.org>
12259
12260         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
12261         (slpeel_tree_peel_loop_to_edge): Don't call
12262         remove_dead_stmts_from_loop.
12263         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
12264         remove irrelevant pattern statements.  For irrelevant statements
12265         check if it is the last statement of a detected pattern, use
12266         corresponding pattern statement instead.
12267         (destroy_loop_vec_info): No need to remove pattern statements,
12268         only free stmt_vec_info.
12269         (vect_transform_loop): For irrelevant statements check if it is
12270         the last statement of a detected pattern, use corresponding
12271         pattern statement instead.
12272         * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
12273         pattern statements.  Set basic block for the new statement.
12274         (vect_pattern_recog): Update documentation.
12275         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
12276         operands of pattern statements.
12277         (vectorizable_call): Fix printing.  In case of a pattern statement
12278         use the lhs of the original statement when creating a dummy
12279         statement to replace the original call.
12280         (vect_analyze_stmt): For irrelevant statements check if it is
12281         the last statement of a detected pattern, use corresponding
12282         pattern statement instead.
12283         * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
12284         statements use gsi of the original statement.
12285
12286 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
12287
12288         * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
12289         common/common-target-def.h.
12290         * target.def (default_target_flags, handle_option,
12291         supports_split_stack, optimization_table, init_struct,
12292         except_unwind_info, unwind_tables_default, have_named_sections):
12293         Move to common/common-target.def.
12294         * target.h (enum opt_levels, struct default_options): Move to
12295         common/common-target.h.
12296         * targhooks.c (default_except_unwind_info,
12297         dwarf2_except_unwind_info, sjlj_except_unwind_info,
12298         default_target_handle_option, empty_optimization_table): Move to
12299         common/common-targhooks.c.
12300         * targhooks.h (default_except_unwind_info,
12301         dwarf2_except_unwind_info, sjlj_except_unwind_info,
12302         default_target_handle_option, empty_optimization_table): Move to
12303         common/common-targhooks.h.
12304         * common/common-target-def.h: Include common/common-targhooks.h.
12305         (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
12306         defined.
12307         * common/common-target.def (handle_option, option_init_struct,
12308         option_optimization_table, default_target_flags,
12309         except_unwind_info, supports_split_stack, unwind_tables_default,
12310         have_named_sections): Move from target.def.
12311         (HOOK_PREFIX): Undefine at end of file.
12312         * common/common-target.h: Include input.h.
12313         (enum opt_levels, struct default_options): Move from target.h.
12314         * common/common-targhooks.c, common/common-targhooks.h: New.
12315         * config.gcc (target_has_targetm_common): Default to yes.
12316         (moxie*): Set target_has_targetm_common=no.
12317         (hppa*-*-*): Don't set target_has_targetm_common=yes.
12318         * doc/tm.texi: Regenerate.
12319         * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
12320         (C_TARGET_DEF_H): Add common/common-targhooks.h.
12321         (GCC_OBJS): Remove vec.o.
12322         (OBJS): Remove hooks.o and vec.o.
12323         (OBJS-libcommon-target): Add vec.o, hooks.o and
12324         common/common-targhooks.o.
12325         (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
12326         tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
12327         expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
12328         cfglayout.o, $(out_object_file), $(common_out_object_file)):
12329         Update dependencies.
12330         (common/common-targhooks.o): New.
12331         * common/config/default-common.c: Include tm.h.  Add FIXME comment.
12332         * common/config/pa/pa-common.c: Include more headers.  Take
12333         copyright dates from pa.c.
12334         (pa_option_optimization_table, pa_handle_option,
12335         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
12336         TARGET_HANDLE_OPTION): Move from pa.c.
12337         * common/config/alpha/alpha-common.c,
12338         common/config/arm/arm-common.c, common/config/avr/avr-common.c,
12339         common/config/bfin/bfin-common.c,
12340         common/config/cris/cris-common.c,
12341         common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
12342         common/config/h8300/h8300-common.c,
12343         common/config/i386/i386-common.c,
12344         common/config/ia64/ia64-common.c,
12345         common/config/iq2000/iq2000-common.c,
12346         common/config/lm32/lm32-common.c,
12347         common/config/m32c/m32c-common.c,
12348         common/config/m32r/m32r-common.c,
12349         common/config/m68k/m68k-common.c,
12350         common/config/mcore/mcore-common.c,
12351         common/config/mep/mep-common.c,
12352         common/config/microblaze/microblaze-common.c,
12353         common/config/mips/mips-common.c,
12354         common/config/mmix/mmix-common.c,
12355         common/config/mn10300/mn10300-common.c,
12356         common/config/pdp11/pdp11-common.c,
12357         common/config/picochip/picochip-common.c,
12358         common/config/rs6000/rs6000-common.c,
12359         common/config/rx/rx-common.c, common/config/s390/s390-common.c,
12360         common/config/score/score-common.c, common/config/sh/sh-common.c,
12361         common/config/sparc/sparc-common.c,
12362         common/config/spu/spu-common.c, common/config/v850/v850-common.c,
12363         common/config/vax/vax-common.c,
12364         common/config/xstormy16/xstormy16-common.c,
12365         common/config/xtensa/xtensa-common.c: New.
12366         * config/alpha/alpha.c: Include common/common-target.h.
12367         (alpha_option_optimization_table, alpha_handle_option,
12368         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
12369         TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
12370         * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
12371         * config/arm/arm.c (arm_option_optimization_table,
12372         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
12373         TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
12374         arm-common.c.
12375         * config/avr/avr.c (avr_option_optimization_table,
12376         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
12377         to avr-common.c.
12378         * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
12379         (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
12380         TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
12381         * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
12382         * config/cris/cris.c (cris_option_optimization_table,
12383         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
12384         TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
12385         cris-common.c.
12386         * config/fr30/fr30.c (fr30_option_optimization_table,
12387         TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
12388         to fr30-common.c.
12389         * config/frv/frv.c (frv_option_optimization_table,
12390         MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
12391         TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
12392         * config/h8300/h8300.c (h8300_option_optimization_table,
12393         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
12394         TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
12395         * config/i386/i386-protos.h (ix86_handle_option): Declare.
12396         * config/i386/i386.c: Include common/common-target.h.
12397         (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
12398         OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
12399         OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
12400         OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
12401         OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
12402         OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
12403         OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
12404         OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
12405         OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
12406         OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
12407         OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
12408         OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
12409         OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
12410         OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
12411         OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
12412         OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
12413         OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
12414         OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
12415         OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
12416         OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
12417         OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
12418         OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
12419         OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
12420         OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
12421         OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
12422         OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
12423         OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
12424         OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
12425         OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
12426         ix86_option_optimization_table, ix86_option_init_struct,
12427         ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
12428         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
12429         TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
12430         i386-common.c.
12431         * config/i386/t-i386 (i386.o): Update dependencies.
12432         * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
12433         * config/ia64/ia64.c (ia64_option_optimization_table,
12434         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
12435         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
12436         ia64_handle_option): Move to ia64-common.c.
12437         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
12438         TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
12439         * config/lm32/lm32.c (lm32_option_optimization_table,
12440         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
12441         to lm32-common.c.
12442         * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
12443         m32c-common.c.
12444         * config/m32r/m32r.c (m32r_option_optimization_table,
12445         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
12446         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
12447         m32r_handle_option): Move to m32r-common.c.
12448         (m32r_memory_move_cost): Remove comment referring to
12449         TARGET_HANDLE_OPTION.
12450         * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
12451         Move to m68k-common.c.
12452         * config/mcore/mcore.c (mcore_option_optimization_table,
12453         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
12454         TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
12455         * config/mep/mep.c (mep_option_optimization_table,
12456         mep_handle_option, TARGET_HANDLE_OPTION,
12457         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
12458         Move to mep-common.c.
12459         * config/microblaze/microblaze.c
12460         (microblaze_option_optimization_table,
12461         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
12462         TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
12463         * config/mips/mips.c (mips_handle_option,
12464         mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
12465         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
12466         mips-common.c.
12467         * config/mmix/mmix.c (mmix_option_optimization_table,
12468         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
12469         Move to mmix-common.c.
12470         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
12471         mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
12472         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
12473         TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
12474         * config/pa/pa.c: Include common/common-target.h.
12475         (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
12476         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
12477         pa_handle_option): Move to pa-common.c.
12478         (pa_option_override): Use targetm_common.except_unwind_info.
12479         (pa_asm_output_mi_thunk, pa_function_section): Use
12480         targetm_common.have_named_sections.
12481         * config/pdp11/pdp11.c (pdp11_option_optimization_table,
12482         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
12483         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
12484         pdp11_handle_option, pdp11_option_init_struct): Move to
12485         pdp11-common.c.
12486         * config/picochip/picochip.c (picochip_option_optimization_table,
12487         TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
12488         TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
12489         * config/rs6000/rs6000.c: Include common/common-target.h.
12490         (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
12491         TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
12492         TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
12493         rs6000_handle_option): Move to rs6000-common.c.
12494         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
12495         * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
12496         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
12497         TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
12498         * config/s390/s390.c (processor_flags_table,
12499         s390_option_optimization_table, s390_option_init_struct,
12500         s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
12501         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
12502         TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
12503         * config/s390/s390.h (processor_flags_table): Declare.
12504         * config/score/score.c (score_option_optimization_table,
12505         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
12506         TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
12507         score_handle_option): Move to score-common.c.
12508         * config/sh/sh.c (sh_option_optimization_table,
12509         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
12510         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
12511         sh_handle_option, sh_option_init_struct): Move to sh-common.c.
12512         * config/sparc/sparc.c: Include common/common-target.h.
12513         (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
12514         TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
12515         * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
12516         TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
12517         spu_option_init_struct): Move to spu-common.c.
12518         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
12519         TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
12520         * config/v850/v850.c (small_memory_physical_max,
12521         v850_handle_memory_optionn v850_handle_option,
12522         v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
12523         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
12524         v850-common.c.
12525         * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c.
12526         * config/xtensa/xtensa.c (xtensa_option_optimization_table,
12527         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
12528         Move to xtensa-common.c.
12529         * cfglayout.c: Include common/common-target.h.
12530         (fixup_reorder_chain): Use targetm_common.have_named_sections.
12531         * cfgrtl.c: Include common/common-target.h.
12532         (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
12533         targetm_common.have_named_sections.
12534         * dbxout.c: Include common/common-target.h.
12535         (dbxout_function_end): Use targetm_common.have_named_sections.
12536         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
12537         targetm_common.except_unwind_info.
12538         * dwarf2out.c: Include common/common-target.h.
12539         (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
12540         dwarf2out_begin_prologue, dwarf2out_frame_init,
12541         dwarf2out_frame_finish, dwarf2out_assembly_start): Use
12542         targetm_common.except_unwind_info.
12543         * except.c: Include common/common-target.h.
12544         (init_eh, finish_eh_generation,
12545         output_one_function_exception_table): Use
12546         targetm_common.except_unwind_info.
12547         (switch_to_exception_section): Use targetm_common.have_named_sections.
12548         * explow.c: Include common/common-target.h.
12549         * expr.c: Include common/common-target.h.
12550         (build_personality_function): Use targetm_common.except_unwind_info.
12551         * function.c: Include common/common-target.h.
12552         (expand_function_end): Use targetm_common.except_unwind_info.
12553         * haifa-sched.c: Include common/common-target.h.
12554         (sched_create_recovery_edges): Use targetm_common.have_named_sections.
12555         * lto-opts.c: Include common/common-target.h instead of target.h.
12556         (lto_reissue_options): Use targetm_common.handle_option.
12557         * opts.c: Include common/common-target.h.
12558         (target_handle_option): Use targetm_common.handle_option.
12559         (init_options_struct): Update comment referring to
12560         targetm.target_option.optimization.  Use
12561         targetm_common.default_target_flags,
12562         targetm_common.unwind_tables_default and
12563         targetm_common.option_init_struct.
12564         (default_options_optimization): Use
12565         targetm_common.option_optimization_table.
12566         (finish_options): Use targetm_common.except_unwind_info,
12567         targetm_common.unwind_tables_default,
12568         targetm_common.have_named_sections and
12569         targetm_common.supports_split_stack.
12570         * toplev.c: Include common/common-target.h.
12571         (process_options): Use targetm_common.have_named_sections.
12572         * tree-tailcall.c: Include common/common-target.h.
12573         (suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info.
12574         * tree.c: Include common/common-target.h.
12575         (build_common_builtin_nodes): Use targetm_common.except_unwind_info.
12576         * varasm.c: Include common/common-target.h.
12577         (resolve_unique_section, hot_function_section,
12578         default_function_section): Use targetm_common.have_named_sections.
12579
12580 2011-06-14  Easwaran Raman  <eraman@google.com>
12581
12582         PR rtl-optimization/44194
12583         * dse.c: Include tree-flow.h
12584         (insn_info): Add new field non_frame_wild_read.
12585         (group_info): Add new fields escaped_n and escaped_p.
12586         (kill_on_calls): New variable.
12587         (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
12588         (dse_step0): Initialize kill_on_calls.
12589         (can_escape): New function.
12590         (set_usage_bits): Add additional parameter; record information
12591         about escaped locations.
12592         (record_store): Pass EXPR corresponding to MEM to set_usage_bits.
12593         (dse_step2_nospill): Set kill_on_calls based on
12594         group->escaped_n and group->escaped_n.
12595         (add_wild_read): Refactor into...
12596         (reset_active_stores): ... New function, and
12597         (free_read_records): ... New function.
12598         (add_non_frame_wild_read): New function.
12599         (scan_insn): Call add_non_frame_wild_read on non-const calls.
12600         (scan_reads_nospill): Handle instructions with non_frame_wild_read.
12601         (dse_step5_nospill): Call scan_reads_nospill for instructions
12602         marked as non_frame_wild_read.
12603         (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps.
12604
12605 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
12606
12607         * common/common-target-def.h, common/common-target.def,
12608         common/common-target.h, common/config/default-common.c,
12609         common/config/pa/pa-common.c: New files.
12610         * Makefile.in (common_out_file, common_out_object_file,
12611         COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
12612         (OBJS-libcommon-target): Include $(common_out_object_file).
12613         (prefix.o): Update dependencies.
12614         ($(common_out_object_file), common/common-target-hooks-def.h,
12615         s-common-target-hooks-def-h): New.
12616         (s-tm-texi): Also check timestamp on common-target.def.
12617         (build/genhooks.o): Update dependencies.
12618         * config.gcc (common_out_file, target_has_targetm_common): Define.
12619         * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
12620         TARGET_ALWAYS_STRIP_DOTDOT.
12621         * configure.ac (common_out_object_file): Define.
12622         (common_out_file, common_out_object_file): Substitute.
12623         (common): Create directory.
12624         * configure: Regenerate.
12625         * doc/tm.texi.in (targetm_common): Document.
12626         (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
12627         * doc/tm.texi: Regenerate.
12628         * genhooks.c (hook_array): Also include common/common-target.def.
12629         * prefix.c (tm.h): Don't include.
12630         (common/common-target.h): Include.
12631         (ALWAYS_STRIP_DOTDOT): Don't define.
12632         (update_path): Use targetm_common.always_strip_dotdot instead of
12633         ALWAYS_STRIP_DOTDOT.
12634         * system.h (ALWAYS_STRIP_DOTDOT): Poison.
12635
12636 2011-06-14  David Li  <davidxl@google.com>
12637
12638         * passes.c (execute_function_todo): Remove TODO_dump_func.
12639         (execute_one_pass): Remove TODO_dump_func.
12640         (execute_function_dump): New function.
12641         * tree-vrp.c: Remove TODO_dump_func.
12642         * regrename.c: Remove TODO_dump_func.
12643         * fwprop.c: Remove TODO_dump_func.
12644         * tree-into-ssa.c: Remove TODO_dump_func.
12645         * tree-complex.c: Remove TODO_dump_func.
12646         * tracer.c: Remove TODO_dump_func.
12647         * tree-loop-distribution.c: Remove TODO_dump_func.
12648         * postreload-gcse.c: Remove TODO_dump_func.
12649         * postreload.c: Remove TODO_dump_func.
12650         * tree-ssa-loop-ch.c: Remove TODO_dump_func.
12651         * tree-tailcall.c: Remove TODO_dump_func.
12652         * ipa-cp.c: Remove TODO_dump_func.
12653         * final.c: Remove TODO_dump_func.
12654         * tree-emutls.c: Remove TODO_dump_func.
12655         * omp-low.c: Remove TODO_dump_func.
12656         * tree-ssa-dse.c: Remove TODO_dump_func.
12657         * tree-ssa-uncprop.c: Remove TODO_dump_func.
12658         * auto-inc-dec.c: Remove TODO_dump_func.
12659         * reorg.c: Remove TODO_dump_func.
12660         * tree-ssa-copyrename.c: Remove TODO_dump_func.
12661         * tree-ssa-ccp.c: Remove TODO_dump_func.
12662         * compare-elim.c: Remove TODO_dump_func.
12663         * mode-switching.c: Remove TODO_dump_func.
12664         * modulo-sched.c: Remove TODO_dump_func.
12665         * tree-call-cdce.c: Remove TODO_dump_func.
12666         * cse.c: Remove TODO_dump_func.
12667         * web.c: Remove TODO_dump_func.
12668         * tree-stdarg.c: Remove TODO_dump_func.
12669         * lto-streamer-out.c: Remove TODO_dump_func.
12670         * tree-ssa-math-opts.c: Remove TODO_dump_func.
12671         * tree-ssa-dom.c: Remove TODO_dump_func.
12672         * tree-nrv.c: Remove TODO_dump_func.
12673         * loop-init.c: Remove TODO_dump_func.
12674         * gimple-low.c: Remove TODO_dump_func.
12675         * ipa-inline.c: Remove TODO_dump_func.
12676         * tree-ssa-sink.c: Remove TODO_dump_func.
12677         * jump.c: Remove TODO_dump_func.
12678         * ifcvt.c: Remove TODO_dump_func.
12679         * tree-ssa-loop.c: Remove TODO_dump_func.
12680         * recog.c: Remove TODO_dump_func.
12681         * dse.c: Remove TODO_dump_func.
12682         * tree-ssa-ifcombine.c: Remove TODO_dump_func.
12683         * matrix-reorg.c: Remove TODO_dump_func.
12684         * tree-eh.c: Remove TODO_dump_func.
12685         * regmove.c: Remove TODO_dump_func.
12686         * function.c: Remove TODO_dump_func.
12687         * tree-vectorizer.c: Remove TODO_dump_func.
12688         * ipa-split.c: Remove TODO_dump_func.
12689         * gcse.c: Remove TODO_dump_func.
12690         * tree-if-conv.c: Remove TODO_dump_func.
12691         * init-regs.c: Remove TODO_dump_func.
12692         * tree-ssa-phiopt.c: Remove TODO_dump_func.
12693         * implicit-zee.c: Remove TODO_dump_func.
12694         * lower-subreg.c: Remove TODO_dump_func.
12695         * bt-load.c: Remove TODO_dump_func.
12696         * tree-dfa.c: Remove TODO_dump_func.
12697         * except.c: Remove TODO_dump_func.
12698         * emit-rtl.c: Remove TODO_dump_func.
12699         * store-motion.c: Remove TODO_dump_func.
12700         * cfgexpand.c: Remove TODO_dump_func.
12701         * tree-cfgcleanup.c: Remove TODO_dump_func.
12702         * cfgcleanup.c: Remove TODO_dump_func.
12703         * tree-ssa-pre.c: Remove TODO_dump_func.
12704         * tree-sra.c: Remove TODO_dump_func.
12705         * tree-mudflap.c: Remove TODO_dump_func.
12706         * tree-ssa-copy.c: Remove TODO_dump_func.
12707         * cfglayout.c: Remove TODO_dump_func.
12708         * tree-ssa-forwprop.c: Remove TODO_dump_func.
12709         * tree-ssa-dce.c: Remove TODO_dump_func.
12710         * ira.c: Remove TODO_dump_func.
12711         * tree-ssa.c: Remove TODO_dump_func.
12712         * integrate.c: Remove TODO_dump_func.
12713         * tree-optimize.c: Remove TODO_dump_func.
12714         * tree-ssa-phiprop.c: Remove TODO_dump_func.
12715         * tree-object-size.c: Remove TODO_dump_func.
12716         * combine.c: Remove TODO_dump_func.
12717         * bb-reorder.c: Remove TODO_dump_func.
12718         * cprop.c: Remove TODO_dump_func.
12719         * var-tracking.c: Remove TODO_dump_func.
12720         * tree-profile.c: Remove TODO_dump_func.
12721         * tree-vect-generic.c: Remove TODO_dump_func.
12722         * reg-stack.c: Remove TODO_dump_func.
12723         * sched-rgn.c: Remove TODO_dump_func.
12724         * tree-ssa-structalias.c: Remove TODO_dump_func.
12725         * tree-switch-conversion.c: Remove TODO_dump_func.
12726         * tree-cfg.c: Remove TODO_dump_func.
12727         * tree-ssa-reassoc.c: Remove TODO_dump_func.
12728         * combine-stack-adj.c: Remove TODO_dump_func.
12729         * dce.c: Remove TODO_dump_func.
12730         * tree-ssanames.c: Remove TODO_dump_func.
12731         * regcprop.c: Remove TODO_dump_func.
12732
12733 2011-06-14  H.J. Lu  <hongjiu.lu@intel.com>
12734
12735         PR middle-end/47364
12736         * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
12737         and properly handle result not in Pmode.
12738
12739 2011-06-14  Robert Millan  <rmh@gnu.org>
12740
12741         * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
12742         * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
12743         `config/linux.h'.
12744
12745         * config/i386/kfreebsd-gnu64.h: New file.
12746         * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
12747         with `i386/kfreebsd-gnu64.h'.
12748
12749         * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
12750         (GNU_USER_LINK_EMULATION64): New macros.
12751         * config/i386/gnu-user64.h (LINK_SPEC): Rely on
12752         `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
12753         of hardcoding `elf_i386' and `elf_x86_64'.
12754
12755 2011-06-14  Nick Clifton  <nickc@redhat.com>
12756
12757         PR target/49403
12758         * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
12759
12760         PR target/49402
12761         * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
12762
12763 2011-06-14  Jakub Jelinek  <jakub@redhat.com>
12764
12765         PR fortran/49103
12766         * tree.h (DECL_NONSHAREABLE): Define.
12767         (struct tree_decl_common): Change decl_common_unused to
12768         decl_nonshareable_flag.
12769         * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
12770         Ignore vars with DECL_NONSHAREABLE bit set.
12771         * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
12772         on stores to automatic aggregate vars.
12773
12774         PR rtl-optimization/49390
12775         Revert:
12776         2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
12777
12778         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
12779         MEM_ALIAS_SET.
12780
12781 2011-06-14  Zdenek Dvorak  <ook@ucw.cz>
12782             Tom de Vries  <tom@codesourcery.com>
12783
12784         PR target/45098
12785         * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
12786         Document changed semantics.
12787         (max_stmt_executions, max_stmt_executions_int): Declare.
12788         * tree-data-ref.c (estimated_loop_iterations)
12789         (estimated_loop_iterations_int): Move functions...
12790         * tree-ssa-loop-niter.c (estimated_loop_iterations)
12791         (estimated_loop_iterations_int): here.
12792         (record_estimate): Change nb_iterations_upper_bound and
12793         nb_iterations_estimate semantics.
12794         (max_stmt_executions, max_stmt_executions_int): New function.
12795         * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
12796         (max_stmt_executions_tree): this.
12797         (analyze_miv_subscript): Use max_stmt_executions_tree instead of
12798         estimated_loop_iterations_tree.
12799         tree-ssa-loop-ivopts.c (avg_loop_niter): Use
12800         max_stmt_executions_int instead of estimated_loop_iterations_int.
12801         * predict.c (predict_loops): Idem.
12802         * tree-parloops.c (parallelize_loops): Idem.
12803         * tree-data-ref.c (analyze_siv_subscript_cst_affine)
12804         (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
12805         (init_omega_for_ddr_1): Idem.
12806         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
12807         (loop_prefetch_arrays): Idem
12808         * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
12809         max_stmt_executions instead of estimated_loop_iterations.
12810         * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
12811         * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
12812         instead of nb_iterations_upper_bound.
12813
12814 2011-06-13  Jan Hubicka  <jh@suse.cz>
12815
12816         * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
12817
12818 2011-06-14  Richard Henderson  <rth@redhat.com>
12819
12820         PR debug/48459
12821         * dwarf2out.c (frame_pointer_fb_offset_valid): New.
12822         (based_loc_descr): Assert it's true.
12823         (compute_frame_pointer_to_fb_displacement): Set it, rather than
12824         aborting immediately.
12825
12826 2011-06-14  Sanjin Liu  <scliu@faraday-tech.com>
12827             Mingfeng Wu  <mingfeng@faraday-tech.com>
12828
12829         * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
12830
12831 2011-06-13  Jan Hubicka  <jh@suse.cz>
12832
12833         * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
12834
12835 2011-06-13  Jan Hubicka  <jh@suse.cz>
12836
12837         * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
12838         similarly to DECL_COMDAT.
12839         * cgraphunit.c (cgraph_analyze_function): Likewise.
12840         * ipa.c (function_and_variable_visibility): Likewise.
12841
12842 2011-06-13  Jan Hubicka  <jh@suse.cz>
12843
12844         * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
12845         BINFO_VIRTUALS when streaming for ltrans unit.
12846
12847 2011-06-13  David Edelsohn  <dje.gcc@gmail.com>
12848
12849         * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
12850         (movdi_internal64): Same.
12851
12852 2011-06-13  Edmar Wienskoski  <edmar@freescale.com>
12853
12854         PR target/44618
12855         * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
12856         a set of similar patterns, where the MATCH_OPERAND for the function
12857         argument is replaced with individual references to hardware registers.
12858         (save_fpregs_<mode>): Ditto
12859         (restore_gpregs_<mode>): Ditto
12860         (return_and_restore_gpregs_<mode>): Ditto
12861         (return_and_restore_fpregs_<mode>): Ditto
12862         (return_and_restore_fpregs_aix_<mode>): Ditto
12863
12864 2011-06-13  Jan Hubicka  <jh@suse.cz>
12865
12866         * ipa-utils.c (postorder_stack): New structure.
12867         (ipa_reverse_postorder): Handle aliases.
12868
12869 2011-06-13  Jan Hubicka  <jh@suse.cz>
12870
12871         * ipa-inline.c (reset_edge_caches): Walk aliases.
12872         (update_caller_keys): Do not test inlinability of aliases.
12873         * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
12874         (do_estimate_growth): Fix typo.
12875
12876 2011-06-13  Jan Hubicka  <jh@suse.cz>
12877
12878         * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
12879         (can_remove_node_now_p): ... here; handle same comdat groups.
12880         (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
12881         (inline_call): Update use of can_remove_node_now_p.
12882
12883 2011-06-13  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
12884
12885         * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
12886         condition to disallow non-identical memory locations.
12887         (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
12888         preference to bit manipulation instructions.
12889
12890 2011-06-13  Jan Hubicka  <jh@suse.cz>
12891
12892         * cgraph.c (cgraph_for_node_thunks_and_aliases,
12893         cgraph_for_node_and_aliases): Fix thinko in recursive walking.
12894         (nonremovable_p): New function.
12895         (cgraph_can_remove_if_no_direct_calls_p): New function.
12896         (used_from_object_file_p): New functoin.
12897         (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
12898         references from aliases.
12899         * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
12900         * ipa-inline.c (check_caller_edge): New function.
12901         (want_inline_function_called_once_p): Use it; accept aliases called
12902         once, too.
12903         * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
12904
12905 2011-06-13  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
12906
12907         PR target/48454
12908         * config/arm/neon.md (vec_pack_trunc): Set the lengths
12909         correctly for the case with Quad vectors.
12910
12911 2011-06-13 Jakub Jelinek  <jakub@redhat.com>
12912            Ira Rosen  <ira.rosen@linaro.org>
12913
12914         PR tree-optimization/49352
12915         * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
12916         all, make sure loop_use_stmt after the loop is a def stmt of a used
12917         SSA_NAME that is the only one defined inside of the loop.  Don't
12918         check for COND_EXPR and GIMPLE_BINARY_RHS.
12919         (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
12920         check_reduction is true.
12921
12922 2011-06-11  Jan Hubicka  <jh@suse.cz>
12923
12924         PR middle-end/49373
12925         * ipa.c (cgraph_externally_visible_p): Check resolution info.
12926
12927 2011-06-11  Jan Hubicka  <jh@suse.cz>
12928
12929         PR middle-end/48836
12930         * ipa-inline-transform.c: Include tree-pass.h
12931         (inline_transform): Set TODO_update_ssa_only_virtuals.
12932         * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
12933
12934 2011-06-11  Jan Hubicka  <jh@suse.cz>
12935
12936         PR middle-end/49378
12937         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
12938         aliases and thunks.
12939
12940 2011-06-12  Ira Rosen  <ira.rosen@linaro.org>
12941
12942         * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
12943         Take number of iterations to peel into account for equally frequent
12944         misalignment values.
12945
12946 2011-06-11  Jan Hubicka  <jh@suse.cz>
12947
12948         * lto-streamer-out.c (produce_symtab): Stream out the newly
12949         represented aliases.
12950
12951 2011-06-11  Jan Hubicka  <jh@suse.cz>
12952
12953         * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting
12954         varying args.
12955         (ipa_update_after_lto_read): Likewise.
12956         (ipa_write_node_info): Do not sream call_with_var_arguments.
12957         (ipa_read_node_info): Likewise.
12958
12959 2011-06-11  Jan Hubicka  <jh@suse.cz>
12960
12961         * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
12962
12963 2011-06-11  Jan Hubicka  <jh@suse.cz>
12964
12965         * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
12966         (lto_symtab_resolve_can_prevail_p): Likewise.
12967         (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
12968         * cgraph.c (same_body_aliases_done): New global var.
12969         (cgraph_same_body_alias_1): Rename to ...
12970         (cgraph_create_function_alias): ... this one; reorg to new
12971         representation.
12972         (cgraph_same_body_alias): Use cgraph_create_function_alias;
12973         record references when asked to.
12974         (cgraph_add_thunk): Fix formating.
12975         (cgraph_get_node): Kill same body alias code.
12976         (cgraph_node_for_asm): Likewise.
12977         (cgraph_remove_same_body_alias): Remove.
12978         (cgraph_remove_node): Kill same body alias code.
12979         (cgraph_mark_address_taken_node): Mark also the aliased function
12980         as having address taken.
12981         (dump_cgraph_node): Dump same body aliases.
12982         (cgraph_for_node_thunks_and_aliases): Update for new alias
12983         representation.
12984         (cgraph_for_node_and_aliases): Likewise.
12985         * cgraph.h (same_body): Kll pointer.
12986         (same_body_alias): Update comment.
12987         (same_body_aliases_done): Declare.
12988         (cgraph_remove_same_body_alias): Remove declaration.
12989         (cgraph_create_function_alias): Declare.
12990         (cgraph_process_same_body_aliases): Declare.
12991         (cgraph_function_with_gimple_body_p): Check for alias.
12992         (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
12993         (cgraph_alias_aliased_node): New function.
12994         (cgraph_function_node): Update for new aliases.
12995         (cgraph_function_or_thunk_node): Likewise.
12996         * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
12997         (inline_call): Remove dead aliases.
12998         * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
12999         name hack for same body aliases.
13000         (clone_of_p): Look through aliases.
13001         (verify_cgraph_node): Verify aliases.
13002         (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
13003         (cgraph_process_same_body_aliases): New function.
13004         (process_function_and_variable_attributes): Disable weakref warning on
13005         alias.
13006         (cgraph_analyze_functions): Handle aliases.
13007         (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
13008         (assemble_thunks): Rename to ...
13009         (assemble_thunks_and_aliases): ... this one; handle aliases, too.
13010         (cgraph_expand_function): Remove alias output code.
13011         (cgraph_output_in_order): Skip aliases.
13012         (cgraph_preserve_function_body_p): Aliases don't need preserving.
13013         * ipa-ref.c (ipa_ref_use_name): Add alias reference.
13014         (ipa_record_reference): Do not assert on alias references.
13015         (ipa_ref_has_aliases_p): New function.
13016         * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
13017         (ipa_ref_has_aliases_p): Declare.
13018         * lto-cgraph.c (lto_output_node): Handle aliases.
13019         (input_node): Likewise.
13020         * lto-streamer-out.c (lto_output): Skip aliases.
13021         (produce_symtab): Kill same_body_alias code.
13022         * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
13023         (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
13024         * ipa-inline.c (update_caller_keys): Walk aliases.
13025         (inline_small_functions): Fix thinko in previous patch.
13026         * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
13027         (function_and_variable_visibility): Do not walk same body aliases.
13028         * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
13029         (ipa_pta_execute): Use it.
13030
13031 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
13032
13033         * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
13034         (*vec_dupv2df): Rename from vec_dupv2df.
13035         (vec_dupv2df): New expander.
13036
13037 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
13038
13039         * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
13040
13041 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
13042
13043         * config/i386/i386.md: Use default value in "isa" attribute.
13044         * config/i386/sse.md: Ditto.
13045         * config/i386/mmx.md: Ditto.
13046
13047 2011-06-10  Wei Guozhi  <carrot@google.com>
13048
13049         PR target/45335
13050         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
13051         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
13052         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
13053         related peephole2.
13054         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
13055         related peephole2.
13056         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
13057         (arm_legitimate_ldrd_p): New prototype.
13058         (arm_output_ldrd): New prototype.
13059         * config/arm/arm.c (arm_check_ldrd_operands): New function.
13060         (arm_legitimate_ldrd_p): New function.
13061         (arm_output_ldrd): New function.
13062
13063 2011-06-10  David Li  <davidxl@google.com>
13064
13065         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
13066         * passes.c (passr_eq): New function.
13067         (create_pass_tab): New function.
13068         (pass_traverse): New function.
13069         (dump_one_pass): New function.
13070         (dump_pass_list): New function.
13071         (dump_passes): New function.
13072
13073 2011-06-10  Jan Hubicka  <jh@suse.cz>
13074
13075         * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
13076         setting the nothrow flag.
13077         * ipa-reference.c (propagate): Skip aliases.
13078         * ipa-pure-const.c (propagate_pure_const): Skip aliases.
13079         (propagate_nothrow): Skip aliases; do not update cgraph.
13080         (local_pure_const): Do not update cgraph.
13081         * tree-profile.c (tree_profiling): Do fixup_cfg.
13082
13083 2011-06-10  Jan Hubicka  <jh@suse.cz>
13084
13085         * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
13086         (cgraph_local_node_p): ... here; handle aliases.
13087         (has_addr_references_p): Break out from ...;
13088         (cgraph_remove_unreachable_nodes) ... here.
13089
13090 2011-06-10  Jan Hubicka  <jh@suse.cz>
13091
13092         * opts.c (default_options): Enlist OPT_finline_functions_called_once.
13093         * common.opt (flag_inline_functions_called_once): Do not
13094         initialize to 1.
13095
13096 2011-06-10  Jan Hubicka  <jh@suse.cz>
13097
13098         * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
13099         (ipcp_initialize_node_lattices): Do not deal with aliases;
13100         Do not try to propagate through thunks.
13101         (ipcp_change_tops_to_bottom): Do not deal with aliases.
13102
13103 2011-06-10  Jan Hubicka  <jh@suse.cz>
13104
13105         * ipa-prop.c (ipa_write_node_info): Stream jump functions
13106         for indirect calls.
13107         (ipa_read_node_info): Likewise.
13108
13109 2011-06-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13110
13111         PR lto/49302
13112         * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
13113         (build_and_insert_call): Likewise.
13114         (build_and_insert_ref): New.
13115         (gimple_expand_builtin_pow): Minor cleanup.
13116         (gimple_expand_builtin_cabs): New.
13117         (execute_cse_sincos): Add case for BUILT_IN_CABS.
13118
13119 2011-06-10  Jan Hubicka  <jh@suse.cz>
13120
13121         * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
13122         (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
13123         (ipcp_initialize_node_lattices): We don't propagate through an aliases.
13124         (ipcp_propagate_stage): Skip aliases when propagating.
13125         (ipcp_need_redirect_p): Skip aliases.
13126         (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
13127         collect_callers_of_node.
13128         * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
13129         for aliases.
13130         (ipa_compute_jump_functions): Look through aliases.
13131
13132 2011-06-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13133
13134         * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
13135
13136 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
13137
13138         * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
13139         Adjust comments.
13140         * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
13141
13142 2011-06-10  Jan Hubicka  <jh@suse.cz>
13143
13144         * ipa-cp.c (ipcp_process_devirtualization_opportunities):
13145         Update call of gimple_get_virt_method_for_binfo.
13146         * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
13147         refuse_thunks parameter.
13148         (gimple_fold_call): Update.
13149         * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
13150
13151 2011-06-10  Jan Hubicka  <jh@suse.cz>
13152
13153         * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
13154         (not_all_callers_have_enough_arguments_p): ... this one; turn into
13155         worker for cgraph_for_node_and_aliases.
13156         (convert_callers_for_node): Break out from ...
13157         (convert_callers): ... here.
13158         (modify_function): Use collect_callers_of_node.
13159         (ipa_early_sra): Use cgraph_for_node_and_aliases.
13160
13161 2011-06-10  Richard Guenther  <rguenther@suse.de>
13162
13163         PR tree-optimization/49361
13164         * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
13165         when not already in gimple form.
13166
13167 2011-06-10  Richard Guenther  <rguenther@suse.de>
13168
13169         PR bootstrap/49344
13170         * tree-ssa-math-opts.c (convert_mult_to_fma): Use
13171         FOR_EACH_PHI_OR_STMT_USE.
13172
13173 2011-06-10  Jan Hubicka  <jh@suse.cz>
13174
13175         * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
13176         (clone_inlined_nodes): ... here.
13177         (inline_call): Use cgraph_function_or_thunk_node; redirect edge
13178         to real destination prior inlining.
13179         * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
13180         can_early_inline_edge_p, want_early_inline_function_p,
13181         want_early_inline_function_p, want_inline_small_function_p,
13182         want_inline_self_recursive_call_p, want_inline_function_called_once_p,
13183         edge_badness, update_all_callee_keys, lookup_recursive_calls,
13184         add_new_edges_to_heap, inline_small_functions, flatten_function,
13185         inline_always_inline_functions, early_inline_small_functions): Use
13186         cgraph_function_or_thunk_node.
13187         * ipa-inline-analysis.c (evaluate_conditions_for_edge,
13188         dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
13189         (do_estimate_edge_growth_1): Break out from ...
13190         (do_estimate_growth) ... here; walk aliases.
13191         (inline_generate_summary): Skip aliases.
13192
13193 2011-06-10  Richard Guenther  <rguenther@suse.de>
13194
13195         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
13196         forward when combining, visit inserted stmts when a stmt was changed.
13197
13198 2011-06-10  Paolo Carlini  <paolo.carlini@oracle.com>
13199
13200         * tree.h (error_operand_p): Add.
13201         * dbxout.c (dbxout_type_fields): Use the latter.
13202         * c-decl.c (add_stmt): Likewise.
13203         * gimplify.c (omp_add_variable, omp_notice_variable,
13204         gimplify_scan_omp_clauses): Likewise.
13205
13206 2011-06-10  Georg-Johann Lay  <avr@gjlay.de>
13207
13208         * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
13209         when a value is actually passed in regs.
13210
13211 2011-06-10  Eric Botcazou  <ebotcazou@adacore.com>
13212             Laurent Rougé  <laurent.rouge@menta.fr>
13213
13214         * doc/invoke.texi (SPARC options): Add -mflat.
13215         * config/sparc/sparc.opt: Likewise.
13216         * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
13217         (sparc_flat_expand_prologue): Declare.
13218         (sparc_flat_expand_epilogue): Likewise.
13219         * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
13220         (CPP_ENDIAN_SPEC): Replace with...
13221         (CPP_OTHER_SPEC): ...this.  Also handle -mflat and -msoft-float.
13222         (CPP_SPEC): Adjust to above change.
13223         (EXTRA_SPECS): Likewise.
13224         (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
13225         (INCOMING_REGNO): Likewise.
13226         (OUTGOING_REGNO): Likewise.
13227         (LOCAL_REGNO): Likewise.
13228         (SETUP_FRAME_ADDRESSES): Likewise.
13229         (FIXED_REGISTERS): Set 0 for %fp.
13230         (CALL_USED_REGISTERS): Likewise.
13231         (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
13232         (EXIT_IGNORE_STACK): Define to 1 unconditionally.
13233         (RETURN_ADDR_REGNUM): Define.
13234         (RETURN_ADDR_RTX): Use it.
13235         (INCOMING_RETURN_ADDR_REGNUM): Define.
13236         (INCOMING_RETURN_ADDR_RTX): Use it.
13237         (DWARF_FRAME_RETURN_COLUMN): Likewise.
13238         (EH_RETURN_REGNUM): Define.
13239         (EH_RETURN_STACKADJ_RTX): Use it.
13240         (EH_RETURN_HANDLER_RTX): Delete.
13241         (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
13242         * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
13243         Delete.
13244         (struct machine_function): Add frame_size, apparent_frame_size,
13245         frame_base_reg, frame_base_offset, n_global_fp_regs and
13246         save_local_in_regs_p fields.
13247         (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
13248         sparc_frame_base_offset, sparc_n_global_fp_regs,
13249         sparc_save_local_in_regs_p): New macros.
13250         (sparc_option_override): Error out if -fcall-saved-REG is specified
13251         for Out registers.
13252         (eligible_for_restore_insn): Fix formatting.
13253         (eligible_for_return_delay): Likewise.  Add TARGET_FLAT handling.
13254         (eligible_for_sibcall_delay): Likewise.
13255         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
13256         (sparc_legitimate_address_p): Adjust to above change.
13257         (save_global_or_fp_reg_p): New predicate.
13258         (return_addr_reg_needed_p): Likewise.
13259         (save_local_or_in_reg_p): Likewise.
13260         (sparc_compute_frame_size): Use them.  Add TARGET_FLAT handling.
13261         (SORR_SAVE, SORR_RESTORE): Delete.
13262         (sorr_pred_t): New typedef.
13263         (sorr_act_t): New enum.
13264         (save_or_restore_regs): Rename to...
13265         (emit_save_or_restore_regs): ...this.  Change type of LOW and HIGH
13266         parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
13267         ACTION_TRUE and ACTION_FALSE parameters.  Implement more general
13268         mechanism.  Add CFI information for double-word saves in 32-bit mode.
13269         (emit_adjust_base_to_offset): New function extracted from...
13270         (emit_save_or_restore_regs): ...this.  Rename the rest to...
13271         (emit_save_or_restore_regs_global_fp_regs): ...this.
13272         (emit_save_or_restore_regs_local_in_regs): New function.
13273         (gen_create_flat_frame_[123]): New functions.
13274         (sparc_expand_prologue): Use SIZE local variable.  Adjust.
13275         (sparc_flat_expand_prologue): New function.
13276         (sparc_asm_function_prologue): Add TARGET_FLAT handling.
13277         (sparc_expand_epilogue): Use SIZE local variable.  Adjust.
13278         (sparc_flat_expand_epilogue): New function.
13279         (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
13280         (output_return): Likewise.
13281         (output_sibcall): Likewise.
13282         (sparc_output_mi_thunk): Likewise.
13283         (sparc_frame_pointer_required): Likewise.
13284         (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
13285         function optimization.
13286         * config/sparc/sparc.md (flat): New attribute.
13287         (prologue): Add TARGET_FLAT handling.
13288         (save_register_window): Disable if TARGET_FLAT.
13289         (create_flat_frame_[123]): New patterns.
13290         (epilogue): Add TARGET_FLAT handling.
13291         (sibcall_epilogue): Likewise.
13292         (eh_return): New expander.
13293         (eh_return_internal): New insn and splitter.
13294         (return_internal): Add TARGET_FLAT handling.
13295         (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
13296         (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
13297         (nonlocal_goto): Add TARGET_FLAT handling.
13298         * config/sparc/t-elf: Add -mflat multilib.
13299         * config/sparc/t-leon: Likewise.
13300
13301 2011-06-10  Jan Hubicka  <jh@suse.cz>
13302
13303         * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
13304         * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
13305         (self_recursive_p): Use cgraph_function_node.
13306         (propagate_pure_const): Likewise.
13307         (propagate_nothrow): Likewise.
13308         * ipa-reference.c (ipa_reference_get_not_read_global): Use
13309         cgraph_function_node.
13310         (propagate_bits): Likewise.
13311         (propagate): Likewise.
13312
13313 2011-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
13314             Richard Earnshaw  <rearnsha@arm.com>
13315
13316         * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
13317         * config/arm/vfp.md (*arm_movdi_vfp): Delete.
13318         (*thumb2_movdi_vfp): Delete.
13319         (*arm_movdi_vfp_cortexa8): Delete.
13320         (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
13321         (*movdi_vfp_cortexa8): Likewise.
13322
13323 2011-06-10  Richard Guenther  <rguenther@suse.de>
13324
13325         * stor-layout.c (initialize_sizetypes): Give names to all
13326         sizetype kinds.
13327
13328 2011-06-10  Ira Rosen  <ira.rosen@linaro.org>
13329
13330         PR tree-optimization/49318
13331         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
13332         irrelevant pattern statements.
13333
13334 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
13335
13336         * system.h (SETJMP_VIA_SAVE_AREA): Poison.
13337
13338         PR bootstrap/49354
13339         * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
13340         to last assignment.
13341
13342 2011-06-09  Jan Hubicka  <jh@suse.cz>
13343
13344         * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
13345         do not recompute reachable flag.
13346         (cgraph_finalize_function, cgraph_analyze_functions): Set
13347         redefined_extern_inline here.
13348
13349 2011-06-09  Jan Hubicka  <jh@suse.cz>
13350
13351         * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
13352         (cgraph_only_called_directly_p): ... this one; bring offline.
13353         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
13354         varpool_used_from_object_file_p): Drop names from the declaratoin.
13355         (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
13356         collect_callers_of_node): New.
13357         (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
13358         (cgraph_edge_recursive_p): Use cgraph_function_node.
13359         * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
13360         (cgraph_node_cannot_be_local_p_1): Break out from ...
13361         (cgraph_node_can_be_local_p): ... here; walk aliases.
13362         (cgraph_for_node_thunks_and_aliases): New function.
13363         (cgraph_for_node_and_aliases): New function.
13364         (cgraph_make_node_local_1): Break out from ...
13365         (cgraph_make_node_local) ... here; use
13366         cgraph_for_node_thunks_and_aliases.
13367         (cgraph_set_nothrow_flag_1): Break out from ...
13368         (cgraph_set_nothrow_flag) ... here;
13369         use cgraph_for_node_thunks_and_aliases.
13370         (cgraph_set_const_flag_1): Break out from ...
13371         (cgraph_set_const_flag) ... here;
13372         use cgraph_for_node_thunks_and_aliases.
13373         (cgraph_set_pure_flag_1): Break out from ...
13374         (cgraph_set_pure_flag) ... here;
13375         use cgraph_for_node_thunks_and_aliases.
13376         (cgraph_propagate_frequency_1): Break out from ...
13377         (cgraph_propagate_frequency) ... here; use
13378         cgraph_for_node_thunks_and_aliases.
13379         (cgraph_used_from_object_file_p): Do not care about aliases.
13380         (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
13381         New functions.
13382         (collect_callers_of_node_1, collect_callers_of_node): New functions.
13383
13384 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
13385
13386         PR rtl-optimization/49154
13387         * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
13388         (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
13389         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
13390         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
13391         * config/cris/cris.h (cris_register_move_cost): Remove
13392         !TARGET_V32 code.  Tweak comments.
13393
13394 2011-06-09  Jan Hubicka  <jh@suse.cz>
13395
13396         * cgraphbuild.c (record_eh_tables): Mark personality function as having
13397         address taken.
13398
13399 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
13400
13401         PR rtl-optimization/49154
13402         * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
13403         is a matching slot in the hashtable, assign it to classes_ptr.
13404
13405         PR rtl-optimization/49154
13406         * doc/tm.texi.in (Register Classes): Document rule for the narrowest
13407         register classes.
13408         * doc/tm.texi: Regenerate.
13409
13410 2011-06-09  Kaz Kojima  <kkojima@gcc.gnu.org>
13411
13412         PR target/49307
13413         * config/sh/sh.md (UNSPEC_CHKADD): New.
13414         (chk_guard_add): New define_insn_and_split.
13415         (symGOT_load): Use chk_guard_add instead of blockage.
13416
13417 2011-06-09  Kai Tietz  <ktietz@redhat.com>
13418
13419         * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
13420
13421 2011-06-09  Eric Botcazou  <ebotcazou@adacore.com>
13422
13423         * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
13424
13425 2011-06-09  Wei Guozhi  <carrot@google.com>
13426
13427         PR target/46975
13428         * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
13429         (peephole2 for conditional move): Generate 16 bit instructions.
13430
13431 2011-06-09  Uros Bizjak  <ubizjak@gmail.com>
13432
13433         * config/i386/i386.md (*movdi_internal_rex64): Merge
13434         alternatives 6 and 8.
13435
13436 2011-06-09  David Li  <davidxl@google.com>
13437
13438         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
13439         * passes.c (passr_eq): New function.
13440         (create_pass_tab): New function.
13441         (pass_traverse): New function.
13442         (dump_one_pass): New function.
13443         (dump_pass_list): New function.
13444         (dump_passes): New function.
13445
13446 2011-06-09  David Li  <davidxl@google.com>
13447
13448         * tree-complex.c (tree_lower_complex): Gate cleanup.
13449         * tree-stdarg.c (check_all_va_list_escapes): Ditto.
13450         (execute_optimize_stdarg): Ditto.
13451         * tree-eh.c (execute_lower_eh_dispatch): Ditto.
13452         (execute_cleanup_eh_1): Ditto.
13453         (execute_cleanup_eh): Ditto.
13454         * gcse.c (gate_rtl_pre): Ditto.
13455         (execute_rtl_pre): Ditto.
13456         * except.c (finish_eh_generation): Ditto.
13457         (convert_to_eh_region_ranges): Ditto.
13458         * cprop.c (one_cprop_pass): Ditto.
13459
13460 2011-06-09  Bernd Schmidt  <bernds@codesourcery.com>
13461
13462         PR target/48673
13463         * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
13464         in all basic blocks.
13465
13466 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13467
13468         * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
13469         (HAVE_ENABLE_EXECUTE_STACK): Define.
13470         * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
13471         (HAVE_ENABLE_EXECUTE_STACK): Define.
13472         * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
13473         (HAVE_ENABLE_EXECUTE_STACK): Define.
13474         * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
13475         (ENABLE_EXECUTE_STACK): Remove.
13476         (HAVE_ENABLE_EXECUTE_STACK): Define.
13477         [IN_LIBGCC2]: Don't include <windows.h>.
13478         * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
13479         (HAVE_ENABLE_EXECUTE_STACK): Define.
13480         * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
13481         (HAVE_ENABLE_EXECUTE_STACK): Define.
13482         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
13483         * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
13484         (HAVE_ENABLE_EXECUTE_STACK): Define.
13485         * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
13486         (HAVE_ENABLE_EXECUTE_STACK): Define.
13487         * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
13488         (HAVE_ENABLE_EXECUTE_STACK): Define.
13489         * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
13490         (HAVE_ENABLE_EXECUTE_STACK): Define.
13491         * config/alpha/alpha.c (alpha_trampoline_init): Test
13492         HAVE_ENABLE_EXECUTE_STACK.
13493         * config/i386/i386.c (ix86_trampoline_init): Likewise.
13494         * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
13495         (sparc64_initialize_trampoline): Likewise.
13496         * libgcc2.c [L_enable_execute_stack]: Remove.
13497         * system.h (ENABLE_EXECUTE_STACK): Poison.
13498         * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
13499         * doc/tm.texi: Regenerate.
13500         * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
13501
13502 2011-06-09  Jakub Jelinek  <jakub@redhat.com>
13503
13504         PR middle-end/49308
13505         * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
13506         variable.  After resetting and rescanning insn continue with previous
13507         statement.
13508
13509 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13510
13511         * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
13512         (gcc_cv_ld_hidden): Likewise.
13513         * configure: Regenerate.
13514         * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
13515         (ix86_stack_protect_fail): Mark unused.
13516         (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
13517         * config/rs6000/rs6000.c (rs6000_assemble_visibility)
13518         [TARGET_MACHO]: Don't define.
13519         (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
13520         (TARGET_STACK_PROTECT_FAIL): Likewise.
13521         (rs6000_stack_protect_fail): Mark unused.
13522         * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
13523         USE_LINKONCE_INDIRECT.  Don't emit .hidden expicitly.
13524
13525 2011-06-08  Andi Kleen  <ak@linux.intel.com>
13526
13527         * varasm.c (get_section): Print location of other conflict
13528         for section conflicts.
13529
13530 2011-06-08  Andi Kleen  <ak@linux.intel.com>
13531
13532         * config/i386/driver-i386.c (host_detect_local_cpu):
13533         Add model 0x2d Intel CPU.
13534
13535 2011-06-08  Andi Kleen  <ak@linux.intel.com>
13536
13537         * reginfo.c (global_regs_decl): Add.
13538         (globalize_reg): Add decl parameter. Compute location.  Pass location
13539         to warnings and add inform. Store decl in global_regs_decl.
13540         * rtl.h (globalize_reg): Update prototype.
13541         * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
13542
13543 2011-06-09  Mingjie Xing  <mingjie.xing@gmail.com>
13544
13545         * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
13546
13547 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
13548
13549         PR target/49305
13550         * config/sh/predicates.md (general_movsrc_operand): Check
13551         mode for memory with indexed address for QI and HImode.
13552         (general_movdst_operand): Likewise.
13553
13554 2011-06-09  Nicola Pero  <nicola.pero@meta-innovation.com>
13555
13556         * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
13557
13558 2011-06-08  Alexandre Oliva  <aoliva@redhat.com>
13559
13560         * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
13561         (num_ssa_operands): Likewise.
13562         (op_iter_init_phiuse): Forward-declare.
13563         (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
13564
13565 2011-06-08  Nick Clifton  <nickc@redhat.com>
13566
13567         * doc/invoke.texi (ARM Options): Update description of
13568         -mthumb-interwork.
13569
13570 2011-06-08  H.J. Lu  <hongjiu.lu@intel.com>
13571
13572         * config/i386/driver-i386.c (host_detect_local_cpu): Support
13573         unknown Intel family 0x6 CPUs.
13574
13575 2011-06-08  Martin Jambor  <mjambor@suse.cz>
13576
13577         * tree-sra.c (mark_rw_status): Removed.
13578         (analyze_access_subtree): New parameter parent instead of
13579         mark_read and mark_write, propagate from that.
13580
13581 2011-06-08  Julian Brown  <julian@codesourcery.com>
13582
13583         * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
13584         for double-precision helper functions in hard-float mode if only
13585         single-precision arithmetic is supported in hardware.
13586
13587 2011-06-08  Alexander Monakov  <amonakov@ispras.ru>
13588
13589         PR rtl-optimization/49303
13590         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
13591         code_motion_path_driver returned 0 or 1.
13592         (sel_region_finish): Clear h_d_i_d.
13593
13594 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
13595
13596         * config/sh/sh.c (prepare_move_operands): Set pic register
13597         appropriately for global and local dynamic tls models even
13598         if flag_pic is unset.
13599
13600 2011-06-07  Jason Merrill  <jason@redhat.com>
13601
13602         * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
13603
13604 2011-06-07  Xinliang David Li  <davidxl@google.com>
13605         * passes.c (enable_disable_pass): Handle assembler name.
13606         (is_pass_explicitly_enabled_or_disabled): Ditto.
13607
13608 2011-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13609
13610         PR tree-optimization/48497
13611         * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
13612
13613 2011-06-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13614
13615         PR tree-optimization/46728
13616         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
13617         to use gimple_val_nonnegative_real_p.
13618         * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
13619         * gimple.h (gimple_val_nonnegative_real_p): New declaration.
13620
13621 2011-06-07  H.J. Lu  <hongjiu.lu@intel.com>
13622
13623         * config/i386/i386.md (*movsf_internal): Optimize AVX check.
13624
13625 2011-06-07  Sergey Grechanik  <mouseentity@ispras.ru>
13626
13627         * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
13628         constant vectors.
13629
13630 2011-06-07  Richard Guenther  <rguenther@suse.de>
13631
13632         * stor-layout.c (initialize_sizetypes): Initialize all
13633         sizetypes based on target definitions.
13634         (set_sizetype): Remove.
13635         * tree.c (build_common_tree_nodes): Do not call set_sizetype.
13636         * tree.h (set_sizetype): Remove.
13637
13638 2011-06-07  Nick Clifton  <nickc@redhat.com>
13639
13640         * config.gcc: Unify V850 architecture options and add support for
13641         newer V850 architectures.
13642         * config/v850/t-v850e: Delete.
13643
13644 2011-06-07  Richard Guenther  <rguenther@suse.de>
13645
13646         * tree.c (build_common_tree_nodes): Also initialize size_type_node.
13647         Call set_sizetype from here.
13648
13649 2011-06-07  Andrew Stubbs  <ams@codesourcery.com>
13650
13651         * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
13652         (*maddhisi4tb, *maddhisi4tt): New define_insns.
13653
13654 2011-06-07  Bernd Schmidt  <bernds@codesourcery.com>
13655             Andrew Stubbs  <ams@codesourcery.com>
13656
13657         * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
13658         multiplies.
13659         * doc/md.texi (Canonicalization of Instructions): Document widening
13660         multiply canonicalization.
13661
13662 2011-06-07  Jakub Jelinek  <jakub@redhat.com>
13663
13664         PR gcov-profile/49299
13665         * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
13666
13667 2011-06-07  Ira Rosen  <ira.rosen@linaro.org>
13668
13669         * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
13670         a pointer.
13671         * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
13672         vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
13673         vect_recog_pow_pattern): Likewise.
13674         (vect_pattern_recog_1): Remove declaration.
13675         (widened_name_p): Remove declaration.  Add new argument to specify
13676         whether to check that both types are either signed or unsigned.
13677         (vect_recog_widen_mult_pattern): Update documentation.  Handle
13678         unsigned patterns and multiplication by constants.
13679         (vect_pattern_recog_1): Update vect_recog_func references.  Use
13680         statement information from the statement returned from pattern
13681         detection functions.
13682         (vect_pattern_recog): Update vect_recog_func reference.
13683         * tree-vect-stmts.c (vectorizable_type_promotion): For widening
13684         multiplication by a constant use the type of the other operand.
13685
13686 2011-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
13687
13688         PR rtl-optimization/49145
13689         * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
13690
13691 2011-06-06  Jakub Jelinek  <jakub@redhat.com>
13692
13693         PR debug/49262
13694         * dwarf2out.c (native_encode_initializer): Decrement count in each
13695         iteration.
13696
13697         PR debug/49294
13698         * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
13699         non-MODE_INT modes.
13700
13701         PR c++/49264
13702         * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
13703         if stmt folded into nothing.
13704         * tree-inline.c (fold_marked_statements): If a builtin at the end of
13705         a bb folded into nothing, just update cgraph edges and move to next bb.
13706         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
13707         to be NULL.  Don't compute count and frequency if new_call is NULL.
13708
13709 2011-06-04  Diego Novillo  <dnovillo@google.com>
13710
13711         * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
13712         (cgraph.o): Likewise.
13713         (cgraphunit.o): Likewise.
13714         * cgraphunit.c: Include lto-streamer.h
13715         (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
13716         if LTO is enabled.
13717         * lto-streamer-in.c (unpack_value_fields): Call
13718         streamer_hooks.unpack_value_fields if set.
13719         (lto_materialize_tree): For unhandled nodes, first try to
13720         call lto_streamer_hooks.alloc_tree, if it exists.
13721         (lto_input_ts_decl_common_tree_pointers): Move reading of
13722         DECL_INITIAL to lto_streamer_read_tree.
13723         (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
13724         (lto_streamer_read_tree): New.
13725         (lto_reader_init): Rename from lto_init_reader.
13726         Move initialization code to lto/lto.c.
13727         * lto-streamer-out.c (pack_value_fields): Call
13728         streamer_hooks.pack_value_fields if set.
13729         (lto_output_tree_ref): For tree nodes that are not normally indexable,
13730         call streamer_hooks.indexable_with_decls_p before giving up.
13731         (lto_output_ts_decl_common_tree_pointers): Move handling
13732         for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
13733         (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
13734         lto_is_streamable.  Call lto_streamer_hooks.output_tree_header if set.
13735         (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
13736         (lto_streamer_write_tree): New.
13737         (lto_output): Call lto_streamer_init directly.
13738         (lto_writer_init): Remove.
13739         * lto-streamer.c (streamer_hooks): New.
13740         (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
13741         instead of lto_preload_common_nodes.
13742         (lto_is_streamable): Move from lto-streamer.h
13743         (lto_streamer_hooks_init): New.
13744         (streamer_hooks): New.
13745         (streamer_hooks_init): New.
13746         * lto-streamer.h (struct output_block): Forward declare.
13747         (struct lto_input_block): Likewise.
13748         (struct data_in): Likewise.
13749         (struct bitpack_d): Likewise.
13750         (struct streamer_hooks): Declare.
13751         (streamer_hooks): Declare.
13752         (lto_streamer_hooks_init): Declare.
13753         (lto_streamer_write_tree): Declare.
13754         (lto_streamer_read_tree): Declare.
13755         (streamer_hooks_init): Declare.
13756         (lto_is_streamable): Move to lto-streamer.c
13757
13758 2011-06-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13759
13760         * longlong.h (smul_ppmm): The resulting register pair contains the
13761         higher order word first.
13762
13763 2011-06-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13764
13765         PR tree-optimization/46728
13766         * builtins.c (powi_table): Remove.
13767         (powi_lookup_cost): Remove.
13768         (powi_cost): Remove.
13769         (expand_powi_1): Remove.
13770         (expand_powi): Remove.
13771         (expand_builtin_pow_root): Remove.
13772         (expand_builtin_pow): Remove.
13773         (expand_builtin_powi): Eliminate handling of constant exponent.
13774         (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
13775
13776 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
13777
13778         * cprop.c (local_cprop_pass): Don't set changed for debug insns.
13779
13780 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
13781
13782         * dce.c (reset_unmarked_insns_debug_uses): New.
13783         (delete_unmarked_insns): Skip debug insns.
13784         (prescan_insns_for_dce): Likewise.
13785         (rest_of_handle_ud_dce): Reset debug uses of removed sets.
13786         * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
13787         active reg can be found.
13788         (subst_all_stack_regs_in_debug_insn): New.  Reset debug insn then.
13789         (convert_regs_1): Use it.
13790
13791 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
13792
13793         * tree-pretty-print.c (dump_function_header): Add flags.
13794         Don't dump decl_uid with nouid.
13795         * tree-pretty-print.h (dump_function_header): Adjust.
13796         * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
13797         * passes.c (pass_init_dump_file): Pass dump_flags on.
13798         * tree-cfg.c (gimple_dump_cfg): Pass flags on.
13799
13800 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
13801
13802         PR bootstrap/49270
13803         * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
13804
13805 2011-06-06  Mikael Pettersson  <mikpe@it.uu.se>
13806
13807         PR tree-optimization/49243
13808         * calls.c (setjmp_call_p): Also check if fndecl has the
13809         returns_twice attribute.
13810
13811 2011-06-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13812
13813         * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
13814         -ffast-math etc.
13815
13816 2011-06-06  Richard Henderson  <rth@redhat.com>
13817             Georg-Johann Lay  <avr@gjlay.de>
13818
13819         PR target/42210
13820         * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
13821         New predicates.
13822         * config/avr/avr.md ("insv"): New insn expander.
13823         ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
13824         "*insv.not.io", "*insv.reg"): New insns.
13825
13826 2011-06-06  Hans-Peter Nilsson  <hp@bitrange.com>
13827
13828         PR target/49285
13829         * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
13830         to nonimmediate_operand from memory_operand for the operand that is to
13831         be forced to memory by the expander.  Lose the constraints.
13832
13833 2011-06-05  Eric Botcazou  <ebotcazou@adacore.com>
13834
13835         * config/sparc/sparc.c (output_return): Fix thinko in the output of an
13836         EH return when delayed branches are disabled.
13837
13838 2011-06-05  Uros Bizjak  <ubizjak@gmail.com>
13839
13840         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
13841         Remove MODE_TI handling.  Remove SSE1 handling in attribute "mode"
13842         calculation.
13843         (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
13844         Simplify MODE_V1DF and MODE_V2SF handling.
13845         (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
13846         Simplify MODE_SF handling.
13847
13848 2011-06-04  Jan Hubicka  <jh@suse.cz>
13849
13850         PR tree-optimization/48893
13851         PR tree-optimization/49091
13852         PR tree-optimization/49179
13853         * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
13854         Bounds check.
13855
13856 2011-06-04  Jan Hubicka  <jh@suse.cz>
13857
13858         PR lto/48954
13859         * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
13860         bitmaps.
13861
13862 2011-06-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
13863
13864         * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
13865
13866 2011-06-04  Jakub Jelinek  <jakub@redhat.com>
13867
13868         PR target/49281
13869         * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
13870         to be strictly smaller than 1 << shiftcount.
13871
13872 2011-06-04  Jan Hubicka  <jh@suse.cz>
13873
13874         PR tree-optimize/48929
13875         * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
13876         of empty predicate.
13877
13878 2011-06-04  Alexandre Oliva  <aoliva@redhat.com>
13879
13880         PR debug/48333
13881         * calls.c (emit_call_1): Prefer the __builtin declaration of
13882         builtin functions.
13883
13884 2011-06-03   Diego Novillo  <dnovillo@google.com>
13885
13886         * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
13887         (lto_input_tree_pointers): Likewise.
13888         * lto-streamer-out.c (pack_value_fields): Likewise.
13889         (lto_output_tree_pointers): Likewise.
13890         * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
13891         and OPTIMIZATION_NODE.
13892
13893 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13894
13895         * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
13896         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
13897         * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
13898         * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
13899         * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
13900         * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
13901         * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
13902         * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
13903         * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
13904         * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
13905         * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
13906         * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
13907         * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
13908         * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
13909         * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
13910         * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
13911         * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
13912         * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
13913         * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
13914         * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
13915         * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
13916         * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
13917         * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
13918         * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
13919         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
13920         * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
13921         * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
13922         * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
13923         * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
13924         * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
13925         * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
13926         * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
13927         * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
13928         * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
13929         * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
13930         * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
13931         * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
13932         * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
13933         * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
13934         * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
13935         * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
13936         * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
13937         * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
13938         * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
13939         * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
13940         * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
13941         * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
13942         * system.h (MD_UNWIND_SUPPORT): Poison.
13943         * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
13944         * doc/tm.texi: Regenerate.
13945         * unwind-dw2.c: Include md-unwind-support.h instead of
13946         MD_UNWIND_SUPPORT.
13947         * config/ia64/unwind-ia64.c: Likewise.
13948         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
13949
13950 2011-06-03  Jack Howarth  <howarth@bromo.med.uc.edu>
13951
13952         * varpool.c (varpool_extra_name_alias): Return NULL, not false.
13953
13954 2011-06-03  Richard Henderson  <rth@redhat.com>
13955             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13956
13957         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
13958         (sigill_hdlr): Correct insn, insn size.
13959         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
13960
13961 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13962
13963         * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
13964         t-slibgcc-dummy.
13965         * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
13966         * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
13967         * config/mips/t-iris: Remove.
13968         * config/mips/t-irix6: New file.
13969         * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
13970
13971 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13972
13973         * Makefile.in (LIB2ADDEHDEP): Remove.
13974         * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
13975         * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
13976         * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
13977         * config/t-darwin (LIB2ADDEHDEP): Remove.
13978         * config/t-freebsd (LIB2ADDEHDEP): Remove.
13979         * config/t-linux (LIB2ADDEHDEP): Remove.
13980
13981 2011-06-03  Diego Novillo  <dnovillo@google.com>
13982
13983         * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
13984         (lto_register_var_decl_in_symtab): Likewise.
13985         (lto_register_function_decl_in_symtab): Likewise.
13986         (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
13987         logic to uniquify_nodes.
13988
13989 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13990
13991         * config/alpha/t-osf5: Remove.
13992         * config/alpha/t-osf-pthread: Remove.
13993         * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
13994         * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
13995
13996 2011-06-03  Julian Brown  <julian@codesourcery.com>
13997
13998         * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
13999         (strongarm1110): Use strongarm tuning.
14000         * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
14001         * config/arm/arm.c (arm_strongarm_tune): New.
14002         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
14003         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
14004         (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
14005         setting, using previous defaults or 1 for Cortex-A5.
14006         (arm_option_override): Set max_insns_skipped from current tuning.
14007
14008 2011-06-03  Nathan Sidwell  <nathan@codesourcery.com>
14009
14010         * doc/install.texi (Options specification): Document --with-specs.
14011
14012 2011-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
14013
14014         * config/arm/neon.md (orndi3_neon): Actually split it.
14015
14016 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
14017
14018         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
14019         * var-tracking.c (reverse_op): Limite recurse depth to 5.
14020
14021 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
14022
14023         PR debug/47590
14024         * target.def (delay_sched2, delay_vartrack): New.
14025         * doc/tm.texi.in: Update.
14026         * doc/tm.texi: Rebuild.
14027         * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
14028         * var-tracking.c (gate_handle_var_tracking): Likewise.
14029         * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
14030         (bfin_flag_var_tracking): Drop.
14031         (output_file_start): Don't save and override flag_var_tracking.
14032         (bfin_option_override): Ditto flag_schedule_insns_after_reload.
14033         (bfin_reorg): Test original variables.
14034         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
14035         * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
14036         (ia64_flag_var_tracking): Drop.
14037         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
14038         (ia64_file_start): Don't save and override flag_var_tracking.
14039         (ia64_override_options_after_change): Ditto
14040         flag_schedule_insns_after_reload.
14041         (ia64_reorg): Test original variables.
14042         * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
14043         (picochip_flag_var_tracking): Drop.
14044         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
14045         (picochip_option_override): Don't save and override
14046         flag_schedule_insns_after_reload.
14047         (picochip_asm_file_start): Ditto flag_var_tracking.
14048         (picochip_reorg): Test original variables.
14049         * config/spu/spu.c (spu_flag_var_tracking): Drop.
14050         (TARGET_DELAY_VARTRACK): Define.
14051         (spu_var_tracking): New.
14052         (spu_machine_dependent_reorg): Call it.
14053         (asm_file_start): Don't save and override flag_var_tracking.
14054
14055 2011-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
14056
14057         PR target/49163
14058         * config/sh/predicates.md (general_movsrc_operand): Return 0
14059         for memory and memory subreg of which address is an invalid
14060         indexed address for QI and HImode.
14061         (general_movdst_operand): Likewise.
14062
14063 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
14064
14065         * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
14066         edges only, when there is a non-local label in the function.
14067         * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
14068
14069 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
14070
14071         * config/i386/constraints.md (Y3): New register constraint.
14072         * config/i386/sse.md (*vec_interleave_highv2df): Merge with
14073         *sse3_interleave_highv2df and *sse2_interleave_highv2df.
14074         (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
14075         *sse2_interleave_lowv2df.
14076
14077 2011-06-02  Julian Brown  <julian@codesourcery.com>
14078
14079         * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
14080         * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
14081         (arm_cortex_a5_tune): New.
14082
14083 2011-06-02  Julian Brown  <julian@codesourcery.com>
14084
14085         * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
14086         * config/arm/arm.c (arm_default_branch_cost): New.
14087         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
14088         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
14089         (arm_fa726_tune): Set branch_cost field using
14090         arm_default_branch_cost.
14091         * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
14092         current_tune structure.
14093         * dojump.c (tm_p.h): Include file.
14094
14095 2011-06-02  Julian Brown  <julian@codesourcery.com>
14096
14097         * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
14098         tuning.
14099         (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
14100         (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
14101         * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
14102         field.
14103         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
14104         (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
14105         (arm_fa726te_tune): Add prefer_constant_pool setting.
14106         (arm_v6t2_tune, arm_cortex_tune): New.
14107         * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
14108         prefer_constant_pool setting.
14109
14110 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
14111
14112         * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
14113         switch statement.
14114         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
14115         (*movdf_internal) <case 6,7,8>: Ditto.
14116
14117         * config/i386/constraints.md (Y4): New register constraint.
14118         * config/i386/sse.md (vec_set<mode>_0): Merge with
14119         *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
14120         (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
14121         *vec_extractv2di_1_sse.
14122         (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
14123         and *vec_concatv2di_rex64_sse.
14124
14125 2011-06-02  Stuart Henderson  <shenders@gcc.gnu.org>
14126
14127         PR target/48807
14128         * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
14129         of cgraph_local_info for null before attempting to use it.
14130
14131 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
14132
14133         * function.h (struct stack_usage): Remove dynamic_alloc_count field.
14134         (current_function_dynamic_alloc_count): Delete.
14135         * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
14136         (expand_builtin_nonlocal_goto): Remove obsolete comment.
14137         (expand_builtin_update_setjmp_buf): Remove dead code.
14138         * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
14139         * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
14140         support.
14141         * function.c (instantiate_virtual_regs): Likewise.
14142         * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
14143         for a block with a single abnormal incoming edge.
14144         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
14145         (SETJMP_VIA_SAVE_AREA): Delete.
14146         * config/sparc/sparc-protos.h (load_got_register): Declare.
14147         * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
14148         (load_got_register): Make global.
14149         (sparc_frame_pointer_required): Add 'static'.
14150         (sparc_can_eliminate): Likewise.  Call sparc_frame_pointer_required.
14151         (sparc_builtin_setjmp_frame_value): New function.
14152         * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
14153         (save_stack_nonlocal): New expander.
14154         (restore_stack_nonlocal): Likewise.
14155         (nonlocal_goto): Remove modes, adjust predicates and reimplement.
14156         (nonlocal_goto_internal): New insn.
14157         (goto_handler_and_restore): Delete.
14158         (builtin_setjmp_setup): Likewise.
14159         (do_builtin_setjmp_setup): Likewise.
14160         (setjmp): Likewise.
14161         (builtin_setjmp_receiver): New expander.
14162
14163 2011-06-01  David Li  <davidxl@google.com>
14164
14165         PR middle-end/49261
14166         * tree-pretty-print.c (dump_function_header): Format cleanup.
14167
14168 2011-06-01  Kaz Kojima  <kkojima@gcc.gnu.org>
14169
14170         PR target/49238
14171         * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
14172         needed when original operands are used for msw_skip comparison.
14173
14174 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
14175
14176         PR debug/49250
14177         * var-tracking.c (add_uses, add_stores): Don't call
14178         cselib_subst_to_values on ENTRY_VALUE.
14179
14180 2011-06-01  Diego Novillo  <dnovillo@google.com>
14181
14182         * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
14183         output_record_start with LTO_null instead of output_zero.
14184         (lto_output_ts_binfo_tree_pointers): Likewise.
14185         (lto_output_tree): Likewise.
14186         (output_eh_try_list): Likewise.
14187         (output_eh_region): Likewise.
14188         (output_eh_lp): Likewise.
14189         (output_eh_regions): Likewise.
14190         (output_bb): Likewise.
14191         (output_function): Likewise.
14192         (output_unreferenced_globals): Likewise.
14193         * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
14194         instead of NUM_TREE_CODES.
14195         (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
14196         (lto_output_int_in_range): Change << to >> when shifting VAL.
14197
14198 2011-06-01  Diego Novillo  <dnovillo@google.com>
14199
14200         * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
14201         Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
14202
14203 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
14204
14205         PR target/45074
14206         * optabs.h (valid_multiword_target_p): Declare.
14207         * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
14208         doing multi-word operations.
14209         * optabs.c (expand_binop): Likewise.
14210         (expand_doubleword_bswap): Likewise.
14211         (expand_absneg_bit): Likewise.
14212         (expand_unop): Likewise.
14213         (expand_copysign_bit): Likewise.
14214         (multiword_target_p): New function.
14215
14216 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
14217
14218         PR rtl-optimization/48830
14219         PR rtl-optimization/48808
14220         PR rtl-optimization/48792
14221         * reload.c (push_reload): Check contains_reg_of_mode.
14222         * reload1.c (strip_paradoxical_subreg): New function.
14223         (gen_reload_chain_without_interm_reg_p): Use it to handle
14224         paradoxical subregs.
14225         (emit_output_reload_insns, gen_reload): Likewise.
14226
14227 2011-06-01  David Li  <davidxl@google.com>
14228
14229         * predict.c : Change pass name
14230         * ipa.c: Ditto.
14231         * dce.c: Ditto.
14232         * tree-profile.c: Ditto.
14233         * except.c: Ditto.
14234
14235 2011-06-01  David Li  <davidxl@google.com>
14236
14237         * tree-pretty-print.c (dump_function_header): New function.
14238         * final.c (rest_of_clean_state): Use header dumper.
14239         * tree-cfg.c (gimple_dump_cfg): Use header dumper.
14240         * passes.c (pass_init_dump_file): Use header dumper.
14241
14242 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
14243
14244         * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
14245         ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
14246         popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
14247         New functions.
14248         (mem_loc_descriptor): Use them.
14249
14250         * var-tracking.c (create_entry_value): New function.
14251         (vt_add_function_parameter): Use it.
14252
14253 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14254
14255         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
14256         Include <signal.h>, <ucontext.h>.
14257         (sigill_caught): Define.
14258         (sigill_hdlr): New function.
14259         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
14260         insns can be executed.
14261         * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
14262         * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
14263
14264 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14265
14266         * config/t-slibgcc-darwin: Move to ...
14267         * config/t-slibgcc-dummy: ... this.  Clarify comments.
14268         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
14269         powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
14270         (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
14271         (i[34567]86-*-rtems*): Remove extra_parts.  Use i386/t-rtems.
14272         Remove i386/t-crtstuff from tmake_file.
14273         (i[34567]86-*-solaris2*): Remove t-svr4,
14274         t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
14275         t-slibgcc-dummy.
14276         (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
14277         (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
14278         sparc/t-crtfm from tmake_file.
14279         (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
14280         t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
14281         Remove extra_parts.
14282         * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
14283         * config/i386/t-nwld (SHLIB_LINK): Remove.
14284         * config/i386/t-rtems-i386: Rename to ...
14285         * config/i386/t-rtems: ... this.
14286         ($(T)crti.o, $(T)crtn.o): Remove.
14287         (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
14288         (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
14289         (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
14290         * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
14291         EXTRA_MULTILIB_PARTS): Remove.
14292         * config/sparc/t-sol2-64: Likewise.
14293         * config/sparc/t-sol2: Remove.
14294         * config/sparc/t-crtin: Remove.
14295         * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
14296         * config/i386/gmon-sol2.c: Remove.
14297         * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
14298         * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
14299         * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
14300         * config/i386/sol2-gc1.asm: Remove.
14301         * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
14302         * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
14303         * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
14304         * config/t-slibgcc-sld: Remove.
14305
14306 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
14307
14308         * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
14309         base_type_for_mode with op_mode instead of mode.
14310
14311 2011-06-01  Paul Brook  <paul@cpodesourcery.com>
14312
14313         * config/arm/arm-cores.def: Add cortex-r5.  Add DIV flags to
14314         Cortex-A15.
14315         * config/arm/arm-tune.md: Regenerate.
14316         * config/arm/arm-tables.opt: Regenerate.
14317         * config/arm/arm.c (FL_DIV): Rename...
14318         (FL_THUMB_DIV): ... to this.
14319         (FL_ARM_DIV): Define.
14320         (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
14321         (arm_arch_hwdiv): Remove.
14322         (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
14323         (arm_issue_rate): Add cortexr5.
14324         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
14325         __ARM_ARCH_EXT_IDIV__.
14326         (TARGET_IDIV): Define.
14327         (arm_arch_hwdiv): Remove.
14328         (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
14329         * config/arm/arm.md (tune_cortexr4): Add cortexr5.
14330         (divsi3, udivsi3): New patterns.
14331         * config/arm/thumb2.md (divsi3, udivsi3): Remove.
14332         * doc/invoke.texi: Document ARM -mcpu=cortex-r5
14333
14334 2011-06-01  Martin Jambor  <mjambor@suse.cz>
14335
14336         * ipa-utils.c (ipa_dfs_info): New field scc_no.
14337         * ipa-utils.c (searchc): Set scc_no.
14338
14339 2011-06-01  Martin Jambor  <mjambor@suse.cz>
14340
14341         * ipa-utils.c (searchc_env): New field allow_overwritable.
14342         (searchc): do not ignore edges to overwritable nodes if indicated
14343         by env->allow_overwritable.
14344         (ipa_reduced_postorder): Set env.allow_overwritable.
14345
14346 2011-06-01  Richard Guenther  <rguenther@suse.de>
14347
14348         * tree.c (free_lang_data): Do not reset boolean_type_node nor
14349         char_type_node.
14350         * lto-streamer.c (lto_record_common_node): Take node pointer,
14351         do not register types.
14352         (lto_preload_common_nodes): Explicitly skip preloading nodes
14353         that differ between frontends.
14354
14355 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
14356
14357         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
14358         NON_FLOAT_REGS.
14359
14360 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
14361
14362         * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
14363         parameter value for dump. Dump cost on outermost call only.
14364         (rs6000_memory_move_cost): Dump cost on outermost call only.
14365
14366 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
14367
14368         * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
14369         DW_OP_GNU_convert ops.
14370
14371         * cselib.c (promote_debug_loc): Allow l->next non-NULL for
14372         cselib_preserve_constants.
14373         (cselib_lookup_1): If cselib_preserve_constants,
14374         a new VALUE is being created for REG and there is a VALUE for the
14375         same register in wider mode, add another loc with lowpart SUBREG of
14376         the wider VALUE.
14377         (cselib_subst_to_values): Handle ENTRY_VALUE.
14378         * var-tracking.c  (replace_expr_with_values): Return NULL for
14379         ENTRY_VALUE too.
14380         * dwarf2out.c (convert_descriptor_to_signed): New function.
14381         (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
14382         instead of two shifts.
14383         (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
14384         the right mode if needed.
14385         (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
14386         (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
14387         convert_descriptor_to_signed.
14388         (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
14389         BSWAP, ROTATE, ROTATERT>: Handle these rtls.
14390
14391         PR target/48688
14392         * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
14393
14394 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
14395
14396         * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
14397         of X87MODEI12 and SWI48x instead of SSEMODEI24.
14398         (SWI248x): New mode iterator, rename from X87MODEI.
14399         (X87MODEI): Remove mode iterator.
14400         (X87MODEI12): Ditto.
14401         (SSEMODEI24): Ditto.
14402
14403 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
14404
14405         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
14406         * doc/invoke.texi: Document max-vartrack-expr-depth.
14407         * var-tracking.c (EXPR_DEPTH): New.
14408         (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
14409
14410 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
14411
14412         * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
14413         * config/i386/sse.md: Add n to negated FMA pattern names.
14414
14415 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
14416
14417         * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
14418
14419 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
14420
14421         * gengtype-state.c (read_state_params_structs): Initialize previous.
14422
14423 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
14424
14425         * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
14426         (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
14427
14428 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
14429
14430         * config/i386/i386.md (*movtf_internal): Avoid allocating general
14431         registers.  Penalize F*r->o alternative to prevent partial memory
14432         stalls.  Slightly penalize *roF->*r alternative.  Generate SSE
14433         CONST_DOUBLE immediates when optimizing function for size.  Do not move
14434         CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
14435         (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
14436         (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
14437         (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
14438         alternatives.
14439         (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
14440
14441         (fp_register_operand splitters): Use fp_register_operand
14442         constraint.  Do not use FP_REG_P in insn condition.
14443         (any_fp_register_operand splitters): Use any_fp_register_operand
14444         constraint.  Do not use ANY_FP_REG_P in insn condition.
14445
14446 2011-05-31  Jan Hubicka  <jh@suse.cz>
14447
14448         * cgraph.h (cgraph_inline_failed_t): Give enum a name
14449         * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
14450         (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
14451         (lto_output_edge): Use output_enum and var_len_unsigned.
14452         (lto_output_varpool_node): Likewise.
14453         (input_overwrite_node): Do not take resolution parameter;
14454         extract it from a bitpack.
14455         (input_node): Do not read resolution; use input_enum and
14456         var_len_unsigned.
14457         (input_varpool_node): Likewise.
14458         (input_edge): Likewise.
14459         (input_cgraph_1): Likewise.
14460
14461 2011-05-31  Richard Guenther  <rguenther@suse.de>
14462
14463         * gimple.c (gimple_register_canonical_type): Do not register
14464         any types via gimple_register_type.
14465
14466 2011-05-31  Jan Hubicka  <jh@suse.cz>
14467
14468         * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
14469         of thunks.
14470
14471 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
14472
14473         PR rtl-optimization/49235
14474         * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
14475         (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
14476
14477 2011-05-31  Ira Rosen  <ira.rosen@linaro.org>
14478
14479         PR tree-optimization/49093
14480         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
14481         data references.
14482
14483 2011-05-31  Dodji Seketeli  <dodji@redhat.com>
14484
14485         PR debug/49047
14486         * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
14487         for concrete functions containing the code of cloned functions.
14488
14489 2011-05-31  Richard Guenther  <rguenther@suse.de>
14490
14491         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
14492         to ...
14493         (forward_propagate_into_comparison_1): ... this.
14494         (forward_propagate_comparison): Rename to ...
14495         (forward_propagate_into_comparison): ... this.  Split out
14496         real forward propagation code to ...
14497         (forward_propagate_comparison): ... this.
14498         (forward_propagate_into_gimple_cond): Remove looping.
14499         (forward_propagate_into_cond): Likewise.
14500         (simplify_not_neg_expr): Return whether we have done something.
14501         (simplify_gimple_switch): Likewise.
14502         (tree_ssa_forward_propagate_single_use_vars): Rename to ...
14503         (ssa_forward_propagate_and_combine): ... this.  Re-structure
14504         to do a forward forward-propagation walk on BBs and a backward
14505         stmt combining walk on BBs.  Consistently re-scan changed statements.
14506         (pass_forwprop): Adjust.
14507
14508 2011-05-30  Ian Lance Taylor  <iant@google.com>
14509
14510         * godump.c (go_format_type): Correct length of name added to
14511         obstack for anonymous field.
14512
14513 2011-05-30  Kaz Kojima  <kkojima@gcc.gnu.org>
14514
14515         PR target/49186
14516         * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
14517         part of the second operand is 0.
14518
14519 2011-05-30  Uros Bizjak  <ubizjak@gmail.com>
14520
14521         * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
14522         to prevent partial memory stalls.  Do not move CONST_DOUBLEs directly
14523         to memory for !TARGET_MEMORY_MISMATCH_STALL.
14524         (*movdf_internal_rex64): Do not penalize F->r alternative.
14525         (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
14526         memory stalls.  Generate SSE and x87 CONST_DOUBLE immediates only
14527         when optimizing function for size.  Do not move CONST_DOUBLEs
14528         directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
14529         (FP move splitters): Merge {TF,XF,DF}mode splitters.  Do not handle
14530         SUBREGs.  Do not check for MEM_P operands in the insn condition,
14531         check for ANY_FP_REGNO_P instead.
14532         * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
14533         TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
14534         function for speed.
14535         * config/i386/i386.c (ix86_option_override_internal): Do not
14536         set TARGET_INTEGER_DFMODE_MOVES here.
14537
14538 2011-05-30  H.J. Lu  <hongjiu.lu@intel.com>
14539
14540         PR target/49168
14541         * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
14542
14543 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
14544
14545         * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
14546         DW_TAG_rvalue_reference_type even for
14547         -gdwarf-4 -fno-debug-types-section.
14548
14549 2011-05-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14550
14551         PR tree-optimization/46728
14552         * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
14553         (build_and_insert_binop): New.
14554         (gimple_expand_builtin_pow): Reorder args for
14555         build_and_insert_call; use build_and_insert_binop; add more
14556         optimizations for fractional exponents.
14557
14558 2011-05-30  Nathan Froyd  <froydnj@gcc.gnu.org>
14559
14560         PR bootstrap/49190
14561
14562         Revert:
14563         2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
14564
14565         * tree.h (struct tree_identifier): Inherit from tree_typed, not
14566         tree_common.
14567         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
14568         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
14569         TS_BASE instead of TS_COMMON.
14570         * varasm.c (assemble_name): Remove assert.
14571
14572 2011-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
14573
14574         * config.gcc: Keep obselete list sorted.
14575
14576 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
14577             Eric Botcazou  <ebotcazou@adacore.com>
14578
14579         * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
14580         crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
14581         there is a DRAP register and arg_pointer_rtx is the CFA pointer.
14582         (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
14583         (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
14584
14585 2011-05-30  Richard Guenther  <rguenther@suse.de>
14586
14587         * gimple.c (gimple_types_compatible_p_1): Compare record
14588         and union type members properly.
14589
14590 2011-05-30  Richard Guenther  <rguenther@suse.de>
14591
14592         PR tree-optimization/49210
14593         * ipa-split.c (split_function): Care for the case where the call
14594         result is not trivially convertible to the result holding variable.
14595
14596 2011-05-30  Richard Guenther  <rguenther@suse.de>
14597
14598         PR tree-optimization/49218
14599         * tree-vrp.c (adjust_range_with_scev): Properly check whether
14600         overflow occured.
14601
14602 2011-05-30  Richard Guenther  <rguenther@suse.de>
14603
14604         * tree-ssa-forwprop.c (forward_propagate_into_comparison):
14605         New function split out from ...
14606         (forward_propagate_into_gimple_cond): ... here.  Adjust.
14607         (forward_propagate_into_cond): Likewise.
14608         (forward_propagate_comparison): Also propagate into
14609         comparisons on assignment RHS.  Change return value to
14610         behave similar to forward_propagate_into_cond.
14611         (tree_ssa_forward_propagate_single_use_vars): Handle
14612         strict-overflow warnings properly for forward_propagate_comparison.
14613
14614 2011-05-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14615
14616         * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
14617         from plugin linker.
14618         * configure: Regenerate.
14619
14620 2011-05-30  Ira Rosen  <ira.rosen@linaro.org>
14621
14622         PR tree-optimization/49199
14623         * tree-vect-loop.c (vect_is_slp_reduction): Check that the
14624         non-reduction operands are either defined in the loop or by induction.
14625
14626 2011-05-29  Xinliang David Li  <davidxl@google.com>
14627
14628         * opts-global.c (handle_common_deferred_options): Handle new options.
14629         * passes.c (register_one_dump_file): Call register_pass_name.
14630         (execute_one_pass): Check explicit enable/disable flag.
14631         (passr_hash): New function.
14632         (passr_eq): Ditto.
14633         (register_pass_name): Ditto.
14634         (get_pass_by_name): Ditto.
14635         (pass_hash): Ditto.
14636         (pass_eq): Ditto.
14637         (enable_pass): Ditto.
14638         (disable_pass): Ditto.
14639         (is_pass_explicitly_enabled_or_disabled): Ditto.
14640
14641 2011-05-29  Uros Bizjak  <ubizjak@gmail.com>
14642
14643         * config/i386/i386.md (*movoi_internal_avx): Use
14644         standard_sse_constant_opcode for alternative 0.
14645         (*movti_internal_sse): Ditto.
14646         (*movti_internal_rex64): Use standard_sse_constant_opcode for
14647         alternative 2.
14648         (*movdi_internal_rex64): Use standard_sse_constant_opcode for
14649         sselog1 type moves.
14650         (*movsi_internal): Ditto.
14651         (*movdi_internal): Ditto.  Add ssecvt type moves.
14652
14653 2011-05-29  Eric Botcazou  <ebotcazou@adacore.com>
14654
14655         PR target/48830
14656         * rtlanal.c (simplify_subreg_regno): Adjust comment.
14657
14658 2011-05-29  Jakub Jelinek  <jakub@redhat.com>
14659
14660         PR rtl-optimization/49095
14661         * config/i386/predicates.md (plusminuslogic_operator): New predicate.
14662         * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
14663
14664 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
14665
14666         PR target/43995
14667         * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
14668         recurse_p argument.  Only follow register copies if it is set,
14669         and prevent mips_find_pic_call_symbol from recursing.
14670         (mips_find_pic_call_symbol): Add a recurse_p argument.
14671         Pass it to mips_pic_call_symbol_from_set.
14672         (mips_annotate_pic_calls): Update accordingly.
14673
14674 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
14675
14676         * emit-rtl.c (try_split): Use a loop to search for
14677         NOTE_INSN_CALL_ARG_LOCATIONs.
14678
14679 2011-05-29  Richard Guenther  <rguenther@suse.de>
14680
14681         PR tree-optimization/49217
14682         * ipa-pure-const.c (propagate_pure_const): Fix typos.
14683
14684 2011-05-28  Jan Hubicka  <jh@suse.cz>
14685
14686         * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
14687         length.
14688         (string_slot_free): Remove
14689         (create_output_block): Initialize obstack.
14690         (destroy_output_block): Free obstack.
14691         (lto_string_index): Add PERSISTENT parameter; do not duplicate
14692         the string unless it needs to be added into the hash.
14693         (lto_output_string_with_length): Add persistent attribute;
14694         handle NULL strings.
14695         (lto_output_string): Add PERSISTENT parameter.
14696         (output_string_cst, output_identifier): Simplify.
14697         (lto_output_location_bitpack): Update.
14698         (lto_output_builtin_tree): Update.
14699         * lto-streamer.h (struct output_block): Add obstack.
14700         (lto_output_string, lto_output_string_with_length): Remove
14701         declarations; functions are static now.
14702
14703 2011-05-28  Jan Hubicka  <jh@suse.cz>
14704
14705         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
14706         pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
14707         pack_ts_function_decl_value_fields, lto_output_builtin_tree,
14708         output_cfg, output_gimple_stmt): Use enum and variable length i/o.
14709         * lto-streamer-in.c (input_cfg, input_gimple_stmt,
14710         unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
14711         unpack_ts_decl_with_vis_value_fields,
14712         unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
14713         lto_get_builtin_tree): Use enum and variable length i/o.
14714         * basic-block.h (profile_status_d): Add PROFILE_LAST.
14715         * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
14716         New functions.
14717         (bp_pack_enum, bp_unpack_enum): New macros.
14718
14719 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
14720
14721         * genrecog.c: Remove redundant forward declarations.
14722
14723 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
14724
14725         * config.gcc: Deprecate mips*-*-openbsd*.
14726
14727 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
14728
14729         PR bootstrap/49195
14730         * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
14731         for match_op_dup.
14732
14733 2011-05-27  Andrew Pinski  <pinskia@gmail.com>
14734
14735         PR middle-end/48981
14736         * gengtype.c (vec_prefix_type): New function.
14737         (note_def_vec): Use vec_prefix_type and change the length
14738         attribute to be based on the prefix.
14739         * vec.c: Include coretypes.h before vec.h.
14740         (struct vec_prefix): Remove.
14741         (vec_gc_p_reserve): Change the offsetof to sizeof.
14742         (vec_gc_p_reserve_exact): Likewise.
14743         (vec_heap_p_reserve): Likewise.
14744         (vec_heap_p_reserve_exact): Likewise.
14745         (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
14746         (vec_stack_p_reserve): Change the offsetof to sizeof.
14747         (vec_stack_p_reserve_exact): Likewise.
14748         * vec.h (struct vec_prefix): New struct definition.
14749         (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
14750         (VEC_T_GTY(T,B)): Likewise.
14751         (DEF_VEC_FUNC_P(T)): Use prefix field.
14752         (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
14753         (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
14754
14755 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14756
14757         PR tree-optimization/46728
14758         * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
14759         (powi_as_mults): Add gimple_set_location.
14760         (build_and_insert_call): New.
14761         (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
14762         0.5, 0.25, 0.75, 1./3., or 1./6.
14763
14764 2011-05-27  Alexander Monakov  <amonakov@ispras.ru>
14765
14766         * doc/contrib.texi: Update copyright years.
14767         (Contributors): Add Zdenek Sojka.
14768
14769 2011-05-27  Nathan Froyd  <froydnj@codesourcery.com>
14770
14771         * c-decl.c (c_push_function_context): Copy the current statement
14772         list stack.
14773         (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
14774         (finish_struct): Call building_stmt_list_p instead of checking
14775         cur_stmt_list.
14776         * c-parser.c (c_parser_postfix_expression): Likewise.
14777         * c-typeck.c (c_end_compound_stmt): Likewise.
14778         * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
14779         * tree-iterator.c (stmt_list_cache): Change to a VEC.
14780         (alloc_stmt_list): Adjust for stmt_list_cache's new type.
14781         (free_stmt_list): Likewise.
14782         * tree.h (struct tree_statement_list): Include typed_tree instead
14783         of tree_common.
14784         * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
14785         as TS_TYPED instead of TS_COMMON.
14786
14787 2011-05-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14788             Uros Bizjak  <ubizjak@gmail.com>
14789
14790         * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
14791         (HAVE_AS_IX86_TLSGDPTL): Define.
14792         (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
14793         (HAVE_AS_IX86_TLSLDMPLT): Define.
14794         * configure: Regenerate.
14795         * config.in: Regenerate.
14796         * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
14797         * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
14798         TARGET_SUN_TLS, use @tlsgdplt or @plt.
14799         (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
14800         (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
14801         @tlsldmplt or @plt.
14802         (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
14803
14804 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
14805
14806         * sched-int.h (struct _haifa_deps_insn_data): New members cond
14807         and reverse_cond.
14808         (INSN_COND, INSN_REVERSE_COND): New macros.
14809         * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
14810         once.
14811         (sched_get_condition_with_rev): Cache the results, and look them up
14812         if possible.
14813         (sched_analyze_insn): Destroy INSN_COND of previous insns if they
14814         are clobbered by the current insn.
14815         * target.def (exposed_pipline): New sched data hook.
14816         * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
14817         * doc/tm.texi: Regenerate.
14818
14819 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14820
14821         PR tree-optimization/49170
14822         * tree-ssa-math-opts.c (execute_cse_sincos):  Add checks for
14823         sincos or cexp.
14824
14825 2011-05-27  Richard Guenther  <rguenther@suse.de>
14826
14827         PR middle-end/49189
14828         * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
14829         of comparisons.
14830
14831 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
14832
14833         * haifa-sched.c (sched_scan_info): Remove.
14834         (schedule_block): Call sched_extend_luids rather than sched_init_luids
14835         with NULL args.
14836         (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
14837         Remove functions.
14838         (sched_scan): Remove.
14839         (sched_extend_luids): Renamed from luids_extend_insn and no longer
14840         static.  All callers changed.
14841         (sched_init_insn_luid): Renamed from luids_init_insn and no longer
14842         static.  All callers changed.
14843         (sched_init_luids): Remove all arguments except the first.  All
14844         callers changed.  Don't use sched_scan.
14845         (haifa_init_h_i_d): Likewise.
14846         (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
14847         manually rather than using sched_init_luids.  Likewise with
14848         extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
14849         * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
14850         rather than sched_init_luids with NULL args.
14851         * sel-sched-ir.c (new_insns): Remove variable.
14852         (sched_scan): New static function, previously in haifa-sched.c.  Remove
14853         all arguments but the first two; all callers changed.
14854         (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
14855         rather than sched_init_luids.
14856         (sel_init_bbs): Remove second argument.  All callers changed.
14857         (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
14858         with NULL arguments.
14859         (create_insn_rtx_from_pattern): Likewise.
14860         * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
14861         * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
14862         (sched_init_insn_luid, sched_extend_luids): Declare.
14863         (sched_scan_info_def, sched_scan_info, sched_scan): Remove
14864         declarations.
14865
14866 2011-05-27  Richard Guenther  <rguenther@suse.de>
14867
14868         PR middle-end/49177
14869         * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
14870         A CMP B ? (T) true : (T) false for non-integral types T again.
14871
14872 2011-05-27  Jan Hubicka  <jh@suse.cz>
14873
14874         * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
14875         so 0 means NULL string.
14876         (lto_output_string_with_length): ... here.
14877         (lto_output_string, output_string_cst, output_identifier): Update
14878         handling of NULL strings.
14879         (lto_output_location_bitpack): New function.
14880         (lto_output_location): Use it.
14881         (lto_output_tree_ref): Use output_record_start.
14882         (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
14883         len values.
14884         * lto-streamer-in.c (string_for_index): Break out from ...; offset
14885         values by 1.
14886         (input_string_internal): ... here;
14887         (input_string_cst, input_identifier, lto_input_string): Update handling
14888         of NULL strings.
14889         (lto_input_location_bitpack): New function
14890         (lto_input_location): Use it.
14891         (unpack_ts_type_common_value_fields): Pack align & alias in var len
14892         values.
14893         * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
14894         bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
14895         (bp_pack_value): Sanity check the value range.
14896         * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
14897         New functions.
14898         * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
14899         New functions.
14900
14901 2011-05-27  Hariharan Sandanagobalane  <hariharan@picochip.com>
14902
14903         * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
14904         call_arg_location instructions down the floor.
14905
14906 2011-05-26  Vladimir Makarov  <vmakarov@redhat.com>
14907
14908         PR rtl-optimization/49154
14909         * ira.c (setup_pressure_classes): Process class without sublcasses
14910         as a candidate for pressure classes.
14911
14912 2011-05-26  Richard Sandiford  <rdsandiford@googlemail.com>
14913
14914         PR rtl-optimization/48575
14915         * genrecog.c (position_type): New enum.
14916         (position): New structure.
14917         (decision): Use position structure instead of a string.
14918         (root_pos, peep2_insn_pos_list): New variables.
14919         (next_position, compare_positions): New functions.
14920         (new_decision): Use position structures instead of strings.
14921         (maybe_both_true): Likewise.
14922         (change_state): Likewise.
14923         (write_tree): Likewise.
14924         (make_insn_sequence): Likewise.
14925
14926 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
14927
14928         * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
14929         TS_BASE instead of TS_COMMON.
14930         (find_decls_types_r): Check for TS_TYPED structure before looking at
14931         TREE_TYPE.
14932         * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
14933         Add chain field.
14934         (BLOCK_CHAIN): Use new chain field.
14935
14936 2011-05-26  Pat Haugen  <pthaugen@us.ibm.com>
14937
14938         * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
14939         moves expensive on Power7 also.
14940
14941 2011-05-26  Richard Guenther  <rguenther@suse.de>
14942
14943         * fold-const.c (fold_unary_loc): Remove bogus code.
14944
14945 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
14946
14947         * tree.h (struct tree_identifier): Inherit from tree_typed, not
14948         tree_common.
14949         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
14950         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
14951         TS_BASE instead of TS_COMMON.
14952         * varasm.c (assemble_name): Remove assert.
14953
14954 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
14955
14956         * Makefile.in (srcdirify): Change order so that libgcc_objdir is
14957         substituted first.
14958         * libgcc-std.ver: Delete file.
14959
14960 2011-05-26  Richard Guenther  <rguenther@suse.de>
14961
14962         PR tree-optimization/48702
14963         * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
14964         only when we know the base address is within bounds.
14965         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
14966         assume the base address of TARGET_MEM_REFs is in bounds.
14967
14968 2011-05-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14969
14970         PR target/49099
14971         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
14972         declaration in TARGET_SOLARIS.
14973
14974 2011-05-26  Hariharan Sandanagobalane  <hariharan@picochip.com>
14975
14976         * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
14977         The instruction is then expanded explicitly.
14978         (supported_compare): Callable instruction.
14979         (compare): Likewise.
14980
14981 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
14982
14983         PR c++/49165
14984         * gimplify.c (shortcut_cond_r): Don't special case
14985         COND_EXPRs if they have void type on one of their arms.
14986
14987 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
14988
14989         * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
14990         to reduce duplication, and to achieve a slightly more logical order
14991         of operations.
14992
14993 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
14994
14995         PR tree-optimization/49161
14996         * tree-vrp.c (struct case_info): New type.
14997         (compare_case_labels): Sort case_info structs instead of
14998         trees, and not primarily by CASE_LABEL uids but by
14999         label_for_block indexes.
15000         (find_switch_asserts): Put case labels into struct case_info
15001         array instead of TREE_VEC, adjust sorting, compare label_for_block
15002         values instead of CASE_LABELs.
15003
15004 2011-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
15005
15006         * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
15007         ("orndi3_neon"): Likewise.
15008         ("bic<mode>3_neon"): Likewise.
15009
15010 2011-05-26  Ira Rosen  <ira.rosen@linaro.org>
15011
15012         PR tree-optimization/49038
15013         * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
15014         Ensure at least one epilogue iteration if required by data
15015         accesses with gaps.
15016         * tree-vectorizer.h (struct _loop_vec_info): Add new field
15017         to mark loops that require peeling for gaps.
15018         * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
15019         (vect_get_known_peeling_cost): Take peeling for gaps into
15020         account.
15021         (vect_transform_loop): Generate epilogue if required by data
15022         access with gaps.
15023         * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
15024         loop as requiring an epilogue if there are gaps in the end of
15025         the strided group.
15026
15027 2011-05-25  Ian Lance Taylor  <iant@google.com>
15028
15029         * godump.c (go_format_type): Output the first field with a usable
15030         Go type, if any.
15031
15032 2011-05-25  Ian Lance Taylor  <iant@google.com>
15033
15034         * godump.c (go_format_type): Check for invalid type names, pointer
15035         target types, and struct field types.
15036
15037 2011-05-25  Jason Merrill  <jason@redhat.com>
15038
15039         * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
15040
15041 2011-05-25  Uros Bizjak  <ubizjak@gmail.com>
15042
15043         * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
15044
15045 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
15046
15047         * config/i386/i386.md (*movqi_extv_1)): Put back
15048         "register_operand" check in "type" calculation.
15049         (*movqi_extzv_2): Likewise.
15050
15051 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
15052
15053         * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
15054
15055 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
15056
15057         PR bootstrap/49160
15058         * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
15059         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
15060         __divxc3, __divtc3): Wrap definitions in #ifndef.
15061
15062 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
15063
15064         PR target/49142
15065         * config/i386/i386.md (*movqi_extv_1_rex64): Remove
15066         "register_operand" check and replace q_regs_operand with
15067         QIreg_operand in "type" calculation.
15068         (*movqi_extv_1): Likewise.
15069         (*movqi_extzv_2_rex64): Likewise.
15070         (*movqi_extzv_2): Likewise.
15071
15072         * config/i386/predicates.md (QIreg_operand): New.
15073
15074 2011-05-25  Richard Guenther  <rguenther@suse.de>
15075
15076         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
15077         type-based offset disambiguation, streamline MEM_REF and
15078         TARGET_MEM_REF handling.
15079
15080 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
15081
15082         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
15083         (bdesc_special_args): Add pause intrinsic.
15084
15085         * config/i386/i386.md (UNSPEC_PAUSE): New.
15086         (pause): Likewise.
15087         (*pause): Likewise.
15088         * config/i386/ia32intrin.h (__pause): Likewise.
15089
15090         * doc/extend.texi (X86 Built-in Functions): Add documentation for
15091         pause intrinsic.
15092
15093 2011-05-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15094
15095         PR tree-optimization/46728
15096         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
15097         (execute_cse_sincos): Add switch case for BUILT_IN_POW.
15098
15099 2011-05-25  Nathan Froyd  <froydnj@codesourcery.com>
15100
15101         * tree.h (struct tree_exp): Inherit from struct tree_typed.
15102         * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
15103         instead of TS_COMMON.
15104
15105 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
15106
15107         * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
15108         LIBGCC2_GNU_PREFIX is defined.
15109         (__N): New macro.
15110         (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
15111         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
15112         __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
15113         __clz_tab): Define using __N.
15114         (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
15115         COMPAT_SIMODE_TRAPPING_ARITHMETIC.
15116         * target.def (libfunc_gnu_prefix): New hook.
15117         * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
15118         (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
15119         * doc/tm.texi: Regenerate.
15120         * system.h (LIBGCC2_GNU_PREFIX): Poison.
15121         * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
15122         account.
15123         (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
15124         (init_optabs): Likewise for the bswap libfuncs.
15125         * tree.c (build_common_builtin_nodes): Likewise for complex multiply
15126         and divide.
15127         * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
15128         * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
15129         * libgcc-std.ver: Remove.
15130         * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
15131         * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
15132         libgcc-std.ver.
15133         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
15134         * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
15135         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
15136         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
15137         * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
15138         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
15139         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
15140         * config/fixed-bit.h (FIXED_OP): Define differently depending on
15141         LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
15142         (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
15143
15144 2011-05-25  Jan Hubicka  <jh@suse.cz>
15145
15146         * lto-streamer-out.c (output_record_start): Use lto_output_enum
15147         (lto_output_tree): Use output_record_start.
15148         * lto-streamer-in.c (input_record_start): Use lto_input_enum
15149         (lto_get_pickled_tree): Use input_record_start.
15150         * lto-section-in.c (lto_section_overrun): Turn into fatal error.
15151         (lto_value_range_error): New function.
15152         * lto-streamer.h (lto_value_range_error): Declare.
15153         (lto_output_int_in_range, lto_input_int_in_range): New functions.
15154         (lto_output_enum, lto_input_enum): New macros.
15155
15156 2011-05-25  Eric Botcazou  <ebotcazou@adacore.com>
15157
15158         * common.opt (flag_stack_usage_info): New variable.
15159         (-Wstack-usage): New option.
15160         * doc/invoke.texi (Warning options): Document -Wstack-usage.
15161         * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
15162         <OPT_fstack_usage>: Likewise.
15163         * toplev.c (output_stack_usage): Handle -Wstack-usage.
15164         * calls.c (expand_call): Test flag_stack_usage_info variable instead
15165         of flag_stack_usage.
15166         (emit_library_call_value_1): Likewise.
15167         * explow.c (allocate_dynamic_stack_space): Likewise.
15168         * function.c (instantiate_virtual_regs ): Likewise.
15169         (prepare_function_start): Likewise.
15170         (rest_of_handle_thread_prologue_and_epilogue): Likewise.
15171         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
15172         * config/arm/arm.c (arm_expand_prologue): Likewise.
15173         (thumb1_expand_prologue): Likewise.
15174         * config/avr/avr.c (expand_prologue): Likewise.
15175         * config/i386/i386.c (ix86_expand_prologue): Likewise.
15176         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
15177         * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
15178         * config/mips/mips.c (mips_expand_prologue): Likewise.
15179         * config/pa/pa.c (hppa_expand_prologue): Likewise.
15180         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
15181         * config/s390/s390.c (s390_emit_prologue): Likewise.
15182         * config/sh/sh.c (sh_expand_prologue): Likewise.
15183         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
15184         * config/spu/spu.c (spu_expand_prologue): Likewise.
15185
15186 2011-05-25  Richard Guenther  <rguenther@suse.de>
15187
15188         * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
15189         (gimple_canonical_types_compatible_p): Likewise.
15190
15191 2011-05-25  Jan Hubicka  <jh@suse.cz>
15192
15193         PR middle-end/49062
15194         * ipa.c (function_and_variable_visibility): Only add to same
15195         comdat group list if DECL_ONE_ONLY.
15196
15197 2011-05-25  Andrey Belevantsev  <abel@ispras.ru>
15198
15199         PR rtl-optimization/49014
15200         * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
15201
15202 2011-05-25  Jakub Jelinek  <jakub@redhat.com>
15203
15204         PR target/49128
15205         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
15206
15207 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
15208
15209         PR rtl-optimization/48757
15210         * ira-build.c (loop_with_eh_edge_p): Rename to
15211         loop_with_complex_edge_p, check edges on complexity, make function
15212         conditional.
15213         (mark_loops_for_removal): Make call of loop_with_complex_edge_p
15214         conditional.
15215
15216 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
15217
15218         * config/sparc/sparc.c (sparc_option_override): If not set by the user,
15219         force flag_ira_share_save_slots to 0.
15220
15221 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
15222
15223         * var-tracking.c (compute_cfa_pointer): Adjust head comment.
15224         (vt_initialize): Set PROLOGUE_BB unconditionally.
15225         Add block comment about CFA_BASE_RTX machinery.
15226         Reset FP_CFA_OFFSET to -1 on all invalid paths.
15227         Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
15228
15229 2011-05-24  Nicola Pero  <nicola.pero@meta-innovation.com>
15230
15231         PR objc/48187
15232         * c-parser.c (c_parser_objc_class_instance_variables): More robust
15233         parsing of syntax error in ObjC instance variable lists.  In
15234         particular, avoid an infinite loop if there is a stray ']'.
15235         Updated error message.
15236
15237 2011-05-24  Ian Lance Taylor  <iant@google.com>
15238
15239         * godump.c (go_define): Don't accept a string immediately after
15240         another operand.
15241
15242 2011-05-24  Ian Lance Taylor  <iant@google.com>
15243
15244         * godump.c (struct godump_container): Add invalid_hash field.
15245         (go_format_type): Return false if type is found in invalid_hash.
15246         (go_output_typedef): Add invalid type to invalid_hash.
15247         (go_finish): Create and delete invalid_hash.
15248
15249 2011-05-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15250
15251         PR tree-optimization/46728
15252         * tree-ssa-math-opts.c (powi_table): New.
15253         (powi_lookup_cost): New.
15254         (powi_cost): New.
15255         (powi_as_mults_1): New.
15256         (powi_as_mults): New.
15257         (gimple_expand_builtin_powi): New.
15258         (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
15259         (gate_cse_sincos): Remove sincos/cexp restriction.
15260
15261 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15262
15263         PR target/3746
15264         * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
15265         mips-tdump native.
15266         * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
15267         * mips-tdump.c: Likewise.
15268
15269 2011-05-24  H.J. Lu  <hongjiu.lu@intel.com>
15270
15271         PR target/49128
15272         * config/i386/driver-i386.c (host_detect_local_cpu): Always
15273         add -mno-XXX.  Handle FMA.
15274
15275 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
15276
15277         PR rtl-optimization/48633
15278         * ira-build.c (loop_with_eh_edge_p): New function.
15279         (mark_loops_for_removal): Use it.
15280
15281 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
15282
15283         PR rtl-optimization/48971
15284         * ira.c (setup_pressure_classes): Don't check register move cost
15285         for classes with one registers.  Don't add pressure class if there
15286         is a pressure class with the same available hard registers.
15287         Check contains_reg_of_mode.  Fix a typo in collecting
15288         temp_hard_regset.  Ignore hard registers not belonging to a class.
15289
15290 2011-05-24  Uros Bizjak  <ubizjak@gmail.com>
15291
15292         PR target/49133
15293         * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
15294
15295 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
15296             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15297
15298         PR gcov-profile/48845
15299         * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
15300
15301 2011-05-24  Richard Guenther  <rguenther@suse.de>
15302
15303         * gimple.c (compare_type_names_p): Remove for_completion_p arg.
15304         (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
15305         (gimple_types_compatible_p_1): Adjust.
15306         (iterative_hash_canonical_type): Do not bother about complete vs.
15307         incomplete types.
15308         (gimple_canonical_types_compatible_p): Likewise.
15309
15310 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15311
15312         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
15313
15314 2011-05-24  Richard Guenther  <rguenther@suse.de>
15315
15316         PR bootstrap/49078
15317         * gimple.c (gimple_register_canonical_type): Revert
15318         previous change.
15319         * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
15320         does not for a tree for the case where it matters.  Cache
15321         pointer-type alias-sets.
15322
15323 2011-05-24  Joseph Myers  <joseph@codesourcery.com>
15324
15325         * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
15326         (OBJS): Remove options.o, opts-common.o and prefix.o.
15327         (OBJS-libcommon-target): New.
15328         (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
15329         (BACKEND): Include libcommon-target.a.
15330         (MOSTLYCLEANFILES): Include libcommon-target.a.
15331         (libcommon-target.a): New.
15332         (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
15333         prefix.o.
15334
15335 2011-05-23  Joseph Myers  <joseph@codesourcery.com>
15336
15337         * optc-save-gen.awk: New.  Based on optc-gen.awk.  Don't generate
15338         parts of output shared with the driver.
15339         * optc-gen.awk: Don't generate parts of output not shared with the
15340         driver.
15341         * opth-gen.awk: Remove GCC_DRIVER conditionals.
15342         * doc/options.texi (SourcerInclude): Mention options-save.c.
15343         * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
15344         (OBJS): Add options-save.o.
15345         (options-save.c, options-save.o): New.
15346         (options.o): Update dependencies.
15347         (gcc-options.o): Remove.
15348         (mostlyclean): Remove options-save.c.
15349
15350 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
15351
15352         PR debug/49032
15353         * dbxout.c: Include cgraph.h.
15354         (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
15355         and without value expr, return NULL if no varpool node exists for
15356         it or if it is not needed.
15357         * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
15358
15359         PR c/49120
15360         * c-decl.c (start_decl): Convert expr to void_type_node.
15361
15362 2011-05-23  Richard Sandiford  <rdsandiford@googlemail.com>
15363
15364         PR rtl-optimization/48826
15365         * emit-rtl.c (try_split): When splitting a call that is followed
15366         by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
15367
15368 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
15369
15370         * cfgexpand.c (expand_debug_expr): For unused non-addressable
15371         parameters passed in memory prefer using DECL_INCOMING_RTL over
15372         the pseudos it will be copied into.
15373
15374 2011-05-23  H.J. Lu  <hongjiu.lu@intel.com>
15375
15376         PR target/47315
15377         * config/i386/i386.c (ix86_option_override_internal): Save the
15378         initial options after checking vzeroupper.
15379
15380 2011-05-23  David Li  <davidxl@google.com>
15381
15382         PR tree-optimization/48988
15383         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
15384         Initialize has_valid_pred for each pred chain.
15385
15386 2011-05-23  Richard Guenther  <rguenther@suse.de>
15387
15388         * gimple.c (gimple_types_compatible_p_1): Always compare type names.
15389         (iterative_hash_gimple_type): Always hash type names.
15390
15391 2011-05-23  Nathan Froyd  <froydnj@codesourcery.com>
15392
15393         * c-typeck.c (build_function_call_vec): Tweak call to
15394         check_function_arguments.
15395
15396 2011-05-23  Richard Guenther  <rguenther@suse.de>
15397
15398         PR tree-optimization/49115
15399         * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
15400         is not necessarily carried out, do not claim it kills the ref.
15401         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
15402
15403 2011-05-23  Richard Guenther  <rguenther@suse.de>
15404
15405         PR middle-end/15419
15406         * builtins.c (fold_builtin_memory_op): Be less restrictive about
15407         what pointer types we accept for folding.
15408
15409 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15410
15411         * gthr-gnat.c: Remove.
15412         * gthr-gnat.h: Remove.
15413         * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
15414         * config/t-freebsd (LIB2ADDEH): Likewise.
15415         * config/t-linux (LIB2ADDEH): Likewise.
15416         * config/t-sol2 (LIB2ADDEH): Likewise.
15417         * config/ia64/t-vms (LIB2ADDEH): Likewise.
15418         * configure.ac (target_thread_file): Remove gnat handling.
15419         * configure: Regenerate.
15420         * doc/install.texi (Configuration, --enable-threads): Remove gnat.
15421
15422 2011-05-23  Tristan Gingold  <gingold@adacore.com>
15423             Eric Botcazou  <ebotcazou@adacore.com>
15424
15425         * gcov.c (create_file_names): If no object directory is specified,
15426         keep the directory of the file.
15427
15428 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15429
15430         * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
15431         * configure: Regenerate.
15432
15433 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
15434
15435         PR middle-end/48973
15436         * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
15437         failed and the comparison has a single bit signed type, use
15438         constm1_rtx instead of const1_rtx for true value.
15439         (do_store_flag): If ops->type is single bit signed type, disable
15440         signel bit test optimization and pass -1 instead of 1 as last
15441         parameter to emit_store_flag_force.
15442
15443 2011-05-23  Tom de Vries  <tom@codesourcery.com>
15444
15445         PR target/45098
15446         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
15447         function.
15448         (infer_loop_bounds_from_undefined): Use new function.
15449
15450 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
15451
15452         * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
15453         (ASM_SPEC): Add a -O* option here.  Pass -O0 for -noasmopt,
15454         -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
15455         and -O0 otherwise.
15456         (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
15457
15458 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
15459
15460         * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
15461         (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
15462         returns true.
15463
15464 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
15465
15466         * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
15467
15468 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
15469
15470         * config/sparc/sparc.c (sparc_delegitimize_address): Handle
15471         UNSPEC_MOVE_PIC pattern.
15472
15473 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
15474
15475         * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
15476         (sparc-*-rtems*): Likewise.
15477         (sparc64-*-elf*): Likewise.
15478         (sparc64-*-rtems*): Likewise.
15479         (sparc*-*-solaris2*): Likewise.  Remove crti.o crtn.o extra parts.
15480         * config/sparc/t-crtin: New file.
15481         * config/sparc/t-sol2 (crti.o): Delete rule.
15482         (crtn.o): Likewise.
15483         * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
15484         * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
15485         * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
15486         (ENDFILE_SPEC): Add crtn.o.
15487
15488 2011-05-22  Tom de Vries  <tom@codesourcery.com>
15489
15490         PR middle-end/48689
15491         * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
15492         CODE_CONTAINS_STRUCT (TS_COMMON).
15493
15494 2011-05-22  Jakub Jelinek  <jakub@redhat.com>
15495
15496         PR middle-end/49029
15497         * expmed.c (extract_fixed_bit_field): Test whether target can be used
15498         only after deciding which mode to use.
15499
15500 2011-05-22  Tom de Vries  <tom@codesourcery.com>
15501
15502         PR target/45098
15503         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
15504         for call to get_shiftadd_cost.
15505
15506 2011-05-22  Uros Bizjak  <ubizjak@gmail.com>
15507
15508         PR target/49104
15509         * config/i386/cpuid.h (bit_MMXEXT): New define.
15510
15511 2011-05-22  Nick Clifton  <nickc@redhat.com>
15512
15513         * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
15514         initialisation of non-existant args[2] element.  Use args[] array
15515         not arg[] array to pass arguments to build_function_type_list.
15516
15517 2011-05-22  Ira Rosen  <ira.rosen@linaro.org>
15518
15519         PR tree-optimization/49087
15520         * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
15521
15522 2011-05-21  Jason Merrill  <jason@redhat.com>
15523
15524         PR c++/49092
15525         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
15526         static storage duration.
15527
15528 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
15529
15530         * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
15531         frame pointer.
15532
15533 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
15534
15535         * config/sparc/sparc.c (eligible_for_return_delay): Do not return
15536         false if there are call-saved registers here...
15537         (sparc_can_use_return_insn_p): ...but here instead.
15538         (save_or_restore_regs): Fix thinko.
15539         (sparc_expand_prologue): Use current_function_is_leaf.
15540         (sparc_frame_pointer_required): Likewise.
15541
15542 2011-05-21  Nick Clifton  <nickc@redhat.com>
15543
15544         PR target/49098
15545         * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
15546
15547 2011-05-21  Nicola Pero  <nicola.pero@meta-innovation.com>
15548
15549         * gengtype.c (walk_type): Implemented "atomic" GTY option.
15550         * doc/gty.texi (GTY Options): Document "atomic" GTY option.
15551
15552 2011-05-21  Joseph Myers  <joseph@codesourcery.com>
15553
15554         * opt-read.awk: New.  Split out of optc-gen.awk and opth-gen.awk.
15555         * optc-gen.awk: Move common code to opt-read.awk.
15556         * opth-gen.awk: Likewise.
15557         * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
15558
15559 2011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
15560
15561         * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
15562
15563 2011-05-20  Tom de Vries  <tom@codesourcery.com>
15564
15565         PR target/45098
15566         * tree-ssa-loop-ivopts.c: Include expmed.h.
15567         (get_shiftadd_cost): New function.
15568         (force_expr_to_var_cost): Declare forward.  Use get_shiftadd_cost.
15569
15570 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
15571
15572         PR bootstrap/49086
15573         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
15574         for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
15575
15576 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
15577
15578         * Makefile.in: Update comment referring to $(OBJS-common).
15579
15580 2011-05-20  Ian Lance Taylor  <iant@google.com>
15581
15582         * godump.c (go_output_typedef): Put enum constants in the macro
15583         hash table to avoid duplicate Go const definitions.
15584
15585 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
15586
15587         * Makefile.in (LIBDEPS): Add libcommon.a.
15588         (LIBS): Likewise.
15589         (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
15590         (OBJS-common): Remove diagnostic.o, input.o, intl.o,
15591         pretty-print.o and version.o.
15592         (OBJS-libcommon): New.
15593         (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
15594         (BACKEND): Add libcommon.a.
15595         (MOSTLYCLEANFILES): Likewise.
15596         (libcommon.a): New.
15597         (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
15598         (cpp$(exeext)): Likewise.
15599         (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
15600         pretty-print.o and input.o.
15601         (lto-wrapper$(exeext)): Don't explicitly use intl.o.
15602         (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
15603         (errors.o): Remove.
15604         (mips-tfile): Don't explicitly use version.o.
15605         (mips-tdump): Likewise.
15606         (gcov.o): Depend on $(DIAGNOSTIC_H).
15607         (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
15608         (GCOV_OBJS): Remove intl.o, version.o and errors.o.
15609         (GCOV_DUMP_OBJS): Remove version.o and errors.o.
15610         * gcov-dump.c: Include intl.h and diagnostic.h.
15611         (main): Initialize diagnostics.
15612         * gcov.c: Include diagnostic.h.
15613         (fnotice): Remove.
15614         (main): Initialize diagnostics.
15615         * lto-wrapper.c: Include diagnostic.h.
15616         (main): Initialize diagnostics.
15617
15618 2011-05-20  Michael Matz  <matz@suse.de>
15619
15620         * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
15621
15622 2011-05-20  Michael Matz  <matz@suse.de>
15623             Richard Guenther  <rguenther@suse.de>
15624
15625         * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
15626         use lto_streamer_cache_append directly instead of returning a VEC.
15627         (preload_common_node): Remove.
15628         (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
15629         track seen nodes.
15630         (lto_streamer_cache_create): Call lto_preload_common_nodes.
15631
15632 2011-05-20  Richard Guenther  <rguenther@suse.de>
15633
15634         PR tree-optimization/49079
15635         * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
15636         MEM_REFs correctly for the trailing array access detection.
15637         Special case constants the same way as decls for overall size
15638         constraining.
15639
15640 2011-05-20  Uros Bizjak  <ubizjak@gmail.com>
15641
15642         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
15643         argument expansion.
15644
15645 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
15646
15647         PR tree-optimization/49073
15648         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
15649         PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
15650         * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
15651
15652 2011-05-20  Richard Guenther  <rguenther@suse.de>
15653
15654         PR middle-end/48849
15655         * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
15656         of pointer types the same way the middle-end does.
15657
15658 2011-05-20  Richard Guenther  <rguenther@suse.de>
15659
15660         * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
15661         or pointer-to chains.  Delay all fixup to uniquify_nodes.
15662
15663 2011-05-19  Quentin Neill  <quentin.neill@amd.com>
15664
15665         * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
15666         (fma4_fmaddsub): Likewise
15667
15668 2011-05-19  Jan Hubicka  <jh@suse.cz>
15669
15670         * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
15671         (GIMPLE_TYPE_PAIR_SIZE): New macro.
15672         (type_pair_cache): New static var.
15673         (lookup_type_pair): Use fixed sized custom hash; make inline.
15674         (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
15675         calls of lookup_type_pair.
15676         (print_gimple_types_stats): Remove cache stats.
15677         (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
15678         and gtc_ob.
15679
15680 2011-05-19  Uros Bizjak  <ubizjak@gmail.com>
15681
15682         * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
15683         when TARGET_RDRND is active.
15684         (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
15685         Generate dummy SImode target register when target is NULL.
15686
15687 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
15688
15689         * config/arm/arm-fpus.def: New.
15690         * config/arm/genopt.sh: Generate Enum and EnumValue entries from
15691         arm-fpus.def.
15692         * config/arm/arm-tables.opt: Regenerate.
15693         * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
15694         (arm_option_override): Don't decode FPU name to string here.
15695         * config/arm/arm.opt (mfpu=): Use Enum.
15696         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
15697         Update dependencies.
15698
15699 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
15700
15701         * collect2.c: Include diagnostic.h.
15702         (fatal_perror, fatal, error, fancy_abort): Remove.
15703         (main): Set progname.  Call xmalloc_set_program_name and
15704         diagnostic_initialize.
15705         (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
15706         scan_libraries, resolve_lib_name): Call fatal_error instead of
15707         fatal and fatal_perror.
15708         * collect2.h (error, fatal, fatal_perror): Don't declare.
15709         * tlink.c: Include diagnostic-core.h.
15710         (recompile_files): Call fatal_error instead of fatal_perror.
15711         * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
15712         pretty-print.o and input.o.
15713         (collect2.o, tlink.o): Update dependencies.
15714
15715 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15716
15717         * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
15718
15719 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15720
15721         PR target/40483
15722         * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
15723         COMDAT group syntax, both SPARC and x86 variants.
15724         (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
15725         * configure: Regenerate.
15726         * config/sol2.h (TARGET_SOLARIS): Define.
15727         (PUSHSECTION_FORMAT): Remove.
15728         (SECTION_NAME_FORMAT): Define.
15729         * config/sol2.c: Include hashtab.h.
15730         (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
15731         expansion, using SECTION_NAME_FORMAT.
15732         (solaris_comdat_htab): New variable.
15733         (struct comdat_entry): Define.
15734         (comdat_hash): New function.
15735         (comdat_eq): New function.
15736         (solaris_elf_asm_comdat_section): New function.
15737         (solaris_define_comdat_signature): New function.
15738         (solaris_code_end): New function.
15739         * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
15740         (solaris_code_end): Declare.
15741         * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
15742         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
15743         solaris_code_end.
15744         (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
15745         Remove ATTRIBUTE_UNUSED.
15746         [!USE_GAS]: Call solaris_elf_asm_comdat_section for
15747         SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
15748         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
15749         * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
15750         * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
15751         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
15752         (PUSHSECTION_FORMAT): Remove.
15753         (SECTION_NAME_FORMAT): Redefine.
15754
15755 2011-05-19  Kai Tietz  <ktietz@redhat.com>
15756
15757         * tree-cfg.c (verify_gimple_assign_binary): Barf on
15758         TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
15759         (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
15760
15761 2011-05-19  Anatoly Sokolov  <aesok@post.ru>
15762             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15763
15764         * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
15765
15766 2011-05-19  Richard Guenther  <rguenther@suse.de>
15767
15768         PR middle-end/48985
15769         * tree-object-size.c (addr_object_size): If the pointed-to
15770         variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
15771
15772 2011-05-19  Richard Guenther  <rguenther@suse.de>
15773
15774         * gimple.c (gimple_types_compatible_p_1): Compare names of
15775         the types themselves.
15776         (iterative_hash_gimple_type): And hash them that way.
15777         (gimple_register_type_1): If we register a main variant properly
15778         initialize the leader to ourselves.
15779
15780 2011-05-19  Tom de Vries  <tom@codesourcery.com>
15781
15782         PR target/45098
15783         * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
15784         get_loop_invariant_expr_id.
15785         (get_loop_invariant_expr_id): Use get_expr_id.
15786         (parm_decl_cost): New function.
15787         (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
15788         Improve bound cost estimation.  Use different inv_expr_id for elim and
15789         express cases.
15790
15791 2011-05-19  Tom de Vries  <tom@codesourcery.com>
15792
15793         PR target/45098
15794         * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
15795         cost_base.cost == 0.
15796
15797 2011-05-18  H.J. Lu  <hongjiu.lu@intel.com>
15798
15799         PR target/49002
15800         * config/i386/sse.md
15801         (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
15802         load cast.
15803
15804 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
15805
15806         PR tree-optimization/49039
15807         * tree-vrp.c (extract_range_from_binary_expr): For
15808         MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
15809         return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
15810
15811 2011-05-18  Tom de Vries  <tom@codesourcery.com>
15812
15813         PR target/45098
15814         * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
15815
15816 2011-05-18  Uros Bizjak  <ubizjak@gmail.com>
15817
15818         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
15819         (*tls_global_dynamic_64): Ditto.
15820         (*tls_local_dynamic_base_32_gnu): Ditto.
15821         (*tls_local_dynamic_base_64): Ditto.
15822         (tls_initial_exec_64_sun): Ditto.
15823
15824 2011-05-18  Stuart Henderson  <shenders@gcc.gnu.org>
15825
15826         * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
15827         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
15828         bf592-none.
15829         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
15830         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
15831         * config/bfin/bfin.c (bfin_cpus): Add bf592.
15832         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
15833         __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
15834         * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
15835         * config/bfin/elf.h (LIB_SPEC): Add bf592.
15836
15837 2011-05-18  Joseph Myers  <joseph@codesourcery.com>
15838
15839         * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
15840         arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
15841         * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
15842         target_thread_pointer, arm_structure_size_boundary, struct
15843         float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
15844         struct abi_name, arm_all_abis): Remove.
15845         (arm_option_override) Don't process most enumerated option values here.
15846         Don't process target_fpe_name here.  Work with integer not string for
15847         structure size boundary; use separate diagnostics for each case.
15848         * config/arm/arm.h (enum float_abi_type, enum
15849         arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
15850         to arm-opts.h.
15851         (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
15852         arm_structure_size_boundary): Remove.
15853         * config/arm/arm.opt (mabi=): Use Enum and Init.
15854         (arm_abi_type): New Enum and EnumValue entries.
15855         (mfloat-abi=): Use Enum and Init.
15856         (float_abi_type): New Enum and EnumValue entries.
15857         (mfp=, mfpe=): Replace by separate Alias entries for each argument.
15858         (mfp16-format=): Use Enum and Init.
15859         (arm_fp16_format_type): New Enum and EnumValue entries.
15860         (mstructure-size-boundary=): Use UInteger and Init.
15861         (mtp=): Use Enum and Init.
15862         (arm_tp_type): New Enum and EnumValue entries.
15863
15864 2011-05-18  Richard Guenther  <rguenther@suse.de>
15865
15866         PR tree-optimization/49018
15867         * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
15868         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
15869         gimple_has_side_effects.
15870
15871 2011-05-18  Richard Guenther  <rguenther@suse.de>
15872
15873         * gimple.c (gimple_register_type_1): New function, split out from ...
15874         (gimple_register_type): ... here.  Avoid infinite recursion.
15875
15876 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
15877
15878         PR tree-optimization/41881
15879         * tree-vectorizer.h (struct _loop_vec_info): Add new field
15880         reduction_chains along with a macro for its access.
15881         * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
15882         (destroy_loop_vec_info): Free reduction chains.
15883         (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
15884         (vect_is_slp_reduction): New function.
15885         (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
15886         (vect_create_epilog_for_reduction): Support SLP reduction chains.
15887         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
15888         definition types for reduction chains.
15889         (vect_supported_load_permutation_p): Don't allow permutations for
15890         reduction chains.
15891         (vect_analyze_slp_instance): Support reduction chains.
15892         (vect_analyze_slp): Try to build SLP instance from reduction chains.
15893         (vect_get_constant_vectors):  Handle reduction chains.
15894         (vect_schedule_slp_instance): Mark the first statement of the
15895         reduction chain as reduction.
15896
15897 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
15898
15899         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
15900         names for group elements access.
15901         * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
15902         reduction chains as well.  Remove data reference and interleaving
15903         related words from the fields names.
15904         * tree-vect-loop.c (vect_transform_loop): Use new names for group
15905         elements access.
15906         * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
15907         vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
15908         vect_update_interleaving_chain, vect_same_range_drs,
15909         vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
15910         vect_verify_datarefs_alignment, vector_alignment_reachable_p,
15911         vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
15912         vect_analyze_group_access, vect_analyze_data_ref_access,
15913         vect_create_data_ref_ptr, vect_transform_strided_load,
15914         vect_record_strided_load_vectors): Likewise.
15915         * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
15916         vect_model_load_cost, vectorizable_store, vectorizable_load,
15917         vect_remove_stores, new_stmt_vec_info): Likewise.
15918         * tree-vect-slp.c (vect_build_slp_tree,
15919         vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
15920
15921 2011-05-18  Richard Guenther  <rguenther@suse.de>
15922
15923         PR middle-end/48989
15924         * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
15925         operand verification.
15926         (verify_gimple_assign_binary): Likewise.
15927         * tree-ssa.c (useless_type_conversion_p): Preserve conversions
15928         to non-1-precision BOOLEAN_TYPEs.
15929
15930 2011-05-18  Tom de Vries  <tom@codesourcery.com>
15931
15932         PR target/45098
15933         * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
15934
15935 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
15936
15937         PR tree-optimization/49000
15938         * tree-ssa.c (execute_update_addresses_taken): Call
15939         maybe_rewrite_mem_ref_base on debug stmt value.  If it couldn't
15940         be rewritten and decl has been marked for renaming, reset
15941         the debug stmt.
15942
15943 2011-05-17  Joseph Myers  <joseph@codesourcery.com>
15944
15945         * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
15946         enum_opts_set when testing if attributes have set -mfpmath=.
15947
15948 2011-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
15949
15950         * config/mips/mips.c (mips_handle_option): Remove unused variable.
15951
15952 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
15953
15954         * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
15955         info->entry with 0
15956         * tree-inline.c (maybe_inline_call_in_expr):  Initialize
15957         id.transform_lang_insert_block with NULL.
15958
15959 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
15960
15961         * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
15962         (output_fp_compare): Change args 3 and 4 to bool.
15963         (ix86_expand_call): Change arg 6 to bool.
15964         (ix86_attr_length_immediate_default): Change arg 2 to bool.
15965         (ix86_attr_length_vex_default): Change arg 3 to bool.
15966         * config/i386/i386.md: Update all uses.
15967         * config/i386/i386.c: Ditto.
15968         (ix86_flags_dependent): Change return type to bool.
15969
15970 2011-05-17  Richard Guenther  <rguenther@suse.de>
15971
15972         * gimple.c (type_hash_pair_compare): Fix comparison.
15973
15974 2011-05-17  Richard Guenther  <rguenther@suse.de>
15975
15976         * gimple.c (iterative_hash_gimple_type): Simplify singleton
15977         case some more, fix final hash value of the non-singleton case.
15978
15979 2011-05-17  Richard Guenther  <rguenther@suse.de>
15980
15981         PR bootstrap/49013
15982         Revert
15983         2011-05-16  Richard Guenther  <rguenther@suse.de>
15984
15985         * gimple.c (gimple_types_compatible_p_1): Use names of the
15986         type itself, not its main variant.
15987         (iterative_hash_gimple_type): Likewise.
15988
15989 2011-05-17  Richard Guenther  <rguenther@suse.de>
15990
15991         * gimple.c (gimple_register_canonical_type): Use the main-variant
15992         leader for computing the canonical type.
15993
15994 2011-05-17  Nick Clifton  <nickc@redhat.com>
15995
15996         * config/rx/rx.c (rx_memory_move_cost): Include cost of register
15997         moves.
15998
15999         * config/rx/rx.md: Add peephole to remove redundant extensions
16000         after loads.
16001         (bitset_in_memory): Use rx_restricted_mem_operand.
16002         (bitinvert_in_memory): Likewise.
16003         (bitclr_in_memory): Likewise.
16004
16005 2011-05-17  Kazuhio Inaoka  <kazuhiro.inaoka.ud@renesas.com>
16006             Nick Clifton  <nickc@redhat.com>
16007
16008         * config/rx/rx.md: Add peepholes to match a register move followed
16009         by a comparison of the moved register.  Replace these with an
16010         addition of zero that does both actions in one instruction.
16011
16012 2011-05-17  Jakub Jelinek  <jakub@redhat.com>
16013
16014         PR target/48986
16015         * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
16016         predicate to allow CONST_INT.
16017         (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
16018
16019 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
16020
16021         * opts-common.c (opt_enum_arg_to_value): New.
16022         * opts.h (opt_enum_arg_to_value): Declare.
16023         * config/i386/i386.opt (fpmath): Remove.
16024         (mfpmath=): Use Enum, Init and Save.
16025         (fpmath_unit): New Enum and EnumValue entries.
16026         * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
16027         name for function fpmath state.
16028         * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
16029         * config/i386/i386.c: Include diagnostic.h.
16030         (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
16031         (ix86_target_string): Take enum fpmath_unit value instead of string.
16032         (ix86_debug_options): Update call to ix86_target_string.
16033         (ix86_option_override_internal): Don't process fpmath strings here.
16034         (x86_function_specific_save, ix86_function_specific_restore):
16035         Don't handle fpmath state specially.
16036         (ix86_function_specific_print): Pass fpmath state to
16037         ix86_target_string instead of printing in this function.
16038         (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
16039         Handle enum attributes.
16040         (IX86_ATTR_ENUM, ix86_opt_enum): New.
16041         (ix86_valid_target_attribute_tree): Update option_strings
16042         handling.  Handle fpmath as enum option.
16043         (ix86_can_inline_p): Update field names for function fpmath state.
16044         (ix86_expand_builtin): Update call to ix86_target_string.
16045         * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
16046         (ix86_fpmath): Remove.
16047         * config/i386/t-i386 (i386.o): Update dependencies.
16048
16049 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
16050
16051         PR preprocessor/48677
16052         * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
16053         from decoded_options[0], not from itself.
16054
16055 2011-05-16  Uros Bizjak  <ubizjak@gmail.com>
16056
16057         * config/i386/constraints.md (z): New constraint.
16058         * config/i386/i386.c (c): New mode attribute.
16059         (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
16060         *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
16061         constraint for operand 0.
16062         (*call_vzeroupper): Ditto.
16063         (*call_rex64_ms_sysv): Ditto.  Use "rzm" constraint for operand 0.
16064         (*call_rex64_ms_sysv_vzeroupper): Ditto.
16065         (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
16066         Use "lzm" constraint for operand 0.
16067         (*call_pop_vzeroupper): Ditto.
16068         (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
16069         *sibcall_1_rex64 patterns using "P" mode iterator.  Use "Uz"
16070         constraint for operand 0.
16071         (*sibcall_vzeroupper): Ditto.
16072         (*sibcall_rex64_ms_sysv): Ditto.
16073         (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
16074         (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
16075         *sibcall_pop_1.  Use "Uz" constraint for operand 0.
16076         (*sibcall_pop_vzeroupper): Ditto.
16077         (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
16078         *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
16079         mode iterator.  Use "<c>zm" constraint for operand 1.
16080         (*call_value_vzeroupper): Ditto.
16081         (*call_value_rex64_ms_sysv): Ditto.  Use "rzm" constraint
16082         for operand 1.
16083         (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
16084         (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
16085         *call_value_pop_1.  Use "lzm" constraint for operand 1.
16086         (*call_value_pop_vzeroupper): Ditto.
16087         (*sibcall_value): Merge insn pattern from *sibcall_value_0,
16088         *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
16089         mode iterator.  Use "Uz" constraint for operand 1.
16090         (*sibcall_value_vzeroupper): Ditto.
16091         (*sibcall_value_rex64_ms_sysv): Ditto.
16092         (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
16093         (*sibcall_value_pop): Rename from *sibcall_pop_1.  Use "Uz"
16094         constraint for operand 1.
16095         (*sibcall_value_pop_vzeroupper): Ditto.
16096         (*tls_global_dynamic_64): Use constant_call_address_operand predicate
16097         and "z" constraint for operand 2.
16098         (*tls_global_dynamic_32_gnu): Ditto.
16099         (*tls_local_dynamic_base_32_gnu): Ditto.
16100         (*tls_local_dynamic_base_64): Ditto.
16101         (*tls_local_dynamic_32_once): Ditto.
16102         * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
16103         Update all callers.
16104         * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
16105
16106 2011-05-16  Richard Guenther  <rguenther@suse.de>
16107
16108         * gimple.c (gimple_types_compatible_p_1): Use names of the
16109         type itself, not its main variant.
16110         (iterative_hash_gimple_type): Likewise.
16111
16112 2011-05-16  Richard Guenther  <rguenther@suse.de>
16113
16114         * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
16115         always visit pointer target and function result and argument types.
16116
16117 2011-05-16  Jason Merrill  <jason@redhat.com>
16118
16119         PR c++/48999
16120         * tree-inline.c (copy_statement_list): Put back recursion.
16121
16122 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
16123
16124         PR target/27663
16125         PR target/41076
16126         * config/avr/predicates.md (const_8_16_24_operand): New predicate.
16127         * config/avr/avr.md ("*ior<mode>qi.byte0",
16128         "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
16129
16130 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
16131
16132         PR target/45099
16133         * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
16134         register is needed for a function argument.
16135
16136 2011-05-16  Richard Guenther  <rguenther@suse.de>
16137
16138         * gimple.c (struct type_hash_pair): New type.
16139         (type_hash_pair_compare): New function.
16140         (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
16141
16142 2011-05-16  Revital Eres  <revital.eres@linaro.org>
16143
16144         * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
16145
16146 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
16147
16148         * config/i386/i386.md (floating point move splitters): Fix
16149         usage of standard_80387_constant_p.
16150         * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
16151
16152 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
16153
16154         * config/i386/i386.md (*movdf_internal): Simplify insn condition.
16155
16156 2011-05-14  Eric Botcazou  <ebotcazou@adacore.com>
16157
16158         * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
16159         (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
16160         (tree_ssa_lim_finalize): Likewise.
16161
16162 2011-05-14  Uros Bizjak  <ubizjak@gmail.com>
16163
16164         * config/i386/constraint.md (Yd, Yx): New register constraints.
16165         * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger.  Use
16166         Yd conditional register constraint.
16167         (*movtf_internal): Use standard_sse_constant_opcode.
16168         (*movxf_internal): Merge with *movxf_internal_nointeger.  Use
16169         Yx conditional register constraint.
16170         (*movdf_internal): Merge with *movdf_internal_nointeger.  Use
16171         Yd conditional register constraint.  Use standard_sse_constant_p to
16172         check for valid SSE constants and call standard_sse_constant_opcode to
16173         output SSE insn.
16174         (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
16175         constants and call standard_sse_constant_opcode to output SSE insn.
16176         * config/i386/i386.c (ix86_option_ovverride_internal): Set
16177         TARGET_INTEGER_DFMODE_MOVES for 64bit targets.  Clear it when
16178         optimize_size is set.
16179         (standard_sse_constant_opcode): Output conditional AVX insn templates.
16180
16181 2011-05-14  Tobias Burnus  <burnus@net-b.de>
16182
16183         * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
16184
16185 2011-05-13  Martin Jambor  <mjambor@suse.cz>
16186
16187         * ipa-prop.c (ipa_cst_from_jfunc): New function.
16188         * ipa-prop.h (ipa_cst_from_jfunc): Declare.
16189         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
16190         (evaluate_conditions_for_ipcp_clone): Removed.
16191         (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
16192         * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
16193         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
16194
16195 2011-05-13  Eric Botcazou  <ebotcazou@adacore.com>
16196
16197         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
16198         * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
16199         lieu of MAY_HAVE_DEBUG_STMTS.
16200         * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
16201         debug statements if !MAY_HAVE_DEBUG_STMTS.
16202
16203 2011-05-13  Martin Thuresson  <martint@google.com>
16204
16205         PR gcov-profile/47793
16206         * libgcov.c (gcov_exit): Support relative profile paths.
16207         * doc/invoke.texi (-fprofile-dir): Update for above change.
16208
16209 2011-05-13  Richard Guenther  <rguenther@suse.de>
16210
16211         * gimple.c (gimple_canonical_types_compatible_p): Do not use
16212         type-pair caching, do not compare hashes.
16213
16214 2011-05-13  Nathan Froyd  <froydnj@codesourcery.com>
16215
16216         PR middle-end/48965
16217         * tree-cfg.c (edge_to_cases_cleanup): Return true.
16218         (verify_expr) [CASE_LABEL_EXPR]: Add checking.
16219
16220 2011-05-13  Kai Tietz  <ktietz@redhat.com>
16221
16222         * gimplify.c (gimplify_expr): Make sure operand is boolified.
16223         * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
16224         compatible type for TRUTH_NOT_EXPR.
16225
16226 2011-05-13  H.J. Lu  <hongjiu.lu@intel.com>
16227
16228         * config/i386/i386.c (ix86_save_reg): Change return type to bool.
16229         (ix86_hard_regno_mode_ok): Change return value to bool.  Use
16230         can_create_pseudo_p ().
16231
16232 2011-05-13  Richard Guenther  <rguenther@suse.de>
16233
16234         PR lto/48978
16235         * gimple.c (iterative_hash_gimple_type): Revert change in
16236         pointer target and function result and argument hashing.
16237
16238 2011-05-13  Uros Bizjak  <ubizjak@gmail.com>
16239
16240         * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
16241         (*movxf_internal_nointeger): Ditto.
16242         (*movdf_internal_rex64): Ditto.
16243         (*movdf_internal): Ditto.
16244         (*movdf_internal_nointeger): Ditto.
16245         (*movsf_internal): Ditto.
16246         (sincos splitters): Use can_create_pseudo ().
16247
16248 2011-05-13  Joseph Myers  <joseph@codesourcery.com>
16249
16250         * config/i386/i386-opts.h: New.
16251         * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
16252         ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
16253         ix86_section_threshold): Remove.
16254         (ix86_handle_option): Move MAX_CODE_ALIGN define here.  Handle
16255         OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
16256         OPT_mbranch_cost_.
16257         (ix86_option_override_internal): Don't decode strings for options
16258         other than -march=, -mtune= and -mfpmath=.  Don't allow for
16259         __attribute__ uses in remaining diagnostics for options with
16260         string arguments.  Don't check for integer arguments being negative.
16261         * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
16262         enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
16263         (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
16264         ix86_branch_cost, ix86_section_threshold): Remove.
16265         * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
16266         HeaderInclude.
16267         (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
16268         but not Var.
16269         (masm=): Use Enum and Init.
16270         (asm_dialect): New Enum and EnumValue entries.
16271         (mbranch-cost=): Use UInteger.
16272         (mlarge-data-threshold=): Use UInteger and Init.
16273         (mcmodel=): Use Enum and Init.
16274         (cmodel): New Enum and EnumValue entries.
16275         (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
16276         (mpreferred-stack-boundary=, mincoming-stack-boundary=,
16277         mregparm=): Use UInteger.
16278         (mstringop-strategy=): Use Enum and Init.
16279         (stringop_alg): New Enum and EnumValue entries.
16280         (mtls-dialect=): Use Enum and Init.
16281         (tls_dialect): New Enum and EnumValue entries.
16282         (mabi=): Use Enum and Init.
16283         (calling_abi): New Enum and EnumValue entries.
16284         (mveclibabi=): Use Enum and Init.
16285         (ix86_veclibabi): New Enum and EnumValue entries.
16286
16287 2011-05-13  Nick Clifton  <nickc@redhat.com>
16288
16289         * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
16290         * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
16291
16292 2011-05-13  Kai Tietz  <ktietz@redhat.com>
16293
16294         PR middle-end/48984
16295         * gimplify.c (gimplify_expr): Check for boolean_type_node instead
16296         for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
16297         (gimple_boolify): Check for cast for boolean_type_node instead for
16298         BOOLEAN_TYPE.
16299
16300 2011-05-13  Richard Guenther  <rguenther@suse.de>
16301
16302         PR tree-optimization/48172
16303         * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
16304         multiplying by number of iterations for equal step.
16305         (vect_create_cond_for_alias_checks): Likewise.
16306
16307 2011-05-13  Andreas Schwab  <schwab@redhat.com>
16308
16309         * configure.ac: Use AS_HELP_STRING throughout.
16310         * configure: Regenerate.
16311
16312 2011-05-12  H.J. Lu  <hongjiu.lu@intel.com>
16313
16314         * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
16315         (ix86_emit_restore_regs_using_mov): Likewise.
16316         (ix86_emit_restore_sse_regs_using_mov): Likewise.
16317
16318 2011-05-12  Anatoly Sokolov  <aesok@post.ru>
16319
16320         * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
16321         SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
16322         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
16323         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
16324         RTX_OK_FOR_OLO10_P): ...here.
16325         (sparc_mode_dependent_address_p): Use symbolic_operand instead of
16326         SYMBOLIC_CONST.
16327
16328 2011-05-12  Kai Tietz  <ktietz@redhat.com>
16329
16330         * gimplify.c (gimple_boolify): Re-boolify expression
16331         arguments even if expression type is of kind BOOLEAN_TYPE.
16332         (gimplify_boolean_expr): Removed.
16333         (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
16334         and XOR. Additional take care that we keep expression's type.
16335         * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
16336         of TRUTH_AND|OR|XOR_EXPR.
16337
16338 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
16339
16340         PR tree-optimization/48975
16341         * tree-if-conv.c (combine_blocks): Call free_bb_predicate
16342         on all bbs here and free and clear ifc_bbs at the end.
16343
16344 2011-05-12  Richard Guenther  <rguenther@suse.de>
16345
16346         * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
16347         NULLPTR_TYPE similar to VOID_TYPE.  Defer type-leader lookup
16348         until after simple checks.
16349         (gimple_types_compatible_p): Likewise.
16350         (iterative_hash_gimple_type): Always hash pointer targets
16351         and function return and argument types.
16352         (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
16353         hash TYPE_ALIGN.  Do not hash TYPE_MIN/MAX_VALUE.
16354         (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
16355         handle NULLPTR_TYPE similar to VOID_TYPE.  Handle non-aggregates
16356         completely in the simple compare section.
16357         (gimple_register_canonical_type): Query the cache again after
16358         registering.
16359
16360 2011-05-12  Richard Guenther  <rguenther@suse.de>
16361
16362         PR tree-optimization/48172
16363         * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
16364         the number of iterations from the segment size calculation.
16365         (vect_create_cond_for_alias_checks): Adjust.
16366
16367 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
16368
16369         PR debug/48967
16370         * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
16371         if validate_subreg fails.
16372
16373 2011-05-12  Hariharan Sandanagobalane  <hariharan@picochip.com>
16374
16375         * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
16376         accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
16377         early.
16378
16379 2011-05-12  DJ Delorie  <dj@redhat.com>
16380
16381         * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
16382         (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
16383         created builtin into rx_builtins array.
16384         (rx_builtin_decl): New function.
16385         (TARGET_BUITLIN_DECL): Define.  Include gt-rx.h.
16386
16387 2011-05-12  DJ Delorie  <dj@redhat.com>
16388             Nick Clifton  <nickc@redhat.com>
16389
16390         * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
16391         * config/rx/rx.c (CC_FLAG_FP): Fix comment.
16392         (rx_is_legitimate_address): Add pre-decrement and post-increment
16393         addressing in HImode and QImode.  Fix test for out of range
16394         REG+INT addressing.
16395         (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
16396         (rx_align_for_label): Test label before extracting its usage count.
16397         (rx_adjust_insn_lengths): Fix selection of insn codes.
16398         (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
16399
16400 2011-05-11  Jason Merrill  <jason@redhat.com>
16401
16402         * tree.c (type_hash_canon): Use struct tree_type_non_common.
16403
16404 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
16405
16406         * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
16407         reindent the subsequent block.
16408
16409 2011-05-11  Satoru Takabayashi  <satorux@google.com>
16410             Paul Pluzhnikov  <ppluzhnikov@google.com>
16411
16412         * doc/install.texi (Configuration): Document --with-linker-hash-style.
16413         * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
16414         * config.in: Add LINKER_HASH_STYLE.
16415         * configure.ac: Add --with-linker-hash-style.
16416         * configure: Regenerate.
16417
16418 2011-05-11  Richard Guenther  <rguenther@suse.de>
16419
16420         PR middle-end/48964
16421         * gimple.c (iterative_hash_canonical_type): Fix typo.
16422
16423 2011-05-11  Uros Bizjak  <ubizjak@gmail.com>
16424
16425         * config/i386/i386.c (legitimize_tls_address)
16426         <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
16427         expanders directly for TARGET_GNU2_TLS.  Determine pic and
16428         __tls_get_addr symbol reference here.  Update call to
16429         gen_tls_global_dynamic_{32,64} for added arguments.
16430         <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
16431         expanders directly for TARGET_GNU2_TLS.  Determine
16432         __tls_get_addr symbol reference here.  Update call to
16433         gen_tls_local_dynamic_base_{32,64} for added arguments.  Attach
16434         unique UNSPEC REG_EQUIV to libcall block.
16435         (ix86_tls_get_addr): Declare static.
16436         * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
16437         * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
16438         Do not determine pic and __tls_get_addr symbol reference here. Do not
16439         call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
16440         (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
16441         (tls_global_dynamic_64): Add operand 2.  Do not determine
16442         __tls_get_addr symbol reference here.  Do not call
16443         gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
16444         (tls_local_dynamic_base64): Ditto for operand 1.
16445
16446 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
16447
16448         * function.c (expand_function_start): Initialize stack_check_probe_note
16449         only if the generic stack checking mechanism is used.
16450
16451 2011-05-11  Richard Guenther  <rguenther@suse.de>
16452
16453         PR tree-optimization/15256
16454         * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
16455         (A & B) | C, combine (A op CST1) op CST2.
16456         (tree_ssa_forward_propagate_single_use_vars): Only bother to
16457         visit assigns that have uses.
16458
16459 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
16460
16461         * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
16462         * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
16463         (unpack_ts_type_common_value_fields): ...this.  Update comment.
16464         (unpack_value_fields): Adjust for renaming.
16465         (lto_input_ts_type_tree_pointers): Split into...
16466         (lto_input_ts_type_common_tree_pointer): ...this and...
16467         (lto_input_ts_type_non_common_tree_pointers): ...this.
16468         (lto_input_tree_pointers): Adjust for above split.
16469         * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
16470         (pack_ts_type_common_value_fields): ...this.  Update comment.
16471         (lto_output_ts_type_tree_pointers): Split into...
16472         (lto_output_ts_type_common_tree_pointers): ...this and...
16473         (lto_output_ts_type_non_common_tree_pointers): ...this.
16474         (lto_output_tree_pointers): Adjust for above split.
16475         * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
16476         TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
16477         * stor-layout.c (vector_type_mode): Adjust location of mode field.
16478         * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
16479         Define.
16480         (struct tree_type): Split into...
16481         (struct tree_type_common: ...this and...
16482         (struct tree_type_with_lang_specific): ...this and...
16483         (struct tree_type_non_common): ...this.  Adjust accessor macros
16484         accordingly.
16485         (TYPE_VALUES_RAW): Define.
16486         (union tree_node): Update for above changes.
16487         * tree.c (tree_node_structure_for_code) [tcc_type]: Return
16488         TS_TYPE_NON_COMMON.
16489         (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
16490         Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
16491         (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
16492         * treestructu.def (TS_TYPE): Remove.
16493         (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
16494         Define.
16495
16496 2011-05-11  Jakub Jelinek  <jakub@redhat.com>
16497
16498         PR debug/48159
16499         * tree-ssa.c (reset_debug_uses): New function.
16500         * tree-flow.h (reset_debug_uses): New prototype.
16501         * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
16502         * tree-loop-distribution.c (generate_loops_for_partition): Call
16503         reset_debug_uses on the stmts that will be removed.  Keep around
16504         all debug stmts, don't count them as bits in partition bitmap.
16505         (generate_builtin): Don't count debug stmts or labels as bits in
16506         partition bitmap.
16507
16508 2011-05-11  Richard Guenther  <rguenther@suse.de>
16509
16510         * gimple.c (gimple_type_hash_1): Merge with ...
16511         (gimple_type_hash): ... this.
16512         (gtc_visit): Remove mode parameter and simplify accordingly.
16513         (gimple_types_compatible_p_1): Likewise.
16514         (gimple_types_compatible_p): Likewise.
16515         (iterative_hash_gimple_type): Likewise.
16516         (visit): Likewise.
16517         (gimple_type_eq): Adjust.
16518
16519 2011-05-11  Revital Eres  <revital.eres@linaro.org>
16520
16521         * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
16522         enters the branch create an anti edge in the opposite direction
16523         to prevent the creation of reg-moves.
16524         * modulo-sched.c: Adjust comment to reflect the fact we are
16525         scheduling closing branch.
16526         (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
16527         (stage_count): New field in struct partial_schedule.
16528         (calculate_stage_count): New function.
16529         (normalize_sched_times): Rename to reset_sched_times and handle
16530         incrementing the sched time of the nodes by a constant value
16531         passed as parameter.
16532         (duplicate_insns_of_cycles): Skip closing branch.
16533         (sms_schedule_by_order): Schedule closing branch.
16534         (ps_insn_find_column): Handle closing branch.
16535         (sms_schedule): Call reset_sched_times and adjust the code to
16536         support scheduling of the closing branch.
16537         (ps_insert_empty_row): Update calls to normalize_sched_times
16538         and rotate_partial_schedule functions.
16539
16540 2011-05-11  Richard Guenther  <rguenther@suse.de>
16541
16542         PR middle-end/48953
16543         * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
16544
16545 2011-05-11  Joseph Myers  <joseph@codesourcery.com>
16546
16547         * opts.c (finish_options): Move warning settings from process_options.
16548         * toplev.c (process_options): Move warning settings to finish_options.
16549
16550 2011-05-11  Richard Guenther  <rguenther@suse.de>
16551
16552         PR tree-optimization/18041
16553         * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
16554         (simplify_bitwise_binary): ... this.  Handle operand conversions
16555         by applying them to the result instead.
16556         (tree_ssa_forward_propagate_single_use_vars): Adjust.  CSE tree code.
16557
16558 2011-05-11  Richard Guenther  <rguenther@suse.de>
16559
16560         * gimple.c (gimple_canonical_types_compatible_p): Split out
16561         from gimple_types_compatible_p and friends.  Do not recurse
16562         to pointed-to types.
16563         (gimple_canonical_type_eq): Use it.
16564         (iterative_hash_canonical_type): Split out from
16565         iterative_hash_gimple_type and friends.  Do not recurse
16566         to pointed-to types.
16567         (gimple_canonical_type_hash): Use it, allocate the hash here.
16568
16569 2011-05-11  Revital Eres  <revital.eres@linaro.org>
16570
16571         * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
16572         recognizing doloop.
16573
16574 2011-05-11  Revital Eres  <revital.eres@linaro.org>
16575
16576         * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
16577         instead of PREV_INSN.
16578
16579 2011-05-11  Revital Eres  <revital.eres@linaro.org>
16580
16581         * modulo-sched.c (sms_schedule): Support new form of doloop pattern
16582         * loop-doloop.c (doloop_condition_get): Likewise.
16583         * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
16584         (doloop_end): New.
16585         * config/arm/arm.md (*addsi3_compare0): Remove "*".
16586
16587 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
16588
16589         * tree.def (CASE_LABEL_EXPR): Add an operand.
16590         * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
16591
16592 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
16593
16594         * c-decl.c (c_override_global_bindings_to_false): Remove.
16595         (global_bindings_p): Don't check
16596         c_override_global_bindings_to_false.
16597         * c-tree.h (c_override_global_bindings_to_false): Remove.
16598         * c-typeck.c (composite_type): Don't set
16599         c_override_global_bindings_to_false.
16600
16601 2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
16602
16603         PR target/48857, 48495
16604         * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
16605         (VSX_MODE): Ditto.
16606         (VSX_MOVE_MODE): Ditto.
16607         (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
16608         VSX vector types.  Add V2DImode.
16609         (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
16610         ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
16611         (MODES_TIEABLE_P): Ditto.
16612
16613         * config/rs6000/rs6000.c (rs6000_emit_move): Use
16614         ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
16615         VSX_VECTOR_MODE.
16616         (init_cumulative_args): Ditto.
16617         (rs6000_function_arg_boundary): Ditto.
16618         (rs6000_function_arg_advance_1): Ditto.
16619         (rs6000_function_arg): Ditto.
16620         (rs6000_function_ok_for_sibcall): Ditto.
16621         (emit_frame_save): Ditto.
16622         (rs6000_function_value): Ditto.
16623         (rs6000_libcall_value): Ditto.
16624
16625 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
16626
16627         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
16628         i386/darwin-lib.h to $libgcc_tm_file.
16629         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
16630
16631 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
16632
16633         * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
16634
16635 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
16636
16637         * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
16638         * config/rs6000/rs6000-tables.opt: New file (generated).
16639         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
16640         rs6000/rs6000-tables.opt to extra_options.
16641         * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
16642         * config/rs6000/rs6000.c (rs6000_select): Remove.
16643         (processor_target_table): Move contents to rs6000-cpus.def.
16644         (darwin_rs6000_override_options): Check
16645         global_options_set.x_rs6000_cpu_index instead of
16646         rs6000_select[1].string.
16647         (rs6000_option_override_internal): Likewise.
16648         (rs6000_handle_option): Don't assert that global structures are in
16649         use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
16650         (rs6000_default_cpu): New variable.
16651         (rs6000_file_start): Set it instead of local default_cpu.  Check
16652         rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
16653         global_options_set.x_rs6000_tune_index instead of rs6000_select.
16654         (rs6000_darwin_file_start): Check rs6000_default_cpu and
16655         global_options_set.x_rs6000_cpu_index instead of rs6000_select.
16656         * config/rs6000/rs6000.h (struct rs6000_cpu_select,
16657         rs6000_select): Remove.
16658         * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
16659         Remove.
16660         (mcpu=, mtune=): Use Var, Init, Enum and Save.
16661         * config/rs6000/t-rs6000
16662         ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
16663         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
16664         global_options_set.x_rs6000_cpu_index instead of
16665         rs6000_select[1].string.
16666         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
16667         global_options_set.x_rs6000_cpu_index instead of
16668         rs6000_select[1].string.
16669
16670 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
16671
16672         * config.gcc (libgcc_tm_file): Define instead of including files
16673         from ../../libgcc/config/ in tm_file.
16674         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
16675         * configure: Regenerate.
16676         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
16677         libgcc_tm.h, cs-libgcc_tm.h): New.
16678         (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
16679         (clean): Remove libgcc_tm.h.
16680         * config/arm/symbian.h (RENAME_LIBRARY): Remove.
16681         * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
16682         * system.h (DECLARE_LIBRARY_RENAMES): Poison.
16683
16684 2011-05-10  Georg-Johann Lay  <avr@gjlay.de>
16685
16686         PR target/48896
16687         * config/avr/avr.c (avr_ret_register): Return unsigned int
16688         instead of int.
16689         (avr_function_value): Mark fn_decl_or_type as unused, don't pass
16690         it to avr_libcall_value.
16691         avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
16692         expand_expr.
16693         (avr_expand_binop_builtin): Ditto.
16694         (avr_expand_unop_builtin): Ditto.
16695
16696 2011-05-10  DJ Delorie  <dj@redhat.com>
16697
16698         * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
16699         (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
16700         * config/rx/rx.c (rx_align_for_label): Add label and
16701         uses_threshold parameters.  Do not align when the label is not
16702         used enough.
16703         * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
16704
16705 2011-05-10  Richard Guenther  <rguenther@suse.de>
16706
16707         * tree-ssa-forwprop.c (combine_conversions): Pattern-match
16708         a series of conversions and apply foldings similar to what
16709         fold-const does.
16710         (tree_ssa_forward_propagate_single_use_vars): Call it.
16711
16712 2011-05-10  Jakub Jelinek  <jakub@redhat.com>
16713
16714         PR tree-optimization/48611
16715         PR tree-optimization/48794
16716         * tree-eh.c (remove_unreachable_handlers): Don't remove regions
16717         referenced from RESX or EH_DISPATCH arguments.
16718
16719         PR debug/48928
16720         * dfp.c (decimal_to_decnumber): Handle conversion from
16721         dconst{1,2,m1,half}.
16722
16723 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
16724
16725         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
16726         for !flag_prefer_avx128.
16727         (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
16728
16729 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
16730
16731         * fold-const.c (fold_range_test): Pass LOC to build_range_check.
16732         (fold_ternary_loc): Use expr_location_or.
16733
16734 2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>
16735
16736         PR debug/48853
16737         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
16738         POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
16739         Pmode and mem_mode is not VOIDmode.
16740
16741 2011-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
16742
16743         * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
16744         TYPE_QUAL_RESTRICT): Convert to enum.
16745
16746 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
16747
16748         * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
16749         (const_pow2_1_to_8_operand): Ditto.
16750         (const_pow2_1_to_128_operand): Ditto.
16751         (const_pow2_1_to_32768_operand): Ditto.
16752         * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
16753         const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
16754         in insn constraint to check integer value of operand 3.
16755         * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
16756
16757         (PINSR_MODE): New mode iterator.
16758         (sse2p4_1): New mode attribute.
16759         (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
16760         sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
16761         iterator.  Use const_int_operand instead of
16762         const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
16763         exact_log2 in insn constraint to check integer value of operand 3.
16764
16765 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
16766
16767         * config/i386/sse.md (blendbits): Remove mode attribute.
16768         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
16769         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
16770         Check integer value of operand 3 in insn constraint.
16771
16772 2011-05-09  Richard Guenther  <rguenther@suse.de>
16773
16774         * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
16775         for diagnostics.
16776         (lto_symtab_merge): Likewise.  Do not register types here.
16777         (lto_symtab_merge_decls_2): Likewise.
16778         (lto_symtab_merge_decls_1): Likewise.
16779         * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
16780         * gimple.c (enum gtc_mode): Declare.
16781         (gimple_types_compatible_p): Make static.
16782
16783 2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16784
16785         * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
16786         temporary register to match Pmode.
16787
16788 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
16789
16790         * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
16791         and *vec_concatv4si_1_avx.
16792
16793 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
16794
16795         PR rtl-optimization/48927
16796         * ira-conflicts.c (commutative_constraint_p): Use
16797         recog_data.alternative_enabled_p to disable alternatives where
16798         "enabled" attribute is false.
16799         (get_dup_num): Ditto.
16800         * ira-lives.c (single_reg_class): Ditto.
16801         (ira_implicitly_set_insn_hard_regs): Ditto.
16802
16803 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
16804
16805         * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
16806         (dataflow_set_preserve_mem_locs): Likewise.
16807
16808 2011-05-09  Philipp Thomas  <pth@suse.de>
16809
16810         * config/mep/mep.c (mep_validate_vliw): Syntax description
16811         should not be translated.
16812
16813 2011-05-09  Joseph Myers  <joseph@codesourcery.com>
16814
16815         * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
16816         * config/mips/mips-tables.opt: New file (generated).
16817         * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
16818         * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
16819         MIPS_ARCH_OPTION_NATIVE): Define.
16820         * config/mips/mips.c (mips_cpu_info_table): Move contents to
16821         mips-cpus.def.
16822         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
16823         mips_parse_cpu): Remove.
16824         (mips_cpu_info_from_opt, mips_default_arch): New.
16825         (mips_handle_option): Don't assert that global structures are in
16826         use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
16827         (mips_option_override): Use new variables and functions to set
16828         state of these options.  Use strcmp to check for individual CPU names.
16829         * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
16830         definition.
16831         * config/mips/mips.opt (march=): Use ToLower and Enum.
16832         (mips): Use ToLower, Enum and Var.
16833         (mtune=): Use ToLower and Enum.
16834         * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
16835
16836 2011-05-08  Jan Hubicka  <jh@suse.cz>
16837
16838         * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
16839         Arrange type pairs to be UID ordered.
16840         (gimple_lookup_type_leader): Make inline.
16841
16842 2011-05-09  Nick Clifton  <nickc@redhat.com>
16843
16844         PR target/48899
16845         * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
16846         PROCESSOR_DEFAULT.
16847
16848         PR target/48897
16849         * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
16850         variable 's'.
16851
16852 2011-05-08  Chung-Lin Tang  <cltang@codesourcery.com>
16853
16854         * combine.c (simplify_comparison): Abstract out parts into...
16855         (simplify_compare_const): ... new function.
16856         (try_combine): Generalize parallel arithmetic/compare combining
16857         to call simplify_compare_const() and CANONICALIZE_COMPARE().
16858
16859 2011-05-08  Jan Hubicka  <jh@suse.cz>
16860
16861         * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
16862         (cgraph_create_virtual_clone): Call hooks once virtual clone
16863         is finished.
16864         * cgraph.h (cgraph_clone_node): Update prototype.
16865         * ipa-cp.c (ipcp_estimate_growth): Use
16866         estimate_ipcp_clone_size_and_time.
16867         * ipa-inline-transform.c (clone_inlined_nodes): Update.
16868         * lto-cgraph.c (input_node): Update.
16869         * ipa-inline.c (recursive_inlining): Update.
16870         * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
16871         (evaluate_conditions_for_known_args): Break out from ...
16872         (evaluate_conditions_for_edge): ... here.
16873         (evaluate_conditions_for_ipcp_clone): New function.
16874         (inline_node_duplication_hook): Update clone summary based
16875         on parameter map.
16876         (estimate_callee_size_and_time): Rename to ...
16877         (estimate_node_size_and_time): take NODE instead of EDGE;
16878         take POSSIBLE_TRUTHS as argument.
16879         (estimate_callee_size_and_time): Update.
16880         (estimate_ipcp_clone_size_and_time): New function.
16881         (do_estimate_edge_time): Update.
16882
16883 2011-05-08  Richard Guenther  <rguenther@suse.de>
16884
16885         PR middle-end/48908
16886         PR middle-end/48905
16887         * expmed.c (expand_shift_1): Compute adjusted constant shift
16888         amount manually.
16889
16890 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
16891
16892         * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
16893
16894 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
16895
16896         * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
16897
16898 2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
16899
16900         * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
16901
16902 2011-05-07  Jan Hubicka  <jh@suse.cz>
16903
16904         * ipa-inline-transform.c (inline_call): Account when program size
16905         decreases.
16906         * ipa-inline.c (relative_time_benefit): New function.
16907         (edge_badness): Reorganize to be power 2 based; fix thinko when
16908         computing badness for negative growth; update comments to match
16909         reality; better dumps.
16910
16911 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
16912
16913         * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
16914         type to bool and adjust comment.
16915         * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
16916         (fold_mathfn_compare): Remove calls to global_bindings_p.
16917         (fold_inf_compare): Likewise.
16918         * stor-layout.c (variable_size): Adjust call to global_bindings_p.
16919         * c-tree.h (global_bindings_p): Adjust prototype.
16920         * c-decl.c (global_bindings_p): Return bool and simplify.
16921
16922 2011-05-07  Zdenek Dvorak  <ook@ucw.cz>
16923
16924         PR tree-optimization/48837
16925         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
16926         when accumulator transformation is performed.
16927
16928 2011-05-06  Jan Hubicka  <jh@suse.cz>
16929
16930         * i386.h (ix86_tune_indices): Add
16931         X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
16932         (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
16933         * i386.c (initial_ix86_tune_features): Add
16934         X86_SOFTARE_PREFETCHING_BENEFICIAL.
16935         (software_prefetching_beneficial_p): Remove predicate.
16936         (ix86_option_override_internal): Use new macro.
16937
16938 2011-05-06  Jan Hubicka  <jh@suse.cz>
16939
16940         * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
16941
16942 2011-05-06  Jan Hubicka  <jh@suse.cz>
16943
16944         * cgraph.c (cgraph_add_thunk): Create real function node instead
16945         of alias node; finalize it and mark needed/reachale; arrange visibility
16946         to be right and add it into the corresponding same comdat group list.
16947         (dump_cgraph_node): Dump thunks.
16948         * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
16949         cgraph_function_with_gimple_body_p,
16950         cgraph_first_function_with_gimple_body,
16951         cgraph_next_function_with_gimple_body): New functions.
16952         (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
16953         New macros.
16954         * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
16955         (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
16956         * cgraphunit.c (cgraph_finalize_function): Only look into possible
16957         devirtualization when optimizing.
16958         (verify_cgraph_node): Verify thunks.
16959         (cgraph_analyze_function): Analyze thunks.
16960         (cgraph_mark_functions_to_output): Output thunks only in combination
16961         with function they are assigned to.
16962         (assemble_thunk): Turn thunk into non-thunk; don't try to turn
16963         alias into normal node.
16964         (assemble_thunks): New functoin.
16965         (cgraph_expand_function): Use it.
16966         * lto-cgraph.c (lto_output_node): Stream thunks.
16967         (input_overwrite_node): Stream in thunks.
16968         * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
16969         * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
16970         * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
16971         * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
16972         (inline_analyze_function): Do not care about thunk jump functions.
16973         (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
16974         * ipa-prop.c (ipa_prop_write_jump_functions): Use
16975         cgraph_function_with_gimple_body_p.
16976         * passes.c (do_per_function_toporder): Use
16977         cgraph_function_with_gimple_body_p.
16978         (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
16979         (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
16980         (function_called_by_processed_nodes_p): Likewise.
16981
16982 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
16983
16984         * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
16985         rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
16986         entries.
16987         (mabi=): Replace with separate entries for mabi=altivec,
16988         mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
16989         mabi=ieeelongdouble and mabi=ibmlongdouble.
16990         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
16991         check for -mabi=spe without SPE ABI support here.
16992         (rs6000_handle_option): Replace OPT_mabi_ handling with
16993         OPT_mabi_altivec and OPT_mabi_spe handling.
16994
16995 2011-05-06  Cary Coutant  <ccoutant@google.com>
16996
16997         * dwarf2out.c (contains_subprogram_definition): New function.
16998         (should_move_die_to_comdat): Call it.
16999
17000 2011-05-06  Jeff Law  <law@redhat.com>
17001
17002         * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
17003         remove_ctrl_stmt_and_useless_edges.
17004         (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
17005         (fixup_template_block, thread_single_edge): Likewise.
17006         (mark_threaded_blocks): Use THREAD_TARGET.
17007
17008 2011-05-06  Alan Modra  <amodra@gmail.com>
17009
17010         PR target/48900
17011         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
17012         const0_rtx as the arg to the dummy __tls_get_addr libcall.
17013
17014 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
17015
17016         * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
17017         constraint modifier to "r".
17018
17019 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
17020
17021         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
17022         fall through for OPT_mcmodel_.
17023
17024 2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17025
17026         * config/s390/s390.c (s390_asm_trampoline_template): Comment
17027         instruction sizes.
17028         (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
17029
17030 2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
17031
17032         PR target/47930
17033         * config/arm/arm.opt (marm): Document it.
17034         (mthumb): Reject negative variant.
17035
17036 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
17037
17038         PR target/48898
17039         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
17040         Fix typo in "ccvt" variable name.
17041
17042 2011-05-06  Tristan Gingold  <gingold@adacore.com>
17043
17044         PR target/48895
17045         * config/vms/vms-ar.c (main): Remove cwd variable.
17046
17047 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
17048
17049         PR debug/48902
17050         * var-tracking.c (prepare_call_arguments): Move else before #endif.
17051
17052 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
17053
17054         * except.c (sjlj_emit_dispatch_table): Call build_case_label.
17055         * gimplify.c (gimplify_switch_expr): Likewise.
17056         * omp-low.c (expand_omp_sections): Likewise.
17057         * tree-eh.c (lower_try_finally_switch): Likewise.
17058         (lower_eh_dispatch): Likewise.
17059         * tree.h (build_case_label): Declare.
17060         * tree.c (build_case_label): Define.
17061
17062 2011-05-05  Jason Merrill  <jason@redhat.com>
17063
17064         PR c++/40975
17065         * tree-inline.c (copy_tree_r): Use copy_statement_list.
17066         (copy_statement_list): Don't recurse.
17067         * stor-layout.c (copy_self_referential_tree_r): Don't allow
17068         STATEMENT_LIST.
17069
17070 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
17071
17072         * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
17073         through from -mfpu= handling.
17074         * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
17075
17076 2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>
17077
17078         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
17079         POST_MODIFY.
17080
17081 2011-05-05  Steve Ellcey  <sje@cup.hp.com>
17082
17083         * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
17084         for 11.31.
17085         (hppa[12]*-*-hpux11*): Ditto.
17086         (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
17087         * config/ia64/hpux-unix2003.h: New.
17088         * config/pa/pa-hpux1131.opt: New.
17089         * config/pa/pa-hpux1131.h: New.
17090         * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
17091         * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
17092         * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
17093
17094 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
17095
17096         PR debug/48853
17097         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
17098         instead of mode as 3rd argument to recursive call.
17099         (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
17100         emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
17101         VOIDmode.
17102         (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
17103         don't give up if mode is Pmode and mem_mode is not VOIDmode.
17104         (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
17105         use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
17106
17107 2011-05-05  Julian Brown  <julian@codesourcery.com>
17108
17109         * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
17110         parenthesis in D-register case.
17111
17112 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
17113
17114         * opt-functions.awk (var_type_struct): Handle Enum options.
17115         * optc-gen.awk: Don't check range of variables of character type.
17116         * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
17117         rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
17118         rs6000_sdata_name, rs6000_explicit_options): Remove.
17119         (rs6000_option_override_internal): Check for -malign-power here.
17120         Use global_options_set instead of rs6000_explicit_options.
17121         (rs6000_parse_fpu_option): Remove.
17122         (rs6000_handle_option): Access variables via opts and opts_set
17123         pointers.  Use error_at and warning_at.  Add fall-through
17124         comments.  Don't handle OPT_mcmodel_, OPT_maix_struct_return,
17125         OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
17126         OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
17127         OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
17128         here.  Don't use rs6000_parse_fpu_option.
17129         * config/rs6000/rs6000.h (fpu_type): Remove declaration.
17130         * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
17131         rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
17132         (mrecip=): Use Var.
17133         (mspe): Use Var and Save.
17134         (mtraceback=): Use Enum and Var.
17135         (rs6000_traceback_type): New Enum and EnumValue entries.
17136         (mfloat-gprs=): Use Enum, Var and Save.
17137         (rs6000_float_gprs): New Enum and EnumValue entries.
17138         (mlong-double-): use Var and Save.
17139         (msched-costly-dep=, minsert-sched-nops=): Use Var.
17140         (malign-): Use Enum and Var.
17141         (rs6000_alignment_flags): New Enum and EnumValue entries.
17142         (mfpu=): Use Enum.
17143         (fpu_type_t): New Enum and EnumValue entries.
17144         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
17145         global_options_set instead of rs6000_explicit_options.
17146         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
17147         global_options_set instead of rs6000_explicit_options.
17148         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
17149         global_options_set instead of rs6000_explicit_options.
17150         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
17151         global_options_set instead of rs6000_explicit_options.
17152         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
17153         global_options_set instead of rs6000_explicit_options.
17154         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
17155         global_options_set instead of rs6000_explicit_options.
17156         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
17157         definition.
17158         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
17159         global_options_set instead of rs6000_explicit_options.
17160         * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
17161         (rs6000_cmodel): New Enum and EnumValue entries.
17162         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
17163         global_options_set instead of rs6000_explicit_options.
17164         * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
17165         (mtls-size=): Use Enum and Var.
17166         (rs6000_tls_size): New Enum and EnumValue entries.
17167
17168 2011-05-05  Michael Matz  <matz@suse.de>
17169
17170         * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
17171         * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
17172         * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
17173         * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
17174         * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
17175         * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
17176         * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
17177         * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
17178         * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
17179         * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
17180         * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
17181         * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
17182         * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
17183         * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
17184         * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
17185         * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
17186
17187 2011-05-05  Richard Guenther  <rguenther@suse.de>
17188
17189         * expmed.c (expand_variable_shift): Rename to ...
17190         (expand_shift_1): ... this.  Take an expanded shift amount.
17191         For rotates recurse directly not building trees for the shift amount.
17192         (expand_variable_shift): Wrap around expand_shift_1.
17193         (expand_shift): Adjust.
17194
17195 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
17196
17197         * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
17198
17199 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
17200
17201         * tree.h (get_pending_sizes): Remove prototype.
17202         (put_pending_size): Likewise.
17203         (put_pending_sizes): Likewise.
17204         * stor-layout.c (pending_sizes): Delete.
17205         (get_pending_sizes): Likewise.
17206         (put_pending_size): Likewise.
17207         (put_pending_sizes): Likewise.
17208         (variable_size): Do not call put_pending_size and tidy up.
17209         * function.h (struct function): Remove dont_save_pending_sizes_p.
17210         * lto-streamer-in.c (input_function): Do not stream it.
17211         * lto-streamer-out.c (output_function): Likewise.
17212         * tree-inline.c (initialize_cfun): Do not copy it.
17213         * c-decl.c (store_parm_decls): Do not set it.
17214         * omp-low.c (create_task_copyfn): Likewise.
17215         * tree-optimize.c (tree_rest_of_compilation): Likewise.
17216
17217 2011-05-05  Uros Bizjak  <ubizjak@gmail.com>
17218
17219         * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
17220         conditions.
17221         (*movdf_internal): Ditto.
17222         (*movdf_internal_nointeger): Ditto.
17223         (*movsf_internal): Ditto.
17224
17225 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
17226
17227         * c-decl.c (finish_decl): Don't call get_pending_sizes.
17228         (grokparm): Add parameter expr.  Pass it to grokdeclarator.
17229         (push_parm_decl): Add parameter expr.  Pass it to grokdeclarator.
17230         (c_variable_size): Remove.
17231         (grokdeclarator): Use save_expr instead of c_variable_size.  Don't
17232         call put_pending_sizes.
17233         (get_parm_info): Add parameter expr.  Use it to set
17234         arg_info->pending_sizes.
17235         (store_parm_decls): Use arg_info->pending_sizes instead or calling
17236         get_pending_sizes.
17237         * c-parser.c (c_parser_parms_declarator): Update call to
17238         c_parser_parms_list_declarator.
17239         (c_parser_parms_list_declarator): Take parameter expr.  Update
17240         call to push_parm_decl.  Update recursive call.  Don't call
17241         get_pending_sizes.  Update calls to get_parm_info.
17242         (c_parser_objc_method_definition): Update calls to
17243         c_parser_objc_method_decl and objc_start_method_definition.
17244         (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
17245         (c_parser_objc_method_decl): Add parameter expr.  Update call to
17246         grokparm.
17247         (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
17248         * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
17249         (get_parm_info, grokparm, push_parm_decl): Update prototypes.
17250
17251 2011-05-05  Michael Hope  <michael.hope@linaro.org>
17252
17253         PR pch/45979
17254         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
17255         __ARM_EABI__ hosts.
17256
17257 2011-05-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17258
17259         * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
17260         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
17261         (spu_output_mi_thunk): New function.
17262
17263 2011-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17264
17265         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
17266         targetm.asm_out.print_operand.
17267         * config/sol2.c: Include target.h.
17268
17269 2011-05-04  Jan Hubicka  <jh@suse.cz>
17270
17271         * ipa-inline.c (reset_edge_caches): New function.
17272         (update_caller_keys): Add check_inlinablity_for; do not
17273         reset edge caches; remove now unnecesary loop.
17274         (update_callee_keys): Add comments; reset node_growth_cache of callee.
17275         (update_all_callee_keys): Likewise.
17276         (inline_small_functions): Sanity check cache; update code
17277         recomputing it.
17278
17279 2011-05-04  Bernd Schmidt  <bernds@codesourcery.com>
17280
17281         PR rtl-optimization/47612
17282         * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
17283         as the last insn of the sequence to be moved.
17284
17285 2011-05-04  Tobias Burnus  <burnus@net-b.de>
17286
17287         PR fortran/48864
17288         * doc/invoke.texi (Ofast): Document that it
17289         enables Fortran's -fno-protect-parens.
17290
17291 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
17292
17293         * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
17294
17295 2011-05-04  Eric Botcazou  <ebotcazou@adacore.com>
17296
17297         * stor-layout.c (variable_size): Do not issue errors.
17298
17299 2011-05-04  Richard Guenther  <rguenther@suse.de>
17300
17301         * coverage.c (tree_coverage_counter_ref): Use integer_type_node
17302         for array-ref indices.
17303         (tree_coverage_counter_addr): Likewise.
17304         (build_fn_info_type): Use size_int for index types.
17305         (build_gcov_info): Likewise.
17306
17307 2011-05-04  Richard Guenther  <rguenther@suse.de>
17308
17309         * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
17310         to build_int_cst.
17311         * c-typeck.c (really_start_incremental_init): Use bitsize_int
17312         for constructor indices.
17313         (push_init_level): Likewise.
17314
17315 2011-05-04  Richard Guenther  <rguenther@suse.de>
17316
17317         * explow.c (promote_mode): Move variable declarations before code.
17318
17319 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
17320
17321         * tree.h (build_function_type_array): Declare.
17322         (build_varargs_function_type_array): Declare.
17323         (build_function_type_vec, build_varargs_function_type_vec): Define.
17324         * tree.c (build_function_type_array_1): New function.
17325         (build_function_type_array): New function.
17326         (build_varargs_function_type_array): New function.
17327
17328 2011-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
17329
17330         * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
17331         before setting STMT_VINFO_TYPE.
17332
17333 2011-05-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17334
17335         * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
17336         instead of spu_pass_by_reference.
17337
17338 2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17339
17340         * calls.c (emit_library_call_value_1): Invoke
17341         promote_function_mode hook on libcall arguments.
17342         * explow.c (promote_function_mode, promote_mode): Handle TYPE
17343         argument being NULL.
17344         * targhooks.c (default_promote_function_mode): Lisewise.
17345         * config/s390/s390.c (s390_promote_function_mode): Likewise.
17346         * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
17347
17348         * doc/tm.texi: Document that TYPE argument might be NULL.
17349
17350 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
17351
17352         * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
17353
17354 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
17355
17356         From Bernd Schmidt
17357         * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
17358
17359 2011-05-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17360
17361         * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
17362         (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
17363         Move ...
17364         * mips-tfile.c: ... here.
17365         Don't include coretypes.h, tm.h, filenames.h.
17366         (saber_stop): Remove definition and all calls.
17367         [__SABER__]: Remove.
17368         (__LINE__): Remove default.
17369         (Size_t, Ptrdiff_t): Remove definitions.
17370         Replace by size_t, ptrdiff_t.
17371         [!MIPS_DEBUGGING_INFO]: Remove.
17372         (SHASH_SIZE, THASH_SIZE): Remove defaults.
17373         (progname): Add const.
17374         (STATIC): Remove.
17375         Replace all uses by static.
17376         (ALIGN_SYMTABLE_OFFSET): Remove default.
17377         * mips-tdump.c: Don't include coretypes.h, tm.h.
17378         Remove !MIPS_IS_STAB guard.
17379         * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
17380         $(TM_H), filenames.h dependencies.
17381         (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
17382
17383 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
17384
17385         From Jie Zhang
17386         *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
17387         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
17388
17389 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
17390
17391         From Bernd Schmidt
17392         * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
17393         account and save/restore RETS.
17394         (PROFILE_BEFORE_PROLOGUE): Define.
17395         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character.  Correct
17396         the push insn to use predecrement.
17397
17398 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
17399
17400         From Jie Zhang
17401         * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
17402
17403 2011-05-04  Nick Clifton  <nickc@redhat.com>
17404
17405         * config/mn10300/mn10300.c: Include cfgloop.h.
17406         (DUMP): New macro.
17407         (mn10300_insert_setlb_lcc): New function.  Inserts a SETLB and a
17408         Lcc or a FLcc insn into the instruction stream.
17409         (mn10300_block_contains_call): New function.  Returns true if the
17410         given basic block contains a CALL insn.
17411         (mn10300_loop_contains_call_insn): New function.  Returns true if
17412         the given loop contains a CALL insn.
17413         (mn10300_scan_for_setlb_lcc): New function.  Finds opportunities
17414         to use the SETLB and Lcc or FLcc insns.
17415         (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
17416         (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
17417         * config/mn10300/mn10300.opt (msetlb): New option.  Used to
17418         disable the SETLB optimization.
17419         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
17420         __SETLB__ or __NO_SETLB__.
17421         * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
17422         (movsf_internal): Handle MDR register.
17423         (cmpsi): Make visible.
17424         (setlb): New pattern.
17425         (Lcc): New pattern.
17426         (FLcc): New pattern.
17427
17428 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
17429
17430         PR target/48860
17431         * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
17432         for reg<->xmm moves.
17433         * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
17434         (vec_concatv2di_rex64_sse): Ditto.
17435         (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
17436         (*vec_extractv2di_1_rex64): Ditto.
17437
17438         Revert:
17439         2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
17440
17441         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
17442         reg<->xmm moves.
17443         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
17444
17445 2011-05-04  Richard Guenther  <rguenther@suse.de>
17446
17447         * tree.h (int_const_binop): Remove notrunc argument.
17448         * fold-const.c (int_const_binop): Remove notrunc argument.  Always
17449         create integer constants that are properly truncated.
17450         (extract_muldiv_1): Expand one notrunc int_const_binop caller.
17451         (const_binop): Remove zero notrunc argument to int_const_binop.
17452         (size_binop_loc): Likewise.
17453         (fold_div_compare): Likewise.
17454         (maybe_canonicalize_comparison_1): Likewise.
17455         (fold_comparison): Likewise.
17456         (fold_binary_loc): Likewise.
17457         (multiple_of_p): Likewise.
17458         * expr.c (store_constructor): Likewise.
17459         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
17460         (maybe_fold_stmt_addition): Likewise.
17461         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
17462         * stor-layout.c (layout_type): Likewise.
17463         * tree-data-ref.c (tree_fold_divides_p): Likewise.
17464         * tree-sra.c (build_ref_for_offset): Likewise.
17465         (build_user_friendly_ref_for_offset): Likewise.
17466         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
17467         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
17468         * tree-ssa-loop-niter.c (inverse): Likewise.
17469         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
17470         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
17471         * tree-switch-conversion.c (check_range): Likewise.
17472         (build_constructors): Likewise.
17473         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
17474         * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
17475         (extract_range_from_assert): Likewise.
17476         (vrp_int_const_binop): Likewise.
17477         (extract_range_from_binary_expr): Likewise.
17478         (extract_range_from_unary_expr): Likewise.
17479         (check_array_ref): Likewise.
17480         (find_case_label_range): Likewise.
17481         (simplify_div_or_mod_using_ranges): Likewise.
17482         * tree-cfg.c (group_case_labels_stmt): Use double-ints for
17483         comparing case labels for merging.
17484
17485 2011-05-03  Mark Wielaard  <mjw@redhat.com>
17486
17487         * dwarf2out.c (debug_str_hash_forced): Removed.
17488         (gen_label_for_indirect_string): Removed.
17489         (get_debug_string_label): Removed.
17490         (AT_string_form): Generate label directly.
17491         (output_indirect_string): Test indirect_string_node for
17492         DW_FORM_strp instead of checking label and refcount.
17493         (prune_indirect_string): Removed.
17494         (prune_unused_types): Don't check debug_str_hash_forced or
17495         call prune_indirect_string.
17496
17497 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
17498
17499         PR other/48093
17500         * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
17501
17502 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
17503
17504         PR debug/47994
17505         PR debug/47919
17506         * combine.c (try_combine): Skip debug insns at m_split tests.
17507
17508 2011-04-26  Mark Wielaard  <mjw@redhat.com>
17509
17510         PR42288
17511         * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
17512         when info_section_emitted.
17513
17514 2011-05-03  Joseph Myers  <joseph@codesourcery.com>
17515
17516         * config/mips/mips-opts.h: New.
17517         * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
17518         to mips-opts.h.
17519         (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
17520         (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
17521         or OPT_mr10k_cache_barrier_ here.  Access mips_cache_flush_func
17522         via opts pointer.
17523         * config/mips/mips.h (enum mips_code_readable_setting): Move to
17524         mips-opts.h.
17525         (mips_abi, mips_code_readable): Don't declare.
17526         * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
17527         (mabi=): Use Enum and Var.
17528         (mips_abi): New Enum and EnumValue entries.
17529         (mcode-readable=): Use Enum and Var.
17530         (mips_code_readable_setting): New Enum and EnumValue entries.
17531         (mr10k-cache-barrier=): Use Enum and Var.
17532         (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
17533
17534 2011-05-03  Jan Hubicka  <jh@suse.cz>
17535
17536         * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
17537         replace hash by pointer map.
17538         (cgraph_node_set_element_def, cgraph_node_set_element,
17539         const_cgraph_node_set_element, varpool_node_set_element_def,
17540         varpool_node_set_element, const_varpool_node_set_element): Remove.
17541         (free_cgraph_node_set, free_varpool_node_set): New function.
17542         (cgraph_node_set_size, varpool_node_set_size): Use vector size.
17543         * tree-emutls.c: Free varpool node set.
17544         * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
17545         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
17546         debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
17547         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
17548         dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
17549         Move here from ipa.c; implement using pointer_map
17550         * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
17551         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
17552         debug_cgraph_node_set, varpool_node_set_new,
17553         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
17554         dump_varpool_node_set, debug_varpool_node_set):
17555         Move to ipa-uitls.c.
17556         * passes.c (ipa_write_summaries): Update.
17557
17558 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
17559
17560         From Mike Frysinger:
17561         * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
17562         bf542/bf544/bf547/bf548/bf549.
17563
17564 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
17565
17566         * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
17567
17568 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
17569
17570         From Bernd Schmidt:
17571         * config/bfin/bfin.md (MOVCC): New mode_macro.
17572         (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
17573         movsicc_insn1, movsicc_insn2 and movsicc and macroized.  Remove
17574         comments from generated assembly.
17575
17576 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
17577
17578         From Bernd Schmidt
17579         * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
17580         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
17581         * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
17582         * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
17583         * config/bfin/lib1funcs.asm (___muldi3): New function.
17584
17585 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
17586
17587         * config/stormy16/stormy16 (xstormy16_init_builtins): Call
17588         build_function_type_list instead of build_function_type.
17589         Rearrange initialization of `args' to do so.
17590
17591 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
17592
17593         * config/i386/i386.c (ix86_code_end): Call build_function_type_list
17594         instead of build_function_type.
17595
17596 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
17597
17598         * config/rs6000/rs6000.c (spe_init_builtins): Call
17599         build_function_type_list instead of build_function_type.
17600         (paired_init_builtins, altivec_init_builtins): Likewise.
17601         (builtin_function_type): Likewise.
17602
17603 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
17604
17605         * config/sh/sh.c (sh_media_init_builtins): Call
17606         build_function_type_list instead of build_function_type.
17607
17608 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
17609
17610         * config/sparc/sparc.c (sparc_file_end): Call
17611         build_function_type_list instead of build_function_type.
17612
17613 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
17614
17615         * config/alpha/alpha.c (alpha_init_builtins): Call
17616         build_function_type_list instead of build_function_type.
17617
17618 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
17619
17620         * config/xtensa/xtensa.c (xtensa_init_builtins): Call
17621         build_function_type_list instead of build_function_type.
17622
17623 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
17624
17625         * config/iq2000/i2000.c (iq2000_init_builtins): Call
17626         build_function_type_list instead of build_function_type.
17627         Delete `endlink' variable.
17628
17629 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
17630
17631         * config/avr/avr.c (avr_init_builtins): Call
17632         build_function_type_list instead of build_function_type.
17633
17634 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
17635
17636         * config/picochip/picochip.c (picochip_init_builtins): Call
17637         build_function_type_list instead of build_function_type.
17638         Delete `endlink' variable.
17639
17640 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
17641
17642         * config/bfin/bfin.c (bfin_init_builtins): Call
17643         build_function_type_list instead of build_function_type.
17644
17645 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
17646
17647         From Bernd Schmidt
17648         * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
17649         that's not CONST_INT.  Seemingly redundant check is due to PR39768.
17650
17651 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
17652
17653         From Jie Zhang:
17654         * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
17655         libbffastfp overrides libgcc when -mfast-fp.
17656
17657 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
17658
17659         Originally from Bernd Schmidt
17660         * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
17661         * config/bfin/bfin.c (override_options): Test it and error if
17662         TARGET_FDPIC.
17663
17664 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
17665
17666         Originally From Bernd Schmidt
17667         * config/bfin/bfin.c (override_options): Disable -fstack-limit for
17668         FD-PIC.
17669
17670 2011-05-03  Jeff Law  <law@redhat.com>
17671
17672         * tree-ssa-threadupdate.c (THREAD_TARGET): define.
17673         (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
17674         (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
17675         than accessing AUX field directly.  Free the AUX field before
17676         clearing it.
17677         (thread_block, thread_through_loop_header): Likewise.
17678         (thread_single_edge, mark_threaded_blocks): Likewise.
17679         (redirect_edges): Delay clearing the AUX field.  Free the AUX field.
17680         (register_jump_thread): Do not attempt to thread to a NULL edge.
17681
17682 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
17683
17684         * function.c (init_function_start): Call decide_function_section.
17685         * varasm.c (decide_function_section): New function.
17686         (assemble_start_function): When not using
17687         flag_reorder_blocks_and_partition, don't compute in_cold_section_p
17688         or first_function_block_is_cold.
17689         * rtl.h (decide_function_section): Declare.
17690
17691 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
17692             Jakub Jelinek  <jakub@redhat.com>
17693
17694         PR target/48774
17695         * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
17696         only succeed if req_mode is the same as set_mode.
17697
17698 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
17699
17700         * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
17701         * genemit.c (gen_exp): Handle RETURN.
17702         * emit-rtl.c (verify_rtx_sharing): Likewise.
17703         (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
17704         * rtl.c (copy_rtx): RETURN is shared.
17705         * rtl.h (enum global_rtl_index): Add GR_RETURN.
17706         (ret_rtx): New.
17707         * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
17708         * config/s390/s390.c (s390_emit_epilogue): Likewise.
17709         * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
17710         * config/cris/cris.c (cris_expand_return): Likewise.
17711         * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
17712         * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
17713         rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
17714         * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
17715         * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
17716         Likewise.
17717         * config/v850/v850.c (expand_epilogue): Likewise.
17718         * config/bfin/bfin.c (bfin_expand_call): Likewise.
17719         * config/arm/arm.md (epilogue): Likewise.
17720         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
17721         * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
17722         variable to ret_reg.
17723
17724 2011-05-03  Richard Guenther  <rguenther@suse.de>
17725
17726         PR lto/48846
17727         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
17728         Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
17729         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
17730
17731 2011-05-03  Richard Guenther  <rguenther@suse.de>
17732
17733         * c-decl.c (grokdeclarator): Instead of looking at
17734         TREE_OVERFLOW check if the constant fits in the index type.
17735
17736 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
17737
17738         * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
17739         (vec_store_lanes<mode><mode>): Likewise.
17740
17741 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
17742
17743         * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
17744         * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
17745         convert_optab_index values.
17746         (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
17747         * genopinit.c (optabs): Initialize the new optabs.
17748         * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
17749         * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
17750         (expand_STORE_LANES): New functions.
17751         * tree.h (build_array_type_nelts): Declare.
17752         * tree.c (build_array_type_nelts): New function.
17753         * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
17754         (vect_model_load_cost): Likewise.
17755         (vect_store_lanes_supported, vect_load_lanes_supported)
17756         (vect_record_strided_load_vectors): Declare.
17757         * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
17758         (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
17759         (vect_transform_strided_load): Split out statement recording into...
17760         (vect_record_strided_load_vectors): ...this new function.
17761         * tree-vect-stmts.c (create_vector_array, read_vector_array)
17762         (write_vector_array, create_array_ref): New functions.
17763         (vect_model_store_cost): Add store_lanes_p argument.
17764         (vect_model_load_cost): Add load_lanes_p argument.
17765         (vectorizable_store): Try to use store-lanes functions for
17766         interleaved stores.
17767         (vectorizable_load): Likewise load-lanes and loads.
17768         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
17769         to vect_model_store_cost.
17770         (vect_build_slp_tree): Likewise vect_model_load_cost.
17771
17772 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
17773
17774         * hooks.h (hook_bool_mode_uhwi_false): Declare.
17775         * hooks.c (hook_bool_mode_uhwi_false): New function.
17776         * target.def (array_mode_supported_p): New hook.
17777         * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
17778         * doc/tm.texi: Regenerate.
17779         * stor-layout.c (mode_for_array): New function.
17780         (layout_type): Use it.
17781         * config/arm/arm.c (arm_array_mode_supported_p): New function.
17782         (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
17783
17784 2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
17785
17786         PR target/48723
17787         * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
17788         for -fstack-check if the size to allocate is negative.
17789
17790 2011-05-02  Lawrence Crowl  <crowl@google.com>
17791
17792         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
17793         (timevar_cond_start): New for starting a timer only when it is not
17794         already running.
17795         (timevar_cond_stop): New for stopping a timer when it was not already
17796         running.
17797
17798         * timevar.c (timevar_stop): Enable start/stop timers to start again.
17799         (timevar_cond_start): New as above.
17800         (timevar_cond_stop): New as above.
17801
17802         * timevar.def: Add start/stop timers for compiler phases,
17803         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
17804         TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
17805         and TV_PHASE_FINALIZE.
17806         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
17807         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
17808         TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
17809         Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
17810         Make unused TV_OVERLOAD into a start/stop timer.
17811
17812         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
17813         Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
17814         to indicate that they are start/stop timers.
17815
17816         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
17817         Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
17818         Move initialization to do_compile.
17819         (do_compile): Add initialization from above.
17820         Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
17821
17822         * c-decl.c (c_write_global_declarations): Add start/stop of
17823         TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
17824
17825         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
17826         or TV_PARSE_INLINE, as appropriate.
17827         (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
17828         (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
17829
17830 2011-05-02  Jason Merrill  <jason@redhat.com>
17831
17832         PR c++/40975
17833         * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
17834
17835 2011-05-02  Simon Martin  <simartin@users.sourceforge.net>
17836
17837         PR c/35445
17838         * c-decl.c (finish_decl): Only create a composite if the types are
17839         compatible.
17840
17841 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
17842
17843         * config/fr30/fr30-protos.h (Mmode): Don't define.
17844         * config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
17845         definition where used.
17846         * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
17847         define.  Expand definitions where used.
17848         * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
17849         Expand definitions where used.
17850         * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
17851         rx_function_arg, rx_function_arg_advance,
17852         rx_function_arg_boundary): Expand definitions of those macros.
17853         * config/v850/v850-protos.h (Mmode): Don't define.  Expand
17854         definition where used.
17855
17856 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
17857
17858         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
17859         reg<->xmm moves.
17860         (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
17861         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
17862         with *movv2sf_internal_rex64_avx.
17863         (*movv2sf_internal): Merge with *movv2sf_internal_avx.
17864         * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
17865         Use %v prefix in insn mnemonic to handle TARGET_AVX.
17866         (*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
17867         "vex" in "prefix" attribute calculation.
17868         (*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.
17869
17870 2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>
17871
17872         PR target/47951
17873         * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
17874         inputs match the output.
17875
17876 2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>
17877
17878         PR target/47955
17879         * config/m68k/m68k.c (m68k_expand_prologue): Set
17880         current_function_static_stack_size.
17881
17882 2011-05-02   Jan Hubicka  <jh@suse.cz>
17883
17884         * lto-streamer.c (lto_streamer_cache_insert_1,
17885         lto_streamer_cache_lookup, lto_streamer_cache_create,
17886         lto_streamer_cache_delete): Use pointer map instead of hashtable.
17887         * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
17888
17889 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
17890
17891         * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
17892         config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
17893         config/m68k/t-opts: New files.
17894         * config/m68k/m68k-tables.opt: New file (generated).
17895         * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
17896         extra_options and m68k/t-opts to tmake_file.
17897         * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
17898         (all_isas): Initialize using m68k-isas.def.
17899         (all_microarchs): Initialize using m68k-microarchs.def.
17900         (m68k_find_selection): Remove.
17901         (m68k_handle_option): Don't assert that global structures are in
17902         use.  Use error_at.  Access variables via opts pointer.  Don't
17903         handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
17904         directly for -m68020-40 and -m68020-60.
17905         (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
17906         m68k_tune_entry here.
17907         * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
17908         to m68k-opts.h.
17909         (m68k_library_id_string): Remove declaration.
17910         * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
17911         (m68k_library_id_string): New Variable.
17912         (march=, mcpu=, mtune=): Use Enum and Var.
17913
17914 2011-05-02  Richard Guenther  <rguenther@suse.de>
17915
17916         * varasm.c (output_constructor_regular_field): Compute zero-based
17917         index with double-ints.  Make sure to ICE instead of producing
17918         wrong code.
17919         * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
17920         in asserts.  Properly use a signed type.
17921
17922 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
17923
17924         * config/i386/sse.md (V): New mode iterator.
17925         (V_128): Rename from SSEMODE.  Make V2DF mode conditional on
17926         TARGET_SSE2.
17927         (V_256): Rename from AVX256MODE.
17928         (VF): Make V4SF mode unconditional.  Add TARGET_SSE instruction
17929         condition to all users.
17930         (VF1): Ditto.
17931         (VF2): Make V2DF mode unconditional.  Add TARGET_SSE2 instruction
17932         condition to all users.
17933         (VF_128): Make V4SF mode unconditional.
17934         (VF_256): Rename from AVX256MODEF2P.
17935         (VI4F_128): Rename from SSEMODE4S.
17936         (VI8F_128): Rename from SSEMODE2D.
17937         (VI4F_256): Rename from AVX256MODE8P.
17938         (VI8F_256): Rename from AVX256MODE4P.
17939         (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
17940         (ssescalarmodesuffix): Remove SF and DF modes.
17941         (SSEMODE124): Remove.
17942         (SSEMODE1248): Ditto.
17943         (SSEMODEF2P): Ditto.
17944         (AVXMODEF2P): Ditto.
17945         (AVXMODEFDP): Ditto.
17946         (AVXMODEFSP): Ditto.
17947         (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
17948         unconditional.
17949         (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO.  Make V4SF mode
17950         unconditional.
17951         (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
17952         xop_pcmov_<mode>256.  Use V mode iterator.
17953
17954         Adjust RTX patterns globally for renamed mode attributes.
17955
17956 2011-05-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17957
17958         * haifa-sched.c (sched_emit_insn): Emit insn before first
17959         non-scheduled insn.  Inform back-end about new insn.  Add
17960         new insn to scheduled_insns list.
17961
17962 2011-05-02  Richard Guenther  <rguenther@suse.de>
17963
17964         PR tree-optimization/48822
17965         * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
17966         (process_scc): Indicate which iteration we start.
17967
17968 2011-05-02  Jan Hubicka  <jh@suse.cz>
17969
17970         * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
17971         (lto_section_overrun): New.
17972         * lto-section-out.c (append_block): Rename to ...
17973         (lto_append_block): ... this one; export.
17974         (lto_output_1_stream): Move lto lto-streamer.h
17975         (lto_output_data_stream): Update.
17976         * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
17977         (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
17978         functions.
17979
17980 2011-05-02  Richard Guenther  <rguenther@suse.de>
17981
17982         * tree.c (tree_code_counts): New global array.
17983         (record_node_allocation_statistics): Count individual tree codes.
17984         (dump_tree_statistics): Dump individual code stats.
17985
17986 2011-05-01  Jan Hubicka  <jh@suse.cz>
17987
17988         * ipa-inline.c (caller_growth_limits): Fix thinko when
17989         looking for largest stack frame.
17990         * ipa-inline.h (dump_inline_summary): Declare.
17991         * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
17992         on stack usage.
17993         (dump_inline_summary): Export.
17994         (debug_inline_summary): Declare as DEBUG_FUNCTION.
17995
17996 2011-05-01  Anatoly Sokolov  <aesok@post.ru>
17997
17998         * reginfo.c (memory_move_cost): Change rclass argument type form
17999         'enum reg_class' to reg_class_t.
18000         * reload.h (memory_move_cost): Update prototype.
18001         * postreload.c reload_cse_simplify_set): Change type dclass var to
18002         reg_class_t.
18003         * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
18004         Update prototype.
18005         (ira_allocate_and_set_costs): Change aclass argument type form
18006         'enum reg_class' to reg_class_t.
18007         * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
18008         Change aclass argument type to reg_class_t.
18009         (update_conflict_hard_reg_costs): Change type aclass and pref vars
18010         to reg_class_t.
18011         * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
18012         memory_move_cost call.
18013
18014         * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
18015         'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
18016         Change type tmp var to reg_class_t.
18017
18018 2011-04-30  Jan Hubicka  <jh@suse.cz>
18019
18020         * ipa-inline.c (can_inline_edge_p): Disregard limits when
18021         inlining into function with flatten attribute.
18022         (want_inline_small_function_p): Be more realistic about inlining
18023         cold calls where callee size grows.
18024
18025 2011-04-30  Jan Hubicka  <jh@suse.cz>
18026
18027         * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
18028         flags.
18029
18030 2011-04-30  Anatoly Sokolov  <aesok@post.ru>
18031
18032         * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
18033         PRINT_OPERAND_PUNCT_VALID_P): Remove.
18034         * config/sparc/sparc-protos.h (print_operand): Remove declaration.
18035         * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
18036         TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
18037         (print_operand): Rename to...
18038         (sparc_print_operand): ...this. Make static. Adjust
18039         sparc_print_operand function call.
18040         (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
18041         functions.
18042
18043 2011-04-30  Jan Hubicka  <jh@suse.cz>
18044
18045         PR middle-end/48752
18046         * ipa-inline.c (early_inliner): Disable when doing late
18047         addition of function.
18048
18049 2011-04-30  Jakub Jelinek  <jakub@redhat.com>
18050
18051         * dwarf2out.c (get_address_mode): New inline.
18052         (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
18053         if not dwarf_strict emit
18054         DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
18055         desirable.  Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
18056         UNSIGNED_FLOAT, FIX and UNSIGNED_FIX.  Just return NULL for
18057         FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
18058         (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
18059         dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
18060         mem_loc_descriptor callers.
18061         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
18062         output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
18063         Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
18064         DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
18065         (base_types): New variable.
18066         (get_base_type_offset, calc_base_type_die_sizes,
18067         base_type_for_mode, mark_base_types, base_type_cmp,
18068         move_marked_base_types): New functions.
18069         (calc_die_sizes): Assert that die_offset is 0 or equal to
18070         next_die_offset.
18071         (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
18072         others defer to mem_loc_descriptor.  Adjust mem_loc_descriptor
18073         callers.  If not dwarf_strict, call mem_loc_descriptor even for
18074         non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
18075         (gen_subprogram_die): Don't give up on call site parameters
18076         with non-integral or large integral modes.  Adjust
18077         mem_loc_descriptor callers.
18078         (prune_unused_types): Call prune_unused_types_mark on base_types
18079         vector entries.
18080         (resolve_addr): Call mark_base_types.
18081         (dwarf2out_finish): Call move_marked_base_types.
18082
18083         PR tree-optimization/48809
18084         * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
18085         type.
18086         (gen_inbound_check): Don't compute index_expr - range_min in utype
18087         again, instead reuse SSA_NAME initialized in build_arrays.
18088         Remove two useless gsi_for_stmt calls.
18089
18090 2011-04-29  Jeff Law  <law@redhat.com>
18091
18092         * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
18093
18094 2011-04-29  Martin Jambor  <mjambor@suse.cz>
18095
18096         * cgraph.h (cgraph_postorder): Remove declaration.
18097         * ipa-utils.h (ipa_free_postorder_info): Declare.
18098         (ipa_reverse_postorder): Likewise.
18099         * cgraphunit.c: Include ipa-utils.h.
18100         (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
18101         * ipa-inline.c: Include ipa-utils.h.
18102         (ipa_inline): Update call to ipa_reverse_postorder.
18103         * ipa-pure-const.c (propagate_pure_const): Update call to
18104         ipa_reduced_postorder and ipa_print_order.  Call
18105         ipa_free_postorder_info to clean up.
18106         (propagate_nothrow): Likewise.
18107         * ipa-reference.c (propagate): Removed a useless call to
18108         ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
18109         and ipa_print_order.  Call ipa_free_postorder_info to clean up.
18110         * ipa.c: Include ipa-utils.h.
18111         (ipa_profile): Update call to ipa_reverse_postorder.
18112         (cgraph_postorder): Moved to...
18113         * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
18114         (ipa_utils_print_order): Renamed to ipa_print_order.
18115         (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
18116         comments.
18117         (ipa_free_postorder_info): New function.
18118         * passes.c: Include ipa-utils.h.
18119         (do_per_function_toporder): Update call to ipa_reverse_postorder.
18120         (ipa_write_summaries): Likewise.
18121         * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
18122         (cgraphunit.o): Likewise.
18123         (ipa.o): Likewise.
18124         (ipa-inline.o): Likewise.
18125
18126 2011-04-29  Jan Hubicka  <jh@suse.cz>
18127
18128         * gcc.dg/tree-ssa/inline-10.c: New testcase.
18129         * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
18130         * ipa-inline.h (clause_t): Turn into unsigned int.
18131         * ipa-inline-analysis.c (add_clause): Do more simplification.
18132         (and_predicates): Shortcut more cases.
18133         (predicates_equal_p): Move forward; check that clauses are properly
18134         ordered.
18135         (or_predicates): Shortcut more cases.
18136         (edge_execution_predicate): Rewrite as...
18137         (set_cond_stmt_execution_predicate): ... this function; handle
18138         __builtin_constant_p.
18139         (set_switch_stmt_execution_predicate): New .
18140         (compute_bb_predicates): New.
18141         (will_be_nonconstant_predicate): Update TODO.
18142         (estimate_function_body_sizes): Use compute_bb_predicates
18143         and free them later, always try to estimate if stmt is constant.
18144         (estimate_time_after_inlining, estimate_size_after_inlining):
18145         Gracefully handle optimized out edges.
18146         (read_predicate): Fix off by one error.
18147
18148 2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>
18149
18150         * Makefile.in (ENABLE_MAINTAINER_RULES): New.
18151
18152 2011-04-27  Xinliang David Li  <davidxl@google.com>
18153
18154         * tree-profile.c (init_ic_make_global_vars): Set
18155         tls attribute on ic vars.
18156         * coverage.c (coverage_end_function): Initialize
18157         function_list with zero.
18158
18159 2011-04-29  Richard Guenther  <rguenther@suse.de>
18160
18161         * builtins.c (fold_builtin_classify_type): Use integer_type_node
18162         for the type of the result.
18163         (fold_builtin_isascii): Likewise.
18164         (fold_builtin_toascii): Use integer_type_node where appropriate.
18165         (fold_builtin_logb): Likewise.
18166         (fold_builtin_frexp): Likewise.
18167         (fold_builtin_strstr): Likewise.
18168         (fold_builtin_strpbrk): Likewise.
18169         (fold_builtin_fputs): Likewise.
18170         (fold_builtin_sprintf): Likewise.
18171         (fold_builtin_snprintf): Likewise.
18172         (fold_builtin_printf): Likewise.
18173         (do_mpfr_remquo): Use a proper type for the assigned constant.
18174         (do_mpfr_lgamma_r): Likewise.
18175         * dwarf2out.c (resolve_one_addr): Use size_int.
18176         * except.c (init_eh): Likewise.
18177         (assign_filter_values): Use integer_type_node for filter values.
18178         (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
18179         indices.
18180         * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
18181         for EH region numbers.
18182         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
18183         for the shift amount.
18184
18185 2011-04-29  Richard Guenther  <rguenther@suse.de>
18186
18187         * expr.h (expand_shift): Rename to ...
18188         (expand_variable_shift): ... this.
18189         (expand_shift): Take a constant shift amount.
18190         * expmed.c (expand_shift): Rename to ...
18191         (expand_variable_shift): ... this.
18192         (expand_shift): New wrapper around expand_variable_shift.
18193         * expr.c (convert_move, emit_group_load_1, emit_group_store,
18194         optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
18195         expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
18196         * expmed.c (store_fixed_bit_field, extract_bit_field_1,
18197         extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
18198         expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
18199         extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
18200         emit_store_flag_1, emit_store_flag): Likewise.
18201         * builtins.c (expand_builtin_signbit): Likewise.
18202         * calls.c (load_register_parameters): Likewise.
18203         * function.c (assign_parm_setup_block): Likewise.
18204         * lower-subreg.c (resolve_shift_zext): Likewise.
18205         * optabs.c (widen_bswap, expand_abs_nojump,
18206         expand_one_cmpl_abs_nojump, expand_float): Likewise.
18207         * spu/spu.c (spu_expand_extv): Likewise.
18208         * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
18209
18210 2011-04-29  Richard Guenther  <rguenther@suse.de>
18211
18212         * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
18213         for the remapped region number.
18214         * predict.c (build_predict_expr): Use integer_type_node for the
18215         predict kind.
18216         * fold-const.c (fold_binary_loc): Use integer_type_node for
18217         the shift amount.  Use a proper type for the PLUS_EXPR operand.
18218
18219 2011-04-29  Michael Matz  <matz@suse.de>
18220
18221         * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
18222         other trees that just builtins.
18223         (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
18224
18225 2011-04-29  Richard Guenther  <rguenther@suse.de>
18226
18227         * tree-nested.c (get_trampoline_type): Use size_int.
18228         (get_nl_goto_field): Likewise.
18229         * tree-eh.c (lower_try_finally_switch): Use integer_type_node
18230         for all indexes.
18231         (lower_eh_constructs_2): Likewise.
18232         (lower_resx): Likewise.
18233         (lower_eh_dispatch): Likewise.
18234         * tree-mudflap.c (mf_build_string): Use size_int.
18235         (mudflap_register_call): Use integer_type_node for the flag.
18236         (mudflap_enqueue_constant): Use size_int.
18237         * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
18238         instead of rebuilding it.
18239
18240 2011-04-29  Richard Guenther  <rguenther@suse.de>
18241
18242         * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
18243         Handle OBJ_TYPE_REF.
18244         (find_func_aliases_for_call): Use it more consistently.
18245
18246 2011-04-29  Alexandre Oliva  <aoliva@redhat.com>
18247
18248         * haifa-sched.c (last_nondebug_scheduled_insn): New.
18249         (rank_for_schedule): Use it.
18250         (schedule_block): Set it.
18251
18252 2011-04-28  David Li  <davidxl@google.com>
18253
18254         * tree.c (crc32_string): Use crc32_byte.
18255         (crc32_byte): New function.
18256         * tree.h (crc32_byte): New function.
18257         * gcov.c (read_graph_file): Handle new cfg_cksum.
18258         (read_count_file): Ditto.
18259         * profile.c (instrument_values): Ditto.
18260         (get_exec_counts): Ditto.
18261         (read_profile_edge_counts): Ditto.
18262         (compute_branch_probabilities): Ditto.
18263         (compute_value_histograms): Ditto.
18264         (branch_prob): Ditto.
18265         (end_branch_prob): Ditto.
18266         * coverage.c (read_counts_file): Ditto.
18267         (get_coverage_counts): Ditto.
18268         (tree_coverage_counter_addr): Ditto.
18269         (coverage_checksum_string): Ditto.
18270         (coverage_begin_output): Ditto.
18271         (coverage_end_function): Ditto.
18272         (build_fn_info_type): Ditto.
18273         (build_fn_info_value): Ditto.
18274         * libgcov.c (gcov_exit): Ditto.
18275         * gcov-dump.c (tag_function): Ditto.
18276         (compute_checksum): Remove.
18277
18278 2011-04-29  Alan Modra  <amodra@gmail.com>
18279
18280         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
18281         unspec plus offset.  Tidy macho code.
18282
18283 2011-04-29  Martin Jambor  <mjambor@suse.cz>
18284
18285         * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
18286         node instead of a decl.  Update all callers.
18287         * cgraph.h: Update declaration.
18288
18289 2011-04-28  Ira Rosen  <ira.rosen@linaro.org>
18290
18291         PR tree-optimization/48765
18292         * tree-vectorizer.h (vect_make_slp_decision): Return bool.
18293         * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
18294         to indicate if loop aware SLP is being used.  Scan the statements
18295         and update the vectorization factor according to the type of
18296         vectorization before statement analysis.
18297         (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
18298         pass it to vect_analyze_loop_operations.
18299         (vectorizable_reduction): Set number of copies to 1 in case of pure
18300         SLP statement.
18301         * tree-vect-stmts.c (vectorizable_conversion,
18302         vectorizable_assignment, vectorizable_shift,
18303         vectorizable_operation, vectorizable_type_demotion,
18304         vectorizable_type_promotion, vectorizable_store, vectorizable_load):
18305         Likewise.
18306         (vectorizable_condition): Move the check that it is not SLP
18307         vectorization before the number of copies check.
18308         * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
18309         to vectorize the loop using SLP.
18310
18311 2011-04-28  Jakub Jelinek  <jakub@redhat.com>
18312
18313         PR middle-end/48597
18314         * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
18315         inline asm.
18316
18317 2011-04-28  Joseph Myers  <joseph@codesourcery.com>
18318
18319         * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
18320         *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
18321         (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
18322         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
18323         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
18324         linux*.h headers.
18325         * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
18326         * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
18327         * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
18328         * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
18329         * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
18330         * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
18331         REG_NAME.
18332         * config/i386/linux.h (REG_NAME): Don't define.
18333         * config/i386/linux64.h (REG_NAME): Don't define.
18334         * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
18335         Undefine before defining.
18336
18337 2011-04-28  Jan Hubicka  <jh@suse.cz>
18338
18339         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
18340         nonconstant_names array.
18341         (estimate_function_body_sizes): Build nonconstant_names array; handle
18342         BUILT_IN_CONSTANT_P.
18343
18344 2011-04-28  Richard Guenther  <rguenther@suse.de>
18345
18346         PR bootstrap/48804
18347         Revert
18348         2011-04-28  Richard Guenther  <rguenther@suse.de>
18349
18350         * tree-ssa-structalias.c (solve_constraints): Build succ graph
18351         as late as possible.
18352
18353 2011-04-28  Richard Guenther  <rguenther@suse.de>
18354
18355         * tree-ssa-structalias.c (dump_constraint): Don't end the line.
18356         (debug_constraint): Do it here.
18357         (dump_constraints): And here.
18358         (rewrite_constraints): And here.
18359         (dump_constraint_edge): Remove.
18360         (dump_constraint_graph): Rewrite to produce DOT output.
18361         (solve_constraints): Build succ graph as late as possible.
18362         Dump constraint graphs before and after solving.
18363
18364 2011-04-28  Richard Guenther  <rguenther@suse.de>
18365
18366         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
18367         New function split out from ...
18368         (find_func_aliases): ... here.  Call it.
18369         (find_func_aliases_for_call): Likewise.
18370
18371 2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
18372
18373         * internal-fn.h (internal_fn_name_array): Declare.
18374         (internal_fn_flags_array): Likewise.
18375
18376 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
18377
18378         * config/i386/i386.md (ssemodesuffix):  Merge with ssevecsize,
18379         ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
18380         Move from sse.md.
18381         (ssemodefsuffix): Remove.
18382         (ssevecmodesuffix): New mode attribute.
18383         (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
18384         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
18385         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
18386         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
18387         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
18388         *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
18389         *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
18390         ssemodesuffix mode attribute.
18391         (float splitters): Use ssevecmodesuffix mode attribute.
18392         * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
18393         (sseinsmode): Rename from avxvecmode.
18394         (avxsizesuffix): Rename from avxmodesuffix.
18395         (sseintvecmode): Rename from avxpermvecmode.
18396         (ssedoublevecmode): Rename from ssedoublesizemode.
18397         (ssehalfvecmode): Rename from avxhalfvecmode.
18398         (ssescalarmode): Rename from avxscalarmode.
18399         (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
18400         templates for ssemodesuffix mode attribute.
18401         (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
18402         mode attribute.
18403
18404         Adjust RTX patterns globally for renamed mode attributes.
18405
18406 2011-04-27  Jan Hubcika  <jh@suse.cz>
18407
18408         * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
18409         * ipa-inline-analysis.c: Include alloc-pool.h.
18410         (edge_predicate_pool): New.
18411         (trye_predicate_p): New function
18412         (false_predicate_p): New function.
18413         (add_clause): Sanity check that false clauses are "optimized";
18414         never add clauses to predicate that is already known to be false.
18415         (and_predicate): Use flase_predicate_p.
18416         (evaulate_predicate): Rename to ...
18417         (evaluate_predicate): ... this one; update all callers; assert
18418         that false is not listed among possible truths.
18419         (dump_predicate): Use true_predicate_p.
18420         (account_size_time): Use false_predicate_p.
18421         (evaulate_conditions_for_edge): Rename to ...
18422         (evaluate_conditions_for_edge) ... this one.
18423         (edge_set_predicate): New function.
18424         (inline_edge_duplication_hook): Duplicate edge predicates.
18425         (inline_edge_removal_hook): Free edge predicates.
18426         (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
18427         (dump_inline_summary): Update.
18428         (estimate_function_body_sizes): Set edge predicates.
18429         (estimate_calls_size_and_time): Handle predicates.
18430         (estimate_callee_size_and_time): Update.
18431         (remap_predicate): Add toplev_predicate; update comment.
18432         (remap_edge_predicates): New function.
18433         (inline_merge_summary): Compute toplev predicate; update.
18434         (read_predicate): New function.
18435         (read_inline_edge_summary): Use it.
18436         (inline_read_section): Likewise.
18437         (write_predicate): New function.
18438         (write_inline_edge_summary): Use it.
18439         (inline_write_summary): Likewise.
18440         (inline_free_summary): Free alloc pool and edge summary vec.
18441
18442 2011-04-27  Richard Guenther  <rguenther@suse.de>
18443
18444         * tree-ssa-structalias.c (changed_count): Remove.
18445         (changed): Use a bitmap.
18446         (unify_nodes): Adjust.
18447         (do_sd_constraint): Likewise.
18448         (do_ds_constraint): Likewise.
18449         (do_complex_constraint): Likewise.
18450         (solve_graph): Likewise.
18451
18452 2011-04-27  Jan Hubicka  <jh@suse.cz>
18453
18454         * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
18455
18456 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
18457
18458         * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
18459         (avx_vperm2f128_*_operand): Ditto.
18460         * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
18461         Use avx_vpermilp_parallel in insn condition.
18462         (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
18463         Use avx_vperm2f128_parallel in insn condition.
18464
18465 2011-04-27  Richard Guenther  <rguenther@suse.de>
18466
18467         * Makefile.in (tree-ssa-structalias.o): Remove
18468         gt-tree-ssa-structalias.h dependency.
18469         (GTFILES): Remove tree-ssa-structalias.c.
18470         * tree.c (allocate_decl_uid): New function.
18471         (make_node_stat): Use it.
18472         (copy_node_stat): Likewise.
18473         * tree.h (allocate_decl_uid): Declare.
18474         * tree-ssa-alias.h (delete_alias_heapvars): Remove.
18475         * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
18476         * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
18477         * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
18478         * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
18479         (struct heapvar_map): Likewise.
18480         (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
18481         heapvar_insert): Likewise.
18482         (make_heapvar_for): Rename to ...
18483         (make_heapvar): ... this.  Simplify.
18484         (fake_var_decl_obstack): New global var.
18485         (build_fake_var_decl): New function.
18486         (make_constraint_from_heapvar): Adjust.
18487         (handle_lhs_call): Likewise.
18488         (create_function_info_for): Likewise.
18489         (intra_create_variable_infos): Likewise.
18490         (init_alias_vars): Allocate fake_var_decl_obstack.
18491         (init_alias_heapvars, delete_alias_heapvars): Remove.
18492         (compute_points_to_sets): Do not call init_alias_heapvars.
18493         (ipa_pta_execute): Likewise.
18494         (delete_points_to_sets): Free fake_var_decl_obstack.
18495
18496 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18497
18498         * config/spu/divmovti4.c (union qword_UTItype): New data type.
18499         (si_from_UTItype, si_to_UTItype): New functions.
18500         (__udivmodti4): Use them to implement type-punning.
18501         * config/spu/multi3.c (union qword_TItype): New data type.
18502         (si_from_TItype, si_to_TItype): New functions.
18503         (__multi3): Use them to implement type-punning.
18504
18505 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18506
18507         * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
18508
18509 2011-04-27  Jan Hubicka  <jh@suse.cz>
18510
18511         * ipa-prop.c (function_insertion_hook_holder): New holder.
18512         (ipa_add_new_function): New function.
18513         (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
18514         Register/deregister holder.
18515
18516 2011-04-27  Richard Guenther  <rguenther@suse.de>
18517
18518         PR tree-optimization/48772
18519         * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
18520
18521 2011-04-27  Richard Guenther  <rguenther@suse.de>
18522
18523         * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
18524         TARGET_MEM_REF handling.
18525
18526 2011-04-27  Nick Clifton  <nickc@redhat.com>
18527
18528         * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
18529         ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
18530         (REG_CLASS_NAMES): Likewise.
18531         (REG_CLASS_CONTENTS): Likewise.
18532         (EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
18533         (ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
18534         (FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
18535         (FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
18536         (EVEN_REGS): New macro.  Alias for QUAD_REGS.
18537         * config/frv/frv.c (frv_secondary_reload_class): Remove use of
18538         duplicate register classes.
18539         (frv_class_likely_spilled_p): Likewise.
18540         (frv_register_move_cost): Likewise.
18541
18542         * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
18543         end of the regno_reg_class array.
18544
18545 2011-04-27  Jakub Jelinek  <jakub@redhat.com>
18546
18547         PR c/48742
18548         * c-typeck.c (build_binary_op): Don't wrap arguments if
18549         int_operands is true.
18550
18551 2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>
18552
18553         PR target/48767
18554         * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
18555         targetm.calls.must_pass_in_stack for void type.
18556
18557 2011-04-26  Jan Hubicka  <jh@suse.cz>
18558
18559         * cgraphbuild.c (build_cgraph_edges): Update call
18560         of cgraph_create_edge and cgraph_create_indirect_edge.
18561         * cgraph.c (cgraph_create_edge_including_clones,
18562         cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
18563         cgraph_update_edges_for_call_stmt_node): Do not take nest
18564         argument; do not initialize call_stmt_size/time.
18565         (dump_cgraph_node): Do not dump nest.
18566         (cgraph_clone_edge): Do not take loop_nest argument;
18567         do not propagate it; do not clone call_stmt_size/time.
18568         (cgraph_clone_node): Likewise.
18569         (cgraph_create_virtual_clone): Update.
18570         * cgraph.h (struct cgraph_edge): Remove
18571         call_stmt_size/call_stmt_time/loop_nest.
18572         (cgraph_create_edge, cgraph_create_indirect_edge,
18573         cgraph_create_edge_including_clones, cgraph_clone_node): Update
18574         prototype.
18575         * tree-emutls.c (gen_emutls_addr): Update.
18576         * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
18577         loop_nest; handle indirect calls, too.
18578         (clone_inlined_nodes): Do not care about updating inline summaries.
18579         * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
18580         * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
18581         stream call_stmt_size/call_stmt_time/loop_nest.
18582         * ipa-inline.c (edge_badness): Update.
18583         (ipa_inline): dump summaries after inlining.
18584         * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
18585         New.
18586         (inline_edge_summary): New function.
18587         * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
18588         (inline_edge_removal_hook): Handle edge summaries.
18589         (inline_edge_duplication_hook): New hook.
18590         (inline_summary_alloc): Alloc hooks.
18591         (initialize_growth_caches): Do not register removal hooks.
18592         (free_growth_caches); Do not free removal hook.
18593         (dump_inline_edge_summary): New function.
18594         (dump_inline_summary): Use it.
18595         (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
18596         (inline_update_callee_summaries): New function.
18597         (inline_merge_summary): Use it.
18598         (do_estimate_edge_time, do_estimate_edge_growth): Update.
18599         (read_inline_edge_summary): New function.
18600         (inline_read_section): Use it.
18601         (write_inline_edge_summary): New function.
18602         (inline_write_summary): Use it.
18603         (inline_free_summary): Free edge new holders.
18604         * tree-inline.c (copy_bb): Update.
18605
18606 2011-04-26  Jason Merrill  <jason@redhat.com>
18607
18608         * tree-eh.c (lower_try_finally_switch): Create the label along with
18609         the CASE_LABEL_EXPR.
18610
18611 2011-04-26  David S. Miller  <davem@davemloft.net>
18612             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18613
18614         * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
18615         * configure: Regenerate.
18616
18617 2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
18618
18619         PR target/48258
18620         * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
18621         reduction.
18622         (VEC_reduc): New code iterator and splitters for vector reduction.
18623         (VEC_reduc_name): Ditto.
18624         (VEC_reduc_rtx): Ditto.
18625         (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
18626         (reduc_<VEC_reduc_name>_v4sf): Ditto.
18627
18628         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
18629         support for extracting SF on VSX.
18630
18631         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
18632         generating xscvspdp.
18633         (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
18634         (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
18635         double add, minimum, maximum vector reduction.
18636         (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
18637         (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
18638         optimize double vector reduction.
18639         (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
18640
18641 2011-04-26  Joseph Myers  <joseph@codesourcery.com>
18642
18643         * config/fr30/fr30.h (inhibit_libc): Don't define.
18644         * config/m32r/m32r-protos.h: Correct comment.
18645         * config/v850/v850.h (GHS_default_section_names,
18646         GHS_current_section_names): Use tree, not union tree_node *.
18647
18648 2011-04-26  Xinliang David Li  <davidxl@google.com>
18649
18650         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
18651         * c-family/c-opts.c (c_common_handle_option): Set
18652         warn_maybe_uninitialized.
18653         * opts.c (common_handle_option): Ditto.
18654         * common.opt:  New option.
18655         * tree-ssa.c (warn_uninit): Add one more parameter.
18656         (warn_uninitialized_var): Pass warning code.
18657         * tree-flow.h: Interface change.
18658
18659 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18660
18661         * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
18662         (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
18663         (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
18664
18665 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18666
18667         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
18668         * config/mips/mips.opt (mmips-tfile): Remove.
18669
18670         * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
18671         mips-tdump reference to ...
18672         (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
18673         * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
18674         reference by Tru64 UNIX.
18675
18676 2011-04-26  Jakub Jelinek  <jakub@redhat.com>
18677
18678         PR debug/48768
18679         * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
18680         is error_mark_node, set value to NULL.
18681
18682         PR tree-optimization/48734
18683         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
18684         if return value from maybe_fold_*_comparsions isn't something
18685         the code is prepared to handle.
18686
18687 2011-04-26  Uros Bizjak  <ubizjak@gmail.com>
18688
18689         * config/i386/predicates.md (ext_QIreg_operand): Remove extra
18690         mode check.
18691         (ext_QIreg_nomode_operands): Remove.
18692         * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
18693         (*andsi_1): Ditto.
18694         (*andhi_1): Ditto.
18695
18696 2011-04-26  Andrew Stubbs  <ams@codesourcery.com>
18697
18698         * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
18699
18700 2011-04-26  Richard Guenther  <rguenther@suse.de>
18701
18702         * c-typeck.c (build_unary_op): Do not expand array-refs via
18703         pointer arithmetic.  Only adjust qualifiers for function types.
18704
18705 2011-04-26  Richard Guenther  <rguenther@suse.de>
18706
18707         PR middle-end/48694
18708         * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
18709         * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
18710         compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
18711         with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
18712
18713 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
18714
18715         * doc/extend.texi: Document __underlying_type.
18716
18717 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
18718
18719         * config/rs6000/titan.md (automata_option "progress"): Remove.
18720
18721 2011-04-25  Jeff Law  <law@redhat.com>
18722
18723         * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
18724
18725 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
18726
18727         * system.h (ENUM_BITFIELD): Remove.
18728
18729 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
18730             Eric Botcazou  <ebotcazou@adacore.com>
18731
18732         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
18733         for STORE_FLAG_VALUE==-1 case.
18734
18735 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
18736
18737         PR target/43804
18738         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
18739         LEGITIMATE_PIC_OPERAND_P.
18740
18741 2011-04-24  Jan Hubicka  <jh@suse.cz>
18742
18743         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
18744         WPA hack.
18745         * ipa-prop.h (ipa_get_param, ipa_is_param_used,
18746         ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
18747         ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
18748         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
18749         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
18750         Sanity check predicate length.
18751         (remap_predicate): Likewise; sanity check jump functions.
18752         (inline_read_section, inline_write_summary): Sanity check
18753         predicate length.
18754
18755 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
18756
18757         PR other/48748
18758         * doc/extend.texi (Type Traits): Document __is_standard_layout,
18759         __is_literal_type, and __is_trivial; update throughout about
18760         possibly cv-qualified void types.
18761
18762 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
18763
18764         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
18765         testsuite and make it version agnostic.
18766
18767 2011-04-22  Jan Hubicka  <jh@suse.cz>
18768
18769         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
18770
18771 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
18772
18773         PR c/48685
18774         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
18775         to VOID_TYPE even around MODIFY_EXPR.
18776
18777 2011-04-22  Mike Stump  <mikestump@comcast.net>
18778
18779         * gensupport.c (read_md_rtx): Fix typo in comment.
18780         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
18781         comment.
18782
18783 2011-04-22  Jan Hubicka  <jh@suse.cz>
18784
18785         * gengtype.c (open_base_files): Add ipa-inline.h include.
18786         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
18787         ipa-prop.c; update all uses.
18788         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
18789         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
18790         merge summary of inlined function into former caller.
18791         * ipa-inline.c (max_benefit): Remove.
18792         (edge_badness): Compensate for removal of benefits.
18793         (update_caller_keys): Use
18794         reset_node_growth_cache/reset_edge_growth_cache.
18795         (update_callee_keys): Likewise.
18796         (update_all_callee_keys): Likewise.
18797         (inline_small_functions): Do not collect max_benefit; do not reset
18798         estimated_growth; call free_growth_caches and initialize_growth_caches.
18799         * ipa-inline.h (struct condition, type clause_t, struct predicate,
18800         struct size_time_entry): New structures.
18801         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
18802         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
18803         and estimated_growth.
18804         (edge_growth_cache_entry): New structure.
18805         (node_growth_cache, edge_growth_cache): New global vars.
18806         (estimate_growth): Turn into inline.
18807         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
18808         initialize_growth_caches, free_growth_caches): Declare.
18809         (estimate_edge_growth): Rewrite.
18810         (estimate_edge_time): Implement as inline cache lookup.
18811         (reset_node_growth_cache, reset_edge_growth_cache): New inline
18812         functions.
18813         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
18814         (NUM_CONDITIONS): New constant.
18815         (predicate_conditions): New enum.
18816         (IS_NOT_CONSTANT): New constant.
18817         (edge_removal_hook_holder): New var.
18818         (node_growth_cache, edge_growth_cache): New global vars.
18819         (true_predicate, single_cond_predicate, false_predicate,
18820         not_inlined_predicate, add_condition, add_clause, and_predicates,
18821         or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
18822         dump_clause, dump_predicate, account_size_time,
18823         evaulate_conditions_for_edge): New functions.
18824         (inline_summary_alloc): Move to heap.
18825         (inline_node_removal_hook): Clear condition and entry vectors.
18826         (inline_edge_removal_hook): New function.
18827         (initialize_growth_caches, free_growth_caches): New function.
18828         (dump_inline_summary): Update.
18829         (edge_execution_predicate): New function.
18830         (will_be_nonconstant_predicate): New function.
18831         (estimate_function_body_sizes): Compute BB and constantness predicates.
18832         (compute_inline_parameters): Do not clear estimated_growth.
18833         (estimate_edge_size_and_time): New function.
18834         (estimate_calls_size_and_time): New function.
18835         (estimate_callee_size_and_time): New function.
18836         (remap_predicate): New function.
18837         (inline_merge_summary): New function.
18838         (do_estimate_edge_time): New function based on...
18839         (estimate_edge_time): ... this one.
18840         (do_estimate_edge_growth): New function.
18841         (do_estimate_growth): New function based on....
18842         (estimate_growth): ... this one.
18843         (inline_analyze_function): Analyze after deciding on jump functions.
18844         (inline_read_section): New function.
18845         (inline_read_summary): Use it.
18846         (inline_write_summary): Write all the new data.
18847         * ipa-prop.c (ipa_get_param_decl_index): Export.
18848         (ipa_lattice_from_jfunc): Move here from ipa-cp.c
18849         * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
18850         Declare.
18851         (ipa_get_lattice): Move here from ipa-cp.c
18852         * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
18853         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
18854         * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
18855         cgraph_edge_inlinable_p): Remove.
18856         * cgraphunit.c: Include ipainline.h
18857         (cgraph_process_new_functions): Update call of
18858         compute_inline_parameters.
18859
18860 2011-04-22  Richard Guenther  <rguenther@suse.de>
18861
18862         * tree.c (build_int_cst): Properly create canonicalized integer
18863         constants.
18864         (build_int_cst_type): Remove scary comments.
18865
18866 2011-04-22  Xinliang David Li  <davidxl@google.com>
18867
18868         * toplev.c (process_options): Enable -Werror=coverage-mismatch
18869         by default when -Wno-error is not specified.
18870         * opts-global.c (decode_options): Remove call to
18871         control_warning_options.
18872
18873 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
18874
18875         PR tree-optimization/48717
18876         * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
18877         ~A + A optimizations use build_int_cst_type instead of build_int_cst.
18878
18879 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
18880
18881         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
18882         definition where used.
18883
18884 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
18885
18886         PR c/48716
18887         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
18888         TREE_STATIC variables declared inside of some OpenMP construct.
18889
18890 2011-04-22  Martin Jambor  <mjambor@suse.cz>
18891
18892         PR middle-end/48585
18893         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
18894
18895 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
18896
18897         PR c/36750
18898         * c-typeck.c (pop_init_level): Do not warn about initializing
18899         with ` = {0}'.
18900
18901 2011-04-22  Alan Modra  <amodra@gmail.com>
18902
18903         * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
18904         when returning call_cookie.
18905         (rs6000_function_ok_for_sibcall): Allow sibcalls via function
18906         pointers, to functions with no more vector args than the current
18907         function, and some non-local calls for ABI_V4.
18908         * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
18909         sibcall_nonlocal_aix64): Combine to ..
18910         (sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
18911         (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
18912         (sibcall_value_nonlocal_aix<mode>): ..likewise.
18913         (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
18914         (sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
18915         operand.
18916         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
18917         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
18918         sibcall_value_symbolic_64): Delete.
18919
18920 2011-04-21  Xinliang David Li  <davidxl@google.com>
18921
18922         * cgraph.h: Remove pid.
18923         * cgraph.c: Remove pid.
18924         * value-prof.c (init_node_map): New function.
18925         (del_node_map): New function.
18926         (find_func_by_funcdef_no): New function.
18927         (gimple_ic_transform): Call new function.
18928         * cgraphunit.c (cgraph_finalize_function): Remove pid.
18929         * function.c (get_last_funcdef_no): New function.
18930         * function.h (get_last_funcdef_no): New function.
18931         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
18932         to libgcov function.
18933         (tree-profiling): Call node map init and delete function.
18934
18935 2011-04-21  Ian Lance Taylor  <iant@google.com>
18936
18937         * godump.c (go_format_type): Use exported Go name for anonymous
18938         field name.
18939
18940 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
18941
18942         * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
18943         Call builtin_function_type_list instead of builtin_function_type.
18944         (UNARY, BINARY, TRINARY, QUAD): Likewise.
18945
18946 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
18947
18948         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
18949         build_function_type_list instead of build_function_type.
18950         Delete variable `endlink'.
18951
18952 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
18953
18954         * config/s390/s390.c (s390_init_builtins): Call
18955         build_function_type_list instead of build_function_type.
18956
18957 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
18958
18959         * config/ia64/ia64.c (ia64_init_builtins): Call
18960         build_function_type_list instead of builtin_function_type.
18961
18962 2011-04-21  Easwaran Raman  <eraman@google.com>
18963
18964         * cfgexpand.c (stack_var): Remove OFFSET...
18965         (add_stack_var): ...and its reference here...
18966         (expand_stack_vars): ...and here.
18967         (stack_var_cmp): Sort by descending order of size.
18968         (partition_stack_vars): Change heuristic.
18969         (union_stack_vars): Fix to reflect changes in partition_stack_vars.
18970         (dump_stack_var_partition): Add newline after each partition.
18971
18972 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
18973             Jeff Law  <law@redhat.com>
18974
18975         * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
18976         * gengtype.c (matching_file_name_substitute): Likewise.
18977
18978 2011-04-21  Richard Guenther  <rguenther@suse.de>
18979
18980         PR lto/48703
18981         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
18982
18983 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
18984
18985         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
18986
18987 2011-04-21  Richard Guenther  <rguenther@suse.de>
18988
18989         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
18990         file name.
18991
18992 2011-04-21  Richard Guenther  <rguenther@suse.de>
18993
18994         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
18995         MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
18996         Use DECL_P, not SSA_VAR_P.
18997         (ptr_derefs_may_alias_p): Likewise.
18998         (ptr_deref_may_alias_ref_p_1): Likewise.
18999         (decl_refs_may_alias_p): Likewise.
19000         (refs_may_alias_p_1): Likewise.
19001         (ref_maybe_used_by_call_p_1): Likewise.
19002         (call_may_clobber_ref_p_1): Likewise.
19003         (indirect_ref_may_alias_decl_p): Assume indirect refrences
19004         are either MEM_REF or TARGET_MEM_REF.
19005         (indirect_refs_may_alias_p): Likewise.
19006         * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
19007         for MEM_EXPR of indirect calls.
19008
19009 2011-04-21  Tristan Gingold  <gingold@adacore.com>
19010
19011         * vmsdbgout.c (write_srccorr): Compute file length from the string.
19012         (dst_file_info_struct): Remove flen field.
19013         (lookup_filename): Remove code that set flen field.
19014
19015 2011-04-21  Tristan Gingold  <gingold@adacore.com>
19016
19017         * config/ia64/ia64.c (ia64_start_function): Add a guard.
19018
19019 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
19020
19021         PR target/48708
19022         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
19023         vec_extract and vec_concat for non-SSE4_1 targets.
19024
19025 2011-04-21  Richard Guenther  <rguenther@suse.de>
19026
19027         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
19028         return statements.
19029
19030 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
19031
19032         * config/i386/cygming.h (union tree_node, TREE): Don't define or
19033         undefine.
19034         (FILE): Don't undefine.
19035
19036 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
19037
19038         * config/alpha/alpha.c (struct machine_function): Use rtx, not
19039         struct rtx_def *.
19040         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
19041         struct rtx_def *.
19042         * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
19043         * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
19044         * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
19045         rtx_def *.
19046         * config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
19047         definitions where used.
19048         * config/microblaze/microblaze.h (struct microblaze_args): Use
19049         rtx, not struct rtx_def *.
19050         * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
19051         rtx_def *.
19052         * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
19053         * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
19054         * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
19055         not struct rtx_def *.
19056         * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
19057         struct rtx_def *.
19058         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
19059         rtx_def *.
19060         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
19061
19062 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
19063
19064         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
19065         operand_equal_p to compare DR_BASE_ADDRESSes.
19066         (vect_check_interleaving): Likewise.
19067
19068 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
19069
19070         PR target/46329
19071         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
19072         for all Neon struct constants.
19073
19074 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
19075
19076         * target.def (legitimate_constant_p): New hook.
19077         * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
19078         (TARGET_LEGITIMATE_CONSTANT_P): ...this.
19079         * doc/tm.texi: Regenerate.
19080         * hooks.h (hook_bool_mode_rtx_true): Declare.
19081         * hooks.c (hook_bool_mode_rtx_true): Define.
19082         * system.h (LEGITIMATE_CONSTANT_P): Poison.
19083         * calls.c (precompute_register_parameters): Replace uses of
19084         LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
19085         (emit_library_call_value_1): Likewise.
19086         * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
19087         (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
19088         * ira-costs.c (scan_one_insn): Likewise.
19089         * recog.c (general_operand, immediate_operand): Likewise.
19090         * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
19091         * reload1.c (init_eliminable_invariants): Likewise.
19092
19093         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
19094         mode argument.
19095         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
19096         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
19097         argument.
19098         (TARGET_LEGITIMATE_CONSTANT_P): Define.
19099         * config/alpha/predicates.md (input_operand): Update call to
19100         alpha_legitimate_constant_p.
19101
19102         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
19103         * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
19104         (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
19105         * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19106         (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
19107         (arm_legitimate_constant_p): New functions.
19108         (arm_cannot_force_const_mem): Make static.
19109
19110         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
19111
19112         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
19113         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
19114         * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
19115         instead of bfin_legitimate_constant_p.
19116         (bfin_legitimate_constant_p): Make static.  Add a mode argument.
19117         (TARGET_LEGITIMATE_CONSTANT_P): Define.
19118
19119         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
19120
19121         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
19122
19123         * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
19124         * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
19125         * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19126         (frv_legitimate_constant_p): Make static.  Add a mode argument.
19127
19128         * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
19129         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
19130         * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
19131
19132         * config/i386/i386-protos.h (legitimate_constant_p): Delete.
19133         * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
19134         * config/i386/i386.c (legitimate_constant_p): Rename to...
19135         (ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
19136         argument.
19137         (ix86_cannot_force_const_mem): Update accordingly.
19138         (ix86_legitimate_address_p): Likewise.
19139         (TARGET_LEGITIMATE_CONSTANT_P): Define.
19140         * config/i386/i386.md: Update commentary.
19141
19142         * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
19143         * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
19144         * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19145         (ia64_legitimate_constant_p): Make static.  Add a mode argument.
19146
19147         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
19148
19149         * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
19150         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
19151         * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19152         (lm32_legitimate_constant_p): Make static.  Add a mode argument.
19153
19154         * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
19155         * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
19156         * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
19157
19158         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
19159         * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19160         (m32r_legitimate_constant_p): New function.
19161
19162         * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
19163         * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
19164         LEGITIMATE_CONSTANT_P.
19165         (LEGITIMATE_CONSTANT_P): Delete.
19166         * config/m68k/m68k.c (m68k_expand_prologue): Call
19167         m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
19168         (m68k_legitimate_constant_p): New function.
19169         * config/m68k/m68k.md: Update comments.
19170
19171         * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
19172         * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19173         (mcore_legitimate_constant_p): New function.
19174
19175         * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
19176         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
19177         * config/mep/mep.c (mep_legitimate_constant_p): Make static.
19178         Add a mode argument.
19179         (mep_legitimate_address): Update accordingly.
19180         (TARGET_LEGITIMATE_CONSTANT_P): Define.
19181
19182         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
19183         Delete.
19184         * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
19185         * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
19186         static.  Check OP's mode for VOIDmode.
19187         (microblaze_legitimate_constant_p): New function.
19188         (TARGET_LEGITIMATE_CONSTANT_P): Define.
19189
19190         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
19191         * config/mips/mips.c (mips_legitimate_constant_p): New function.
19192         (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
19193         (TARGET_LEGITIMATE_CONSTANT_P): Define.
19194         * config/mips/predicates.md: Update comments.
19195
19196         * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
19197         * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
19198         * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19199         (mmix_legitimate_constant_p): Make static, return a bool, and take
19200         a mode argument.
19201         (mmix_print_operand_address): Update accordingly.
19202
19203         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
19204         Delete.
19205         * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
19206         * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
19207         static.  Add a mode argument.
19208         (TARGET_LEGITIMATE_CONSTANT_P): Define.
19209
19210         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
19211
19212         * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
19213         * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19214         (pa_legitimate_constant_p): New function.
19215
19216         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
19217
19218         * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
19219         * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19220         (pdp11_legitimate_constant_p): New function.
19221
19222         * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
19223         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19224         (rs6000_legitimate_constant_p): New function.
19225
19226         * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
19227         (rx_legitimate_constant_p): ...this.
19228         * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
19229         * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
19230         (rx_legitimate_constant_p): ...this.
19231         (TARGET_LEGITIMATE_CONSTANT_P): Define.
19232         * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
19233
19234         * config/s390/s390-protos.h (legitimate_constant_p): Delete.
19235         * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
19236         * config/s390/s390.c (legitimate_constant_p): Rename to...
19237         (s390_legitimate_constant_p): ...this.  Make static, return a bool,
19238         and add a mode argument.
19239         (TARGET_LEGITIMATE_CONSTANT_P): Define.
19240
19241         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
19242
19243         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
19244         * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19245         (sh_legitimate_constant_p): New function.
19246
19247         * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
19248         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
19249         * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19250         (legitimate_constant_p): Rename to...
19251         (sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
19252         argument.
19253         (constant_address_p): Update accordingly.
19254
19255         * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
19256         argument and return a bool.
19257         * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
19258         * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19259         (spu_legitimate_constant_p): Add a mode argument and return a bool.
19260         (spu_rtx_costs): Update accordingly.
19261         * config/spu/predicates.md (vec_imm_operand): Likewise.
19262
19263         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
19264
19265         * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
19266         * config/v850/v850.c (v850_legitimate_constant_p): New function.
19267         (TARGET_LEGITIMATE_CONSTANT_P): Define.
19268
19269         * config/vax/vax-protos.h (legitimate_constant_p): Delete.
19270         * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
19271         * config/vax/vax.c (legitimate_constant_p): Likewise.
19272
19273         * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
19274         * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19275         (xtensa_legitimate_constant_p): New function.
19276
19277 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
19278
19279         * target.def (cannot_force_const_mem): Add a mode argument.
19280         * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
19281         * doc/tm.texi: Regenerate.
19282         * hooks.h (hook_bool_mode_rtx_false): Declare.
19283         * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
19284         (hook_bool_mode_const_rtx_true): Likewise.
19285         (hook_bool_mode_rtx_false): New function.
19286         * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
19287         to be non-VOID.  Update call to cannot_force_const_mem.
19288         (find_reloads): Update accordingly.
19289         * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
19290         * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
19291         argument.
19292         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
19293         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
19294         * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
19295         * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
19296         * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
19297         * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
19298         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
19299         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
19300         (m68k_cannot_force_const_mem): ...this new function.
19301         * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
19302         argument.
19303         (mips_const_insns, mips_legitimize_const_move): Update calls.
19304         (mips_secondary_reload_class): Likewise.
19305         * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
19306         (pa_cannot_force_const_mem): ...this new function.
19307         * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
19308         (rs6000_cannot_force_const_mem): ...this new function.
19309         * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
19310         argument.
19311         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
19312         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
19313         to...
19314         (xtensa_cannot_force_const_mem): ...this new function.
19315
19316 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
19317
19318         * config/mips/mips.c (mips16_build_function_stub): Call
19319         build_function_type_list instead of build_function_type.
19320         (mips16_build_call_stub): Likewise.
19321
19322 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
19323
19324         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
19325         instead of build_function_type.
19326
19327 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
19328
19329         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
19330         instead of build_function_type.
19331
19332 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
19333
19334         PR target/48678
19335         * config/i386/i386.md (insv): Change operand 0 constraint to
19336         "register_operand".  Change operand 1 and 2 constraint to
19337         "const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
19338         * config/i386/sse.md (sse4_1_pinsrb): Export.
19339         (sse2_pinsrw): Ditto.
19340         (sse4_1_pinsrd): Ditto.
19341         (sse4_1_pinsrq): Ditto.
19342         * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
19343         * config/i386/i386.c (ix86_expand_pinsr): New.
19344
19345 2011-04-20  Easwaran Raman  <eraman@google.com>
19346
19347         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
19348         containing union type only with -fstrict-aliasing.
19349
19350 2011-04-20  Jim Meyering  <meyering@redhat.com>
19351
19352         Remove useless if-before-free tests.
19353         * calls.c (expand_call, save_area): Likewise.
19354         * cfgcleanup.c (try_forward_edges): Likewise.
19355         * collect2.c (collect_execute): Likewise.
19356         * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
19357         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
19358         * coverage.c (coverage_checksum_string): Likewise.
19359         * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
19360         * cselib.c (cselib_init): Likewise.
19361         * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
19362         (df_set_clean_cfg): Likewise.
19363         * function.c (free_after_compilation): Likewise.
19364         * gcc.c (do_spec_1, main): Likewise.
19365         * gcov.c (create_file_names): Likewise.
19366         * gensupport.c (identify_predicable_attribute): Likewise.
19367         * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
19368         * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
19369         * haifa-sched.c (haifa_finish_h_i_d): Likewise.
19370         * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
19371         * ipa-pure-const.c (local_pure_const): Likewise.
19372         * ipa-reference.c (propagate): Likewise.
19373         * ira-costs.c (free_ira_costs): Likewise.
19374         * ira.c (free_register_move_costs, build_insn_chain): Likewise.
19375         * matrix-reorg.c (mat_free): Likewise.
19376         * prefix.c (get_key_value): Likewise.
19377         * profile.c (compute_value_histograms): Likewise.
19378         * reload1.c (free_reg_equiv): Likewise.
19379         * sched-deps.c (free_deps): Likewise.
19380         * sel-sched-ir.c (fence_clear): Likewise.
19381         * sese.c (set_rename, if_region_set_false_region): Likewise.
19382         * tree-data-ref.c (free_rdg): Likewise.
19383         * tree-eh.c (lower_try_finally): Likewise.
19384         * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
19385         * tree-ssa-live.c (delete_var_map): Likewise.
19386         * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
19387         * tree-ssa-pre.c (phi_trans_add): Likewise.
19388
19389 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
19390
19391         PR tree-optimization/48611
19392         * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
19393         beyond ERT_MUST_NOT_THROW region.
19394
19395 2011-04-20  Catherine Moore  <clm@codesourcery.com>
19396
19397         * config/mips/mips.opt (mfix-24k): New.
19398         * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
19399         * config/mips/mips.md (length): Increase by 4 for stores if
19400         fixing 24K errata.
19401         * config/mips/mips.c (mips_reorg_process_insns): Do not allow
19402         all noreorder if fixing 24K errata.
19403         * doc/invoke.texi: Document mfix-24k.
19404
19405 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
19406
19407         * config/arm/arm.c (arm_legitimize_reload_address): For NEON
19408         quad-word modes, reduce to 9-bit index range when above 1016 limit.
19409
19410 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
19411
19412         * config/arm/arm.c (arm_gen_constant): Move movw support ....
19413         (const_ok_for_op): ... to here.
19414
19415 2011-04-20  Kai Tietz  <ktietz@redhat.com>
19416
19417         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
19418         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
19419
19420 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
19421
19422         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
19423
19424 2011-04-20  Richard Guenther  <rguenther@suse.de>
19425
19426         PR tree-optimization/47892
19427         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
19428         are if-convertible.
19429
19430 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
19431
19432         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
19433
19434 2011-04-20  Tristan Gingold  <gingold@adacore.com>
19435
19436         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
19437
19438 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
19439
19440         PR target/18145
19441
19442         * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
19443         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
19444         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
19445         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
19446         (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
19447
19448         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
19449         New prototype.
19450
19451         * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
19452         (avr_asm_named_section, avr_asm_output_aligned_common,
19453         avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
19454         New functions to update...
19455         (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
19456         (avr_asm_init_sections): Overwrite section callbacks for
19457         data_section, bss_section.
19458         (avr_file_start): Move output of __do_copy_data, __do_clear_bss
19459         from here to...
19460         (avr_file_end): ...here.
19461
19462 2011-04-20  Richard Guenther  <rguenther@suse.de>
19463
19464         PR middle-end/48695
19465         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
19466         objects and types here.  Adjust for their offset before comparing.
19467
19468 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
19469
19470         * tree-vect-stmts.c (vectorizable_store): Only chain one related
19471         statement per copy.
19472
19473 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
19474
19475         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
19476         (GIMPLE_H): Include $(INTERNAL_FN_H).
19477         (OBJS-common): Add internal-fn.o.
19478         (internal-fn.o): New rule.
19479         * internal-fn.def: New file.
19480         * internal-fn.h: Likewise.
19481         * internal-fn.c: Likewise.
19482         * gimple.h: Include internal-fn.h.
19483         (GF_CALL_INTERNAL): New gf_mask.
19484         (gimple_statement_call): Put fntype into a union with a new
19485         internal_fn field.
19486         (gimple_build_call_internal): Declare.
19487         (gimple_build_call_internal_vec): Likewise.
19488         (gimple_call_same_target_p): Likewise.
19489         (gimple_call_internal_p): New function.
19490         (gimple_call_internal_fn): Likewise.
19491         (gimple_call_fntype): Return null for internal calls.
19492         (gimple_call_set_fntype): Assert that the function is not internal.
19493         (gimple_call_set_fn): Likewise.
19494         (gimple_call_set_fndecl): Likewise.
19495         (gimple_call_set_internal_fn): New function.
19496         (gimple_call_addr_fndecl): Handle null functions.
19497         (gimple_call_return_type): Likewise null types.
19498         * gimple.c (gimple_build_call_internal_1): New function.
19499         (gimple_build_call_internal): Likewise.
19500         (gimple_build_call_internal_vec): Likewise.
19501         (gimple_call_same_target_p): Likewise.
19502         (gimple_call_flags): Handle calls to internal functions.
19503         (gimple_call_fnspec): New function.
19504         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
19505         (gimple_has_side_effects): Handle null functions.
19506         (gimple_rhs_has_side_effects): Likewise.
19507         (gimple_call_copy_skip_args): Handle calls to internal functions.
19508         * cfgexpand.c (expand_call_stmt): Likewise.
19509         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
19510         * gimple-fold.c (gimple_fold_call): Handle null functions.
19511         (gimple_fold_stmt_to_constant_1): Don't fold
19512         calls to internal functions.
19513         * gimple-low.c (gimple_check_call_args): Handle calls to internal
19514         functions.
19515         * gimple-pretty-print.c (dump_gimple_call): Likewise.
19516         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
19517         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
19518         (do_warn_unused_result): Likewise.
19519         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
19520         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
19521         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
19522         the target of a call.
19523         (initialize_hash_element): Update accordingly.
19524         (hashable_expr_equal_p): Use gimple_call_same_target_p.
19525         (iterative_hash_hashable_expr): Handle calls to internal functions.
19526         (print_expr_hash_elt): Likewise.
19527         * tree-ssa-pre.c (can_value_number_call): Likewise.
19528         (eliminate): Handle null functions.
19529         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
19530         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
19531         (find_func_aliases): Likewise.
19532         * value-prof.c (gimple_ic_transform): Likewise.
19533         (gimple_indirect_call_to_profile): Likewise.
19534         * lto-streamer-in.c (input_gimple_stmt): Likewise.
19535         * lto-streamer-out.c (output_gimple_stmt): Likewise.
19536
19537 2011-04-19  Jan Hubicka  <jh@suse.cz>
19538
19539         * ipa-inline-transform.c (save_inline_function_body): Add comments.
19540         * ipa-inline.c (inline_small_functions): Compute summaries first,
19541         populate heap later.
19542
19543 2011-04-19  Jan Hubicka  <jh@suse.cz>
19544
19545         * cgraph.h (save_inline_function_body): Remove.
19546         * ipa-inline-transform.c: New file, broke out of...
19547         * ipa-inline.c: ... this one; Update toplevel comment.
19548         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
19549         make global.
19550         (update_noncloned_frequencies): Move to ipa-inline-transform.c
19551         (cgraph_mark_inline_edge): Rename to inline_call; move to
19552         ipa-inline-transform.c.
19553         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
19554         move to ipa-inline-transform.c
19555         (recursive_inlining, inline_small_functions, flatten_function,
19556         ipa_inline, inline_always_inline_functions,
19557         early_inline_small_functions): Update.
19558         (inline_transform): Move to ipa-inline-transform.c.
19559         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
19560         Declare.
19561         * Makefile.in (ipa-inline-transform.o): New file.
19562         * cgraphunit.c (save_inline_function_body): Move to
19563         ipa-inline-transform.c
19564
19565 2011-04-19  DJ Delorie  <dj@redhat.com>
19566
19567         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
19568         registers if we already know there aren't any.
19569         (m32c_emit_epilogue): Don't emit a barrier here.
19570         (m32c_emit_eh_epilogue): Likewise.
19571         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
19572         operands at expand time.
19573         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
19574         int" wchar type.
19575         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
19576         duplicates.  Provide aliases instead.
19577         * config/m32c/prologue.md (eh_return): Emit a barrier here.
19578         (eh_epilogue): Add a "(return)" here as a hint to other parts of
19579         the compiler.
19580
19581 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
19582
19583         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
19584         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
19585         (general_or_i64_p, sparc_register_move_cost): New function.
19586
19587 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19588
19589         * doc/install.texi (Configuration, --enable-threads): Remove mach.
19590         Add lynx, mipssde.  Sort table.
19591
19592 2011-04-19  Xinliang David Li  <davidxl@google.com>
19593
19594         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
19595         not negative.
19596
19597 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
19598
19599         PR target/48678
19600         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
19601         is a SUBREG with non-MODE_INT mode inside of it.
19602
19603 2011-04-19  Martin Jambor  <mjambor@suse.cz>
19604
19605         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
19606         also according to actual contants.
19607         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
19608         (gimple_fold_call): Use it.
19609         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
19610
19611 2011-04-19  Martin Jambor  <mjambor@suse.cz>
19612
19613         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
19614         non-pointer assignments.
19615
19616 2011-04-19  Martin Jambor  <mjambor@suse.cz>
19617
19618         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
19619         account anc_offset and otr_type from the indirect edge info.
19620         * ipa-prop.c (get_ancestor_addr_info): New function.
19621         (compute_complex_ancestor_jump_func): Assignment analysis moved to
19622         get_ancestor_addr_info, call it.
19623         (ipa_note_param_call): Do not initialize information about polymorphic
19624         calls, return the indirect call graph edge.  Remove the last
19625         parameter, adjust all callers.
19626         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
19627         parameters.  Initialize polymorphic information in the indirect edge.
19628
19629 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
19630
19631         PR lto/48148
19632         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
19633         the types if they have different enumeration identifiers.
19634
19635 2011-04-19  Jan Hubicka  <jh@suse.cz>
19636
19637         * cgraph.h (cgraph_optimize_for_size_p): Declare.
19638         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
19639         * predict.c (cgraph_optimize_for_size_p): Break out from ...
19640         (optimize_function_for_size_p) ... here.
19641
19642 2011-04-19  Richard Guenther  <rguenther@suse.de>
19643
19644         PR lto/48207
19645         * tree.c (free_lang_data): Do not reset the decl-assembler-name
19646         langhook.
19647
19648 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
19649
19650         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
19651         if DECL_NO_INLINE_WARNING_P is set on the function.
19652
19653 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
19654
19655         PR fortran/47976
19656         * reload1.c (inc_for_reload): Return void. All callers changed.
19657         (emit_input_reload_insns): Don't try to delete previous output
19658         reloads to a register, or record spill_reg_store for autoincs.
19659
19660 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
19661
19662         * gengtype.h: Updated copyright year.
19663         (struct input_file_st): Add inpisplugin field.
19664         (type_fileloc): New function.
19665         * gengtype.c
19666         (write_typed_struct_alloc_def): Add gcc_assert.
19667         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
19668         (write_typed_alloc_defns): Don't output for plugin files.
19669         (input_file_by_name): Clear inpisplugin field.
19670         (main): Set inpisplugin field for plugin files.
19671
19672 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
19673
19674         * gengtype-state.c (string_eq): New.
19675         (read_state): Use string_eq instead of strcmp when creating the
19676         state_ident_tab.
19677
19678 2011-04-19  Wei Guozhi  <carrot@google.com>
19679
19680         PR target/47855
19681         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
19682         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
19683         linkage.
19684         * config/arm/constraints.md (Uu): New constraint.
19685         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
19686
19687 2011-04-19  Tristan Gingold  <gingold@adacore.com>
19688
19689         * config.gcc (-*-*-*vms): Added.
19690         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
19691         definitions moved.
19692         * config/vms/vms-ld.c: New file.
19693         * config/vms/vms-ar.c: New file.
19694         * config/vms/t-vmsnative: New file.
19695
19696 2011-04-18  Xinliang David Li  <davidxl@google.com>
19697
19698         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
19699
19700 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
19701
19702         PR middle-end/48661
19703         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
19704         if TREE_TYPE (v) is non-NULL.
19705
19706         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
19707         gimple_get_virt_mehtod_for_binfo.
19708         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
19709         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
19710         callers.
19711         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
19712
19713 2011-04-18  Michael Matz  <matz@suse.de>
19714             Steve Ellcey  <sje@cup.hp.com>
19715
19716         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
19717         use its mode as source mode if it isn't VOIDmode.
19718
19719 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
19720
19721         * doc/passes.texi: Fill crossref nodes.
19722
19723 2011-04-18  Jim Meyering  <meyering@redhat.com>
19724
19725         Fix doubled-word typos in comments and strings
19726         * config/alpha/vms-unwind.h: s/for for/for/
19727         * config/arm/unwind-arm.h: Likewise.
19728         * config/microblaze/microblaze.c: Likewise.
19729         * config/sh/constraints.md: s/in in/in/
19730         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
19731
19732 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
19733
19734         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
19735         (AVX_FLOAT_MODE_P): Ditto.
19736         (AVX128_VEC_FLOAT_MODE_P): Ditto.
19737         (AVX256_VEC_FLOAT_MODE_P): Ditto.
19738         (AVX_VEC_FLOAT_MODE_P): Ditto.
19739         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
19740         (UNSPEC_MASKSTORE): Ditto.
19741         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
19742         Merge from <sse>_movmsk<ssemodesuffix> and
19743         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
19744         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
19745         iterator.
19746         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
19747         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
19748         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
19749
19750 2011-04-18  Jan Hubicka  <jh@suse.cz>
19751
19752         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
19753
19754         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
19755         (want_inline_function_called_once_p): Break out the logic from
19756         ipa_inline.
19757         (edge_badness): Ensure that profile is not misupdated.
19758         (lookup_recursive_calls): Prioritize by call frequencies.
19759         (inline_small_functions): Move program size estimates here;
19760         actually process whole queue even when unit growth has been
19761         met. (to properly compute inline_failed reasons and for the
19762         case unit size decrease.) Revisit comments on recursive inlining.
19763         (ipa_inline): Remove unit summary code; first inline hot calls
19764         of functions called once, cold calls next.
19765         (order, nnodes): Remove unused variables.
19766         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
19767         (GTFILES): Remove ipa-inline.c
19768         * sel-sched.c (fill_insns): Silence uninitialized var warning.
19769
19770 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
19771
19772         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
19773
19774 2011-04-18  Jie Zhang  <jie@codesourcery.com>
19775             Richard Earnshaw  <rearnsha@arm.com>
19776
19777         * arm.c (neon_builtin_type_bits): Remove.
19778         (typedef enum neon_builtin_mode): New.
19779         (T_MAX): Don't define.
19780         (typedef enum neon_builtin_datum): Remove bits, codes[],
19781         num_vars and base_fcode.  Add mode, code and fcode.
19782         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
19783         VAR10): Change accordingly.
19784         (neon_builtin_data[]): Change accordingly
19785         (arm_init_neon_builtins): Change accordingly.
19786         (neon_builtin_compare): Remove.
19787         (locate_neon_builtin_icode): Remove.
19788         (arm_expand_neon_builtin): Change accordingly.
19789
19790         * arm.h (enum arm_builtins): Move to ...
19791         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
19792
19793         * arm.c (arm_builtin_decl): Declare.
19794         (TARGET_BUILTIN_DECL): Define.
19795         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
19796         (arm_builtin_decls[]): New.
19797         (arm_init_neon_builtins): Store builtin declarations in
19798         arm_builtin_decls[].
19799         (arm_init_tls_builtins): Likewise.
19800         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
19801         (arm_builtin_decl): New.
19802
19803 2011-04-18  Richard Guenther  <rguenther@suse.de>
19804
19805         * tree.c (upper_bound_in_type): Build properly canonicalized
19806         INTEGER_CSTs.
19807         (lower_bound_in_type): Likewise.
19808
19809 2011-04-18  Richard Guenther  <rguenther@suse.de>
19810
19811         * gimple.h (gimple_call_addr_fndecl): New function.
19812         (gimple_call_fndecl): Use it.
19813         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
19814         for direct calls.
19815         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
19816         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
19817
19818 2011-04-18  Richard Guenther  <rguenther@suse.de>
19819
19820         PR middle-end/48650
19821         * tree.c (build_string): STRING_CST is now derived from tree_typed.
19822
19823 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
19824
19825         PR lto/48492
19826         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
19827         DECL_IN_CONSTANT_POOL without RTL.
19828
19829 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
19830             Ira Rosen  <ira.rosen@linaro.org>
19831
19832         PR target/48252
19833         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
19834         to match neon_vzip/vuzp/vtrn_internal.
19835         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
19836         outputs explicitly dependent on both inputs.
19837         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
19838
19839 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
19840
19841         PR tree-optimization/48616
19842         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
19843         whether the shift is by scalar or vector based on whether all SLP
19844         scalar stmts have the same rhs.
19845
19846 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
19847
19848         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
19849         memory operands.
19850
19851 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
19852
19853         PR target/43700
19854         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
19855         registers.
19856
19857 2011-04-17  Jan Hubicka  <jh@suse.cz>
19858
19859         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
19860         * cgrpahunit.c (cgraph_finalize_function): Do not set
19861         finalized_by_frontend.
19862         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
19863         finalized_by_frontend.
19864
19865 2011-04-17  Jan Hubicka  <jh@suse.cz>
19866
19867         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
19868         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
19869         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
19870         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
19871         method.
19872         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
19873         gimple-fold.c
19874         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
19875
19876 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
19877
19878         PR lto/48538
19879         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
19880         is non-null before accessing it.
19881         (input_cgraph): Remove trailing spaces.
19882
19883 2011-04-17  Revital Eres  <revital.eres@linaro.org>
19884
19885         * params.def (sms-min-sc): New param flag.
19886         * modulo-sched.c (sms_schedule): Use it.
19887         * doc/invoke.texi (sms-min-sc): Document it.
19888
19889 2011-04-17  Jan Hubicka  <jh@suse.cz>
19890
19891         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
19892         present, also set gimple_call_set_cannot_inline.
19893         * ipa-inline.c: Update toplevel comment.
19894         (MAX_TIME): Remove.
19895         (cgraph_clone_inlined_nodes): Fix linebreaks.
19896         (cgraph_check_inline_limits): Restructure to ...
19897         (caller_growth_limits): ... this one; be more tolerant
19898         on growth in nested inline chains; add explanatory comment;
19899         fix stack accounting thinko introduced by previous patch.
19900         (cgraph_default_inline_p): Remove.
19901         (report_inline_failed_reason): New function.
19902         (can_inline_edge_p): New function.
19903         (can_early_inline_edge_p): New function.
19904         (leaf_node_p): Move upwards in file.
19905         (want_early_inline_function_p): New function.
19906         (want_inline_small_function_p): New function.
19907         (want_inline_self_recursive_call_p): New function.
19908         (cgraph_edge_badness): Rename to ...
19909         (edge_badness) ... this one; fix linebreaks.
19910         (update_edge_key): Update call of edge_baddness; add
19911         detailed dump about queue updates.
19912         (update_caller_keys): Use can_inline_edge_p and
19913         want_inline_small_function_p.
19914         (cgraph_decide_recursive_inlining): Rename to...
19915         (recursive_inlining): Use can_inline_edge_p and
19916         want_inline_self_recursive_call_p; simplify and remove no longer
19917         valid FIXME.
19918         (cgraph_set_inline_failed): Remove.
19919         (add_new_edges_to_heap): Use can_inline_edge_p and
19920         want_inline_small_function_p.
19921         (cgraph_decide_inlining_of_small_functions): Rename to ...
19922         (inline_small_functions): ... this one; cleanup; use
19923         can/want predicates; cleanup debug ouput; work edges till fibheap
19924         is exhausted and do not stop once unit growth is reached; remove
19925         later loop processing remaining edges.
19926         (cgraph_flatten): Rename to ...
19927         (flatten_function): ... this one; use can_inline_edge_p
19928         and can_early_inline_edge_p predicates.
19929         (cgraph_decide_inlining): Rename to ...
19930         (ipa_inline): ... this one; remove unreachable nodes before
19931         inlining functions called once; simplify the pass.
19932         (cgraph_perform_always_inlining): Rename to ...
19933         (inline_always_inline_functions): ... this one; use
19934         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
19935         (cgraph_decide_inlining_incrementally): Rename to ...
19936         (early_inline_small_functions): ... this one; simplify
19937         using new predicates; cleanup; make dumps prettier.
19938         (cgraph_early_inlining): Rename to ...
19939         (early_inliner): newer inline regular functions into always-inlines;
19940         fix updating of call stmt summaries.
19941         (pass_early_inline): Update for new names.
19942         (inline_transform): Fix formating.
19943         (gate_cgraph_decide_inlining): Rename to ...
19944         (pass_ipa_inline): ... this one.
19945         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
19946         * ipa-inline-analysis.c (dump_inline_summary): Update.
19947         (compute_inline_parameters): Do not compute disregard_inline_limits;
19948         look for mismatching arguments.
19949         (estimate_growth): Fix handlig of non-trivial self recursion.
19950         (inline_read_summary): Do not read info->disregard_inline_limits.
19951         (inline_write_summary): Do not write info->disregard_inline_limits.
19952         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
19953         and move all checks into can_inline_edge_p predicate; re-enable code
19954         comparing optimization levels.
19955         (expand_call_inline): Do not test inline_forbidden_into_p.
19956         * Makefile.in (ipa-inline.o): Update arguments.
19957
19958 2011-04-17  Revital Eres  <revital.eres@linaro.org>
19959
19960         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
19961
19962 2011-04-17  Revital Eres  <revital.eres@linaro.org>
19963
19964         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
19965
19966 2011-04-17  Michael Matz  <matz@suse.de>
19967
19968         PR tree-optimization/48622
19969         PR lto/48645
19970         * ipa-inline-analysis.c (inline_read_summary): Read size/time
19971         in same order as they're written.
19972
19973 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19974
19975         * config/pa/predicates.md: Reorganize and simplify predicates.
19976         Eliminate duplicate code checks.
19977         (arith_operand): Rename to arith14_operand
19978         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
19979         * config/pa/pa.md: Use renamed operands.
19980         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
19981         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
19982         arith11_operand, adddi3_operand, indexed_memory_operand,
19983         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
19984         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
19985         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
19986         move_dest_operand, move_src_operand, prefetch_cc_operand,
19987         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
19988         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
19989         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
19990         div_operand, int5_operand, movb_comparison_operator,
19991         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
19992         arith_double_operand, ireg_operand, lhs_lshift_operand,
19993         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
19994         integer_store_memory_operand): Likewise.
19995         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
19996         (integer_store_memory_operand, read_only_operand,
19997         function_label_operand, borx_reg_operand,
19998         non_hard_reg_operand): Likewise.
19999         (eq_neq_comparison_operator): Delete unused operator.
20000         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
20001         function_label_operand.
20002         (emit_move_sequence): Likewise.
20003
20004 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
20005
20006         * config/i386/sse.md (sseunpackmode): New mode attribute.
20007         (ssepackmode): Ditto.
20008         (vec_pack_trunc_<mode>): Macroize expander from
20009         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
20010         (vec_unpacks_lo_<mode>): Macroize expander from
20011         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
20012         (vec_unpacks_hi_<mode>): Macroize expander from
20013         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
20014         (vec_unpacku_lo_<mode>): Macroize expander from
20015         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
20016         (vec_unpacku_hi_<mode>): Macroize expander from
20017         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
20018         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
20019         ix86_expand_sse4_unpack.
20020         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
20021
20022 2011-04-16  Jan Hubicka  <jh@suse.cz>
20023
20024         * cgraphbuild.c: Include ipa-inline.h.
20025         (reset_inline_failed): Use initialize_inline_failed.
20026         * cgraph.c: Include ipa-inline.h.
20027         (cgraph_create_node_1): Do not initialize estimated_growth.
20028         (initialize_inline_failed): More to ipa-inline-analysis.c
20029         (dump_cgraph_node): Do not dump inline flags.
20030         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
20031         and disregard_inline_limits flags.
20032         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
20033         time, size, estimated_growth.
20034         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
20035         Update.
20036         * cgraphunit.c (cgraph_decide_is_function_needed): Use
20037         DECL_DISREGARD_INLINE_LIMITS.
20038         (cgraph_analyze_function): Do not initialize
20039         node->local.disregard_inline_limits.
20040         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
20041         inlinable, versionable and disregard_inline_limits.
20042         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
20043         cgraph_check_inline_limits, cgraph_default_inline_p,
20044         cgraph_edge_badness, update_caller_keys, update_callee_keys,
20045         add_new_edges_to_heap): Update.
20046         (cgraph_decide_inlining_of_small_function): Update; set
20047         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
20048         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
20049         cgraph_decide_inlining_incrementally): Update.
20050         * ipa-inline.h (inline_summary): Add inlinable, versionable,
20051         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
20052         time, size and estimated_growth parameters.
20053         (estimate_edge_growth): Update.
20054         (initialize_inline_failed): Declare.
20055         * ipa-split.c: Include ipa-inline.h
20056         (execute_split_functions): Update.
20057         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
20058         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
20059         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
20060         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
20061         estimated_growth to INT_MIN.
20062         (inline_node_duplication_hook): Likewise.
20063         (dump_inline_summary): Dump new fields.
20064         (compute_inline_parameters): Update.
20065         (estimate_edge_time, estimate_time_after_inlining,
20066         estimate_size_after_inlining, estimate_growth, inline_read_summary,
20067         inline_write_summary):
20068         (initialize_inline_failed): Move here from cgraph.c.
20069         * tree-sra.c: Include ipa-inline.h.
20070         (ipa_sra_preliminary_function_checks): Update.
20071         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
20072         ipa-inline.h.
20073
20074 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
20075
20076         * config/i386/sse.md (V16): New mode iterator.
20077         (VI1, VI8): Ditto.
20078         (AVXMODEQI, AVXMODEDI): Remove.
20079         (sse2, sse3): New mode attribute.
20080         (mov<mode>): Use V16 mode iterator.
20081         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
20082         (push<mode>1): Use V16 mode iterator.
20083         (movmisalign<mode>): Ditto.
20084         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
20085         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
20086         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
20087         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
20088         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
20089         avx_movdqu<avxmodesuffix>.
20090         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
20091         *avx_movdqu<avxmodesuffix>.
20092         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
20093         avx_lddqu<avxmodesuffix>.
20094         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
20095         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
20096         avx_movnt<AVXMODEDI:mode>.
20097         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
20098         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
20099
20100 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
20101
20102         PR target/48629
20103         * haifa-sched.c (prune_ready_list, schedule_block): Use
20104         sched_pressure_p rather than flag_sched_pressure.
20105
20106 2011-04-15  Pat Haugen  <pthaugen@us.ibm.com>
20107
20108         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
20109         cgraph_get_node instead of cgraph_get_create_node.
20110
20111 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
20112
20113         * cfgexpand.c (expand_debug_expr): Use
20114         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
20115
20116 2011-04-15  Michael Matz  <matz@suse.de>
20117
20118         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
20119         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
20120         * function.c (gimplify_parameters): Ditto.
20121         * gimplify.c (gimplify_vla_decl): Ditto.
20122
20123         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
20124         (gimple_call_set_alloca_for_var): New inline function.
20125         (gimple_call_alloca_for_var_p): Ditto.
20126         * gimple.c (gimple_build_call_from_tree): Remember
20127         CALL_ALLOCA_FOR_VAR_P state.
20128         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
20129
20130         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
20131         calls if they were for VLA objects.
20132
20133 2011-04-15  Martin Jambor  <mjambor@suse.cz>
20134
20135         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
20136         of ADR_EXPRs.
20137
20138 2011-04-15  Martin Jambor  <mjambor@suse.cz>
20139
20140         PR middle-end/48601
20141         * tree-emutls.c (lower_emutls_function_body): Call
20142         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
20143         result is non-NULL.
20144
20145 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
20146
20147         * c-decl.c (detect_field_duplicates): Call
20148         objc_detect_field_duplicates instead of objc_get_interface_ivars.
20149
20150 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
20151
20152         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
20153         * gimple.c (gimple_asm_clobbers_memory_p): Define.
20154         * ipa-pure-const.c (check_stmt): Call it.
20155         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
20156
20157 2011-04-15  Richard Guenther  <rguenther@suse.de>
20158
20159         PR tree-optimization/48290
20160         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
20161         Properly decide inhibiting propagation based on the valueized
20162         operand.  Do loop-closed SSA form preserving here ...
20163         (init_copy_prop): ... not here.
20164
20165 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
20166
20167         PR target/48612
20168         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
20169         (*ieee_smax<mode>3): Likewise.
20170
20171 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20172
20173         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
20174         Replace match_operand with match_dup for the third operand in
20175         these expanders.
20176
20177 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
20178
20179         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
20180         to track processing of conditionals.  Update all callers.
20181         (try_combine, simplify_if_then_else): Update.
20182
20183 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
20184
20185         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
20186         -fsched-pressure.
20187
20188 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
20189
20190         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
20191         instead of match_operand for operand 3.
20192
20193 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
20194
20195         * recog.h (insn_operand_data): Add an "allows_mem" field.
20196         * genoutput.c (output_operand_data): Initialize it.
20197         * optabs.c (maybe_legitimize_operand_same_code): New function.
20198         (maybe_legitimize_operand): Use it when matching the original
20199         op->value.
20200
20201 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
20202
20203         * gimplify.c: Fix issues in comments throughout.
20204         (voidify_wrapper_expr): Fix long line.
20205         (build_stack_save_restore): Likewise.
20206         (gimplify_loop_expr): Likewise.
20207         (gimplify_compound_lval): Likewise.
20208         (gimplify_init_ctor_eval): Likewise.
20209         (gimplify_modify_expr_rhs): Likewise.
20210         (omp_notice_threadprivate_variable): Likewise.
20211
20212 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
20213
20214         * cfgexpand.c (expand_call_stmt): Convert the function type to the
20215         original one if this is not a builtin function.
20216
20217 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
20218
20219         PR target/48605
20220         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
20221         offset it as needed based on top 2 bits in operands[3], change
20222         MEM mode to SFmode and mask those 2 bits away from operands[3].
20223
20224 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
20225
20226         * c-parser.c (c_parser_objc_protocol_definition): Updated for
20227         change from objc_declare_protocols() to objc_declare_protocol().
20228
20229 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
20230
20231         * config/i386/sse.md (sse4_1): New mode attribute.
20232         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
20233         avx_blend<ssemodesuffix><avxmodesuffix> and
20234         sse4_1_blend<ssemodesuffix> using VF mode iterator.
20235         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
20236         avx_blendv<ssemodesuffix><avxmodesuffix> and
20237         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
20238         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
20239         avx_dp<ssemodesuffix><avxmodesuffix> and
20240         sse4_1_dp<ssemodesuffix> using VF mode iterator.
20241         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
20242         (sse4_1_packusdw): Merge with *avx_packusdw.
20243         (sse4_1_pblendvb): Merge with *avx_pblendvb.
20244         (sse4_1_pblendw): Merge with *avx_pblendw.
20245         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
20246         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
20247         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
20248         VF mode iterator.
20249         (sse4_1_round<ssescalarmodesuffix>): Merge with
20250         *avx_round<ssescalarmodesuffix>.
20251         (aesenc): Merge with *avx_aesenc.
20252         (aesenclast): Merge with *avx_aesenclast.
20253         (aesdec): Merge with *avx_aesdec.
20254         (aesdeclast): Merge with *avx_aesdeclast.
20255         (pclmulqdq): Merge with *pclmulqdq.
20256         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
20257         New predicate.
20258         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
20259
20260 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
20261
20262         PR middle-end/48608
20263         * cfgexpand.c (get_decl_align_unit): Renamed to ...
20264         (align_local_variable): This.  Update DECL_ALIGN.
20265         (add_stack_var): Updated.
20266         (expand_one_stack_var): Likewise.
20267
20268 2011-04-14  Richard Guenther  <rguenther@suse.de>
20269
20270         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
20271         Remove.
20272         (dse_initialize_block_local_data, dse_leave_block,
20273         record_voperand_set, get_stmt_uid): Likewise.
20274         (dse_possible_dead_store_p): Allow any kind of killing stmt.
20275         (dse_optimize_stmt): Remove voperand set handling code.
20276         Simplify and improve to handle any kind of killing stmt.
20277         (dse_record_phi): Remove.
20278         (dse_enter_block): Simplify.
20279         (tree_ssa_dse): Likewise.
20280         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
20281
20282 2011-04-14  Jan Hubicka  <jh@suse.cz>
20283
20284         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
20285         * cgraph.h (struct inline_summary): Move to ipa-inline.h
20286         (cgraph_local_info): Remove inline_summary.
20287         * ipa-cp.c: Include ipa-inline.h.
20288         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
20289         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
20290         accesor.
20291         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
20292         (input_overwrite_node): Do not set inline summary.
20293         (input_node): Do not stream inline summary.
20294         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
20295         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
20296         growth; we do not have inline parameters computed for that anyway.
20297         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
20298         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
20299         (inline_summary_t): New type and VECtor.
20300         (debug_inline_summary, dump_inline_summaries): Declare.
20301         (inline_summary): Use VOCtor.
20302         (estimate_edge_growth): Kill hack computing call stmt size directly.
20303         * lto-section-in.c (lto_section_name): Add inline section.
20304         * ipa-inline-analysis.c: Include lto-streamer.h
20305         (node_removal_hook_holder, node_duplication_hook_holder): New holders
20306         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
20307         (inline_summary_vec): Define.
20308         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
20309         dump_inline_summaries): New functions.
20310         (estimate_function_body_sizes): Properly compute size/time of outgoing
20311         calls.
20312         (compute_inline_parameters): Alloc inline_summary; do not compute
20313         size/time of incomming calls.
20314         (estimate_edge_time): Avoid missing time summary hack.
20315         (inline_read_summary): Read inline summary info.
20316         (inline_write_summary): Write inline summary info.
20317         (inline_free_summary): Free all hooks and inline summary vector.
20318         * lto-streamer.h: Add LTO_section_inline_summary section.
20319         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
20320         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
20321
20322 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
20323
20324         * tree-vectorizer.h (vect_strided_store_supported): Add a
20325         HOST_WIDE_INT argument.
20326         (vect_strided_load_supported): Likewise.
20327         (vect_permute_store_chain): Return void.
20328         (vect_transform_strided_load): Likewise.
20329         (vect_permute_load_chain): Delete.
20330         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
20331         count argument.  Check that the count is a power of two.
20332         (vect_strided_load_supported): Likewise.
20333         (vect_permute_store_chain): Return void.  Update after above changes.
20334         Assert that the access is supported.
20335         (vect_permute_load_chain): Likewise.
20336         (vect_transform_strided_load): Return void.
20337         * tree-vect-stmts.c (vectorizable_store): Update calls after
20338         above interface changes.
20339         (vectorizable_load): Likewise.
20340         (vect_analyze_stmt): Don't check for strided powers of two here.
20341
20342 2011-04-14  Richard Guenther  <rguenther@suse.de>
20343
20344         PR tree-optimization/48590
20345         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
20346         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
20347         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
20348         BUILT_IN_STACK_SAVE.
20349         * tree-ssa-dce.c (propagate_necessity): Handle
20350         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
20351
20352 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
20353
20354         * c-parser.c (c_parser_objc_class_declaration): Updated call to
20355         objc_declare_class.
20356
20357 2011-04-14  Richard Guenther  <rguenther@suse.de>
20358
20359         * tree.h (get_object_alignment_1): Declare.
20360         * builtins.c (get_object_alignment_1): Split out worker from ...
20361         (get_object_alignment): ... here.
20362         * fold-const.c (get_pointer_modulus_and_residue): Use
20363         get_object_alignment_1.
20364
20365 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
20366
20367         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
20368         type parameter.
20369         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
20370         parameter.  Generalise code to handle arrays as well as vectors.
20371         (vect_setup_realignment): Update accordingly.
20372         * tree-vect-stmts.c (vectorizable_store): Likewise.
20373         (vectorizable_load): Likewise.
20374
20375 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
20376
20377         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
20378         within the per-copy loop.
20379
20380 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
20381
20382         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
20383         in the dump file.
20384
20385 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
20386
20387         * doc/options.texi (Negative): Explicitly mention that the
20388         Negative chain must be circular.
20389
20390 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
20391
20392         * function.h (block_chainon): Declare.
20393         * function.c (block_chainon): Define.
20394
20395 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
20396             Eric Weddington  <eric.weddington@atmel.com>
20397             Georg-Johann Lay  <avr@gjlay.de>
20398
20399         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
20400         New Includes
20401         (avr_init_builtins, avr_expand_builtin,
20402         avr_expand_delay_cycles, avr_expand_unop_builtin,
20403         avr_expand_binop_builtin ): New functions.
20404         (avr_builtin_id): New enum
20405         (struct avr_builtin_description): New struct
20406         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
20407         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
20408
20409         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
20410         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
20411         UNSPECV_DELAY_CYCLES): new enumeration values
20412         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
20413         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
20414         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
20415         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
20416         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
20417         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
20418         "fmulsu"): New insns
20419
20420         * config/avr/avr-c.c: fix line endings
20421         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
20422         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
20423         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
20424         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
20425         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
20426
20427         * doc/extend.texi (AVR Built-in Functions): New node
20428         (Target Builtins): Add documentation of AVR
20429         built-in functions.
20430
20431 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
20432
20433         PR target/44643
20434         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
20435         alone. Error if non-const data has attribute progmem.
20436
20437 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
20438
20439         * tree.h (struct tree_constructor): Include tree_typed instead of
20440         tree_common.
20441         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
20442         TS_TYPED instead of TS_COMMON.
20443
20444 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
20445
20446         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
20447         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
20448         (sse2_psadbw): Merge with *avx_psadbw.
20449         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
20450         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
20451         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
20452         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
20453         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
20454         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
20455         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
20456         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
20457         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
20458         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
20459         (ssse3_palignrti): Merge with *avx_palignrti.
20460
20461 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
20462
20463         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
20464         * tree-ssanames.c (fini_ssanames): VEC_free it.
20465         (make_ssa_name_fn): Update for VECness of free_ssanames.
20466         (release_ssa_name, release_dead_ssa_names): Likewise.
20467         * tree.h (struct tree_ssa_name): Include tree_typed instead of
20468         tree_common.
20469         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
20470         TS_TYPED instead of TS_COMMON.
20471
20472 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
20473
20474         * postreload-gcse.c (gcse_after_reload_main): Add calls to
20475         statistics_counter_event.
20476         * tree-ssa-copyrename.c (stats): Define.
20477         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
20478         statistics_counter_event.
20479         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
20480         (bswap_stats, widen_mul_stats): Define.
20481         (insert_reciprocals): Increment rdivs_inserted.
20482         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
20483         rfuncs_inserted.  Add calls to statistics_counter_event.
20484         (execute_cse_sincos_1): Increment inserted.
20485         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
20486         statistics_counter_event.
20487         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
20488         of bswap_stats.  Add calls to statistics_counter_event.
20489         (convert_mult_to_widen): Increment widen_mults_inserted.
20490         (convert_plusminus_to_widen): Increment maccs_inserted.
20491         (convert_mult_to_fma): Increment fmas_inserted.
20492         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
20493         calls to statistics_counter_event.
20494
20495 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
20496
20497         PR rtl-optimization/48455
20498         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
20499         `temp_costs->mem_cost'.
20500
20501 2011-04-13  Jan Hubicka  <jh@suse.cz>
20502
20503         * ipa-inline.h: New file.
20504         * ipa-inline-analysis.c: New file. Broken out of ...
20505         * ipa-inline.c: ... this file; update toplevel comment;
20506         include ipa-inline.h
20507         (inline_summary): Move to ipa-inline.h
20508         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
20509         ipa-inline-analysis.c.
20510         (cgraph_estimate_time_after_inlining): Rename to
20511         estiamte_time_after_inlining; move to ipa-inline-analysis.c
20512         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
20513         to estimate_edge_growth.
20514         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
20515         rename to estimate_size_after_inlining.
20516         (cgraph_mark_inline_edge): Update for new naming convention.
20517         (cgraph_check_inline_limits): Likewise.
20518         (cgraph_edge_badness): Likewise.
20519         (cgraph_decide_recursive_inlining): Likewise.
20520         (cgraph_decide_inlining_of_small_functions): Likewise.
20521         (cgraph_decide_inlining_incrementally): Likewise.
20522         (cgraph_estimate_growth): Rename to estimate_growth; move to
20523         ipa-inline-analysis.c.
20524         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
20525         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
20526         (compute_inline_parameters): Likewise.
20527         (compute_inline_parameters_for_current): Likewise.
20528         (pass_inline_parameters): Likewise.
20529         (inline_indirect_intraprocedural_analysis): Likewise.
20530         (analyze_function): Rename to inline_analyze_function; likewise.
20531         (add_new_function): Move to ipa-inline-analysis.c.
20532         (inline_generate_summary): Likewise.
20533         (inline_read_summary): Likewise.
20534         (inline_write_summary): Likewise.
20535         * Makefile.in (ipa-inline-analysis.c): New file.
20536
20537 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20538
20539         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
20540         * configure: Regenerate.
20541
20542 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
20543
20544         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
20545         instead of tree_common.
20546         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
20547         Likewise.
20548         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
20549         TS_TYPED rather than TS_COMMON.
20550         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
20551
20552 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
20553
20554         PR target/45263
20555         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
20556         r20 around calls of __tablejump_elpm__
20557
20558 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
20559
20560         PR middle-end/48591
20561         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
20562         NULL.
20563         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
20564
20565 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
20566
20567         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
20568         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
20569         (cfi_vec): New typedef.
20570         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
20571         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
20572         (cie_cfi_vec): New static variable.
20573         (cie_cfi_head): Delete.
20574         (add_cfi): Accept a cfi_vec * as first argument. All callers and
20575         declaration changed. Use vector rather than list operations.
20576         (new_cfi): Don't initialize the dw_cfi_next field.
20577         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
20578         rather than list operations.
20579         (lookup_cfa): Use vector rather than list operations.
20580         (output_cfis): New argument upto. Accept a cfi_vec rather than
20581         a dw_cfi_ref list head as argument. All callers changed.
20582         Iterate over the vector using upto as a maximum index.
20583         (output_all_cfis): New static function.
20584         (output_fde): Use vector rather than list operations. Use the
20585         new upto argument for output_cfis rather than manipulating a
20586         list.
20587         (dwarf2out_begin_prologue): Change initializations to match
20588         new struct members.
20589         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
20590         from the vector length rather than searching for the end of a list.
20591         Use output_all_cfis.
20592         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
20593
20594 2011-04-13  Nick Clifton  <nickc@redhat.com>
20595
20596         * config/rx/rx.md (movmemsi): Do not use this pattern when
20597         volatile pointers are involved.
20598
20599 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
20600
20601         * config/i386/sse.md (pinsrbits): Remove.
20602         (sse2_packsswb): Merge with *avx_packsswb.
20603         (sse2_packssdw): Merge with *avx_packssdw.
20604         (sse2_packuswb): Merge with *avx_packuswb.
20605         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
20606         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
20607         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
20608         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
20609         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
20610         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
20611         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
20612         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
20613         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
20614         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
20615         (sse2_loadld): Merge with *avx_loadld.
20616         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
20617         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
20618         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
20619         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
20620         (vec_concatv2di): Merge with *vec_concatv2di_avx.
20621
20622 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
20623
20624         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
20625         calling TREE_CHAIN.
20626         * print-tree.c (print_node): Likewise.
20627         * tree-inline.c (copy_tree_r): Likewise.
20628         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
20629         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
20630         instead of TS_COMMON.
20631         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
20632         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
20633         (copy_node_stat): Zero TREE_CHAIN only if necessary.
20634         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
20635         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
20636         ...and these...
20637         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
20638         * tree.h: ...here.
20639         (TREE_CHAIN): Check for a TS_COMMON structure.
20640         (TREE_TYPE): Check for a TS_TYPED structure.
20641
20642 2011-04-12  Pat Haugen  <pthaugen@us.ibm.com>
20643
20644         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
20645         cgraph_get_create_node instead of cgraph_node.
20646
20647 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
20648
20649         * c-parser.c (c_parser_initelt): Updated call to
20650         objc_build_message_expr.
20651         (c_parser_postfix_expression): Likewise.
20652
20653 2011-04-12  Kai Tietz  <ktietz@redhat.com>
20654
20655         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
20656         MASK_MS_BITFIELD_LAYOUT bit.
20657
20658 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
20659
20660         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
20661         assert it is always true.
20662         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
20663         moves.
20664
20665 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
20666
20667         * c-parser.c (c_lex_one_token): Rewritten conditional used when
20668         compiling Objective-C to be more efficient.
20669
20670 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
20671
20672         * opts-common.c (decode_cmdline_options_to_array): Remove variable
20673         argv_copied.
20674
20675 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
20676
20677         * recog.h, genoutput.c, optabs.c: Revert last patch.
20678
20679 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
20680
20681         PR target/48090
20682         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
20683
20684 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
20685
20686         * recog.h (insn_operand_data): Add an "allows_mem" field.
20687         * genoutput.c (output_operand_data): Initialize it.
20688         * optabs.c (maybe_legitimize_operand_same_code): New function.
20689         (maybe_legitimize_operand): Use it when matching the original
20690         op->value.
20691
20692 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
20693
20694         * genpreds.c (process_define_predicate): Move most processing
20695         to gensupport.c.  Continue to validate the expression.
20696         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
20697         (process_define_predicate): Move processing to gensupport.c.
20698         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
20699         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
20700         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
20701         argument.
20702         (valid_predicate_name_p): New function, split out from old
20703         genpreds.c:process_define_predicate.
20704         (process_define_predicate): New function, combining code from
20705         old genpreds.c and genrecog.c functions.
20706         (process_rtx): Call it for DEFINE_PREDICATE and
20707         DEFINE_SPECIAL_PREDICATE.
20708
20709 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
20710
20711         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
20712         size of a '%A' memory reference.
20713         (T_DREG, T_QREG): New neon_builtin_type_bits.
20714         (arm_init_neon_builtins): Assert that the load and store operands
20715         are neon_struct_operands.
20716         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
20717         (NEON_ARG_MEMORY): New builtin_arg.
20718         (neon_dereference_pointer): New function.
20719         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
20720         Handle NEON_ARG_MEMORY.
20721         (arm_expand_neon_builtin): Update after above interface changes.
20722         Use NEON_ARG_MEMORY for loads and stores.
20723         * config/arm/predicates.md (neon_struct_operand): New predicate.
20724         * config/arm/iterators.md (V_two_elem): Tweak formatting.
20725         (V_three_elem): Use BLKmode for accesses that have no associated mode.
20726         (V_four_elem): Tweak formatting.
20727         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
20728         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
20729         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
20730         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
20731         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
20732         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
20733         (neon_vst4<mode>): Replace pointer operand with a memory operand.
20734         Use %A in the output template.
20735         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
20736         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
20737         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
20738         the width of the memory access.  Remove post-increment.
20739         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
20740
20741 2011-04-12  Nick Clifton  <nickc@redhat.com>
20742
20743         * config/v850/v850.c (expand_prologue): Do not use the CALLT
20744         instruction for interrupt handlers if the target is the basic V850
20745         architecture.
20746         (expand_epilogue): Likewise.
20747
20748 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
20749
20750         PR rtl-optimization/48549
20751         * combine.c (propagate_for_debug): Also stop after BB_END of
20752         this_basic_block.  Process LAST and just stop processing after it.
20753         (combine_instructions): If last_combined_insn has been deleted,
20754         set last_combined_insn to its PREV_INSN.
20755
20756 2011-04-12  Richard Guenther  <rguenther@suse.de>
20757
20758         PR tree-optimization/46076
20759         * gimple.h (struct gimple_statement_call): Add fntype field.
20760         (gimple_call_fntype): Adjust.
20761         (gimple_call_set_fntype): New function.
20762         * gimple.c (gimple_build_call_1): Set the call function type.
20763         * gimplify.c (gimplify_call_expr): Preserve the function
20764         type the frontend used for the call.
20765         (gimplify_modify_expr): Likewise.
20766         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
20767         function type.
20768         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
20769         function type.
20770         * tree-ssa.c (useless_type_conversion_p): Function pointer
20771         conversions are useless.
20772
20773 2011-04-12  Martin Jambor  <mjambor@suse.cz>
20774
20775         * cgraph.h (cgraph_node): Remove function declaration.
20776         (cgraph_create_node): Declare.
20777         (cgraph_get_create_node): Likewise.
20778         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
20779         Updated all callers.
20780         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
20781         the decl does not already exist.  Call cgraph_get_create_node instead
20782         of cgraph_node.
20783         (cgraph_get_create_node): New function.
20784         (cgraph_same_body_alias): Update comment.
20785         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
20786         assert it does not return NULL.
20787         (cgraph_update_edges_for_call_stmt): Likewise.
20788         (cgraph_clone_edge): Likewise.
20789         (cgraph_create_virtual_clone): Likewise.
20790         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
20791         instead of cgraph_node.
20792         (cgraph_add_new_function): Call cgraph_create_node or
20793         cgraph_get_create_node instead of cgraph_node.
20794         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
20795         instead of cgraph_node.
20796         (record_eh_tables): Likewise.
20797         (mark_address): Likewise.
20798         (mark_load): Likewise.
20799         (build_cgraph_edges): Call cgraph_get_create_node instead
20800         of cgraph_node.
20801         (rebuild_cgraph_edges): Likewise.
20802         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
20803         instead of cgraph_node.
20804         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
20805         cgraph_node.
20806         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
20807         cgraph_create_node instead of cgraph_node.
20808         * c-decl.c (finish_function): Call cgraph_get_create_node instead
20809         of cgraph_node.
20810         * lto-cgraph.c (input_node): Likewise.
20811         * lto-streamer-in.c (input_function): Likewise.
20812         * varasm.c (mark_decl_referenced): Likewise.
20813         (assemble_alias): Likewise.
20814
20815 2011-04-12  Martin Jambor  <mjambor@suse.cz>
20816
20817         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
20818         instead of cgraph_node and assert it does not return NULL.
20819         * lto-streamer-in.c (lto_read_body): Likewise.
20820         * omp-low.c (new_omp_context): Likewise.
20821         (create_task_copyfn): Likewise.
20822         * tree-emutls.c (lower_emutls_function_body): Likewise.
20823         * matrix-reorg.c (transform_allocation_sites): Likewise.
20824
20825 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
20826
20827         PR c/48552
20828         * c-typeck.c (build_asm_expr): Error out on attempts to use
20829         void type outputs or inputs for constraints that allow reg or
20830         don't allow memory.
20831
20832 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
20833             Richard Earnshaw  <rearnsha@arm.com>
20834
20835         PR target/48250
20836         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
20837         to use sign-magnitude offsets. Reject unsupported unaligned
20838         cases. Add detailed description in comments.
20839         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
20840         condition from TARGET_32BIT to TARGET_ARM.
20841
20842 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
20843
20844         * tree.h (struct typed_tree): New.
20845         (struct tree_common): Include it instead of tree_base.
20846         (TREE_TYPE): Update for new location of type field.
20847         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
20848         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
20849         (union tree_node): Add typed field.
20850         * treestruct.def (TS_TYPED): New.
20851         * lto-streamer.c (check_handled_ts_structures): Handle it.
20852         * tree.c (MARK_TS_TYPED): New macro.
20853         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
20854
20855 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
20856
20857         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
20858         (force_nonfallthru): Do not alter the loop nest if no basic block
20859         was created.
20860
20861 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
20862
20863         * config/i386/sse.md (VI): New mode iterator.
20864         (SSEMODEI): Remove.
20865         (AVX256MODEI): Ditto.
20866         (AVXMODEF4P): Ditto.
20867         (avxvecpsmode): Ditto.
20868         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
20869         (sse2_andnot<mode>3): New expander.
20870         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
20871         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
20872         (<any_logic:code><mode>3): Use VI mode iterator.
20873         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
20874         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
20875         (*andnottf3): Handle AVX three-operand constraints.
20876         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
20877
20878 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
20879             Robert Millan  <rmh@gnu.org>
20880
20881         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
20882         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
20883         GNU_USER_DYNAMIC_LINKER64): Define.
20884         (REG_NAME): Don't undefine.
20885         (MD_UNWIND_SUPPORT): Undefine.
20886         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
20887         (REG_NAME): Don't undefine.
20888         (MD_UNWIND_SUPPORT): Undefine.
20889         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
20890
20891 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
20892
20893         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
20894         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
20895
20896 2011-04-11  Xinliang David Li  <davidxl@google.com>
20897
20898         * value-profile.c (check_ic_target): New function.
20899         (gimple_ic_transform): Sanity check indirect call target.
20900         * gimple-low.c (gimple_check_call_args): Interface change.
20901         (gimple_check_call_matching_types): New function.
20902         * tree-inline.c (tree_can_inline_p): Call new function.
20903
20904 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
20905
20906         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
20907         tree-pretty-print.h & realmpfr.h.
20908
20909 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
20910
20911         PR middle-end/48464
20912         * ira.c (setup_pressure_classes): Fix typo in loop condition.
20913         (setup_allocno_and_important_classes): Ditto.
20914
20915 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
20916
20917         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
20918         GNU_USER_DYNAMIC_LINKER.
20919         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
20920         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
20921         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
20922         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
20923         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
20924         GNU_USER_TARGET_OS_CPP_BUILTINS.
20925         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
20926         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
20927         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
20928         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
20929         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
20930         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
20931         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
20932         GNU_USER_TARGET_OS_CPP_BUILTINS.
20933         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
20934         GNU_USER_DYNAMIC_LINKER.
20935         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
20936         GNU_USER_TARGET_OS_CPP_BUILTINS.
20937         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
20938         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
20939         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
20940         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
20941         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
20942         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
20943         GNU_USER_DYNAMIC_LINKER64): Remove.
20944         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
20945         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
20946         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
20947         GNU_USER_DYNAMIC_LINKER.
20948         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
20949         GNU_USER_TARGET_OS_CPP_BUILTINS.
20950         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
20951         GNU_USER_TARGET_OS_CPP_BUILTINS.
20952         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
20953         to GNU_USER_TARGET_OS_CPP_BUILTINS.
20954         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
20955         GNU_USER_TARGET_OS_CPP_BUILTINS.
20956         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
20957         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
20958         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
20959         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
20960         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
20961         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
20962         GNU_USER_DYNAMIC_LINKER.
20963         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
20964         GNU_USER_TARGET_OS_CPP_BUILTINS.
20965         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
20966         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
20967         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
20968         GNU_USER_DYNAMIC_LINKER.
20969         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
20970         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
20971         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
20972         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
20973         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
20974         GNU_USER_DYNAMIC_LINKER.
20975         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
20976         GNU_USER_DYNAMIC_LINKERN32.
20977         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
20978         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
20979         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
20980         GNU_USER_DYNAMIC_LINKER32.
20981         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
20982         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
20983         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
20984         GNU_USER_DYNAMIC_LINKER.
20985         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
20986         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
20987         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
20988         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
20989         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
20990         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
20991         GNU_USER_DYNAMIC_LINKER32.
20992         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
20993         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
20994         GNU_USER_DYNAMIC_LINKER.
20995         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
20996         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
20997         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
20998         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
20999         GNU_USER_DYNAMIC_LINKER64.
21000         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
21001         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21002         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
21003         GNU_USER_DYNAMIC_LINKER.
21004         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
21005         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21006         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
21007         GNU_USER_DYNAMIC_LINKER.
21008         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
21009         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21010         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
21011         GNU_USER_DYNAMIC_LINKER32.
21012         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
21013         GNU_USER_DYNAMIC_LINKER64.
21014         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
21015         GNU_USER_DYNAMIC_LINKER64.
21016         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
21017         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21018         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
21019         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21020         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
21021
21022 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
21023
21024         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
21025         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
21026         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
21027         GNU_USER_DYNAMIC_LINKER.
21028         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
21029         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
21030         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
21031         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
21032         GNU_USER_DYNAMIC_LINKER64.
21033         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
21034         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
21035         GNU_USER_LINK_EMULATION.
21036         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
21037         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
21038         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
21039         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
21040         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
21041         CPP_SPEC, CC1_SPEC): Remove.
21042         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
21043         (GNU_USER_DYNAMIC_LINKER): Define.
21044         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
21045         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
21046         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
21047         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
21048         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
21049         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
21050         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
21051         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
21052         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
21053         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
21054         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
21055         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
21056         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
21057         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
21058         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
21059         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
21060         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
21061         GNU_USER_DYNAMIC_LINKER.
21062         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
21063         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
21064         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
21065         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
21066         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
21067         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
21068         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
21069         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
21070         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
21071         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
21072
21073 2011-04-11  Kai Tietz  <ktietz@redhat.com>
21074
21075         PR target/9601
21076         PR target/11772
21077         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
21078         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
21079         comment.
21080         (ix86_is_msabi_thiscall): Removed.
21081         (ix86_is_type_thiscall): Likewise.
21082         (ix86_get_callcvt): New function.
21083         (ix86_comp_type_attributes): Simplify check.
21084         (ix86_function_regparm): Use ix86_get_callcvt for calling
21085         convention attribute checks.
21086         (ix86_return_pops_args): Likewise.
21087         (ix86_static_chain): Likewise.
21088         (x86_this_parameter): Likewise.
21089         (x86_output_mi_thunk): Likewise.
21090         (ix86_function_type_abi): Optimize check for types without attributes.
21091         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
21092         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
21093         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
21094         by flag-values.
21095         (IX86_BASE_CALLCVT): Helper macro.
21096         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
21097         Use ix86_get_callcvt for calling convention attribute checks and avoid
21098         symbol-decoration for stdcall in TARGET_RTD case.
21099         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
21100         Likewise.
21101         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
21102         for declaration.
21103
21104 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
21105
21106         * config/i386/sse.md (VI_128): New mode iterator.
21107         (VI12_128): Rename from SSEMODE12.
21108         (VI14_128): Rename from SSEMODE14.
21109         (VI124_128): New mode iterator.
21110         (VI24_128): Rename from SSEMODE248.
21111         (VI248_128): Rename from SSEMODE248.
21112         (SSEMODE124C8): Remove.
21113         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
21114         (*sse2_<plusminus_insn><mode>3): Merge with
21115         *avx_<plusminus_insn><mode>3.
21116         (*mulv8hi3): Merge with *avx_mulv8hi3.
21117         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
21118         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
21119         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
21120         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
21121         (ashr<mode>3): Merge with *avx_ashr<mode>3.
21122         (lshr<mode>3): Merge with *avx_lshr<mode>3.
21123         (ashl<mode>3): Merge with *avx_ashl<mode>3.
21124         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
21125         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
21126         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
21127         (*<smaxmin:code>v8hi3): Ditto.
21128         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
21129         (*<smaxmin:code>v16qi3): Ditto.
21130         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
21131         (*sse2_eq<mode>3): Ditto.
21132         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
21133         (*sse2_gt<mode>3): Ditto.
21134         (vcondv2di): Split out of vcond<mode>.
21135         (vconduv2di): Split out of vcondu<mode>.
21136
21137 2011-04-11  Richard Guenther  <rguenther@suse.de>
21138
21139         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
21140         before calling tree_low_cst.
21141
21142 2011-04-11  Richard Guenther  <rguenther@suse.de>
21143
21144         * stor-layout.c (layout_type): Compute all array index size operations
21145         in the original type.
21146         (initialize_sizetypes): Add comment.
21147         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
21148
21149 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
21150
21151         * common.opt (Tbss=, Tdata=, Ttext=): New options.
21152
21153 2011-04-11  Martin Jambor  <mjambor@suse.cz>
21154
21155         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
21156         of cgraph_node, handle NULL return value.
21157         (cgraph_global_info): Likewise.
21158         (cgraph_rtl_info): Likewise.
21159         * tree-inline.c (estimate_num_insns): Likewise.
21160         * gimplify.c (unshare_body): Likewise.
21161         (unvisit_body): Likewise.
21162         (gimplify_body): Likewise.
21163         * predict.c (optimize_function_for_size_p): Likewise.
21164         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
21165         (call_may_clobber_ref_p_1): Likewise.
21166         * varasm.c (function_section_1): Likewise.
21167         (assemble_start_function): Likewise.
21168
21169 2011-04-11  Martin Jambor  <mjambor@suse.cz>
21170
21171         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
21172         of cgraph_node.
21173         * final.c (rest_of_clean_state): Likewise.
21174         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
21175         * passes.c (pass_init_dump_file): Likewise.
21176         (execute_all_ipa_transforms): Likewise.
21177         (function_called_by_processed_nodes_p): Likewise.
21178         * predict.c (maybe_hot_frequency_p): Likewise.
21179         (probably_never_executed_bb_p): Likewise.
21180         (compute_function_frequency): Likewise.
21181         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
21182         (unnest_nesting_tree_1): Likewise.
21183         (lower_nested_functions): Likewise.
21184         * tree-optimize.c (execute_fixup_cfg): Likewise.
21185         (tree_rest_of_compilation): Likewise.
21186         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
21187         * tree-sra.c (ipa_early_sra): Likewise.
21188         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
21189         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
21190         * ipa.c (record_cdtor_fn): Likewise.
21191         * ipa-inline.c (cgraph_early_inlining): Likewise.
21192         (compute_inline_parameters_for_current): Likewise.
21193         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
21194         * ipa-pure-const.c (local_pure_const): Likewise.
21195         * ipa-split.c (split_function): Likewise.
21196         (execute_split_functions): Likewise.
21197         * cgraphbuild.c (build_cgraph_edges): Likewise.
21198         (rebuild_cgraph_edges): Likewise.
21199         (cgraph_rebuild_references): Likewise.
21200         (remove_cgraph_callee_edges): Likewise.
21201         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
21202         (verify_cgraph_node): Likewise.
21203         (cgraph_analyze_functions): Likewise.
21204         (cgraph_preserve_function_body_p): Likewise.
21205         (save_inline_function_body): Likewise.
21206         (save_inline_function_body): Likewise.
21207         * tree-inline.c (copy_bb): Likewise.
21208         (optimize_inline_calls): Likewise.
21209
21210 2011-04-11  Martin Jambor  <mjambor@suse.cz>
21211
21212         PR tree-optimization/48195
21213         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
21214         ipa_check_create_edge_args.
21215         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
21216         ipa_check_create_edge_args.
21217         * ipa-inline.c (inline_generate_summary): Do not call
21218         ipa_check_create_node_params and ipa_check_create_edge_args.
21219         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
21220         ipa_check_create_edge_args.
21221
21222 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
21223
21224         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
21225         instead of loop.
21226         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
21227         * function.c (record_hard_reg_sets): Likewise.
21228         * ira.c (compute_regs_asm_clobbered): Likewise.
21229         * sched-deps.c (sched_analyze_1): Likewise.
21230         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
21231
21232 2011-04-09  Xinliang David Li  <davidxl@google.com>
21233
21234         PR tree-optimization/PR48484
21235         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
21236         has_valid_pred lazily
21237
21238 2011-04-09  Duncan Sands  <baldrick@free.fr>
21239
21240         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
21241
21242 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
21243
21244         * combine.c (combine_validate_cost): Adjust comments.  Set registered
21245         cost of I0 to zero at the end, if any.
21246
21247 2011-04-08  Xinliang David Li  <davidxl@google.com>
21248
21249         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
21250         to insane profile data.
21251
21252 2011-04-08  Xinliang David Li  <davidxl@google.com>
21253
21254         * ipa-cp.c (ipcp_update_profiling): Correct
21255          negative scale factor due to insane profile data.
21256
21257 2011-04-08  Xinliang David Li  <davidxl@google.com>
21258
21259         * final.c (dump_basic_block_info): New function.
21260         (final): Dump basic block.
21261         (final_scan_insn): Remove old dump.
21262
21263 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
21264
21265         PR target/47829
21266         * config.gcc (i386-*-freebsd): Disable unwind table generation for
21267         crtbegin/crtend.
21268
21269 2011-04-08  Michael Matz  <matz@suse.de>
21270
21271         PR middle-end/48389
21272         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
21273         functions.
21274         (rebuild_jump_labels): Call rebuild_jump_labels_1.
21275         * rtl.h (rebuild_jump_labels_chain): Declare.
21276         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
21277         insns inserted on edges.
21278
21279 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
21280
21281         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
21282         * config/arm/arm-arches.def: New.
21283         * config/arm/arm-opts.h: New.
21284         * config/arm/genopt.sh: New.
21285         * config/arm/arm-tables.opt: New (generated).
21286         * config/arm/arm.c (arm_handle_option, arm_target_help,
21287         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
21288         (all_architectures): Get most table contents from arm-arches.def.
21289         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
21290         arm_selected_tune here.
21291         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
21292         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
21293         (march=, mcpu=, mtune=): Use Enum and Var.
21294         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
21295         (arm.o): Update dependencies.
21296
21297 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
21298
21299         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
21300         of header_file.
21301         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
21302         (write_typed_alloc_defns): Likewise.
21303         (main): Calls write_typed_alloc_defns with output_header.
21304
21305 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
21306
21307         PR inline-asm/48435
21308         * ira-color.c (setup_profitable_hard_regs): Add comments.
21309         Don't take prohibited hard regs into account.
21310         (setup_conflict_profitable_regs): Rename to
21311         get_conflict_profitable_regs.
21312         (check_hard_reg_p): Check prohibited hard regs.
21313
21314 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
21315
21316         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
21317         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
21318         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
21319
21320 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21321
21322         PR target/48366
21323         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
21324         move from floating point to shift amount register.
21325         (emit_move_sequence): Remove secondary reload support for floating
21326         point to shift amount amount register copies.
21327         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
21328         amount register copies.
21329         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
21330         register, return false if mode isn't a scalar integer mode.
21331         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
21332
21333 2011-04-08  Richard Guenther  <rguenther@suse.de>
21334
21335         * gimple.c (gimple_call_flags): Remove kludge.
21336
21337 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
21338
21339         * sel-sched.c (sel_region_init): Move call to
21340         sel_setup_region_sched_flags after setup_current_loop_nest.
21341
21342 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
21343
21344         PR rtl-optimization/48272
21345         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
21346         init_insn_reg_pressure_info.  Adjust a caller.
21347         * sched-int.h (init_insn_reg_pressure_info): Declare.
21348         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
21349         when sched-pressure is enabled.
21350
21351 2011-04-08  Richard Guenther  <rguenther@suse.de>
21352
21353         * gimple.c (gimple_set_modified): Do not queue calls to
21354         MODIFIED_NORETURN_CALLS here ...
21355         * tree-ssa-operands.c (update_stmt_operands): ... but here.
21356
21357 2011-04-08  Richard Guenther  <rguenther@suse.de>
21358
21359         PR lto/48467
21360         * toplev.c (lang_dependent_init): Do not open asm_out_file
21361         in WPA mode, nor perform debug machinery initialization.
21362         (finalize): Do not unlink asm_out_file in WPA mode.
21363
21364 2011-04-08  Richard Guenther  <rguenther@suse.de>
21365
21366         * gimple.h (gimple_call_fntype): New function.
21367         (gimple_call_return_type): Use it.
21368         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
21369         * gimple-low.c (gimple_check_call_args): Likewise.
21370         * gimple.c (gimple_call_flags): Likewise.
21371         (gimple_call_arg_flags): Likewise.
21372         (gimple_call_return_flags): Likewise.
21373         * tree-cfg.c (verify_gimple_call): Likewise.
21374         (do_warn_unused_result): Likewise.
21375         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
21376         * value-prof.c (gimple_ic_transform): Fix fndecl check.
21377
21378 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
21379
21380         PR rtl-optimization/48235
21381         * sel-sched.c (code_motion_process_successors): Recompute the last
21382         insn in basic block if control flow changed.
21383         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
21384         Update condition for ilist_remove.
21385
21386 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
21387
21388         PR rtl-optimization/48302
21389         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
21390         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
21391         it to record added preheader blocks.
21392         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
21393         on to sel_add_loop_preheaders.
21394         (sel_region_init): Move call to setup_current_loop_nest after
21395         sel_init_bbs.
21396
21397 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
21398
21399         PR target/48273
21400         * cfgloop.h (loop_has_exit_edges): New helper.
21401         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
21402         non-clonable.
21403         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
21404         that have no exit edges.
21405
21406 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
21407
21408         PR rtl-optimization/48442
21409         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
21410         all callers.  Adjust assert.
21411
21412 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
21413
21414         PR tree-optimization/48377
21415         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
21416         is_packed to true even for types with smaller TYPE_ALIGN than
21417         TYPE_SIZE.
21418
21419 2011-04-08  Richard Guenther  <rguenther@suse.de>
21420
21421         PR bootstrap/48513
21422         * doc/tm.texi: Re-generate.
21423
21424 2011-04-08  Wei Guozhi  <carrot@google.com>
21425
21426         PR target/47855
21427         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
21428         * config/arm/arm.c (arm_attr_length_push_multi): New function.
21429         * config/arm/arm.md (*push_multi): Change the length computation to
21430         call a C function.
21431
21432 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
21433
21434         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
21435         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
21436         * doc/tm.texi: Regenerate.
21437         * system.h (ASM_OUTPUT_BSS): Poison.
21438         * varasm.c (asm_output_bss): Remove function.
21439         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
21440
21441         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
21442         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
21443         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
21444         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
21445         Likewise.
21446         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
21447         Likewise.
21448         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
21449         Likewise.
21450         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
21451
21452 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
21453
21454         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
21455         EnumValue lines.
21456
21457 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
21458
21459         * config/m68k/m68k.c (m68k_handle_option): Don't handle
21460         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
21461         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
21462         OPT_mcpu32.
21463         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
21464         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
21465         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
21466         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
21467         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
21468         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
21469         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
21470         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
21471         options.  Don't map other m68k options manually.  Don't handle
21472         old-style options as canonical.
21473         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
21474         * doc/install.texi (m68k-*-*): Document binutils version requirement.
21475
21476 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
21477
21478         * basic-block.h (force_nonfallthru): Move to...
21479         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
21480         (force_nonfallthru): ...here.
21481         * cfghooks.c (force_nonfallthru): New function.
21482         * cfgrtl.c (force_nonfallthru): Rename into...
21483         (rtl_force_nonfallthru): ...this.
21484         (commit_one_edge_insertion): Do not set AUX field.
21485         (commit_edge_insertions): Do not discover new basic blocks.
21486         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
21487         (cfg_layout_rtl_cfg_hooks): Likewise.
21488         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
21489         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
21490         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
21491
21492 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
21493
21494         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
21495         Remove macros.
21496
21497 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
21498
21499         * config/i386/sse.md: Update copyright year.
21500         (avxcvtvecmode): Remove.
21501         (sse_movhlps): Merge with *avx_movhlps.
21502         (sse_movlhps): Merge with *avx_movlhps.
21503         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
21504         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
21505         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
21506         (sse_loadhps): Merge with *avx_loadhps.
21507         (sse_storelps): Merge with *avx_storelps.
21508         (sse_loadlps): Merge with *avx_loadlps.
21509         (sse_movss): Merge with *avx_movss.
21510         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
21511         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
21512         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
21513         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
21514         (vec_set<mode>_0): Ditto.
21515         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
21516         (sse4_1_insertps): Merge with *avx_insertps.
21517         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
21518         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
21519         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
21520         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
21521         (sse2_storehpd): Merge with *avx_storehpd.
21522         (sse2_loadhpd): Merge with *avx_loadhpd.
21523         (sse2_loadlpd): Merge with *avx_loadlpd.
21524         (sse2_movsd): Merge with *avx_movsd.
21525         (*vec_concatv2df): Merge with *vec_concatv2df.
21526
21527 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
21528
21529         PR debug/48343
21530         * combine.c (combine_instructions): Add last_combined_insn,
21531         update it if insn is after it, pass it to all try_combine calls.
21532         (try_combine): Add last_combined_insn parameter, pass it instead of
21533         i3 to propagate_for_debug.
21534
21535 2011-04-07  Nick Clifton  <nickc@redhat.com>
21536
21537         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
21538         to handle MDR <-> data register transfers.
21539         (movhi_internal): Likewise.
21540
21541 2011-04-07  Alan Modra  <amodra@gmail.com>
21542
21543         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
21544         previous stack info.
21545
21546 2011-04-07  Tom de Vries  <tom@codesourcery.com>
21547
21548         PR target/43920
21549         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
21550         flow_find_cross_jump.  Swap variables to implement backward replacement.
21551         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
21552
21553 2011-04-07  Tom de Vries  <tom@codesourcery.com>
21554
21555         PR target/43920
21556         * cfgcleanup.c (walk_to_nondebug_insn): New function.
21557         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
21558         and bb2.
21559         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
21560         src1 or src2.  Redirect edges to the last basic block.  Update
21561         frequency and count on multiple basic blocks in case of fallthru.
21562
21563 2011-04-07  Tom de Vries  <tom@codesourcery.com>
21564
21565         PR target/43920
21566         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
21567         function.
21568         (old_insns_match_p): Change return type.  Replace return false/true
21569         with return dir_none/dir_both.  Use can_replace_by.
21570         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
21571         direction from dir_p.  Register replacement direction in dir, last_dir
21572         and afterlast_dir.  Handle new return type of old_insns_match_p using
21573         merge_dir.  Return replacement direction in dir_p.
21574         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
21575         return type of old_insns_match_p.
21576         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
21577         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
21578         flow_find_cross_jump.
21579         * basic-block.h (enum replace_direction): New type.
21580         (flow_find_cross_jump): Add parameter to declaration.
21581
21582 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
21583
21584         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
21585         (AVXMODEDCVTPS2DQ): Ditto.
21586         (VEC_FLOAT_MODE): Ditto.
21587         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
21588         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
21589         (<any_logic:code><mode>3): Use VF mode iterator.
21590         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
21591         Use VF mode iterator.
21592         (copysign<mode>3): Use VF mode iterator.
21593         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
21594         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
21595         (*<any_logic:code><MODEF:mode>3): Merge with
21596         *avx_<any_logic:code><MODEF:mode>3.
21597         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
21598         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
21599         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
21600         (avx_cvtdq2ps<avxmodesuffix>): Remove.
21601         (sse2_cvtdq2ps): Use %v modifier.
21602         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
21603         (avx_cvtps2dq<avxmodesuffix>): Remove.
21604         (sse2_cvtps2dq): Use %v modifier.
21605         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
21606         (avx_cvttps2dq<avxmodesuffix>): Remove.
21607         (sse2_cvttps2dq): Use %v modifier.
21608         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
21609         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
21610         (sse2_cvtsd2siq): Fix insn template.
21611         (sse2_cvtsd2siq_2): Ditto.
21612         (sse2_cvttsd2siq): Ditto.
21613         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
21614         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
21615
21616 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
21617
21618         * gcov-io.c: Use GCC Runtime Library Exception.
21619
21620 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
21621
21622         PR debug/48466
21623         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
21624         as base_reg whatever register reg has been eliminated to, instead
21625         of hardcoding STACK_POINTER_REGNUM.
21626
21627 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
21628
21629         * doc/tm.texi.in: Document C target hooks as separate from general
21630         target hooks.
21631         * doc/tm.texi: Regenerate.
21632         * genhooks.c (struct hook_desc): Add docname field.
21633         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
21634         docname field.
21635         (hook_array): Include c-target.def.
21636         (emit_documentation): Use docname field in output.
21637         (emit_init_macros): Take docname argument.  Only emit definitions
21638         for hooks matching docname.
21639         (main): Expect additional arguments in all cases.  Pass argument
21640         to emit_init_macros.
21641         * target.def: Move initial macro definitions and comments to
21642         target-hooks-macros.h.
21643         (gcc_targetcm): Move to c-family/c-target.def.
21644         * target.h (targetcm): Move declaration to c-family/c-target.h.
21645         * targhooks.c (default_handle_c_option): Move to
21646         c-family/c-opts.c.
21647         * targhooks.h (default_handle_c_option): Move declaration to
21648         c-family/c-common.h.
21649         * target-hooks-macros.h: New file.
21650         * config.gcc (target_has_targetcm): Define and use to add to
21651         c_target_objs and cxx_target_objs.
21652         * config/default-c.c: New file.
21653         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
21654         of target.h and target-def.h.
21655         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
21656         (darwin_objc_construct_string, darwin_cfstring_ref_p,
21657         darwin_check_cfstring_format_arg): Make static.
21658         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
21659         TARGET_STRING_OBJECT_REF_TYPE_P,
21660         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
21661         * config/darwin-protos.h (darwin_objc_construct_string,
21662         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
21663         declare.
21664         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
21665         TARGET_STRING_OBJECT_REF_TYPE_P,
21666         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
21667         * config/t-darwin (darwin-c.o): Update dependencies.
21668         * system.h (TARGET_HAS_TARGETCM): Poison.
21669         * Makefile.in (TARGET_H): Update.
21670         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
21671         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
21672         (default-c.o): New target.
21673         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
21674         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
21675         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
21676         c-target.def.
21677         (build/genhooks.o): Update dependencies.
21678
21679 2011-04-06  Richard Guenther  <rguenther@suse.de>
21680
21681         * ipa-inline.c (enum inlining_mode): Remove.
21682         (cgraph_flatten): Use some other token.
21683         (cgraph_edge_early_inlinable_p): New function, split out from ...
21684         (cgraph_perform_always_inlining): New function, split out from ...
21685         (cgraph_decide_inlining_incrementally): ... here.
21686         (cgraph_mark_inline_edge): Adjust.
21687         (cgraph_early_inlining): Re-structure.
21688         (pass_early_inline): Require SSA form.
21689
21690 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
21691             Julian Brown  <julian@codesourcery.com>
21692             Mark Shinwell  <shinwell@codesourcery.com>
21693
21694         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
21695         LO_REGS only for Thumb-1.
21696         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
21697         be used in short instructions when optimising for size on Thumb-2.
21698
21699 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
21700
21701         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
21702         associated with user returns to be preserved.
21703
21704 2011-04-06  Tristan Gingold  <gingold@adacore.com>
21705
21706         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
21707         symbol_queue_size, DBXOUT_DECR_NESTING,
21708         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
21709         if XCOFF_DEBUGGING_INFO.
21710
21711 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
21712
21713         * config/i386/i386.md (attribute isa): New.
21714         (attribute enabled): New.
21715         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
21716         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
21717         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
21718         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
21719         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
21720         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
21721         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
21722         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
21723
21724         * config/i386/sse.md (VF): New mode iterator.
21725         (VF1): Ditto.
21726         (VF2): Ditto.
21727         (VF_128): Ditto.
21728         (SSEMODEF4): Remove.
21729         (attribute sse): Handle V8SF and V4DF modes.
21730         (<absneg:code><mode>2): Use VF mode iterator.
21731         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
21732         mode iterator.
21733         (<plusminus_insn><mode>3): Use VF mode iterator.
21734         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
21735         Use VF mode iterator.
21736         (<sse>_vm<plusminus_insn><mode>3): Merge with
21737         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
21738         (mul<mode>3): Use VF mode iterator.
21739         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
21740         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
21741         mode iterator.
21742         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
21743         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
21744         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
21745         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
21746         mode iterator.
21747         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
21748         Use VF1 mode iterator.
21749         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
21750         (sqrt<VF2:mode>2): New expander.
21751         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
21752         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
21753         and sqrtv2df2.  Use VF mode iterator.
21754         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
21755         mode iterator.
21756         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
21757         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
21758         Use VF1 mode iterator.
21759         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
21760         (<smaxmin:code><mode>3): Use VF mode iterator.
21761         (*<smaxmin:code><mode>3_finite): Merge with
21762         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
21763         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
21764         (<sse>_vm<smaxmin:code><mode>2): Merge with
21765         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
21766         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
21767         mode iterator.
21768         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
21769         mode iterator.
21770         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
21771         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
21772         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
21773         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
21774         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
21775         VF mode iterator.
21776         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
21777         Use VF_128 mode iterator.
21778         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
21779         mode iterator.
21780         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
21781         VF_128 mode iterator.
21782         (vcond<mode>): Use VF mode iterator.
21783         * config/i386/predicates.md (sse_comparison_operator): Merge with
21784         avx_comparison_float_operator.  Do not declare as special_predicate.
21785         * config/i386/i386.c (struct builtin_description): Update for renamed
21786         compare patterns.
21787         (ix86_expand_args_builtin): Ditto.
21788         (ix86_expand_sse_compare_mask): Ditto.
21789
21790 2011-04-06  Richard Guenther  <rguenther@suse.de>
21791
21792         * tree-inline.c (estimate_num_insns): For calls simply account
21793         for all passed arguments and a used return value.
21794
21795 2011-04-06  Richard Guenther  <rguenther@suse.de>
21796
21797         PR tree-optimization/47663
21798         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
21799         call_stmt_time fields.
21800         (cgraph_edge_inlinable_p): Declare.
21801         (cgraph_edge_recursive_p): New inline function.
21802         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
21803         (cgraph_clone_edge): Copy it.
21804         * ipa-inline.c (cgraph_estimate_edge_time): New function.
21805         Account for call stmt time.
21806         (cgraph_estimate_time_after_inlining): Take edge argument.
21807         (cgraph_estimate_edge_growth): Account call stmt size.
21808         (cgraph_estimate_size_after_inlining): Take edge argument.
21809         (cgraph_mark_inline_edge): Adjust.
21810         (cgraph_check_inline_limits): Likewise.
21811         (cgraph_recursive_inlining_p): Remove.
21812         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
21813         (cgraph_decide_recursive_inlining): Take edge argument and
21814         adjust.
21815         (cgraph_decide_inlining_of_small_functions): Do not avoid
21816         diags for recursive inlining here.
21817         (cgraph_flatten): Adjust.
21818         (cgraph_decide_inlining_incrementally): Likewise.
21819         (estimate_function_body_sizes): Remove call cost handling.
21820         (compute_inline_parameters): Initialize caller edge call costs.
21821         (cgraph_estimate_edge_growth): New function.
21822         (cgraph_estimate_growth): Use it.
21823         (cgraph_edge_badness): Likewise.
21824         (cgraph_check_inline_limits): Take an edge argument.
21825         (cgraph_decide_inlining_of_small_functions): Adjust.
21826         (cgraph_decide_inlining): Likewise.
21827         * tree-inline.c (estimate_num_insns): Only account for call
21828         return value if it is used.
21829         (expand_call_inline): Avoid diagnostics on recursive inline
21830         functions here.
21831         * lto-cgraph.c (lto_output_edge): Output edge call costs.
21832         (input_edge): Input edge call costs.
21833
21834 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21835
21836         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
21837
21838 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
21839
21840         * doc/invoke.texi (Spec Files): Fix typo.
21841
21842 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
21843
21844         * profile.c (branch_prob): Move declaration of local variable.  Remove
21845         obsolete ??? comment.  Expand the location explicitly instead of using
21846         the LOCATION_FILE and LOCATION_LINE macros.
21847
21848 2011-04-06  Wei Guozhi  <carrot@google.com>
21849
21850         PR target/47855
21851         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
21852         (arm_cond_branch): Likewise.
21853         (arm_cond_branch_reversed): Likewise.
21854         (arm_jump): Likewise.
21855         (push_multi): Likewise.
21856         * config/arm/constraints.md (Py): New constraint.
21857
21858 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
21859
21860         PR bootstrap/48471
21861         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
21862         Move these...
21863         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
21864         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
21865         #ifdef DBX_DEBUGGING_INFO.
21866
21867 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
21868
21869         PR bootstrap/48403
21870         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
21871         if old and new states differ.
21872
21873 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
21874
21875         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
21876         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
21877         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
21878         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
21879         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
21880         mcfv4e): Use Alias.
21881         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
21882         ColdFire options to -mcpu= options.
21883
21884 2011-04-05  Jeff Law  <law@redhat.com>
21885
21886         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
21887         check if BB is a successor of LOOP->header and return
21888         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
21889
21890 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
21891
21892         * cprop.c (struct reg_use): Remove.
21893         (reg_use_table): Make an array of RTX.
21894         (find_used_regs, constprop_register, local_cprop_pass,
21895         bypass_block): Simplify users of reg_use_table.
21896         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
21897         on one of the uses found by find_used_regs.
21898
21899 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
21900
21901         PR bootstrap/48469
21902         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
21903         declaration.
21904
21905 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
21906
21907         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
21908         as an rtx.
21909         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
21910
21911 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
21912
21913         PR middle-end/48441
21914         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
21915
21916 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
21917
21918         * combine.c: Include obstack.h.
21919         (struct insn_link): Define.
21920         (uid_log_links): Adjust type.
21921         (FOR_EACH_LOG_LINK): New macro.
21922         (insn_link_obstack): Declare.
21923         (alloc_insn_link): Define.
21924         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
21925         type of link variables.
21926         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
21927         (try_combine, record_promoted_values, distribute_notes): Likewise.
21928         (distribute_links): Likewise.  Tweak prototype.
21929         (clear_log_links): Delete.
21930         (adjust_for_new_dest): Call alloc_insn_link.
21931         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
21932
21933 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
21934
21935         * gcse.c (modify_mem_list): Convert to an array of VECs.
21936         (canon_modify_mem_list, compute_transp): Tweak formatting.
21937         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
21938         (load_killed_in_block_p): Likewise.
21939         (record_last_mem_set_info): Likewise.
21940         (clear_modify_mem_tables): Likewise.
21941
21942 2011-04-05  Tom de Vries  <tom@codesourcery.com>
21943
21944         PR middle-end/48461
21945         * function.c (emit_use_return_register_into_block): Only define if
21946         HAVE_return.
21947
21948 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
21949
21950         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
21951
21952 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
21953
21954         * config/rx/rx-opts.h: New.
21955         * config/rx/rx.c (rx_cpu_type): Remove.
21956         (rx_handle_option): Don't assert that global structures are in
21957         use.  Access variables via opts pointer.  Defer most handling of
21958         OPT_mint_register_.  Use error_at.
21959         (rx_option_override): Handle deferred OPT_mint_register_ here.
21960         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
21961         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
21962         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
21963         (rx_cpu_types): New Enum and EnumValue entries.
21964         (mint-register=): Use Defer and use Var accordingly.
21965
21966 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
21967
21968         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
21969         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
21970         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
21971         Move these...
21972         (debug_free_queue, debug_nesting, symbol_queue_index):
21973         ...and these...
21974         * dbxout.c: ...to here.  Make static.
21975
21976 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
21977
21978         * gcse.c (modify_pair): Define.  Define a VEC of it.
21979         (canon_modify_mem_list): Convert to an array of VECs.
21980         (free_insn_expr_list_list): Delete.
21981         (clear_modify_mem_tables): Call VEC_free instead.
21982         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
21983         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
21984         (canon_list_insert, compute_transp): Likewise.
21985
21986 2011-04-05  Tom de Vries  <tom@codesourcery.com>
21987
21988         PR target/43920
21989         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
21990         for size.
21991
21992 2011-04-05  Tom de Vries  <tom@codesourcery.com>
21993
21994         PR target/43920
21995         * function.c (emit_use_return_register_into_block): New function.
21996         (thread_prologue_and_epilogue_insns): Use
21997         emit_use_return_register_into_block.
21998
21999 2011-04-05  Tom de Vries  <tom@codesourcery.com>
22000
22001         PR target/43920
22002         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
22003         insn.
22004
22005 2011-04-05  Tom de Vries  <tom@codesourcery.com>
22006
22007         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
22008
22009 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
22010
22011         * config/arm/arm.md (define_constants for unspec): Replace with
22012         define_c_enum.
22013         (define_constants for unspecv): Replace with define_c_enum.
22014         * config/arm/neon.md (define_constants for unspec): Replace with
22015         define_c_enum.
22016
22017 2011-04-04  Richard Henderson  <rth@redhat.com>
22018
22019         PR bootstrap/48400
22020         * dwarf2out.c (output_line_info): Always emit line info from
22021         at least one section.
22022         (dwarf2out_init): Create text_section_line_info here ...
22023         (set_cur_line_info_table): ... not here.
22024
22025 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
22026
22027         PR target/48380
22028         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
22029         not called.
22030
22031         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
22032
22033 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
22034
22035         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
22036         (expr_equiv_p): Remove.
22037         (insert_set_in_table): Look at <dest, src> pair instead of expr.
22038         (hash_scan_set): Update call to insert_set_in_table.
22039         (dump_hash_table): Dump <dest, src> pair.
22040         (lookup_set): Simplify.  Lookup <dest, src> pair.
22041         (compute_transp): Remove, fold heavily simplified code into...
22042         (compute_local_properties): ...here.  Expect COMP and TRANSP
22043         unconditionally.
22044         (find_avail_set): Take set directly from struct expr.
22045         (find_bypass-set): Likewise.
22046         (bypass_block): Likewise.
22047         (cprop_insn): Likewise.  Remove redundant INSN_P test.
22048
22049         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
22050         checks on form of COND from find_implicit_sets to here.
22051         (find_implicit_sets): Cleanup control flow. Split critical edges
22052         if it exposes implicit sets.  Allocate/resize implicit_sets as
22053         necessary.
22054         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
22055         changed something.  Run df_analyze after find_implicit_sets if any
22056         edges were split.  Do not allocate implicit_sets here.
22057
22058         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
22059         (gcse_obstack): Renamed to cprop_obstack.
22060         (GNEW, GNEWVEC, GNEWVAR): Remove.
22061         (gmalloc): Remove.
22062         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
22063         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
22064         (gcse_alloc): Likewise, and rename to cprop_alloc.
22065         (alloc_gcse_men, free_gcse_mem): Remove.
22066         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
22067         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
22068         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
22069
22070         * cprop.c (oprs_not_set_p): Remove.
22071         (mark_set, mark_clobber): Remove.
22072         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
22073         (reg_not_set_p): New function.
22074         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
22075         (cprop_insn): Likewise.
22076         (cprop_jump): Use FOR_EACH_EDGE.
22077
22078 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
22079
22080         PR bootstrap/48403
22081         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
22082         (rank_for_schedule): Use scheduled_insns vector instead of
22083         last_scheduled_insn.
22084         (ok_for_early_queue_removal): Likewise.
22085         (queue_to_ready): Search forward in nonscheduled_insns_begin if
22086         we have a dbg_cnt.
22087         (choose_ready): Likewise.
22088         (commit_schedule): Use VEC_iterate.
22089         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
22090         a dbg_cnt, use it and ensure the first insn is in the ready list.
22091         (haifa_sched_init): Allocate scheduled_insns.
22092         (sched_extend_ready_list): Don't allocate it; reserve space.
22093         (haifa_sched_finish): Free it.
22094
22095 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
22096
22097         * optc-gen.awk: Always remove type from Variable entry before
22098         recording in var_seen.
22099
22100 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
22101
22102         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
22103         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
22104         call to tidy_fallthru_edges.
22105
22106 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
22107
22108         * doc/options.texi (ToLower): Document.
22109         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
22110         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
22111         * opts.h (cl_option): Add cl_tolower field.
22112         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
22113         arguments with lowercase strings.
22114         * config/rx/rx.opt (mcpu=): Add ToLower.
22115         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
22116         argument.
22117
22118 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
22119
22120         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
22121
22122 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
22123
22124         * config/vax/vax.c: Include reload.h.
22125
22126 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
22127
22128         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
22129         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
22130         (sparc_preferred_reload_class): New function.
22131
22132 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
22133
22134         PR debug/48401
22135         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
22136         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
22137
22138 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
22139
22140         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
22141         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
22142
22143 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
22144
22145         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
22146         (ASM_OUTPUT_ALIGNED_BSS): Define.
22147
22148 2011-04-03  Michael Matz  <matz@suse.de>
22149
22150         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
22151         and next_slot members.
22152         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
22153         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
22154         (lto_streamer_cache_append): Declare.
22155         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
22156         unsigned index, remove offset parameter, ensure that we append
22157         or update existing entries.
22158         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
22159         parameter, update next_slot for append.
22160         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
22161         parameter.
22162         (lto_streamer_cache_insert_at): Likewise.
22163         (lto_streamer_cache_append): New function.
22164         (lto_streamer_cache_lookup): Use unsigned index.
22165         (lto_streamer_cache_get): Likewise.
22166         (lto_record_common_node): Don't test tree_node_can_be_shared.
22167         (preload_common_node): Adjust call to lto_streamer_cache_insert.
22168         (lto_streamer_cache_delete): Don't free offsets member.
22169         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
22170         (lto_output_string_with_length): Use lto_output_data_stream.
22171         (lto_output_tree_header): Remove ix parameter, don't write it.
22172         (lto_output_builtin_tree): Likewise.
22173         (lto_write_tree): Adjust callers to above, don't track and write
22174         offset, write unsigned index.
22175         (output_unreferenced_globals): Don't emit all global vars.
22176         (write_global_references): Use unsigned indices.
22177         (lto_output_decl_state_refs): Likewise.
22178         (write_symbol): Likewise.
22179         * lto-streamer-in.c (lto_input_chain): Move earlier.
22180         (input_function): Use unsigned index.
22181         (input_alias_pairs): Don't read and then ignore all global vars.
22182         (lto_materialize_tree): Remove ix_p parameter, don't read index,
22183         don't pass it back, use lto_streamer_cache_append.
22184         (lto_register_var_decl_in_symtab): Use unsigned index.
22185         (lto_register_function_decl_in_symtab): Likewise.
22186         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
22187         index.
22188         (lto_get_builtin_tree): Don't read index, use
22189         lto_streamer_cache_append.
22190         (lto_read_tree): Adjust call to lto_materialize_tree.
22191
22192         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
22193         don't use function calls in arguments to MIN.
22194
22195         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
22196         twice.
22197
22198         * gimple.c (gimple_type_leader_entry): Mark deletable.
22199
22200 2011-04-03  Alan Modra  <amodra@gmail.com>
22201
22202         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
22203
22204 2011-04-03  Michael Matz  <matz@suse.de>
22205
22206         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
22207         an integer.
22208         * tree.h (tree_decl_non_common.vindex): Adjust comment.
22209
22210 2011-04-03  Michael Matz  <matz@suse.de>
22211
22212         * cgraphbuild.c (record_reference): Canonicalize constructor values.
22213         * gimple-fold.c (canonicalize_constructor_val): Accept being called
22214         without function context.
22215         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
22216         current_function_decl and cfun.
22217
22218 2011-04-03  Michael Matz  <matz@suse.de>
22219
22220         * tree.c (decl_init_priority_insert): Don't create entry for
22221         default priority.
22222         (decl_fini_priority_insert): Ditto.
22223         (fields_compatible_p, find_compatible_field): Remove.
22224         * tree.h (fields_compatible_p, find_compatible_field): Remove.
22225         * gimple.c (gimple_compare_field_offset): Adjust block comment.
22226
22227 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
22228
22229         * combine.c (try_combine): Remove useless local variable.
22230
22231 2011-04-03  Richard Guenther  <rguenther@suse.de>
22232             Ira Rosen  <ira.rosen@linaro.org>
22233
22234         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
22235         non-variable offsets and compare the remaining bases of the two
22236         accesses instead of looking for exact same data-ref.
22237
22238 2011-04-02  Kai Tietz  <ktietz@redhat.com>
22239
22240         PR target/48416
22241         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
22242
22243         * i386.c (ix86_is_msabi_thiscall): New helper function.
22244         (ix86_is_type_thiscall): New helper function.
22245         (ix86_comp_type_attributes): Handle thiscall for method-functions
22246         special.
22247         (init_cumulative_args): Likewise.
22248         (find_drap_reg): Likewise.
22249         (ix86_static_chain): Likewise.
22250         (x86_this_parameter): Likewise.
22251         (x86_output_mi_thunk): Likewise.
22252
22253 2011-04-01  Olivier Hainque  <hainque@adacore.com>
22254             Nicolas Setton  <setton@adacore.com>
22255             Eric Botcazou  <ebotcazou@adacore.com>
22256
22257         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
22258         (add_gnat_descriptive_type_attribute): New function.
22259         (gen_array_type_die): Call it.
22260         (gen_enumeration_type_die): Likewise.
22261         (gen_struct_or_union_type_die): Likewise.
22262         (modified_type_die): Likewise.
22263         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
22264         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
22265         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
22266
22267 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
22268
22269         PR bootstrap/48148
22270         * dwarf2out.c (resolve_addr): Don't call force_decl_die
22271         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
22272
22273         Revert:
22274         2011-03-17  Richard Guenther  <rguenther@suse.de>
22275
22276         PR bootstrap/48148
22277         * lto-cgraph.c (input_overwrite_node): Clear the abstract
22278         origin for decls in other ltrans units.
22279         (input_varpool_node): Likewise.
22280
22281 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
22282
22283         PR middle-end/48335
22284         * expr.c (expand_assignment): Handle all possibilities
22285         if TO_RTX is CONCAT.
22286         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
22287         (store_split_bit_field): If SUBREG_REG (op0) or
22288         op0 itself has smaller mode than word, return it
22289         for offset 0 and const0_rtx for out-of-bounds stores.
22290         If word is const0_rtx, skip it.
22291
22292 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
22293
22294         * config/h8300/h8300.c (print_operand_address): Rename to...
22295         (h8300_print_operand_address): ...this. Make static. Adjust comments.
22296         Call h8300_print_operand and h8300_print_operand_address instead of
22297         print_operand and print_operand_address. Declare.
22298         (print_operand): Renake to...
22299         (h8300_print_operand): ...this. Make static. Adjust comments.
22300         Call h8300_print_operand instead of print_operand. Declare.
22301         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
22302         (h8300_register_move_cost): Likewise.
22303         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
22304         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
22305         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
22306         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
22307         * config/h8300/h8300-protos.h (print_operand): Delete.
22308         (print_operand_address): Delete.
22309
22310 2011-04-01  Richard Henderson  <rth@redhat.com>
22311
22312         PR 48400
22313         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
22314         in strict mode before dwarf4.  Re-order tests to early out
22315         before switching sections.
22316
22317 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
22318
22319         * config/h8300/constraints.md: New file.
22320         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
22321         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
22322         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
22323         * config/h8300/predicates.md (bit_operand): Likewise.
22324         (incdec_operand): Use satisfies_constraint_M and
22325         satisfies_constraint_O.  Don't use C code block.
22326         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
22327         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
22328         (compute_mov_length): Use satisfies_constraint_G.
22329         (fix_bit_operand): Use satisfies_constraint_U.
22330         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
22331         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
22332         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
22333         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
22334         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
22335         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
22336         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
22337         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
22338         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
22339         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
22340         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
22341         (EXTRA_MEMORY_CONSTRAINT): Delete.
22342
22343 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
22344             Michael Meissner  <meissner@linux.vnet.ibm.com>
22345
22346         PR target/48262
22347         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
22348         operands, as per the specifications.
22349
22350         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
22351         (vec_extract_evenv4sf): Ditto.
22352         (vec_extract_evenv8hi): Ditto.
22353         (vec_extract_evenv16qi): Ditto.
22354         (vec_extract_oddv4si): Ditto.
22355
22356 2011-03-31  Mark Wielaard  <mjw@redhat.com>
22357
22358         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
22359         high_pc attribute if the CU has no associated code. Only output
22360         DW_AT_entry_pc for CU if not generating strict dwarf and
22361         dwarf_version < 4.
22362
22363 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
22364
22365         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
22366         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
22367         out of ...
22368         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
22369         * final.c (final_start_function): Call the new function rather
22370         than using a NULL argument for dwarf2out_frame_debug.
22371
22372         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
22373         that contains the prologue.
22374
22375         * haifa-sched.c (queue_insn): New arg REASON.  All callers
22376         changed.  Print it in debugging output.
22377
22378         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
22379
22380         * sched-ebb.c (begin_schedule_ready): Remove second argument.
22381         Split most of the code into...
22382         (begin_move_insn): ... here.  New function.
22383         (ebb_sched_info): Add a pointer to it.
22384         * haifa-sched.c (scheduled_insns): New static variable.
22385         (sched_extend_ready_list): Allocate it.
22386         (schedule_block): Use it to record the order of scheduled insns.
22387         Perform RTL changes to move insns only after all scheduling
22388         decisions have been made.
22389         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
22390         begin_move_insn field.
22391         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
22392         * sched-int.h (struct haifa_sched_info): Remove second argument
22393         from begin_schedule_ready hook.  Add new member begin_move_insn.
22394         * sched-rgn.c (begin_schedule_ready): Remove second argument.
22395         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
22396
22397         * haifa-sched.c (prune_ready_list): New function, broken out of
22398         schedule_block.
22399         (schedule_block): Use it.
22400
22401 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
22402
22403         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
22404
22405 2011-04-01  Kai Tietz  <ktietz@redhat.com>
22406
22407         * config.gcc (*-*-mingw*): Allow as option the
22408         posix threading model.
22409         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
22410         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
22411         definition.
22412         (CPP_SPEC): Add pthread/no-pthread handling.
22413         (LIB_SPEC): Likewise.
22414         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
22415         (LIB_SPEC): Likewise.
22416         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
22417         flag to pass -pthread option for shared libgcc build.
22418         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
22419         for shared libgcc build.
22420         * config/i386/t-mingw-pthread: New file.
22421         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
22422         New define to enable use of library pthread by default.
22423         * config/i386/mingw.opt (pthread): New driver option.
22424         (no-pthread): New driver option.
22425         * config/i386/cygming.opt: Make sure trailing empty line is retained.
22426         * config/i386/mingw-w64.opt: Likewise.
22427
22428 2011-04-01  Gary Funck  <gary@intrepid.com>
22429
22430         * c-decl.c (grokdeclarator): Fix formatting.
22431
22432 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
22433
22434         * expr.c (emit_block_move_via_movmem): Use n_generator_args
22435         instead of n_operands.
22436         (set_storage_via_setmem): Likewise.
22437         * optabs.c (maybe_gen_insn): Likewise.
22438         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
22439         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
22440         (mips_expand_builtin_direct): Likewise.
22441         * config/spu/spu.c (expand_builtin_args): Likewise.
22442
22443 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
22444
22445         * recog.h (insn_data_d): Add n_generator_args.
22446         * genoutput.c (data): Likewise.
22447         (output_insn_data): Print it.
22448         (max_opno, num_dups): Delete.
22449         (scan_operands): Just fill in "d->operand[...]".
22450         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
22451
22452 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
22453
22454         * gensupport.h (pattern_stats): New structure.
22455         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
22456         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
22457         (max_operand_1, max_operand_vec): Delete.
22458         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
22459
22460 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
22461
22462         * emit-rtl.c (emit_pattern_after_setloc): New function.
22463         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
22464         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
22465         (emit_pattern_after): New function.
22466         (emit_insn_after, emit_jump_insn_after): Call it.
22467         (emit_call_insn_after, emit_debug_insn_after): Likewise.
22468         (emit_pattern_before_setloc): New function.
22469         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
22470         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
22471         Likewise.
22472         (emit_pattern_before): New function.
22473         (emit_insn_before, emit_jump_insn_before): Call it.
22474         (emit_call_insn_before, emit_debug_insn_before): Likewise.
22475
22476 2011-03-31  Richard Henderson  <rth@redhat.com>
22477
22478         * dwarf2out.c (dw_separate_line_info_ref): Remove.
22479         (dw_separate_line_info_entry): Remove.
22480         (enum dw_line_info_opcode): New.
22481         (dw_line_info_entry): Use it.
22482         (dw_line_info_table, dw_line_info_table_p): New.
22483         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
22484         (line_info_table, line_info_label_num): Remove.
22485         (line_info_table_in_use): Remove.
22486         (separate_line_info_table): Remove.
22487         (separate_line_info_table_allocated): Remove.
22488         (separate_line_info_table_in_use): Remove.
22489         (LINE_INFO_TABLE_INCREMENT): Remove.
22490         (line_info_label_num): New.
22491         (cur_line_info_table): New.
22492         (text_section_line_info, cold_text_section_line_info): New.
22493         (separate_line_info): New.
22494         (SEPARATE_LINE_CODE_LABEL): Remove.
22495         (print_dwarf_line_table): Remove.
22496         (debug_dwarf): Don't dump it.
22497         (output_one_line_info_table): New.
22498         (output_line_info): Use it.
22499         (new_line_info_table): New.
22500         (set_cur_line_info_table): New.
22501         (dwarf2out_switch_text_section): Use it.
22502         (dwarf2out_begin_function): Likewise.
22503         (push_dw_line_info_entry): New.
22504         (dwarf2out_source_line): Rewrite for new line info tables.
22505         (dwarf2out_init): Remove dead initailizations.
22506
22507 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
22508
22509         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
22510         various flags.
22511         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
22512         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
22513         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
22514         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
22515         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
22516         * opt-functions.awk (flag_init, switch_bit_fields): New.
22517         (switch_flags): Don't handle flags moved to bit-fields.  Don't
22518         generate CL_MISSING_OK or CL_SAVE.
22519         * optc-gen.awk: Update to generate bit-field output as well as
22520         flags field.
22521         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
22522         bit-field instead of CL_REJECT_DRIVER flag.
22523         * opts-common.c (generate_canonical_option,
22524         decode_cmdline_option): Use bit-fields instead of CL_* flags.
22525         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
22526         instead of CL_REJECT_NEGATIVE flag.
22527         * toplev.c (print_switch_values): Use cl_report bit-field instead
22528         of CL_REPORT flag.
22529
22530 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
22531
22532         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
22533         a zero minimum index only if it is redundant.
22534
22535 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
22536
22537         PR rtl-optimization/48381
22538         * ira-color.c (assign_hard_reg): Use hard reg set intersection
22539         instead of ira_class_hard_reg_index for calculating conflicting
22540         hard registers.
22541
22542 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
22543
22544         * cprop.c: Clean up hash table building.
22545         (reg_avail_info): Remove.
22546         (oprs_available_p): Remove.
22547         (record_last_reg_set_info): Remove.
22548         (record_last_set_info): Remove.
22549         (reg_available_p): New function.
22550         (gcse_constant_p): Do not treat unfolded conditions as constants.
22551         (make_set_regs_unavailable): New function.
22552         (hash_scan_set): Simplify with new reg_available_p.
22553         (compute_hash_table_work): Traverse insns stream only once.
22554         Do not compute reg_avail_info. Traverse insns in reverse order.
22555         Record implicit sets after recording explicit sets from the block.
22556
22557 2011-03-31  Michael Matz  <matz@suse.de>
22558
22559         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
22560
22561 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
22562
22563         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
22564         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
22565         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
22566         (h8300_mode_dependent_address_p): New function.
22567         (h8300_get_index): Make static.
22568
22569 2011-03-31  Jeff Law  <law@redhat.com>
22570
22571         * reload1.c (elimination_effects): Fix typo in recent change.
22572
22573         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
22574         typo potentially leading to null pointer dereference.
22575
22576         * caller-save.c (new_saved_hard_reg): Eliminate return value.
22577         (setup_save_areas): Corresponding changes to avoid useless
22578         assignments.
22579
22580         * jump.c (reversed_comparison_code_parts): Avoid successive return
22581         statements when REVERSE_CONDITION is defined.
22582
22583         * expr.c (expand_assignment): Avoid useless assignments.
22584         (expand_expr_real_1): Likewise.
22585         (expand_expr_real_2): Avoid useless statements.
22586
22587         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
22588
22589         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
22590
22591         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
22592         statements.
22593
22594         * stmt.c (expand_expr_stmt): Avoid useless assignment.
22595
22596 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
22597
22598         PR target/47109
22599         * doc/tm.texi.in (TARGET_VERSION): Remove.
22600         * doc/tm.texi: Regenerate.
22601         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
22602         * collect2.c (main): Don't use TARGET_VERSION.
22603         * mips-tdump.c (main): Don't use TARGET_VERSION.
22604         * mips-tfile.c (main): Don't use TARGET_VERSION.
22605         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
22606         * config/rs6000/vxworksae.h: Remove.
22607         * config/alpha/alpha.h (TARGET_VERSION): Remove.
22608         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
22609         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
22610         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
22611         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
22612         * config/arm/arm.h (TARGET_VERSION): Remove.
22613         * config/arm/coff.h (TARGET_VERSION): Remove.
22614         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
22615         * config/arm/elf.h (TARGET_VERSION): Remove.
22616         * config/arm/freebsd.h (TARGET_VERSION): Remove.
22617         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
22618         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
22619         * config/arm/pe.h (TARGET_VERSION): Remove.
22620         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
22621         * config/arm/semi.h (TARGET_VERSION): Remove.
22622         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
22623         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
22624         * config/arm/vxworks.h (TARGET_VERSION): Remove.
22625         * config/avr/avr.h (TARGET_VERSION): Remove.
22626         * config/bfin/bfin.h (TARGET_VERSION): Remove.
22627         * config/fr30/fr30.h (TARGET_VERSION): Remove.
22628         * config/frv/frv.h (TARGET_VERSION): Remove.
22629         * config/h8300/h8300.h (TARGET_VERSION): Remove.
22630         * config/i386/cygwin.h (TARGET_VERSION): Remove.
22631         * config/i386/darwin.h (TARGET_VERSION): Remove.
22632         * config/i386/darwin64.h (TARGET_VERSION): Remove.
22633         * config/i386/djgpp.h (TARGET_VERSION): Remove.
22634         * config/i386/freebsd.h (TARGET_VERSION): Remove.
22635         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
22636         * config/i386/gnu.h (TARGET_VERSION): Remove.
22637         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
22638         * config/i386/i386elf.h (TARGET_VERSION): Remove.
22639         * config/i386/linux.h (TARGET_VERSION): Remove.
22640         * config/i386/linux64.h (TARGET_VERSION): Remove.
22641         * config/i386/lynx.h (TARGET_VERSION): Remove.
22642         * config/i386/mingw32.h (TARGET_VERSION): Remove.
22643         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
22644         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
22645         * config/i386/netware.h (TARGET_VERSION): Remove.
22646         * config/i386/nto.h (TARGET_VERSION): Remove.
22647         * config/i386/openbsd.h (TARGET_VERSION): Remove.
22648         * config/i386/vxworks.h (TARGET_VERSION): Remove.
22649         * config/ia64/elf.h (TARGET_VERSION): Remove.
22650         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
22651         * config/ia64/hpux.h (TARGET_VERSION): Remove.
22652         * config/ia64/linux.h (TARGET_VERSION): Remove.
22653         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
22654         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
22655         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
22656         * config/lm32/lm32.h (TARGET_VERSION): Remove.
22657         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
22658         * config/m32c/m32c.h (TARGET_VERSION): Remove.
22659         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
22660         * config/m32r/m32r.h (TARGET_VERSION): Remove.
22661         * config/m68k/linux.h (TARGET_VERSION): Remove.
22662         * config/m68k/m68k.h (TARGET_VERSION): Remove.
22663         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
22664         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
22665         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
22666         * config/mep/mep.h (TARGET_VERSION): Remove.
22667         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
22668         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
22669         * config/mips/iris6.h (MACHINE_TYPE): Remove.
22670         * config/mips/linux.h (TARGET_VERSION): Remove.
22671         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
22672         * config/mips/vxworks.h (TARGET_VERSION): Remove.
22673         * config/mmix/mmix.h (TARGET_VERSION): Remove.
22674         * config/mn10300/linux.h (TARGET_VERSION): Remove.
22675         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
22676         * config/pa/pa.h (TARGET_VERSION): Remove.
22677         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
22678         * config/picochip/picochip.h (TARGET_VERSION): Remove.
22679         * config/rs6000/aix.h (TARGET_VERSION): Remove.
22680         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
22681         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
22682         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
22683         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
22684         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
22685         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
22686         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
22687         * config/rs6000/linux.h (TARGET_VERSION): Remove.
22688         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
22689         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
22690         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
22691         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
22692         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
22693         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
22694         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
22695         * config/s390/linux.h (TARGET_VERSION): Remove.
22696         * config/s390/s390.h (TARGET_VERSION): Remove.
22697         * config/s390/tpf.h (TARGET_VERSION): Remove.
22698         * config/score/score.h (TARGET_VERSION): Remove.
22699         * config/sh/linux.h (TARGET_VERSION): Remove.
22700         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
22701         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
22702         * config/sh/sh.h (TARGET_VERSION): Remove.
22703         * config/sh/sh64.h (TARGET_VERSION): Remove.
22704         * config/sh/superh.h (TARGET_VERSION): Remove.
22705         * config/sh/vxworks.h (TARGET_VERSION): Remove.
22706         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
22707         * config/sparc/linux.h (TARGET_VERSION): Remove.
22708         * config/sparc/linux64.h (TARGET_VERSION): Remove.
22709         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
22710         TARGET_NAME32, TARGET_NAME): Remove.
22711         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
22712         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
22713         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
22714         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
22715         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
22716         * config/spu/spu.h (TARGET_VERSION): Remove.
22717         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
22718         * config/v850/v850.h (TARGET_VERSION): Remove.
22719         * config/vax/linux.h (TARGET_VERSION): Remove.
22720         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
22721         * config/xtensa/elf.h (TARGET_VERSION): Remove.
22722         * config/xtensa/linux.h (TARGET_VERSION): Remove.
22723
22724 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
22725
22726         PR target/48142
22727         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
22728         frame-related from frame-unrelated adjustments to the stack pointer.
22729
22730 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
22731
22732         * common.opt (fdebug-types-section): Move earlier.
22733         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
22734
22735 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
22736
22737         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
22738         var.
22739
22740 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
22741
22742         * tree.h (CASE_CHAIN): Define.
22743         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
22744         (gimple_redirect_edge_and_branch): Likewise.
22745
22746 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
22747
22748         PR middle-end/48367
22749         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
22750         calculation.
22751
22752 2011-03-30  Jeff Law  <law@redhat.com>
22753
22754         * PR bootstrap/48371
22755         * reload1.c (reload): Fix botch in last change.
22756
22757         * reload.h (struct reload): Fix typo introduced in last change.
22758
22759 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
22760
22761         * config/arm/arm.opt (mhard-float, msoft-float): Mark
22762         Undocumented.  Remove help text.
22763         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
22764         -mhard-float.
22765
22766 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
22767
22768         * doc/options.texi (NegativeAlias): Document.
22769         (Alias): Mention NegativeAlias.
22770         * opt-functions.awk: Handle NegativeAlias.
22771         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
22772         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
22773         * opts.h (CL_NEGATIVE_ALIAS): Define.
22774         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
22775         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
22776         OPT_mspe_.
22777         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
22778         Alias entries.
22779         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
22780         mno-spe and mno-isel instead of mspe=no and -misel=no.
22781
22782 2011-03-29  Mark Wielaard  <mjw@redhat.com>
22783
22784         * common.opt (fdebug-types-section): New flag.
22785         * doc/invoke.texi: Document new -fno-debug-types-section flag.
22786         * dwarf2out.c (use_debug_types): New define.
22787         (struct die_struct): Mark die_id with GTY desc use_debug_types.
22788         (print_die): Guard output of type unit signatures using
22789         use_debug_types.
22790         (build_abbrev_table): Replace assert of dwarf_version >= 4
22791         with assert on use_debug_types.
22792         (size_of_die): Likewise.
22793         (unmark_dies): Likewise.
22794         (value_format): Decide AT_ref_external form on use_debug_types.
22795         (output_die): Replace dwarf_version version check guard with
22796         use_debug_types where appropriate.
22797         (modified_type_die): Likewise.
22798         (gen_reference_type_die): Likewise.
22799         (dwarf2out_start_source_file): Likewise.
22800         (dwarf2out_end_source_file): Likewise.
22801         (prune_unused_types_walk_attribs): Likewise.
22802         (dwarf2out_finish): Likewise.
22803
22804 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
22805
22806         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
22807
22808 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
22809
22810         PR rtl-optimization/48332
22811         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
22812         mode of input operand N and modeN to its actual mode.
22813
22814 2011-03-30  Jeff Law  <law@redhat.com>
22815
22816         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
22817         define accessor macro.
22818         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
22819         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
22820         (reg_equiv_init): Likewise.
22821         (reg_equivs_size): New variable.
22822         (reg_equiv_init_size): Remove.
22823         (allocate_initial_values): Move prototype to here from....
22824         * integrate.h (allocate_initial_values): Remove prototype.
22825         * integrate.c: Include reload.h.
22826         (allocate_initial_values): Corresponding changes.
22827         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
22828         (fix_reg_equiv_init, no_equiv): Corresponding changes.
22829         (update_equiv_regs): Corresponding changes.
22830         (ira): Corresponding changes.
22831         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
22832         (push_secondary_reload): Corresponding changes.
22833         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
22834         (make_memloc, find_reloads_address): Corresponding changes.
22835         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
22836         (find_reloads_address_1): Corresponding changes.
22837         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
22838         (refers_to_regno_for_reload_p): Corresponding changes.
22839         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
22840         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
22841         * reload1.c: Include ggc.h.
22842         (grow_reg_equivs): New function.
22843         (replace_pseudos_in, reload): Corresponding changes.
22844         (calculate_needs_all_insns, alter_regs): Corresponding changes.
22845         (eliminate_regs_1, elimination_effects): Corresponding changes.
22846         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
22847         (delete_output_reload): Likewise.
22848         * caller-save.c (mark_referenced_regs): Corresponding changes.
22849         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
22850         * frv/predicates.md (frv_load_operand): Corresponding changes.
22851         * microblaze/microblaze.c (double_memory_operand): Corresponding
22852         changes.
22853         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
22854         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
22855         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
22856         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
22857         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
22858         changes.
22859         * pa/pa.c (emit_move_sequence): Corresponding changes.
22860         * vax/vax.c (nonindexed_address_p): Corresponding changes.
22861
22862 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
22863
22864         PR target/47551
22865         * config/arm/arm.c (coproc_secondary_reload_class): Handle
22866         structure modes.  Don't check neon_vector_mem_operand for
22867         vector or structure modes.
22868
22869 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
22870             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
22871
22872         PR target/43590
22873         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
22874         operand 1 and reshuffle the operands to match.
22875         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
22876
22877 2011-03-30  Christian Schüler  <cschueler@gmx.de>
22878
22879         PR driver/48208
22880         * config/c.opt (F): Added 'Driver' to -F option.
22881
22882         PR driver/48260
22883         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
22884           handler function.
22885         * config/darwin.opt: Added '-arch' option.
22886
22887 2011-03-30  Nick Clifton  <nickc@redhat.com>
22888
22889         * config/rx/rx.md: Add peepholes and patterns to combine
22890         extending loads and simple arithmetic instructions.
22891         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
22892         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
22893         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
22894         modes to use pre-decrement and post-increment addressing.
22895         (rx_is_restricted_memory_address): Add range checking of REG+INT
22896         addresses.
22897         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
22898         (rx_memory_move_cost): Adjust cost of stores.
22899         (rx_adjust_insn_length): New function.
22900
22901 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
22902
22903         PR c/48305
22904         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
22905         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
22906         matching arg00/arg01 types.
22907
22908 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
22909
22910         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
22911         last_location to UNKNOWN_LOCATION.
22912
22913 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
22914
22915         PR target/48349
22916         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
22917         FLOAT_SSE_REGS.
22918
22919 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
22920             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22921
22922         PR bootstrap/48337
22923         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
22924         Init(PROCESSOR_V7).
22925         (sparc_cpu): Likewise.
22926         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
22927         PROCESSOR_V7.
22928
22929 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
22930
22931         PR target/48336
22932         PR middle-end/48342
22933         PR rtl-optimization/48345
22934         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
22935         hard regs for given mode from profitable regs when doing secondary
22936         allocation.
22937
22938 2011-03-29  Jeff Law  <law@redhat.com>
22939
22940         PR bootstrap/48327
22941         * tree-ssa-threadupdate.c (struct redirection_data): Remove
22942         do_not_duplicate field.
22943         (lookup_redirection_data): Corresponding changes.
22944         (create_duplicates): Always create a template block.
22945         (redirect_edges): Remove code which reused the original block
22946         when it was going to become unreachable code.
22947         (thread_block): Don't set do_not_duplicate field.
22948
22949 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
22950
22951         * lto-opts.c (register_user_option_p, lto_register_user_option):
22952         Make type argument unsigned.
22953         * lto-streamer.h (lto_register_user_option): Make type argument
22954         unsigned.
22955         * opth-gen.awk: Make CL_* macros unsigned.
22956         * opts-common.c (find_opt): Make lang_mask argument unsigned.
22957         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
22958         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
22959         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
22960         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
22961         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
22962         (find_opt): Make lang_mask argument unsigned.
22963
22964 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
22965
22966         PR rtl-optimization/48331
22967         PR rtl-optimization/48334
22968         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
22969         for any used algorithm.
22970
22971 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
22972
22973         * ira-conflicts.c (build_object_conflicts): Add unused attribute
22974         to parent_max.
22975
22976 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
22977
22978         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
22979         (alpha_option_override): Don't set alpha_sr_alias_set.
22980         (emit_frame_store_1): Use gen_frame_mem rather than calling
22981         set_mem_alias_set.
22982         (alpha_expand_epilogue): Ditto.
22983
22984 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
22985
22986         PR tree-optimization/48290
22987         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
22988         vectorization, check that relevant phis in the basic block after
22989         the inner loop are really inner loop's exit phis.
22990
22991 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
22992
22993         PR debug/48190
22994         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
22995         (cached_dw_loc_list_def): New structure.
22996         (cached_dw_loc_list): New typedef.
22997         (cached_dw_loc_list_table): New variable.
22998         (cached_dw_loc_list_table_hash): New function.
22999         (cached_dw_loc_list_table_eq): Likewise.
23000         (add_location_or_const_value_attribute): Take a bool cache_p.
23001         Cache the list when the parameter is true.
23002         (gen_formal_parameter_die): Update caller.
23003         (gen_variable_die): Likewise.
23004         (dwarf2out_finish): Likewise.
23005         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
23006         while generating debug info for the decl.
23007         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
23008         (dwarf2out_init): Initialize cached_dw_loc_list_table.
23009         (resolve_addr): Cache the result of resolving a chain of
23010         location lists.
23011
23012 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
23013
23014         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
23015         conflict object hard regset nodes have intersecting hard reg sets.
23016
23017         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
23018         after regstat_init_n_sets_and_refs.
23019
23020         * ira.c: Add more comments at the top.
23021         (setup_stack_reg_pressure_class, setup_pressure_classes):
23022         Add comments how we compute the register pressure classes.
23023         (setup_allocno_and_important_classes): Add more comments.
23024         (setup_class_translate_array, reorder_important_classes)
23025         (setup_reg_class_relations): Add comments.
23026
23027         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
23028         start of the file.
23029
23030         * ira-color.c: Add 2011 to the Copyright line.
23031         (assign_hard_reg):  Add more comments.
23032         (improve_allocation): Ditto.
23033
23034         * ira-costs.c: Add 2011 to the Copyright line.
23035         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
23036         comments.
23037         (setup_regno_cost_classes_by_mode): Ditto.
23038
23039         Initial patches from ira-improv branch:
23040
23041         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
23042
23043         * ira-build.c (ira_create_object): Remove initialization of
23044         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
23045         (ira_create_allocno): Remove initialization of
23046         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
23047         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
23048         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
23049         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
23050         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
23051         Initialize ALLOCNO_ADD_DATA.
23052         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
23053         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
23054         ALLOCNO_REG.
23055         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
23056         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
23057
23058         * ira.c (ira_reallocate): Remove.
23059         (setup_pressure_classes): Call
23060         ira_init_register_move_cost_if_necessary.  Use
23061         ira_register_move_cost instead of ira_get_register_move_cost.
23062         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
23063         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
23064
23065         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
23066         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
23067         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
23068         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
23069         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
23070         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
23071         Fix formatting.
23072         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
23073         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
23074         (struct allocno_color_data): New.
23075         (allocno_color_data_t): New typedef.
23076         (allocno_color_data): New definition.
23077         (ALLOCNO_COLOR_DATA): New macro.
23078         (struct object_color_data): New.
23079         (object_color_data_t): New typedef.
23080         (object_color_data): New definition.
23081         (OBJECT_COLOR_DATA): New macro.
23082         (update_copy_costs, calculate_allocno_spill_cost): Call
23083         ira_init_register_move_cost_if_necessary.  Use
23084         ira_register_move_cost instead of ira_get_register_move_cost.
23085         (move_spill_restore, update_curr_costs): Ditto.
23086         (allocno_spill_priority): Make it inline.
23087         (color_pass): Allocate and free allocno_color_dat and object_color_data.
23088         (struct coalesce_data, coalesce_data_t): New.
23089         (allocno_coalesce_data): New definition.
23090         (ALLOCNO_COALESCE_DATA): New macro.
23091         (merge_allocnos, coalesced_allocno_conflict_p): Use
23092         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
23093         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
23094         (coalesce_allocnos): Ditto.
23095         (setup_coalesced_allocno_costs_and_nums): Ditto.
23096         (collect_spilled_coalesced_allocnos): Ditto.
23097         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
23098         (setup_slot_coalesced_allocno_live_ranges): Ditto.
23099         (coalesce_spill_slots): Ditto.
23100         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
23101         free allocno_coalesce_data.
23102
23103         * ira-conflicts.c: Fix formatting.
23104         (process_regs_for_copy): Call
23105         ira_init_register_move_cost_if_necessary.  Use
23106         ira_register_move_cost instead of ira_get_register_move_cost.
23107         (build_object_conflicts): Optimize.
23108
23109         * ira-costs.c (record_reg_classes): Optimize.  Call
23110         ira_init_register_move_cost_if_necessary.  Use
23111         ira_register_move_cost, ira_may_move_in_cost, and
23112         ira_may_move_out_cost instead of ira_get_register_move_cost and
23113         ira_get_may_move_cost.
23114         (record_address_regs): Ditto.
23115         (scan_one_insn): Optimize.
23116         (find_costs_and_classes): Optimize.
23117         (process_bb_node_for_hard_reg_moves): Call
23118         ira_init_register_move_cost_if_necessary.  Use
23119         ira_register_move_cost instead of ira_get_register_move_cost.
23120
23121         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
23122         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
23123         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
23124         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
23125         definitions.
23126         (ira_initiate_emit_data, ira_finish_emit_data)
23127         (create_new_allocno): New functions.
23128         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
23129         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
23130         Use ira_register_move_cost instead of ira_get_register_move_cost.
23131
23132         * ira-int.h: Fix some comments.
23133         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
23134         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
23135         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
23136         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
23137         add_data.
23138         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
23139         bitfield after mode.  Make hard_regno a short int.  Make
23140         hard_regno short.  Remove first_coalesced_allocno and
23141         next_coalesced_allocno.  Move mem_optimized_dest_p,
23142         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
23143         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
23144         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
23145         temp, colorable_p.  Add new member add_data.
23146         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
23147         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
23148         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
23149         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
23150         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
23151         (ALLOCNO_ADD_DATA): New macro.
23152         (ira_emit_data_t): New typedef.
23153         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
23154         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
23155         from struct ira_allocno.
23156         (ALLOCNO_EMIT_DATA): New macro.
23157         (ira_allocno_emit_data, allocno_emit_reg): New.
23158         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
23159         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
23160         (OBJECT_ADD_DATA): New macro.
23161         (ira_reallocate): Remove.
23162         (ira_initiate_emit_data, ira_finish_emit_data): New.
23163         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
23164         (ira_init_register_move_cost_if_necessary): New.
23165         (ira_object_conflict_iter_next): Merge into
23166         ira_object_conflict_iter_cond.
23167         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
23168
23169         * ira-live.c (process_single_reg_class_operands): Call
23170         ira_init_register_move_cost_if_necessary.  Use
23171         ira_register_move_cost instead of ira_get_register_move_cost.
23172
23173         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
23174
23175         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
23176
23177         * ira-costs.c: Fix formatting.
23178         (cost_classes, cost_classes_num): Remove.
23179         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
23180         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
23181         (cost_classes_del, cost_classes_htab): New.
23182         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
23183         (initiate_regno_cost_classes, setup_cost_classes): New.
23184         (setup_regno_cost_classes_by_aclass): New.
23185         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
23186         (record_reg_classes): Use regno_cost_classes instead of
23187         cost_classes.  Move checking opposite operand up.
23188         (record_address_regs): Use regno_cost_classes
23189         instead of cost_classes.
23190         (scan_one_insn): Ditto.  Use always general register.
23191         (print_allocno_costs): Use regno_cost_classes instead of
23192         cost_classes.
23193         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
23194         (find_costs_and_classes): Set up cost classes for each registers.
23195         Use also their mode for this.  Use regno_cost_classes instead of
23196         cost_classes.
23197         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
23198         cost_classes.
23199         (free_ira_costs, ira_init_costs): Don't use cost_classes.
23200         (ira_costs, ira_set_pseudo_classes): Call
23201         initiate_regno_cost_classes and finish_regno_cost_classes.
23202
23203         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
23204
23205         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
23206
23207         * target.def (ira_cover_classes): Remove.
23208
23209         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
23210
23211         * doc/tm.texi.in: Ditto.
23212
23213         * ira-conflicts.c: Remove mentioning cover classes from the file.
23214         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
23215         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
23216
23217         * targhooks.c (default_ira_cover_classes): Remove.
23218
23219         * targhooks.h (default_ira_cover_classes): Ditto.
23220
23221         * haifa-sched.c: Remove mentioning cover classes from the file.
23222         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
23223         ira_pressure_classes and ira_pressure_classes_num instead of
23224         ira_reg_class_cover_size and ira_reg_class_cover.  Use
23225         sched_regno_pressure_class instead of sched_regno_cover_class.
23226         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
23227         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
23228
23229         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
23230         classes from the file.
23231         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
23232         (struct object_hard_regs, struct object_hard_regs_node): New.
23233         (struct ira_object): New members profitable_hard_regs,
23234         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
23235         (struct ira_allocno): Rename cover_class to aclass.  Rename
23236         cover_class_cost and updated_cover_class_cost to class_cost and
23237         updated_class_cost.  Remove splay_removed_p and
23238         left_conflict_size.  Add new members colorable_p.
23239         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
23240         (ALLOCNO_COLORABLE_P): New macro.
23241         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
23242         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
23243         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
23244         (OBJECT_...): Rename parameter C to O.
23245         (OBJECT_PROFITABLE_HARD_REGS): New macro.
23246         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
23247         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
23248         (struct target_ira_int): New members x_ira_max_memory_move_cost,
23249         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
23250         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
23251         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
23252         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
23253         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
23254         x_ira_reg_class_subunion.
23255         (ira_max_memory_move_cost, ira_max_register_move_cost)
23256         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
23257         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
23258         (ira_important_class_nums, ira_reg_class_superunion): New macros.
23259         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
23260         (ira_reg_class_union): Rename to ira_reg_class_subunion.
23261         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
23262         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
23263         (ira_tune_allocno_costs_and_cover_classes): Rename to
23264         ira_tune_allocno_costs.
23265         (ira_debug_hard_regs_forest): New.
23266         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
23267         (ira_object_conflict_iter_next): Fix comments.
23268         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
23269         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
23270         cover_class to aclass.
23271         (ira_allocate_and_accumulate_costs): Ditto.
23272         (ira_allocate_and_set_or_copy_costs): Ditto.
23273
23274         * opts.c (decode_options): Remove ira_cover_class check.
23275
23276         * ira-color.c: Remove mentioning cover classes from the file.  Use
23277         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
23278         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
23279         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
23280         (splay-tree.h): Remove include.
23281         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
23282         before copy_freq_compare_func.
23283         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
23284         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
23285         New definitions.
23286         (hard_regs_roots, hard_regs_node_vec): Ditto.
23287         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
23288         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
23289         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
23290         (create_new_object_hard_regs_node): Ditto.
23291         (add_new_object_hard_regs_node_to_forest): Ditto.
23292         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
23293         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
23294         Ditto.
23295         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
23296         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
23297         (remove_unused_object_hard_regs_nodes): Ditto.
23298         (enumerate_object_hard_regs_nodes): Ditto.
23299         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
23300         (object_hard_regs_subnode_t): Ditto.
23301         (struct object_hard_regs_subnode): Ditto.
23302         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
23303         (setup_object_hard_regs_subnode_index): Ditto.
23304         (get_object_hard_regs_subnodes_num): Ditto.
23305         (form_object_hard_regs_nodes_forest): Ditto.
23306         (finish_object_hard_regs_nodes_tree): Ditto.
23307         (finish_object_hard_regs_nodes_forest): Ditto.
23308         (allocnos_have_intersected_live_ranges_p): Rename to
23309         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
23310         (pseudos_have_intersected_live_ranges_p): Rename to
23311         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
23312         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
23313         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
23314         (update_copy_costs): Remove assert.  Skip cost update if the hard
23315         reg does not belong the class.
23316         (assign_hard_reg): Process only profitable hard regs.
23317         (uncolorable_allocnos_num): Make it scalar.
23318         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
23319         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
23320         and ira_reg_class_max_nregs.
23321         (bucket_allocno_compare_func): Check frequency first.
23322         (sort_bucket): Add compare function as a parameter.
23323         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
23324         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
23325         (push_allocno_to_stack): Rewrite for checking new allocno
23326         colorability.
23327         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
23328         (push_only_colorable): Pass new parameter to sort_bucket.
23329         (push_allocno_to_spill): Remove.
23330         (allocno_spill_priority_compare): Make it inline and rewrite.
23331         (splay_tree_allocate, splay_tree_free): Remove.
23332         (allocno_spill_sort_compare): New function.
23333         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
23334         build and use splay tree.  Choose first allocno in uncolorable
23335         allocno bucket to spill.  Remove setting spill cost.
23336         (all_conflicting_hard_regs): Remove.
23337         (setup_allocno_available_regs_num): Check only profitable hard
23338         regs.  Print info about hard regs nodes.
23339         (setup_allocno_left_conflicts_size): Remove.
23340         (put_allocno_into_bucket): Don't call
23341         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
23342         (improve_allocation): New.
23343         (color_allocnos): Call setup_profitable_hard_regs,
23344         form_object_hard_regs_nodes_forest, improve_allocation,
23345         finish_object_hard_regs_nodes_forest.  Setup spill cost.
23346         (print_loop_title): Use pressure classes.
23347         (color_allocnso): Ditto.
23348         (do_coloring): Remove allocation and freeing splay_tree_node_pool
23349         and allocnos_for_spilling.
23350         (ira_sort_regnos_for_alter_reg): Don't setup members
23351         {first,next}_coalesced_allocno.
23352         (color): Remove allocating and freeing removed_splay_allocno_vec.
23353         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
23354         prohibited_class_mode_regs.
23355
23356         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
23357         formatting.
23358         (update_allocno_pressure_excess_length): Use pressure classes.
23359         (inc_register_pressure, dec_register_pressure): Check for pressure
23360         class.
23361         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
23362         pressure class.  Use ira_reg_class_nregs instead of
23363         ira_reg_class_max_nregs.
23364         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
23365         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
23366         (single_reg_class): Use ira_reg_class_nregs instead of
23367         ira_reg_class_max_nregs.
23368         (process_bb_node_lives): Use pressure classes.
23369
23370         * ira-emit.c: Remove mentioning cover classes from the file.  Use
23371         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
23372         (change_loop): Use pressure classes.
23373         (modify_move_list): Call ira_set_allocno_class instead of
23374         ira_set_allocno_cover_class.
23375
23376         * ira-build.c: Remove mentioning cover classes from the file.  Use
23377         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
23378         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
23379         ALLOCNO_UPDATED_CLASS_COST instead of
23380         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
23381         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
23382         (ira_create_allocno): Remove initialization of
23383         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
23384         ALLOCNO_COLORABLE_P.
23385         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
23386         Update conflict regs for the objects.
23387         (create_cap_allocno): Remove assert.  Don't propagate
23388         ALLOCNO_AVAILABLE_REGS_NUM.
23389         (ira_free_allocno_costs): New function.
23390         (finish_allocno): Change a part of code into call of
23391         ira_free_allocno_costs.
23392         (low_pressure_loop_node_p): Use pressure classes.
23393         (object_range_compare_func): Don't compare classes.
23394         (setup_min_max_conflict_allocno_ids): Ditto.
23395
23396         * loop-invariant.c: Remove mentioning cover classes from the file.
23397         Use ira_pressure_classes and ira_pressure_classes_num instead of
23398         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
23399         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
23400         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
23401         Use reg_allocno_class instead of reg_cover_class.
23402         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
23403         STACK_REG_COVER_CLASS.
23404         (get_regno_cover_class): Rename to get_regno_pressure_class.
23405         (move_loop_invariants): Initialize and finalize regstat.
23406
23407         * ira.c: Remove mentioning cover classes from the file.  Add
23408         comments about coloring without cover classes.  Use ALLOCNO_CLASS
23409         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
23410         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
23411         setup_class_subset_and_memory_move_costs.
23412         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
23413         (setup_cover_and_important_classes): Rename to
23414         setup_allocno_and_important_classes.
23415         (setup_class_translate_array): New.
23416         (setup_class_translate): Call it for allocno and pressure classes.
23417         (cover_class_order): Rename to allocno_class_order.
23418         (comp_reg_classes_func): Use ira_allocno_class_translate instead
23419         of ira_class_translate.
23420         (reorder_important_classes): Set up ira_important_class_nums.
23421         (setup_reg_class_relations): Set up ira_reg_class_superunion.
23422         (print_class_cover): Rename to print_classes.  Add parameter.
23423         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
23424         Print pressure classes too.
23425         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
23426         setup_reg_subclasses.
23427         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
23428         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
23429         (setup_prohibited_class_mode_regs): Use
23430         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
23431         (clarify_prohibited_class_mode_regs): New function.
23432         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
23433         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
23434         (ira_init_once): Initialize them.
23435         (free_register_move_costs): Process them.
23436         (ira_init): Move calls of find_reg_classes and
23437         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
23438         Call clarify_prohibited_class_mode_regs.
23439         (ira_no_alloc_reg): Remove.
23440         (too_high_register_pressure_p): Use pressure classes.
23441
23442         * sched-deps.c: Remove mentioning cover classes from the file.
23443         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
23444         ira_pressure_classes and ira_pressure_classes_num instead of
23445         ira_reg_class_cover_size and ira_reg_class_cover.
23446         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
23447         sched_regno_pressure_class instead of sched_regno_cover_class.
23448         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
23449         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
23450
23451         * ira.h: Add 2010 to Copyright.
23452         (ira_no_alloc_reg): Remove external.
23453         (struct target_ira): Rename x_ira_hard_regno_cover_class,
23454         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
23455         x_ira_class_translate to x_ira_hard_regno_allocno_class,
23456         x_ira_allocno_classes_num, x_ira_allocno_classes, and
23457         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
23458         x_ira_pressure_classes, x_ira_pressure_class_translate, and
23459         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
23460         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
23461         x_ira_no_alloc_regs.
23462         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
23463         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
23464         ira_allocno_classes_num and ira_allocno_classes.
23465         (ira_class_translate): Rename to ira_allocno_class_translate.
23466         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
23467         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
23468         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
23469         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
23470         (ira_no_alloc_regs): New.
23471
23472         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
23473         classes from the file.  Use ALLOCNO_CLASS instead of
23474         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
23475         ALLOCNO_COVER_CLASS_COST.
23476         (regno_cover_class): Rename to regno_aclass.
23477         (record_reg_classes): Use ira_reg_class_subunion instead of
23478         ira_reg_class_union.
23479         (record_address_regs): Check overflow.
23480         (scan_one_insn): Ditto.
23481         (print_allocno_costs): Print total mem cost fore regional allocation.
23482         (print_pseudo_costs): Use REG_N_REFS.
23483         (find_costs_and_classes): Use classes intersected with them on the
23484         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
23485         ira_reg_class_union.  Use ira_allocno_class_translate and
23486         regno_aclass instead of ira_class_translate and regno_cover_class.
23487         Modify code for finding regno_aclass.  Setup preferred classes for
23488         the next pass.
23489         (setup_allocno_cover_class_and_costs): Rename to
23490         setup_allocno_class_and_costs.  Use regno_aclass instead of
23491         regno_cover_class.  Use ira_set_allocno_class instead of
23492         ira_set_allocno_cover_class.
23493         (init_costs, finish_costs): Use regno_aclass instead of
23494         regno_cover_class.
23495         (ira_costs): Use setup_allocno_class_and_costs instead of
23496         setup_allocno_cover_class_and_costs.
23497         (ira_tune_allocno_costs_and_cover_classes): Rename to
23498         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
23499         by processing objects.  Use ira_reg_class_max_nregs instead of
23500         ira_reg_class_nregs.
23501
23502         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
23503
23504         * sched-int.h: Remove mentioning cover classes from the file.
23505         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
23506
23507         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
23508         classes from the file.
23509         (struct reg_pref): Rename coverclass into allocnoclass.
23510         (reg_cover_class): Rename to reg_allocno_class.
23511
23512         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
23513
23514         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
23515
23516         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
23517
23518         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
23519
23520         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
23521
23522         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
23523
23524         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
23525
23526         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
23527
23528         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
23529
23530         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
23531
23532         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
23533         (i386_ira_cover_classes): Ditto.
23534
23535         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
23536
23537         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
23538
23539         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
23540
23541         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
23542
23543         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
23544
23545         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
23546
23547         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
23548         (mips_ira_cover_classes): Ditto.
23549
23550         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
23551
23552         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
23553
23554         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
23555
23556         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
23557
23558         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
23559
23560         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
23561         (IRA_COVER_CLASSES_VSX): Ditto.
23562
23563         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
23564         (rs6000_ira_cover_classes): Ditto.
23565
23566         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
23567
23568         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
23569
23570         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
23571
23572         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
23573
23574         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
23575
23576         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
23577
23578         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
23579
23580         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
23581
23582         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
23583
23584         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
23585
23586 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
23587
23588         PR debug/48253
23589         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
23590         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
23591         dw_fde_unlikely_section_end_label, cold_in_std_section,
23592         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
23593         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
23594         fields.
23595         (output_fde): Use dw_fde_second_{begin,end} if second is
23596         true, otherwise dw_fde_{begin,end}.
23597         (output_call_frame_info): Test dw_fde_second_begin != NULL
23598         instead of dw_fde_switched_sections.
23599         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
23600         fields, initialize new fields.  Initialize in_std_section
23601         unconditionally from the first partition.
23602         (dwarf2out_end_epilogue): Don't override dw_fde_end when
23603         dw_fde_second_begin is non-NULL.
23604         (dwarf2out_switch_text_section): Stop initializing removed
23605         dw_fde_struct fields, initialize new fields, initialize
23606         also dw_fde_end here.  Set dw_fde_switch_cfi even when
23607         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
23608         (struct var_loc_list_def): Add last_before_switch field.
23609         (arange_table, arange_table_allocated, arange_table_in_use,
23610         ARANGE_TABLE_INCREMENT, add_arange): Removed.
23611         (size_of_aranges): Count !in_std_section and !second_in_std_section
23612         hunks in fdes, instead of looking at arange_table_in_use.
23613         (output_aranges): Add aranges_length argument, don't call
23614         size_of_aranges here.  Instead of using aranges_table*
23615         emit ranges for fdes when !in_std_section resp.
23616         !second_in_std_section.
23617         (dw_loc_list): Break ranges crossing section switch.
23618         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
23619         use dw_fde_second_end instead of dw_fde_end as end of last range.
23620         (gen_subprogram_die): Don't call add_arange.  Use
23621         dw_fde_{begin,end} for first partition and if switched
23622         section dw_fde_second_{begin,end} for the second.
23623         (var_location_switch_text_section_1,
23624         var_location_switch_text_section): New functions.
23625         (dwarf2out_begin_function): Initialize cold_text_section even
23626         when function_section () isn't text_section.
23627         (prune_unused_types): Don't walk arange_table.
23628         (dwarf2out_finish): Don't needlessly test
23629         flag_reorder_blocks_and_partition when testing cold_text_section_used.
23630         If info_section_emitted, call size_of_aranges and if it indicates
23631         non-empty .debug_aranges, call output_aranges with the computed
23632         size.  Stop using removed dw_fde_struct fields, use
23633         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
23634         for second.
23635
23636         PR debug/48203
23637         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
23638         create ENTRY_VALUE if incoming or address of incoming's MEM
23639         is a hard REG.
23640         * dwarf2out.c (mem_loc_descriptor): Don't emit
23641         DW_OP_GNU_entry_value of DW_OP_fbreg.
23642         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
23643         on ENTRY_VALUE is able to find the canonical parameter VALUE.
23644         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
23645         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
23646         ENTRY_VALUE_EXPs.
23647         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
23648         is a REG_P or MEM_P with REG_P address, compute hash directly
23649         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
23650         (preserve_only_constants): Don't clear VALUES forwaring
23651         ENTRY_VALUE to some other VALUE.
23652
23653 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
23654
23655         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
23656         instead of GEN_INT.
23657
23658 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
23659
23660         * cfgexpand.c (expand_gimple_cond): Always set the source location and
23661         block before expanding the statement.
23662         (expand_gimple_stmt_1): Likewise.  Set them here...
23663         (expand_gimple_stmt): ...and not here.  Tidy.
23664         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
23665         unknown.
23666
23667 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
23668
23669         * Makefile.in: New rule for cprop.o.
23670         * gcse.c: Move constant/copy propagation to cprop.c.
23671         (compute_local_properties): Only handle expression tables.
23672         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
23673         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
23674         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
23675         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
23676         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
23677         compute_cprop_data, find_used_regs, try_replace_reg,
23678         find_avail_set, cprop_jump, constprop_register, cprop_insn,
23679         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
23680         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
23681         find_bypass_set, reg_killed_on_edge, bypass_block,
23682         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
23683         execute_rtl_cprop, pass_rtl_cprop): Move to...
23684         * cprop.c: ...here.  New file, constant/copy propagation for RTL
23685         moved from gcse.c to here with minor cleanups in duplicated code.
23686
23687 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
23688
23689         * config/i386/i386.c (flag_opts): Fix a typo in
23690         -mavx256-split-unaligned-store.
23691
23692 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
23693
23694         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
23695         LIBCALL_VALUE): Remove macros.
23696         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
23697         TARGET_FUNCTION_VALUE_REGNO_P): Define.
23698         (h8300_function_value, h8300_libcall_value,
23699         h8300_function_value_regno_p): New functions.
23700
23701 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
23702
23703         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
23704
23705 2011-03-28  Jeff Law  <law@redhat.com>
23706
23707         * tree-ssa-threadupdate.c (redirect_edges): Call
23708         create_edge_and_update_destination_phis as needed.
23709         (create_edge_and_update_destination_phis): Accept new BB argument.
23710         All callers updated.
23711         (thread_block): Do not update the profile when threading around
23712         intermediate blocks.
23713         (thread_single_edge): Likewise.
23714         (determine_bb_domination_status): If BB is not a successor of the
23715         loop header, return NONDOMINATING.
23716         (register_jump_thread): Note when we register a jump thread around
23717         an intermediate block.
23718         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
23719         (thread_across_edge): Use it.
23720
23721 2011-03-28  Tristan Gingold  <gingold@adacore.com>
23722
23723         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
23724         when for_return is 2.
23725
23726 2011-03-28  Jeff Law  <law@redhat.com>
23727
23728         * var-tracking.c (canonicalize_values_mark): Delete unused
23729         lhs assignment.
23730         (canonicalize_values_star, set_variable_part): Likewise.
23731         (clobber_variable_part, delete_variable_part): Likewise.
23732
23733 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
23734
23735         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
23736
23737 2011-03-28  Martin Jambor  <mjambor@suse.cz>
23738
23739         * tree-inline.c (expand_call_inline): Do not check that destination
23740         node is analyzed.
23741         (optimize_inline_calls): Assert that destination node is analyzed.
23742         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
23743         not call tree_lowering_passes.
23744         * cgraph.h (cgraph_analyze_function): Declare.
23745         * cgraphunit.c (cgraph_analyze_function): Make public.
23746
23747 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
23748
23749         * config/sparc/sparc-opts.h: New.
23750         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
23751         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
23752         (sparc_option_override): Store processor_type enumeration rather
23753         than string in cpu_default.  Remove name and enumeration from
23754         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
23755         without using sparc_select.  Use target_flags_explicit instead of
23756         fpu_option_set.
23757         * config/sparc/sparc.h (enum processor_type): Move to
23758         sparc-opts.h.
23759         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
23760         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
23761         HeaderInclude entry.
23762         (mcpu=, mtune=): Use Var and Enum.
23763         (sparc_processor_type): New Enum and EnumValue entries.
23764
23765 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23766             Iain Sandoe  <iains@gcc.gnu.org>
23767
23768         PR target/48245
23769         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
23770
23771 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
23772
23773         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
23774         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
23775         Insert new statements at it in lieu of STMT.
23776         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
23777         * tree-vect-stmts.c (vectorizable_store): Likewise.
23778         (vectorizable_load): Likewise.
23779
23780 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
23781
23782         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
23783         (divtf3): Ditto.
23784         (multf3): Ditto.
23785         (subtf3): Ditto.
23786
23787 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
23788
23789         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
23790         unaligned 256bit load/store.
23791         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
23792         (*avx_movdqu<avxmodesuffix>): Likewise.
23793
23794 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23795
23796         PR target/48288
23797         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
23798         * config/pa/pa.md (iordi3): Use new predicate in expander.
23799         (iorsi3): Likewise.
23800
23801 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
23802
23803         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
23804         FUNCTION_VALUE_REGNO_P): Remove macros.
23805         * config/mips/mips-protos.h (mips_function_value): Remove.
23806         * config/mips/mips.c (mips_function_value): Rename to...
23807         (mips_function_value_1): ... this. Make static.  Handle receiving
23808         the function type in 'fn_decl_or_type' argument.
23809         (mips_function_value, mips_libcall_value,
23810         mips_function_value_regno_p): New function.
23811         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
23812         TARGET_FUNCTION_VALUE_REGNO_P): Define.
23813
23814 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
23815
23816         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
23817         and -mavx256-split-unaligned-store.
23818         (ix86_option_override_internal): Split 32-byte AVX unaligned
23819         load/store by default.
23820         (ix86_avx256_split_vector_move_misalign): New.
23821         (ix86_expand_vector_move_misalign): Use it.
23822
23823         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
23824         -mavx256-split-unaligned-store.
23825
23826         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
23827         256bit load/store.  Generate unaligned store on misaligned memory
23828         operand.
23829         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
23830         256bit load/store.
23831         (*avx_movdqu<avxmodesuffix>): Likewise.
23832
23833         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
23834         -mavx256-split-unaligned-store.
23835
23836 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
23837
23838         PR target/38598
23839         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
23840         Update commentary.
23841
23842 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
23843
23844         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
23845         opno arguments with an expand_operand.  Use create_input_operand.
23846         (mips_prepare_builtin_target): Delete.
23847         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
23848         functions.
23849         (mips_expand_builtin_direct): Use create_output_operand and
23850         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
23851         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
23852         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
23853
23854 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
23855
23856         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
23857         function.
23858         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
23859
23860 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
23861
23862         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
23863         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
23864         basic blocks and call commit_edge_insertions directly.
23865         (fixup_abnormal_edges): Move from here to...
23866         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
23867         on the edges and return whether some have actually been inserted.
23868         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
23869         compensation code.
23870
23871 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
23872
23873         PR rtl-optimization/48144
23874         * sel-sched-ir.c (merge_history_vect): Factor out from ...
23875         (merge_expr_data): ... here.
23876         (av_set_intersect): Rename to av_set_code_motion_filter.
23877         Update all callers.  Call merge_history_vect when an expression
23878         is found in both sets.
23879         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
23880
23881 2011-03-26  Alan Modra  <amodra@gmail.com>
23882
23883         * config/rs6000/predicates.md (word_offset_memref_op): Handle
23884         cmodel medium addresses.
23885         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
23886         64-bit gpr loads and stores.
23887         (rs6000_secondary_reload_ppc64): New function.
23888         * config/rs6000/rs6000-protos.h: Declare it.
23889         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
23890
23891 2011-03-26  Alan Modra  <amodra@gmail.com>
23892
23893         PR target/47487
23894         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
23895         GNU Go in traceback table.
23896
23897 2011-03-25  Richard Henderson  <rth@redhat.com>
23898
23899         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
23900         if there are exactly 6 operands.
23901         (set_storage_via_setmem): Similarly.
23902
23903 2011-03-25  Kai Tietz  <ktietz@redhat.com>
23904
23905         * collect2.c (write_c_file_stat): Handle backslash
23906         as right-hand directory separator.
23907         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
23908         checking just for slash.
23909         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
23910         instead of checking for trailing slash.
23911         * gcc.c (record_temp_file): Use filename_cmp instead
23912         of strcmp.
23913         (do_spec_1): Likewise.
23914         (replace_outfile_spec_function): Likewise.
23915         (is_directory): Use filename_ncmp instead of strncmp.
23916         (print_multilib_info): Likewise.
23917         * gcov.c (find_source): Use filename_cmp instead
23918         instead of strcmp.
23919         (make_gcov_file_name): Fix order of slash/backslash
23920         checks.
23921         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
23922         (add_standard_paths): Likewise.
23923         * mips-tfile.c (saber_stop): Handle backslash.
23924         * prefix.c (update_path): Use filename_ncmp instead of
23925         strncmp.
23926         * profile.c (output_location): Use filename_cmp instead
23927         of strcmp.
23928         * read-md.c (handle_toplevel_file): Handle backslash.
23929         * tlink.c (frob_extension):  Likewise.
23930         * tree-cfg.c (same_line_p): Use filename_cmp instead of
23931         strcmp.
23932         * tree-dump.c (dequeue_and_dump): Handle backslash.
23933         * tree.c (get_file_function_name): Likewise.
23934         * gengtype.c (read_input_list): Likewise.
23935         (get_file_realbasename): Likewise.
23936         (get_output_file_with_visibility): Use filename_cmp
23937         instead of strcmp.
23938
23939 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
23940
23941         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
23942         case to VFPv1.
23943
23944 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
23945
23946         * fold-const.c (expr_location_or): New function.
23947         (fold_truth_not_expr): Call it.
23948
23949 2011-03-25  Jeff Law  <law@redhat.com>
23950
23951         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
23952         va_end.
23953         * c-family/c-common.c (def_fn_type): Likewise.
23954         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
23955         * emit-rtl.c (gen_rtvec): Likewise.
23956         * lto/lto-lang.c (def_fn_type): Likewise.
23957
23958 2011-03-25  Richard Guenther  <rguenther@suse.de>
23959
23960         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
23961         also generate copies.
23962         (fini_copy_prop): Handle constant values properly.
23963
23964 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
23965
23966         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
23967         mode size instead of bitsize with DWARF2_ADDR_SIZE.
23968         (hash_loc_operands, compare_loc_operands): Handle
23969         DW_OP_GNU_entry_value.
23970
23971 2011-03-25  Kai Tietz  <ktietz@redhat.com>
23972
23973         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
23974         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
23975         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
23976         comment and use macro TARGET_64BIT_MS_ABI instead.
23977         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
23978         and change default behavior for 32-bit MS_ABI.
23979         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
23980         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
23981         32-bit, too.
23982         (ix86_cfun_abi): Likewise.
23983         (ix86_maybe_switch_abi): Adjust comment.
23984         (init_cumulative_args): Check for bit-ness in MS_ABI case.
23985         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
23986         instead of checking for SYSV_ABI.
23987         (ix86_nsaved_sseregs): Likewise.
23988         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
23989         to 16 bytes.
23990         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
23991         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
23992         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
23993         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
23994         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
23995
23996 2011-03-25  Richard Guenther  <rguenther@suse.de>
23997
23998         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
23999         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
24000         (verify_gimple): Remove.
24001         * tree-cfg.c (verify_gimple_call): Merge verification
24002         from verify_stmts.
24003         (verify_gimple_phi): Merge verification from verify_stmts.
24004         (verify_gimple_label): New function.
24005         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
24006         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
24007         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
24008         (verify_stmts): Rename to verify_gimple_in_cfg.
24009         (verify_gimple_in_cfg): New function.
24010         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
24011         * tree-ssa.c (verify_ssa): Likewise.
24012         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
24013
24014 2011-03-25  Richard Guenther  <rguenther@suse.de>
24015
24016         * passes.c (init_optimization_passes): Add FRE pass after
24017         early SRA.
24018
24019 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
24020             Andrew Stubbs  <ams@codesourcery.com>
24021
24022         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
24023         for Cortex-A8.
24024         (arm_movdi_vfp_cortexa8): New pattern.
24025         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
24026         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
24027         instructions when tuning for Cortex-A8.  Set attribute "arch".
24028         * config/arm/arm.md: Move include arm-tune.md up a bit.
24029         (define_attr "arch"): Add "onlya8" and "nota8" values.
24030         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
24031
24032 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
24033
24034         PR bootstrap/48282
24035         Revert:
24036         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
24037
24038         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
24039         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
24040         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
24041         * passes.c (init_optimization_passes): Move
24042         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
24043
24044 2011-03-25  Kai Tietz  <ktietz@redhat.com>
24045
24046         * c-typeck.c (comptypes_internal): Replace target
24047         hook call of comp_type_attributes by version in tree.c file.
24048         * gimple.c (gimple_types_compatible_p_1): Likewise.
24049         * tree-ssa.c (useless_type_conversion_p): Likewise.
24050         * tree.c (build_type_attribute_qual_variant): Likewise.
24051         (attribute_value_equal): New static helper function.
24052         (comp_type_attributes): New function.
24053         (merge_attributes): Use attribute_value_equal for comparison.
24054         (attribute_list_contained): Likewise.
24055         * tree.h (comp_type_attributes): New prototype.
24056
24057 2011-03-25  Richard Guenther  <rguenther@suse.de>
24058
24059         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
24060         of complex types at -O0.
24061         (verify_gimple_assign_binary): Likewise.
24062         (verify_gimple_assign_ternary): Likewise.
24063
24064 2011-03-24  Mark Wielaard  <mjw@redhat.com>
24065
24066         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
24067         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
24068
24069 2011-03-24  Mark Wielaard  <mjw@redhat.com>
24070
24071         PR debug/48041
24072         * dwarf2out.c (output_abbrev_section): Only write table when
24073         abbrev_die_table_in_use > 1.
24074
24075 2011-02-24  Richard Henderson  <rth@redhat.com>
24076
24077         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
24078         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
24079         (alpha_expand_unaligned_load_words): Use extql.
24080         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
24081         (emit_insxl): Handle all modes for consistency.
24082
24083 2011-02-24  Richard Henderson  <rth@redhat.com>
24084
24085         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
24086         (alpha_expand_unaligned_load): Likewise.
24087         (alpha_expand_unaligned_store): Likewise.
24088         (alpha_expand_unaligned_load_words): Likewise.
24089         (alpha_expand_unaligned_store_words): Likewise.
24090         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
24091         (alpha_split_lock_test_and_set_12): Likewise.
24092         (print_operand, alpha_fold_builtin_extxx): Likewise.
24093         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
24094         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
24095         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
24096         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
24097         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
24098         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
24099         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
24100         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
24101         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
24102         (extwl, extll, extql): Similarly.
24103         (inswh, inslh, insqh): Similarly.
24104         (mskbl, mskwl, mskll, mskql): Similarly.
24105         (mskwh, msklh, mskqh): Similarly.
24106
24107 2011-02-24  Richard Henderson  <rth@redhat.com>
24108
24109         * config/alpha/alpha.md (attribute isa): Add er, ner.
24110         (attribute enabled): Handle them.
24111         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
24112
24113 2011-02-24  Richard Henderson  <rth@redhat.com>
24114
24115         * config/alpha/alpha.md (attribute isa): Add vms.
24116         (attribute enabled): Handle it.
24117         (*movsf): Merge *movsf_{nofix,fix,nofp}.
24118         (*movdf): Merge *movdf_{nofix,fix,nofp}.
24119         (*movtf): Rename from *movtf_internal for consistency.
24120         (*movsi): Merge with *movsi_nt_vms.
24121         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
24122         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
24123         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
24124         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
24125
24126 2011-02-24  Richard Henderson  <rth@redhat.com>
24127
24128         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
24129         (extendqisi2, extendhisi2): Likewise.
24130         (extendqidi2): Simplify BWX/non-BWX expansions.
24131         (extendhidi2): Similarly.
24132
24133 2011-02-24  Richard Henderson  <rth@redhat.com>
24134
24135         * config/alpha/alpha.md (attribute isa): New.
24136         (attribute enabled): New.
24137         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
24138         (zero_extendqisi2, zero_extendqidi2): Similarly.
24139         (zero_extendhisi2, zero_extendhidi2): Similarly.
24140         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
24141
24142 2011-02-24  Richard Henderson  <rth@redhat.com>
24143
24144         * config/alpha/predicates.md (input_operand): Revert last change;
24145         update comment to mention 32-bit VMS rather than Windows.
24146
24147 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
24148
24149         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
24150         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
24151         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
24152         * passes.c (init_optimization_passes): Move
24153         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
24154
24155 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
24156
24157         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
24158
24159 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
24160
24161         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
24162         correctly.
24163
24164 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
24165
24166         PR debug/48204
24167         * simplify-rtx.c (simplify_const_unary_operation): Call
24168         real_convert when changing mode class with FLOAT_EXTEND.
24169
24170 2011-03-24  Nick Clifton  <nickc@redhat.com>
24171
24172         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
24173         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
24174         * config/rx/rx.c (rx_option_override): Set align_jumps,
24175         align_loops and align_labels if not set by the user.
24176         (rx_align_for_label): New function.
24177         (rx_max_skip_for_label): New function.
24178         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
24179         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
24180         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
24181         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
24182         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
24183
24184 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
24185
24186         PR rtl-optimization/48263
24187         * optabs.c (expand_binop_directly): Reinstate convert_modes code
24188         and original commutative_p handling.  Use maybe_gen_insn.
24189
24190 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
24191
24192         * reload.c (find_reloads_subreg_address): Add address_reloaded
24193         parameter and return true there if the full address has been
24194         reloaded.
24195         (find_reloads_toplev): Pass address_reloaded flag.
24196         (find_reloads_address_1): Don't use address_reloaded parameter.
24197
24198 2011-03-24  Jeff Law  <law@redhat.com>
24199
24200         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
24201         unused variable "ann".
24202         (remove_unused_locals): Likewise.
24203
24204         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
24205         statement.
24206
24207         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
24208         after it is freed.
24209
24210 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
24211
24212         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
24213         for invalid symbolic addresses.
24214         (s390_secondary_reload): Don't use s390_check_symref_alignment for
24215         larl operands.
24216
24217 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
24218
24219         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
24220         the argument in calls to fold_truth_not_expr.
24221
24222 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
24223
24224         * tree.c (record_node_allocation_statistics): New function.
24225         (make_node_stat, copy_node_stat, build_string): Call it.
24226         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
24227         (build1_stat, build_omp_clause): Likewise.
24228
24229 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
24230
24231         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
24232         last commit.
24233
24234 2011-03-24  Richard Guenther  <rguenther@suse.de>
24235
24236         PR tree-optimization/48271
24237         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
24238         blocks that still exist.
24239
24240 2011-03-24  Richard Guenther  <rguenther@suse.de>
24241
24242         PR tree-optimization/48270
24243         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
24244         not free datarefs before ddrs.
24245
24246 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
24247
24248         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
24249         from the address built for a reference with variable offset.
24250
24251 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
24252
24253         PR target/48237
24254         * config/i386/i386.md (*movdf_internal_rex64): Do not split
24255         alternatives that can be handled with movq or movabsq insn.
24256         (*movdf_internal): Disable for !TARGET_64BIT.
24257         (*movdf_internal_nointeger): Ditto.
24258         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
24259
24260 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
24261
24262         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
24263         (FUNCTION_ARG_ADVANCE): Likewise.
24264         * tm.texi.in: Change references to them to hook references.
24265         * tm.texi: Regenerate.
24266         * targhooks.c (default_function_arg): Eliminate check for target macro.
24267         (default_function_incoming_arg): Likewise.
24268         (default_function_arg_advance): Likewise.
24269         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
24270         (function_arg_advance): Likewise.
24271         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
24272
24273 2011-03-24  Richard Guenther  <rguenther@suse.de>
24274
24275         PR middle-end/48269
24276         * tree-object-size.c (addr_object_size): Do not double-account
24277         for MEM_REF offsets.
24278
24279 2011-03-24  Diego Novillo  <dnovillo@google.com>
24280
24281         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
24282         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
24283         (lto_input_data_block): Move from lto-opts.c.  Make extern.
24284         Update all users.
24285         (lto_input_string): Rename from input_string.  Make extern.
24286         Update all users.
24287         * lto-streamer-out.c (lto_output_string_with_length): Rename from
24288         output_string_with_length.
24289         Output 0 to indicate a non-NULL string.  Update all callers to
24290         not emit 0.
24291         (lto_output_string): Rename from output_string.  Make extern.
24292         Update all users.
24293         (lto_output_decl_state_streams): Make extern.
24294         (lto_output_decl_state_refs): Make extern.
24295         * lto-streamer.h (lto_input_string): Declare.
24296         (lto_input_data_block): Declare.
24297         (lto_output_string): Declare.
24298         (lto_output_string_with_length): Declare.
24299         (lto_output_decl_state_streams): Declare.
24300         (lto_output_decl_state_refs): Declare.
24301
24302 2011-03-24  Richard Guenther  <rguenther@suse.de>
24303
24304         PR tree-optimization/46562
24305         * tree.c (build_invariant_address): New function.
24306         * tree.h (build_invariant_address): Declare.
24307         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
24308         a renamed function moved ...
24309         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
24310         Take valueization callback parameter.
24311         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
24312         * gimple-fold.h: New file.
24313         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
24314         (ccp_fold, fold_const_aggregate_ref,
24315         fold_ctor_reference, fold_nonarray_ctor_reference,
24316         fold_array_ctor_reference, fold_string_cst_ctor_reference,
24317         get_base_constructor): Move ...
24318         * gimple-fold.c: ... here.
24319         (gimple_fold_stmt_to_constant_1): New function
24320         split out from ccp_fold.  Take a valueization callback parameter.
24321         Valueize all operands.
24322         (gimple_fold_stmt_to_constant): New wrapper function.
24323         (fold_const_aggregate_ref_1): New function split out from
24324         fold_const_aggregate_ref.  Take a valueization callback parameter.
24325         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
24326         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
24327         invariant POINTER_PLUS_EXPRs to invariant form.
24328         (vn_valueize): New function.
24329         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
24330         * tree-vrp.c (vrp_valueize): New function.
24331         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
24332         to fold statements to constants.
24333         * tree-ssa-pre.c (eliminate): Properly guard propagation of
24334         function declarations.
24335         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
24336         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
24337
24338 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
24339
24340         * config/h8300/predicates.md (jump_address_operand): Fix register
24341         mode check.
24342
24343 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
24344
24345         * doc/invoke.texi (max-stores-to-sink): Document.
24346         * params.h (MAX_STORES_TO_SINK): Define.
24347         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
24348         if either vectorization or if-conversion is disabled.
24349         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
24350         tree-vect-data-refs.c vect_equal_offsets.
24351         (dr_equal_offsets_p): New function.
24352         (find_data_references_in_bb): Remove static.
24353         * tree-data-ref.h (find_data_references_in_bb): Declare.
24354         (dr_equal_offsets_p): Likewise.
24355         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
24356         (vect_drs_dependent_in_basic_block): Update calls to
24357         vect_equal_offsets.
24358         (vect_check_interleaving): Likewise.
24359         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
24360         (cond_if_else_store_replacement): Rename to...
24361         (cond_if_else_store_replacement_1): ... this.  Change arguments and
24362         documentation.
24363         (cond_if_else_store_replacement): New function.
24364         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
24365         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
24366
24367 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
24368
24369         PR target/46934
24370         * config/arm/arm.md (casesi): Use the gen_int_mode() function
24371         to subtract lower bound instead of GEN_INT().
24372
24373 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
24374
24375         PR other/48179
24376         PR other/48221
24377         PR other/48234
24378         * doc/extend.texi (Alignment): Move section to match order in TOC.
24379         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
24380         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
24381
24382 2011-03-23  Jeff Law  <law@redhat.com>
24383
24384         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
24385         before removing the edge.
24386
24387         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
24388         it may have been freed by redirect_branch_edge or
24389         redirect_edge_succ_nodup.
24390
24391 2011-03-23  Richard Guenther  <rguenther@suse.de>
24392
24393         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
24394         (check_va_list_escapes): Likewise.
24395         (check_all_va_list_escapes): Likewise.
24396
24397 2011-03-23  Richard Guenther  <rguenther@suse.de>
24398
24399         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
24400         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
24401         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
24402         (alias.o): Likewise.
24403         (ipa-type-escape.o): Remove.
24404         (ipa-struct-reorg.o): Likewise.
24405         (GTFILES): Remove ipa-struct-reorg.c.
24406         * alias.c: Do not include ipa-type-escape.h.
24407         * tree-ssa-alias.c: Likewise.
24408         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
24409         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
24410         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
24411         and ipa-type-escape passes.
24412         * tree-pass.h (pass_ipa_type_escape): Remove.
24413         (pass_ipa_struct_reorg): Likewise.
24414         * ipa-struct-reorg.h: Remove.
24415         * ipa-struct-reorg.c: Likewise.
24416         * ipa-type-escape.h: Likewise.
24417         * ipa-type-escape.c: Likewise.
24418         * doc/invoke.texi (-fipa-struct-reorg): Remove.
24419         (--param struct-reorg-cold-struct-ratio): Likewise.
24420         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
24421         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
24422         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
24423
24424 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
24425
24426         * config/s390/2084.md: Enable all insn reservations also for z9_ec
24427         cpu attribute value.
24428         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
24429         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
24430         * config/s390/s390.c (processor_flags_table): New constant array.
24431         (s390_handle_arch_option): Remove.
24432         (s390_handle_option): Remove s390_handle_arch_option invocations
24433         and OPT_mwarn_framesize_ handling.
24434         (s390_option_override): Remove s390_handle_arch_option invocation.
24435         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
24436         warnings.
24437         * config/s390/s390.md (cpu attribute): Add z9_ec value.
24438         * config/s390/s390.opt (s390_tune, s390_arch)
24439         (march=): Replace s390_arch_option enum and values with
24440         processor_type.  Set variable name to s390_arch.  Set
24441         initialization value.
24442         (mtune=): Replace s390_arch_option with processor_type.  Set
24443         variable name to s390_tune.  Set initialization value.
24444
24445 2011-03-23  Julian Brown  <julian@codesourcery.com>
24446
24447         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
24448         accesses which are not naturally aligned.
24449
24450 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
24451
24452         PR target/47553
24453         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
24454
24455 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
24456
24457         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
24458         parameter from "int" to "enum insn_code".
24459         (expand_operand_type): New enum.
24460         (expand_operand): New structure.
24461         (create_expand_operand): New function.
24462         (create_fixed_operand, create_output_operand): Likewise
24463         (create_input_operand, create_convert_operand_to): Likewise.
24464         (create_convert_operand_from, create_address_operand): Likewise.
24465         (create_integer_operand): Likewise.
24466         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
24467         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
24468         (expand_insn, expand_jump_insn): Likewise.
24469         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
24470         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
24471         (expand_movstr, expand_builtin___clear_cache): Likewise.
24472         (expand_builtin_lock_release): Likewise.
24473         * explow.c (allocate_dynamic_stack_space): Likewise.
24474         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
24475         and use the default handling in that case.
24476         * expmed.c (check_predicate_volatile_ok): Delete.
24477         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
24478         (emit_cstore): Likewise.
24479         * expr.c (emit_block_move_via_movmem): Likewise.
24480         (set_storage_via_setmem, expand_assignment): Likewise.
24481         (emit_storent_insn, try_casesi): Likewise.
24482         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
24483         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
24484         (expand_vec_shift_expr, expand_binop_directly): Likewise.
24485         (expand_twoval_unop, expand_twoval_binop): Likewise.
24486         (expand_unop_direct, emit_indirect_jump): Likewise.
24487         (emit_conditional_move, vector_compare_rtx): Likewise.
24488         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
24489         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
24490         (expand_sync_lock_test_and_set): Likewise.
24491         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
24492         (emit_unop_insn): Likewise.
24493         (expand_copysign_absneg): Change icode to an insn_code.
24494         (create_convert_operand_from_type): New function.
24495         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
24496         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
24497         (expand_insn, expand_jump_insn): Likewise.
24498         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
24499         than const_int_operand for operand 2.
24500
24501 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
24502
24503         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
24504         if possible.
24505
24506 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
24507
24508         * emit-rtl.c (emit_pattern_before_noloc): New function.
24509         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
24510         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
24511         (emit_pattern_after_noloc): New function.
24512         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
24513         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
24514
24515 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
24516
24517         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
24518         (__ffsDI2): Likewise.
24519
24520 2011-03-22  Richard Henderson  <rth@redhat.com>
24521
24522         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
24523         of !TARGET_ABI_OPEN_VMS.
24524         (alpha_trampoline_init, alpha_start_function): Likewise.
24525         (alpha_expand_epilogue, alpha_file_start): Likewise.
24526         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
24527         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
24528         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
24529         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
24530         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
24531
24532 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
24533
24534         * config/s390/s390-opts.h: New.
24535         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
24536         s390_arch_flags, s390_warn_framesize, s390_stack_size,
24537         s390_stack_guard): Remove.
24538         (s390_handle_arch_option): Return void.  Take enum
24539         s390_arch_option value instead of string and searching array.
24540         (s390_handle_option): Don't assert that global structures are in
24541         use.  Access variables via opts pointer.  Use error_at.  Don't use
24542         sscanf for -mstack-guard= or -mstack-size=.  Update call to
24543         s390_handle_arch_option.
24544         (s390_option_override): Update call to s390_handle_arch_option.
24545         (s390_emit_prologue): Use %d format for s390_stack_size in
24546         diagnostic.  Use %wd for HOST_WIDE_INT.
24547         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
24548         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
24549         * config/s390/s390.opt (config/s390/s390-opts.h): New
24550         HeaderInclude entry.
24551         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
24552         s390_arch_flags, s390_warn_framesize): New Variable entries.
24553         (s390_arch_option): New Enum and EnumValue entries.
24554         (march=): Use Enum instead of Var.
24555         (mstack-guard=, mstack-size=): Use UInteger and Var.
24556         (mtune=): Use Enum.
24557
24558 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
24559
24560         * config/score/score.c (score_handle_option): Don't assert that
24561         global structures are in use.  Access target_flags via opts
24562         pointer.  Use value of -march= option to determine target_flags
24563         settings.
24564         * config/score/score.opt (march=): Use Enum.
24565         (score_arch): New Enum and EnumValue entries.
24566
24567 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
24568
24569         * config/mep/mep.c (option_mtiny_specified): Remove.
24570         (mep_option_override): Move register handling for -mivc2 from
24571         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
24572         instead of option_mtiny_specified.
24573         (mep_handle_option): Access target_flags via opts pointer.  Don't
24574         assert that global structures are in use.  Defer part of -mivc2
24575         handling and move it to mep_option_override.
24576         * config/mep/mep.opt (IVC2): New Mask entry.
24577         (mivc2): Use Var and Defer instead of Mask.
24578
24579 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
24580
24581         * config/v850/v850-opts.h: New.
24582         * config/v850/v850.c (small_memory): Replace with
24583         small_memory_physical_max array.  Make that array static const.
24584         (v850_handle_memory_option): Take integer value of argument.  Take
24585         gcc_options pointer, option text and location.  Return void.
24586         Update for changes to small memory structures.
24587         (v850_handle_option): Access target_flags via opts pointer.  Don't
24588         assert that global structures are in use.  Update calls to
24589         v850_handle_memory_option.
24590         (v850_encode_data_area): Update references to small memory settings.
24591         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
24592         (enum small_memory_type): Move to v850-opts.h.
24593         * config/v850/v850.opt (config/v850/v850-opts.h): New
24594         HeaderInclude entry.
24595         (small_memory_max): New Variable entry.
24596         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
24597         (mtda, mzda): Likewise.
24598
24599 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
24600
24601         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
24602         pointer.  Don't assert that global structures are in use.
24603
24604 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
24605
24606         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
24607         via opts pointer.  Don't assert that global structures are in use.
24608
24609 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
24610
24611         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
24612         (munix=93): Use Var.
24613         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
24614         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
24615         * config/pa/pa-opts.h: New.
24616         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
24617         (pa_handle_option): Don't assert that global structures are in
24618         use.  Access target_flags via opts pointer.  Don't handle
24619         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
24620         OPT_munix_98 here.
24621         (pa_option_override): Handle deferred OPT_mfixed_range_.
24622
24623 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
24624
24625         * config/mn10300/mn10300-opts.h: New.
24626         * config/mn10300/mn10300.c (mn10300_processor,
24627         mn10300_tune_string): Remove.
24628         (mn10300_handle_option): Don't assert that global structures are
24629         in use.  Access mn10300_processor via opts pointer.  Don't handle
24630         OPT_mtune_ here.
24631         * config/mn10300/mn10300.h (enum processor_type): Move to
24632         mn10300-opts.h.
24633         (mn10300_processor): Remove.
24634         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
24635         HeaderInclude entry.
24636         (mn10300_processor): New Variable entry.
24637         (mtune=): Use Var.
24638
24639 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
24640
24641         * config/microblaze/microblaze.c: Don't include opts.h.
24642         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
24643         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
24644         (mno-clearbss): Use Var and Warn.
24645
24646 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
24647
24648         * config/m32r/m32r-opts.h: New.
24649         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
24650         (m32r_handle_option): Don't assert that global structures are in
24651         use.  Access target_flags and m32r_cache_flush_func via opts
24652         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
24653         OPT_mno_flush_trap here.
24654         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
24655         include of m32r-opts.h.
24656         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
24657         HeaderInclude entry.
24658         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
24659         (mmodel=): Use Enum and Var.
24660         (m32r_model): New Enum and EnumValue entries.
24661         (mno-flush-trap): Use Var.
24662         (msdata=): Use Enum and Var.
24663         (m32r_sdata): New Enum and EnumValue entries.
24664
24665 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
24666
24667         * config/m32c/m32c.c: Don't include opts.h.
24668         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
24669         m32c_handle_option): Remove.
24670         (m32c_option_override): Check global_options_set.x_target_memregs
24671         instead of target_memregs_set.
24672         * config/m32c/m32c.h (target_memregs): Remove.
24673         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
24674         variable.
24675
24676 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
24677
24678         * config/iq2000/iq2000-opts.h: New.
24679         * config/iq2000/iq2000.c: Don't include opts.h.
24680         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
24681         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
24682         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
24683         HeaderInclude entry.
24684         (iq2000_tune): New Variable entry.
24685         (march=): Add comment.  Use Enum.
24686         (iq2000_arch): New Enum and EnumValue entries.
24687         (mcpu=): Use Enum and Var.
24688         (iq2000_tune): New Enum and EnumValue entries.
24689
24690 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
24691
24692         * config/ia64/ia64-opts.h: New.
24693         * config/ia64/ia64.c (ia64_tune): Remove.
24694         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
24695         here.  Use error_at.
24696         (ia64_option_override): Handle deferred OPT_mfixed_range_.
24697         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
24698         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
24699         HeaderInclude entry.
24700         (ia64_tune): New Variable entry.
24701         (mfixed-range=): Use Defer and Var.
24702         (mtune=): Use Enum and Var.
24703         (ia64_tune): New Enum and EnumValue entries.
24704
24705 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
24706
24707         * config/frv/frv-opts.h: New.
24708         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
24709         frv-opts.h.
24710         (frv_cpu_type): Remove.
24711         * config/frv/frv.c: Don't include opts.h.
24712         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
24713         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
24714         (frv_cpu_type): New Variable entry.
24715         (frv_cpu): New Enum and EnumValue entries.
24716
24717 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
24718
24719         * config/cris/cris.c (cris_handle_option): Access target_flags via
24720         opts pointer.  Don't assert that global structures are in use.
24721         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
24722         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
24723
24724 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
24725
24726         * config/bfin/bfin-opts.h: New.
24727         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
24728         bfin_si_revision, bfin_workarounds): Remove.
24729         (bfin_cpus): Make static const.
24730         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
24731         not bfin_lib_id_given.
24732         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
24733         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
24734         pointer. Use error_at.  Don't assert that global structures are in use.
24735         * config/bfin/bfin.h: Include bfin-opts.h.
24736         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
24737         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
24738         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
24739         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
24740         entries.
24741
24742 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
24743
24744         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
24745         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
24746         or -msoft-float here.
24747         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
24748         -msoft-float and -mhard-float.
24749         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
24750         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
24751         msoft-float.
24752         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
24753         -msoft-float.
24754         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
24755         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
24756         not mhard-float.
24757         (LIBGCC_SPEC): Don't handle -msoft-float.
24758         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
24759         -mhard-float.
24760         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
24761         msoft-float.
24762         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
24763         -mfloat-abi=*, not -msoft-float and -mhard-float.
24764         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
24765         -msoft-float.
24766         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
24767         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
24768         mhard-float and msoft-float.
24769         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
24770         mfloat-abi=soft in comments, not mhard-float and msoft-float.
24771         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
24772         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
24773         mhard-float.
24774         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
24775         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
24776         msoft-float.
24777         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
24778         not mhard-float.
24779         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
24780         not msoft-float.
24781
24782 2011-03-22  Richard Henderson  <rth@redhat.com>
24783
24784         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
24785         TARGET_ABI_WINDOWS_NT.
24786         (alpha_output_function_end_prologue): Likewise.
24787         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
24788         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
24789         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
24790         (trap, *movsi_nt_vms): Likewise.
24791         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
24792         (*tablejump_osf_nt_internal): Remove.
24793         * config/alpha/predicates.md (input_operand): Only test Pmode.
24794
24795 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
24796
24797         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
24798         via opts pointer.  Use error_at.  Don't assert that global
24799         structures are in use.
24800
24801 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
24802
24803         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
24804         (ix86_handle_option): Access ix86_isa_flags and
24805         ix86_isa_flags_explicit via opts pointer.  Don't assert that
24806         global structures are in use.
24807         (ix86_function_specific_save, ix86_function_specific_restore):
24808         Update ix86_isa_flags_explicit field name.
24809         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
24810         (ix86_isa_flags_explicit): Rename TargetSave entry to
24811         x_ix86_isa_flags_explicit.
24812
24813 2011-03-22  Richard Henderson  <rth@redhat.com>
24814
24815         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
24816         (alpha_option_override, direct_return): Likewise.
24817         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
24818         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
24819         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
24820         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
24821         (alpha_expand_epilogue, alpha_end_function): Likewise.
24822         (alpha_init_libfuncs): Likewise.
24823         (struct machine_function): Remove unicosmk members.
24824         (print_operand) ['t']: Remove.
24825         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
24826         unicosmk_output_module_name, unicosmk_output_common,
24827         current_section_align, unicosmk_output_text_section_asm_op,
24828         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
24829         unicosmk_section_type_flags, unicosmk_unique_section,
24830         unicosmk_asm_named_section, unicosmk_insert_attributes,
24831         unicosmk_output_align, unicosmk_defer_case_vector,
24832         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
24833         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
24834         unicosmk_output_ssib, unicosmk_add_call_info_word,
24835         unicosmk_extern_head, unicosmk_output_default_externs,
24836         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
24837         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
24838         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
24839         * config/alpha/alpha-protos.h: Update.
24840         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
24841         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
24842         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
24843         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
24844         (*mulsi_se, mulvsi3): Likewise.
24845         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
24846         (*divmodsi_internal, call, call_value, realign): Likewise.
24847         (moddi3, umoddi3): Likewise; remove duplicate expander.
24848         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
24849         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
24850         (*movdi_nofix): Remove r/U alternative.
24851         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
24852         * config/alpha/constraints.md ("U"): Remove.
24853         * config/alpha/predicates.md (call_operand"): Don't test
24854         TARGET_ABI_UNICOSMK.
24855
24856 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
24857
24858         * target.def (handle_option): Take gcc_options and
24859         cl_decoded_option pointers and location_t.
24860         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
24861         * doc/tm.texi: Regenerate.
24862         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
24863         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
24864         * lto-opts.c (lto_reissue_options): Generate option structure for
24865         targetm.handle_option call.
24866         * opts.c (target_handle_option): Update call to
24867         targetm.handle_option.  Remove assertions about values now passed
24868         down to hook.
24869         * targhooks.c (default_target_handle_option): New.
24870         * targhooks.h (default_target_handle_option): Declare.
24871         * config/alpha/alpha.c: Include opts.h.
24872         (alpha_handle_option): Update to new hook interface.
24873         * config/arm/arm.c: Include opts.h.
24874         (arm_handle_option): Update to new hook interface.
24875         * config/arm/t-arm (arm.o): Update dependencies.
24876         * config/bfin/bfin.c: Include opts.h.
24877         (bfin_handle_option): Update to new hook interface.
24878         * config/cris/cris.c: Include opts.h.
24879         (cris_handle_option): Update to new hook interface.
24880         * config/frv/frv.c: Include opts.h.
24881         (frv_handle_option): Update to new hook interface.
24882         * config/i386/i386.c: Include opts.h.
24883         (ix86_handle_option): Update to new hook interface.
24884         (ix86_valid_target_attribute_inner_p): Generate option structure
24885         for call to ix86_handle_option.
24886         * config/i386/t-i386 (i386.o): Update dependencies.
24887         * config/ia64/ia64.c: Include opts.h.
24888         (ia64_handle_option): Update to new hook interface.
24889         * config/ia64/t-ia64 (ia64.o): Update dependencies.
24890         * config/iq2000/iq2000.c: Include opts.h.
24891         (iq2000_handle_option): Update to new hook interface.
24892         * config/m32c/m32c.c: Include opts.h.
24893         (m32c_handle_option): Update to new hook interface.
24894         * config/m32r/m32r.c: Include opts.h.
24895         (m32r_handle_option): Update to new hook interface.
24896         * config/m68k/m68k.c: Include opts.h.
24897         (m68k_handle_option): Update to new hook interface.
24898         * config/mep/mep.c: Include opts.h.
24899         (mep_handle_option): Update to new hook interface.
24900         * config/microblaze/microblaze.c: Include opts.h.
24901         (microblaze_handle_option): Update to new hook interface.
24902         * config/mips/mips.c: Include opts.h.
24903         (mips_handle_option): Update to new hook interface.
24904         * config/mn10300/mn10300.c: Include opts.h.
24905         (mn10300_handle_option): Update to new hook interface.
24906         * config/pa/pa.c: Include opts.h.
24907         (pa_handle_option): Update to new hook interface.
24908         * config/pdp11/pdp11.c: Include opts.h.
24909         (pdp11_handle_option): Update to new hook interface.
24910         * config/rs6000/rs6000.c: Include opts.h.
24911         (rs6000_handle_option): Update to new hook interface.
24912         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
24913         * config/rx/rx.c: Include opts.h.
24914         (rx_handle_option): Update to new hook interface.
24915         * config/s390/s390.c: Include opts.h.
24916         (s390_handle_option): Update to new hook interface.
24917         * config/score/score.c: Include opts.h.
24918         (score_handle_option): Update to new hook interface.
24919         * config/sh/sh.c: Include opts.h.
24920         (sh_handle_option): Update to new hook interface.
24921         * config/sparc/sparc.c: Include opts.h.
24922         (sparc_handle_option): Update to new hook interface.
24923         * config/v850/v850.c: Include opts.h.
24924         (v850_handle_option): Update to new hook interface.
24925
24926 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
24927
24928         * gcc.c (driver_unknown_option_callback): Only permit and save
24929         unknown -Wno- options.
24930         (driver_wrong_lang_callback): Save options directly instead of via
24931         driver_unknown_option_callback.
24932
24933 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
24934
24935         * combine.c (simplify_set): Try harder to find the best CC mode when
24936         simplifying a nested COMPARE on the RHS.
24937
24938 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
24939
24940         * config/alpha/gnu.h: Remove.
24941         * config/arc: Remove directory.
24942         * config/arm/netbsd.h: Remove.
24943         * config/arm/t-pe: Remove.
24944         * config/crx: Remove directory.
24945         * config/i386/netbsd.h: Remove.
24946         * config/m68hc11: Remove directory.
24947         * config/m68k/uclinux-oldabi.h: Remove.
24948         * config/mcore/mcore-pe.h: Remove.
24949         * config/mcore/t-mcore-pe: Remove.
24950         * config/netbsd-aout.h: Remove.
24951         * config/rs6000/gnu.h: Remove.
24952         * config/sh/sh-symbian.h: Remove.
24953         * config/sh/symbian-base.c: Remove.
24954         * config/sh/symbian-c.c: Remove.
24955         * config/sh/symbian-cxx.c: Remove.
24956         * config/sh/symbian-post.h: Remove.
24957         * config/sh/symbian-pre.h: Remove.
24958         * config/sh/t-symbian: Remove.
24959         * config/svr3.h: Remove.
24960         * config/vax/netbsd.h: Remove.
24961         * config.build: Don't handle i[34567]86-*-pe.
24962         * config.gcc: Remove handling of deprecations for most deprecated
24963         targets.
24964         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
24965         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
24966         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
24967         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
24968         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
24969         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
24970         Remove cases.
24971         * config.host: Don't handle i[34567]86-*-pe.
24972         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
24973         (ASM_SPEC32): Don't handle -mcall-gnu.
24974         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
24975         -mcall-gnu.
24976         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
24977         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
24978         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
24979         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
24980         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
24981         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
24982         conditional on SYMBIAN.
24983         * configure.ac: Don't handle powerpc*-*-gnu*.
24984         * configure: Regenerate.
24985         * doc/extend.texi (interrupt attribute): Don't mention CRX.
24986         * doc/install-old.texi (m6811, m6812): Don't mention.
24987         * doc/install.texi (arc-*-elf*): Don't document multilib option.
24988         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
24989         (m68k-uclinuxoldabi): Don't mention.
24990         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
24991         Remove.
24992         (-mcall-gnu): Remove.
24993         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
24994         families): Remove constraint documentation.
24995
24996 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
24997
24998         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
24999         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
25000         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
25001
25002 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
25003
25004         PR target/48226
25005         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
25006         vector when peeking at the next token for vector, don't expand the
25007         keywords.
25008
25009 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
25010
25011         * config/avr/avr-protos.h (expand_epilogue): Change prototype
25012         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
25013         * config/avr/avr.c (init_cumulative_args)
25014         (avr_function_arg_advance): Use it.
25015         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
25016         sibcall epilogues.
25017         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
25018         (avr_function_ok_for_sibcall): ...this new function.
25019         (avr_lookup_function_attribute1): New static Function.
25020         (avr_naked_function_p, interrupt_function_p)
25021         (signal_function_p, avr_OS_task_function_p)
25022         (avr_OS_main_function_p): Use it.
25023         * config/avr/avr.md ("sibcall", "sibcall_value")
25024         ("sibcall_epilogue"): New expander.
25025         ("*call_insn", "*call_value_insn"): New insn.
25026         ("call_insn", "call_value_insn"): Remove
25027         ("call", "call_value", "epilogue"): Change expander to handle
25028         sibling calls.
25029
25030 2011-03-21  Nick Clifton  <nickc@redhat.com>
25031
25032         * doc/invoke.texi (Overall Options): Move closing brace to end of
25033         options list.
25034         (Optimization Options): Add missing @gol.
25035         (Directory Options): Likewise.
25036         (i386 and x86-64 Options): Likewise.
25037         (RS6000 and PowerPC Options): Likewise.
25038         (i386 and x86-64 Windows Options): Likewise.
25039         (V850 Options): Add text missing from descriptions.
25040
25041 2011-03-22  Richard Henderson  <rth@redhat.com>
25042
25043         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
25044         (avr_incoming_return_addr_rtx): New.
25045         (emit_push_byte): New.
25046         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
25047         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
25048         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
25049         (emit_pop_byte): New.
25050         (expand_epilogue): Use it.  Pop frame pointer by bytes.
25051         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
25052         (INCOMING_RETURN_ADDR_RTX): New.
25053         (INCOMING_FRAME_SP_OFFSET): New.
25054         (ARG_POINTER_CFA_OFFSET): New.
25055         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
25056         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
25057         (pophi): Remove.
25058
25059         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
25060
25061 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
25062
25063         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
25064         (FUNCTION_ARG_ADVANCE): Likewise.
25065         * tm.texi.in: Change references to them to hook references.
25066         * tm.texi: Regenerate.
25067         * targhooks.c (default_function_arg): Eliminate check for target
25068         macro.
25069         (default_function_incoming_arg): Likewise.
25070         (default_function_arg_advance): Likewise.
25071         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
25072         (function_arg_advance): Likewise.
25073         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
25074
25075 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
25076
25077         * tree.c (build_call_1): New function.
25078         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
25079
25080 2011-03-22  Richard Guenther  <rguenther@suse.de>
25081
25082         PR tree-optimization/48228
25083         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
25084         for single-arg PHIs.
25085
25086 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
25087
25088         PR rtl-optimization/48143
25089         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
25090         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
25091         sse2_cvtps2pd): Likewise.
25092
25093 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25094
25095         * recog.c (canonicalize_change_group): Use validate_unshare_change.
25096
25097 2011-03-22  Richard Guenther  <rguenther@suse.de>
25098
25099         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
25100         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
25101         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
25102         and REALIGN_LOAD_EXPR.
25103         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
25104         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
25105         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
25106         DOT_PROD_EXPR case ...
25107         (expand_expr_real_2): ... here.
25108         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
25109         and REALIGN_LOAD_EXPR.
25110         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
25111         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
25112         (vect_create_epilog_for_reduction): Likewise.
25113         (vectorizable_reduction): Likewise.
25114         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
25115         * tree-vect-stmts.c (vectorizable_load): Likewise.
25116
25117 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
25118
25119         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
25120
25121 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25122
25123         * config/s390/s390.c (s390_delegitimize_address): Fix offset
25124         handling for PLTOFF/GOTOFF.
25125
25126 2011-03-22  Nick Clifton  <nickc@redhat.com>
25127
25128         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
25129         trailing backslash from the end of the macro definition.
25130
25131 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25132
25133         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
25134         and PLT unspecs.
25135
25136 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
25137
25138         * expr.h (prepare_operand): Move to...
25139         * optabs.h (prepare_operand): ...here and change the insn code
25140         parameter from "int" to "enum insn_code".
25141         (insn_operand_matches): Declare.
25142         * expr.c (init_expr_target): Use insn_operand_matches.
25143         (compress_float_constant): Likewise.
25144         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
25145         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
25146         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
25147         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
25148         Likewise.
25149         (gen_cond_trap): Likewise.
25150         (prepare_operand): Likewise.  Change icode to an insn_code.
25151         (insn_operand_matches): New function.
25152         * reload.c (find_reloads_address_1): Use insn_operand_matches.
25153         * reload1.c (gen_reload): Likewise.
25154         * targhooks.c (default_secondary_reload): Likewise.
25155
25156 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
25157
25158         * config/alpha/alpha.md (unspec): New define_c_enum.
25159         (unspecv): Ditto.
25160
25161 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
25162
25163         PR debug/48214
25164         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
25165         between a call and its CALL_ARG_LOCATION note.
25166
25167 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
25168
25169         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
25170
25171 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
25172
25173         PR c/42544
25174         PR c/48197
25175         * c-common.c (shorten_compare): If primopN is first sign-extended
25176         to opN and then zero-extended to result type, set primopN to opN.
25177
25178 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
25179
25180         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
25181         for barrier handlers.
25182
25183 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
25184
25185         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
25186         UNSPEC constants to be in the unspec enumeration, and redefine
25187         all UNSPECV constants to be in the unspecv enumeration, so that
25188         dumps print which unspec/unspec_volatile this is.
25189         * config/rs6000/vector.md (UNSPEC_*): Ditto.
25190         * config/rs6000/paired.md (UNSPEC_*): Ditto.
25191         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
25192         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
25193         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
25194
25195         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
25196         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
25197         UNSPECV_LWSYNC, since these are used as unspec_volatile.
25198         * config/rs6000/sync.md (isync, lwsync): Ditto.
25199
25200 2011-03-21  Richard Guenther  <rguenther@suse.de>
25201
25202         * params.def (lto-min-partition): Fix typo.
25203
25204 2011-03-21  Richard Guenther  <rguenther@suse.de>
25205
25206         PR c/47939
25207         * c-decl.c (grokdeclarator): Drop to the main variant only
25208         for array types.  Drop flag_gen_aux_info check.
25209
25210 2011-03-21  Richard Guenther  <rguenther@suse.de>
25211
25212         PR translation/47911
25213         * params.def (lto-partitions): Fix typo.
25214         (lto-min-partition): Fix wording.
25215
25216 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
25217
25218         * config/rs6000/t-freebsd: Remove duplication from file.
25219
25220 2011-03-21  Richard Guenther  <rguenther@suse.de>
25221
25222         PR middle-end/47661
25223         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
25224
25225 2011-03-21  Richard Guenther  <rguenther@suse.de>
25226
25227         PR lto/48210
25228         * params.def (lto-partitions): Require at least 1 partition.
25229
25230 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25231
25232         * gthr-solaris.h: Remove.
25233         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
25234         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
25235         (LIB_SPEC): Likewise.
25236         * config/sol2.opt (threads): Remove.
25237         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
25238         (sparc*-*-solaris2*): Likewise.
25239         * configure.ac (enable_threads): Enable solaris support.
25240         * configure: Regenerate.
25241         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
25242         * doc/install.texi (Configuration, --enable-threads=lib): Remove
25243         solaris.
25244
25245 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25246
25247         * config.gcc: Obsolete *-*-solaris2.8*.
25248         * doc/install.texi (Specific, *-*-solaris2*): Document it.
25249
25250 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25251
25252         PR bootstrap/48135
25253         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
25254         reference.  Solaris 8 perl works.
25255
25256 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25257
25258         PR bootstrap/48135
25259         * doc/install.texi (Prerequisites): Move jar etc. up.
25260         Explain support library version requirements.
25261
25262 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25263
25264         PR bootstrap/48135
25265         * doc/install.texi (Prerequisites): Move Perl to build
25266         requirements.  Always necessary on Solaris 2 with Sun ld.
25267
25268 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25269
25270         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
25271         binutils 2.21.
25272         (Specific, i?86-*-solaris2.[89]): Likewise.
25273         (Specific, i?86-*-solaris2.10): Likewise.
25274         (Specific, mips-sgi-irix6): Likewise.
25275         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
25276         Update for binutils 2.21.
25277
25278 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25279
25280         * configure.ac (gcc_cv_lto_plugin): Fix typo.
25281         Allow -fuse-linker-plugin for non-default plugin linker.
25282         * configure: Regenerate.
25283
25284 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
25285
25286         PR bootstrap/48167
25287         * gengtype.c (files_rules): Added rule for cp/parser.h.
25288
25289 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
25290
25291         PR target/48213
25292         * config/s390/s390.c (s390_delegitimize_address): Don't call
25293         lowpart_subreg if orig_x has BLKmode.
25294
25295 2011-03-21  Kai Tietz  <ktietz@redhat.com>
25296
25297         PR target/12171
25298         * doc/plugins.texi: Adjust documentation for plugin register_callback.
25299         * tree.h (attribute_spec): Add new member affects_type_identity.
25300         * attribs.c (empty_attribute_table): Adjust attribute_spec
25301         initializers.
25302         * config/alpha/alpha.c: Likewise.
25303         * config/arc/arc.c: Likewise.
25304         * config/arm/arm.c: Likewise.
25305         * config/avr/avr.c: Likewise.
25306         * config/bfin/bfin.c: Likewise.
25307         * config/crx/crx.c: Likewise.
25308         * config/darwin.h: Likewise.
25309         * config/h8300/h8300.c: Likewise.
25310         * config/i386/cygming.h: Likewise.
25311         * config/i386/i386.c: Likewise.
25312         * config/ia64/ia64.c: Likewise.
25313         * config/m32c/m32c.c: Likewise.
25314         * config/m32r/m32r.c: Likewise.
25315         * config/m68hc11/m68hc11.c: Likewise.
25316         * config/m68k/m68k.c: Likewise.
25317         * config/mcore/mcore.c: Likewise.
25318         * config/mep/mep.c: Likewise.
25319         * config/microblaze/microblaze.c: Likewise.
25320         * config/mips/mips.c: Likewise.
25321         * config/rs6000/rs6000.c: Likewise.
25322         * config/rx/rx.c: Likewise.
25323         * config/sh/sh.c: Likewise.
25324         * config/sol2.h: Likewise.
25325         * config/sparc/sparc.c: Likewise.
25326         * config/spu/spu.c: Likewise.
25327         * config/stormy16/stormy16.c: Likewise.
25328         * config/v850/v850.c: Likewise.
25329
25330 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
25331
25332         * simplify-rtx.c (simplify_binary_operation_1): Handle
25333         (xor (and A B) C) case when B and C are both constants.
25334
25335 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
25336
25337         * tree-dfa.c (add_referenced_var): Fix typo in comment.
25338
25339 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
25340
25341         PR bootstrap/48168
25342         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
25343
25344 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
25345
25346         PR rtl-optimization/48156
25347         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
25348         assume df and df_lr are not NULL.
25349
25350 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
25351
25352         PR debug/48023
25353         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
25354         between a call and its CALL_ARG_LOCATION note.
25355
25356 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
25357
25358         PR debug/48178
25359         * config/sh/sh.c (find_barrier): Don't emit a constant pool
25360         between a call and its corresponding CALL_ARG_LOCATION note.
25361
25362 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
25363
25364         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
25365         instead of loop. Use HARD_REGISTER_NUM_P predicate.
25366         * haifa-sched.c (setup_ref_regs): Ditto.
25367         * caller-save.c (add_used_regs_1): Ditto.
25368         * dse.c (look_for_hardregs): Ditto.
25369         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
25370         * sched-rgn.c (check_live_1): Ditto.
25371
25372 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
25373
25374         * c-decl.c (diagnose_mismatched_decls): Give an error for
25375         redefining a typedef with variably modified type.
25376
25377 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
25378
25379         * c-decl.c (grokfield): Don't allow typedefs for structures or
25380         unions with no tag by default.
25381         * doc/extend.texi (Unnamed Fields): Update.
25382
25383 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
25384
25385         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
25386         Rewrite using indirect functions.
25387         (lwp_slwpcb): Ditto.
25388         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
25389         (avx_vinsertf128<mode>): Ditto.
25390
25391 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25392
25393         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
25394         unspecs.
25395
25396 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25397
25398         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
25399         splitting between a call and its corresponding CALL_ARG_LOCATION note.
25400
25401 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
25402
25403         PR rtl-optimization/48170
25404         * gcse.c (hoist_code): Remove bogus asserts.
25405
25406 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
25407
25408         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
25409         computation for prologue/epilogue.
25410
25411 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25412
25413         * Makefile.in (check-consistency): Remove.
25414
25415 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
25416
25417         PR debug/48176
25418         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
25419         arange_table_in_use is 0, but either text_section_used or
25420         cold_text_section_used is true.  Don't call it if
25421         !info_section_emitted.
25422
25423 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
25424
25425         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
25426         FUNCTION_VALUE_REGNO_P): Remove.
25427         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
25428         Remove.
25429         * config/avr/avr.c (avr_ret_register): Make static inline.
25430         (avr_function_value_regno_p): New function.
25431         (avr_libcall_value): Make static. Add 'func' argument.
25432         (avr_function_value): Make static. Rename 'func' argument to
25433         'fn_decl_or_type', forward it to avr_libcall_value. Call
25434         avr_ret_register function instead of RET_REGISTER macro.
25435         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
25436
25437 2011-03-18  Jason Merrill  <jason@redhat.com>
25438
25439         PR c++/23372
25440         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
25441
25442 2011-03-18  Richard Guenther  <rguenther@suse.de>
25443
25444         * doc/install.texi (--enable-gold): Remove.
25445         (--with-plugin-ld): Document.
25446         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
25447
25448 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
25449
25450         PR middle-end/47790
25451         * expr.c (optimize_bitfield_assignment_op): Revamp to work
25452         again after expansion changes.
25453
25454 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
25455
25456         * combine.c (try_combine): Do simplification only call of
25457         subst() on i2 even when i1 is present. Update comments.
25458
25459 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
25460
25461         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
25462         and UNSPEC_PCREL_SYMOFF.
25463
25464 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25465
25466         * config/s390/s390.md: Use define_c_enum for the unspec constant
25467         definitions.
25468
25469 2011-03-18  Richard Henderson  <rth@redhat.com>
25470             Jakub Jelinek  <jakub@redhat.com>
25471
25472         PR bootstrap/48161
25473         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
25474         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
25475
25476 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
25477
25478         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
25479         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
25480         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
25481         Change return type to bool.
25482         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
25483
25484 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
25485
25486         PR debug/48163
25487         * var-tracking.c (prepare_call_arguments): If CALL target
25488         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
25489         pc instead of looking it up using cselib_lookup and use
25490         Pmode for it if x has VOIDmode.
25491         * dwarf2out.c (gen_subprogram_die): If also both first and
25492         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
25493
25494         PR debug/48163
25495         * function.c (assign_parms): For data.passed_pointer parms
25496         use MEM of data.entry_parm instead of data.entry_parm itself
25497         as DECL_INCOMING_RTL.
25498         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
25499         also when passed and declared mode is the same, DECL_RTL
25500         is a MEM with pseudo as address and DECL_INCOMING_RTL is
25501         a MEM too.
25502
25503 2011-03-16  Jeff Law  <law@redhat.com>
25504
25505         PR rtl-optimization/37273
25506         * ira-costs.c (scan_one_insn): Detect constants living in memory and
25507         handle them like argument loads from stack slots.  Do not double
25508         count memory for memory constants and argument loads from stack slots.
25509
25510 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
25511
25512         PR debug/48160
25513         * var-tracking.c (prepare_call_arguments): Check SUBREG.
25514
25515 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
25516
25517         PR target/48171
25518         * config/i386/i386.opt: Add Save to -mavx and -mfma.
25519
25520 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
25521
25522         PR bootstrap/48153
25523         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
25524         if dwarf_strict.
25525         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
25526         Clear call_arg_locations and call_arg_loc_last always.
25527
25528         PR middle-end/48152
25529         * var-tracking.c (prepare_call_arguments): If argument needs to be
25530         passed by reference, adjust argtype and mode.
25531
25532 2011-03-17  Richard Guenther  <rguenther@suse.de>
25533
25534         PR middle-end/48134
25535         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
25536         a value make sure to fold the statement.
25537
25538 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
25539
25540         PR target/43872
25541         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
25542         return condition with !cfun->calls_alloca.
25543
25544 2011-03-17  Richard Guenther  <rguenther@suse.de>
25545
25546         PR bootstrap/48148
25547         * lto-cgraph.c (input_overwrite_node): Clear the abstract
25548         origin for decls in other ltrans units.
25549         (input_varpool_node): Likewise.
25550
25551 2011-03-17  Richard Guenther  <rguenther@suse.de>
25552
25553         PR middle-end/48165
25554         * tree-object-size.c (compute_object_offset): Properly return
25555         the offset operand of MEM_REFs as sizetype.
25556
25557 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
25558
25559         PR rtl-optimization/48141
25560         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
25561         * dse.c: Include params.h.
25562         (active_local_stores_len): New variable.
25563         (add_wild_read, dse_step1): Clear it when setting active_local_stores
25564         to NULL.
25565         (record_store, check_mem_read_rtx): Decrease it when removing
25566         from the chain.
25567         (scan_insn): Likewise.  Increase it when adding to chain, if it
25568         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
25569         set active_local_stores to NULL before the addition.
25570         * Makefile.in (dse.o): Depend on $(PARAMS_H).
25571
25572         PR rtl-optimization/48141
25573         * dse.c (record_store): If no positions are needed in an insn
25574         that cannot be deleted, at least unchain it from active_local_stores.
25575
25576 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
25577
25578         PR debug/47510
25579         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
25580         (lookup_type_die_strip_naming_typedef): ... here.
25581         (get_context_die): Use it.
25582         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
25583         the anonymous struct named by the naming typedef.
25584
25585 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
25586
25587         PR target/48154
25588         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
25589         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
25590
25591 2011-03-16  Jeff Law  <law@redhat.com>
25592
25593         * tree-vrp.c (identify_jump_threads): Slightly simplify type
25594         check for operands of conditional.  Allow type to be a pointer.
25595
25596 2011-03-16  Richard Guenther  <rguenther@suse.de>
25597
25598         PR tree-optimization/48149
25599         * fold-const.c (fold_binary_loc): Fold
25600         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
25601
25602 2011-03-16  Richard Guenther  <rguenther@suse.de>
25603
25604         PR tree-optimization/26134
25605         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
25606         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
25607         (non_rewritable_mem_ref_base): Handle complex type component
25608         accesses, constrain offsets for vector and complex extracts
25609         more properly.
25610
25611 2011-03-16  Richard Guenther  <rguenther@suse.de>
25612
25613         PR tree-optimization/48146
25614         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
25615         operands avoiding the need for renaming.
25616
25617 2011-03-16  Richard Guenther  <rguenther@suse.de>
25618
25619         * gimple-fold.c (maybe_fold_reference): Open-code relevant
25620         constant folding.  Move MEM_REF canonicalization first.
25621         Rely on fold_const_aggregate_ref for initializer folding.
25622         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
25623
25624 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
25625
25626         PR middle-end/48136
25627         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
25628         arg0/arg1 or their arguments are always fold converted to matching
25629         types.
25630
25631         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
25632         to nargs.
25633
25634 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25635
25636         PR lto/46944
25637         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
25638         Handle in-tree gold.
25639         (ld_vers): Extract binutils version for gold.
25640         (gcc_cv_ld_hidden): Handle gold here.
25641         (gcc_cv_lto_plugin): Determine level of linker plugin support.
25642         * configure: Regenerate.
25643         * config.in: Regenerate.
25644         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
25645         -fuse-linker-plugin otherwise.
25646         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
25647         (LINK_COMMAND_SPEC): Use it.
25648         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
25649
25650 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
25651
25652         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
25653         * calls.c: Remove debug.h include.
25654         (emit_call_1): Don't call virtual_call_token debug hook.
25655         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
25656         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
25657         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
25658         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
25659         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
25660         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
25661         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
25662         dwarf2out_virtual_call): Remove.
25663         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
25664         copy_call_info and virtual_call hooks.
25665         (dwarf2out_init): Don't initialize vcall_insn_table,
25666         debug_dcall_section and debug_vcall_section.
25667         (prune_unused_types): Don't mark nodes from dcall_table.
25668         (dwarf2out_finish): Don't output dcall or vcall tables.
25669         * final.c (final_scan_insn): Don't call direct_call or
25670         virtual_call debug hooks.
25671         * debug.h (struct gcc_debug_hooks): Remove direct_call,
25672         virtual_call_token, copy_call_info and virtual_call hooks.
25673         (debug_nothing_uid): Remove prototype.
25674         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
25675         copy_call_info and virtual_call hooks.
25676         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
25677         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
25678         * debug.c (do_nothing_debug_hooks): Likewise.
25679         (debug_nothing_uid): Remove.
25680         * doc/invoke.texi (-fenable-icf-debug): Remove.
25681         * common.opt (-fenable-icf-debug): Likewise.
25682
25683         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
25684         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
25685         call's MEM.  Handle functions returning aggregate through a hidden
25686         first pointer.  For virtual calls add clobbered pc to call arguments
25687         chain.
25688         * dwarf2out.c (gen_subprogram_die): Emit
25689         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
25690         can't be emitted.
25691
25692         PR debug/45882
25693         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
25694         * rtl.h (ENTRY_VALUE_EXP): Define.
25695         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
25696         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
25697         * print-rtl.c (print_rtx): Likewise.
25698         * gengtype.c (adjust_field_rtx_def): Likewise.
25699         * var-tracking.c (vt_add_function_parameter): Adjust
25700         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
25701         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
25702         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
25703         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
25704         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
25705
25706         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
25707         Call var_location debug hook even on CALL_INSNs.
25708         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
25709         * rtl.def (ENTRY_VALUE): New.
25710         * dwarf2out.c: Include cfglayout.h.
25711         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
25712         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
25713         (struct call_arg_loc_node): New type.
25714         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
25715         tail_call_site_count): New variables.
25716         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
25717         DW_TAG_GNU_call_site_parameter.
25718         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
25719         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
25720         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
25721         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
25722         and DW_AT_GNU_all_source_call_sites.
25723         (mem_loc_descriptor): Handle ENTRY_VALUE.
25724         (add_src_coords_attributes): Don't add enything if
25725         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
25726         (dwarf2out_abstract_function): Save and clear call_arg_location,
25727         call_site_count and tail_call_site_count around dwarf2out_decl call.
25728         (gen_call_site_die): New function.
25729         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
25730         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
25731         (dwarf2out_function_decl): Clear call_arg_locations,
25732         call_arg_loc_last, set call_site_count and tail_call_site_count
25733         to -1 and free block_map.
25734         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
25735         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
25736         followed by any real instructions.
25737         (dwarf2out_begin_function): Set call_site_count and
25738         tail_call_site_count to 0.
25739         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
25740         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
25741         attempt to force a DIE for it and worst case remove the attribute.
25742         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
25743         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
25744         the decl itself.
25745         * var-tracking.c: Include tm_p.h.
25746         (vt_stack_adjustments): For calls call note_register_arguments.
25747         (argument_reg_set): New variable.
25748         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
25749         ensure the VALUE is resolved.
25750         (call_arguments): New variable.
25751         (prepare_call_arguments): New function.
25752         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
25753         (struct expand_loc_callback_data): Add ignore_cur_loc field.
25754         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
25755         always use the best expression.
25756         (vt_expand_loc): Add ignore_cur_loc argument.
25757         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
25758         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
25759         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
25760         note for all calls.
25761         (vt_add_function_parameter): Use cselib_lookup_from_insn.
25762         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
25763         argument.  Don't call cselib_preserve_only_values and
25764         cselib_reset_table.
25765         (note_register_arguments): New function.
25766         (vt_initialize): Compute argument_reg_set.  Call
25767         vt_add_function_parameters before processing basic blocks instead of
25768         afterwards.  For calls call prepare_call_arguments before calling
25769         cselib_process_insn.
25770         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
25771         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
25772         (var-tracking.o): Depend on $(TM_P_H).
25773         * cfglayout.h (insn_scope): New prototype.
25774         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
25775         * cfglayout.c (insn_scope): No longer static.
25776         * insn-notes.def (CALL_ARG_LOCATION): New.
25777         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
25778         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
25779         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
25780         nothing for DECL_EXTERNAL BLOCK_VARS.
25781
25782 2011-03-16  Alan Modra  <amodra@gmail.com>
25783
25784         PR target/45844
25785         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
25786         create invalid offset address for vsx splat insn.
25787         * config/rs6000/predicates.md (splat_input_operand): New.
25788         * config/rs6000/vsx.md (vsx_splat_*): Use it.
25789
25790 2011-03-15  Xinliang David Li  <davidxl@google.com>
25791
25792         PR c/47837
25793         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
25794         (normalize_preds): New function.
25795         (is_use_properly_guarded): Normalize def predicates.
25796
25797 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
25798
25799         PR target/46788
25800         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
25801         in the output template.
25802
25803 2011-03-15  Richard Guenther  <rguenther@suse.de>
25804
25805         PR middle-end/47650
25806         * tree-pretty-print.c (dump_function_declaration): Properly
25807         dump unprototyped and varargs function types.
25808
25809 2011-03-15  Richard Guenther  <rguenther@suse.de>
25810
25811         PR tree-optimization/13954
25812         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
25813         and friends.
25814
25815 2011-03-15  Richard Guenther  <rguenther@suse.de>
25816
25817         PR tree-optimization/48037
25818         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
25819         selects into BIT_FIELD_REFs.
25820         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
25821         vector select.
25822
25823 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
25824
25825         PR tree-optimization/48129
25826         * builtins.c (fold_builtin_snprintf): Convert to type of
25827         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
25828         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
25829
25830 2011-03-15  Richard Guenther  <rguenther@suse.de>
25831
25832         PR tree-optimization/41490
25833         * tree-ssa-dce.c (propagate_necessity): Handle returns without
25834         value but with VUSE.
25835         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
25836         return statements.
25837         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
25838         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
25839         * tree-tailcall.c (find_tail_calls): Ignore returns.
25840
25841 2011-03-15  Richard Guenther  <rguenther@suse.de>
25842
25843         PR middle-end/48031
25844         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
25845         or variable-indexed array accesses when in gimple form.
25846
25847 2011-03-15  Richard Guenther  <rguenther@suse.de>
25848
25849         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
25850
25851 2011-03-15  Alan Modra  <amodra@gmail.com>
25852
25853         PR target/48032
25854         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
25855         presume symbol_refs without a symbol_ref_decl are suitably
25856         aligned, nor other trees we may see here.  Handle anchor symbols.
25857         (legitimate_constant_pool_address_p): Comment.  Add mode param.
25858         Check cmodel=medium addresses.  Adjust all calls.
25859         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
25860         creating cmodel=medium optimized access to locals.
25861         * config/rs6000/constraints.md (R): Pass QImode to
25862         legitimate_constant_pool_address_p.
25863         * config/rs6000/predicates.md (input_operand): Pass mode to
25864         legitimate_constant_pool_address_p.
25865         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
25866         Update prototype.
25867
25868 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
25869
25870         PR target/48053
25871         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
25872         64-bit constants being loaded into registers other than GPRs such
25873         as loading 0 into a VSX register.
25874
25875 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25876
25877         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
25878
25879 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
25880
25881         PR middle-end/47917
25882         * builtins.c (fold_builtin_snprintf): New function.
25883         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
25884         (fold_builtin_4): Likewise.
25885
25886         PR middle-end/38878
25887         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
25888         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
25889         and C - X == X also strip nops from +/-/p+ operand.
25890         When optimizing -X == C, fold C to arg0's type.
25891
25892         PR debug/47946
25893         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
25894         emit it as add_AT_int instead of add_AT_unsigned.
25895
25896 2011-03-14  Tom Tromey  <tromey@redhat.com>
25897
25898         * unwind-dw2.c: Include sys/sdt.h if it exists.
25899         (_Unwind_DebugHook): Use STAP_PROBE2.
25900         * config.in, configure: Rebuild.
25901         * configure.ac: Check for sys/sdt.h.
25902
25903 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
25904
25905         * config/i386/i386.md (ROUND_FLOOR): New constant.
25906         (ROUND_CEIL): Ditto.
25907         (ROUND_TRUNC): Ditto.
25908         (ROUND_MXCSR): Ditto.
25909         (ROUND_NO_EXC): Ditto.
25910         (rint<mode>2): Use new defines instead of numerical constants.
25911         (floor<mode>2): Ditto.
25912         (ceil<mode>2): Ditto.
25913         (btrunc<mode>2): Ditto.
25914         * config/i386/i386-builtin-types.def: Define ROUND function type
25915         aliases.
25916         * config/i386/i386.c (enum ix86_builtins): Add
25917         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
25918         (struct builtin_description): Add
25919         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
25920         (ix86_expand_sse_round): New static function.
25921         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
25922         function types.
25923         (ix86_builtin_vectorized_function): Handle
25924         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
25925
25926 2011-03-14  Tom Tromey  <tromey@redhat.com>
25927
25928         * c-parser.c (c_parser_asm_string_literal): Clear
25929         warn_overlength_strings.
25930
25931 2011-03-14  Tom Tromey  <tromey@redhat.com>
25932
25933         * c-parser.c (disable_extension_diagnostics): Save
25934         warn_overlength_strings.
25935         (restore_extension_diagnostics): Restore warn_overlength_strings.
25936
25937 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
25938
25939         * BASE-VER: Change to 4.7.0.
25940
25941 2011-03-14  Richard Guenther  <rguenther@suse.de>
25942
25943         PR middle-end/48098
25944         * tree.c (build_vector_from_val): Adjust assert to requirements
25945         and reality.
25946
25947 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
25948
25949         PR bootstrap/48102
25950         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
25951
25952 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
25953
25954         * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
25955         terms of target_flags_explicit. Adjust copyright year.
25956
25957         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
25958         * config/rs6000/t-freebsd: New file. Add override for
25959         LIB2FUNCS_EXTRA.
25960
25961 2011-03-13  Chris Demetriou  <cgd@google.com>
25962
25963         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
25964         (-fno-diagnostics-show-option): this, to reflect current default.
25965         (-Werror=): Update text about -fno-diagnostics-show-option.
25966
25967 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
25968
25969         PR target/48053
25970         * config/rs6000/predicates.md (easy_vector_constant_add_self,
25971         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
25972         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
25973         mode is not V2DImode or V2DFmode.
25974         (vspltis_constant): Do not handle V2DImode and V2DFmode.
25975         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
25976         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
25977         registers to 0.
25978         (movdi_internal64): Likewise.
25979
25980 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
25981
25982         PR tree-optimization/47127
25983         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
25984         parameter.
25985         (set_cloog_options): Same.
25986         (scop_to_clast): Same.
25987         (print_clast_stmt): Do not call cloog_state_malloc and
25988         cloog_state_free.
25989         (print_generated_program): Same.
25990         (gloog): Same.
25991         * graphite-clast-to-gimple.h (cloog_state): Declared.
25992         (scop_to_clast): Adjust declaration.
25993         * graphite.c (cloog_state): Defined here.
25994         (graphite_initialize): Call cloog_state_malloc.
25995         (graphite_finalize): Call cloog_state_free.
25996
25997 2011-03-11  Jason Merrill  <jason@redhat.com>
25998
25999         * attribs.c (lookup_attribute_spec): Take const_tree.
26000         * tree.h: Adjust.
26001
26002 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
26003
26004         * config/sparc/sparc.c (sparc_option_override): Use
26005         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
26006
26007 2011-03-11  Richard Guenther  <rguenther@suse.de>
26008
26009         PR tree-optimization/48067
26010         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
26011         multiplication result will be only used once on the target
26012         stmt.
26013
26014 2011-03-11  Richard Guenther  <rguenther@suse.de>
26015
26016         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
26017
26018 2011-03-11  Richard Guenther  <rguenther@suse.de>
26019
26020         PR lto/48073
26021         * tree.c (find_decls_types_r): Do not walk types only reachable
26022         from IDENTIFIER_NODEs.
26023
26024 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
26025
26026         PR middle-end/48044
26027         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
26028         all vnode->force_output nodes as needed.
26029
26030 2011-03-11  Jason Merrill  <jason@redhat.com>
26031
26032         PR c++/48069
26033         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
26034         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
26035
26036 2011-03-11  Martin Jambor  <mjambor@suse.cz>
26037
26038         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
26039         cgraph_node.
26040
26041 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
26042
26043         PR tree-optimization/48063
26044         * ipa-inline.c (cgraph_decide_inlining): Don't try to
26045         inline functions called once if !tree_can_inline_p (node->callers).
26046
26047 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
26048
26049         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
26050         extra_objs.
26051         * config/score/score3.c: Delete.
26052         * config/score/score3.h: Delete.
26053         * config/score/mul-div.S: Delete.
26054         * config/score/sfp-machine.h: Add new file.
26055         * config/score/constraints.md: Add new file.
26056         * config/score/t-score-softfp: Add new file.
26057         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
26058         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
26059         (score7_extra_constraint): Delete.
26060         (score7_option_override): Remove unused code.
26061         * config/score/score.c: Remove score3 and score5 define and code.
26062         * config/score/score.h: Remove score3 and score5 define and code.
26063         * config/score/score.md: Remove score3 template and unusual insn.
26064         * config/score/score.opt: Remove score3 and score5 options.
26065
26066 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
26067
26068         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
26069         when _HPUX_SOURCE is defined.
26070         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
26071
26072 2011-03-10  Jason Merrill  <jason@redhat.com>
26073
26074         PR c++/48029
26075         * stor-layout.c (layout_type): Don't set structural equality
26076         on arrays of incomplete type.
26077         * tree.c (type_hash_eq): Handle comparing them properly.
26078
26079 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
26080
26081         PR debug/48043
26082         * config/s390/s390.c (s390_delegitimize_address): Make sure the
26083         result mode matches original rtl mode.
26084
26085 2011-03-10  Nick Clifton  <nickc@redhat.com>
26086
26087         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
26088         (andsi3, andsi3_flags): Fix timings for three operand alternative.
26089
26090 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
26091
26092         PR rtl-optimization/47866
26093         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
26094         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
26095         if target wasn't scalar.
26096         * function.c (assign_stack_temp_for_type): Assert that neither
26097         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
26098         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
26099         macro.
26100         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
26101
26102 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26103
26104         * config/s390/s390-protos.h (s390_label_align): New prototype.
26105         * config/s390/s390.c (s390_label_align): New function.
26106         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
26107
26108 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
26109
26110         PR target/47755
26111         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
26112         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
26113         (output_vec_const_move): Ditto.
26114
26115 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
26116
26117         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
26118         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
26119         * config/mips/mips.c (mips_preferred_reload_class): Make static.
26120         Change 'rclass' argument and result type to reg_class_t.
26121         (TARGET_PREFERRED_RELOAD_CLASS): Define.
26122
26123 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
26124
26125         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
26126         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
26127         (TARGET_MEMORY_MOVE_COST): Define.
26128         (avr_register_move_cost, avr_memory_move_cost): New Functions.
26129
26130 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
26131
26132         PR debug/47881
26133         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
26134         removed anything.
26135
26136         PR tree-optimization/48022
26137         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
26138         for EQ/NE_EXPR.
26139
26140 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
26141
26142         PR debug/47991
26143         * var-tracking.c (find_use_val): Return NULL for
26144         cui->sets && cui->store_p BLKmode MEMs.
26145
26146 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
26147
26148         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
26149         Remove.
26150         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
26151         xstormy16_print_operand_address): Remove.
26152         * config/stormy16/stormy16.c (xstormy16_print_operand,
26153         xstormy16_print_operand_address): Make static.
26154         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
26155
26156 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
26157
26158         PR target/47862
26159         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
26160         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
26161         before definition.
26162
26163 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
26164
26165         PR bootstrap/48000
26166         * cfgloopmanip.c (fix_bb_placements): Return immediately
26167         if FROM is BASE_LOOP's header.
26168
26169 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
26170
26171         * gimplify.c (gimplify_function_tree): Fix building calls
26172         to __builtin_return_address.
26173
26174 2011-03-07  Alan Modra  <amodra@gmail.com>
26175
26176         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
26177         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
26178         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
26179         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
26180         return_mode args.
26181         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
26182         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
26183         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
26184         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
26185         * config/rs6000/rs6000.c
26186         (rs6000_elf_end_indicate_exec_stack): Rename to..
26187         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
26188         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
26189         (rs6000_file_start): ..here.
26190         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
26191         file scope variables.
26192         (call_ABI_of_interest): New function.
26193         (init_cumulative_args): Set above vars when function return value
26194         is a float, vector, or small struct.
26195         (rs6000_function_arg_advance_1): Likewise for function args.
26196         (rs6000_va_start): Set rs6000_passes_float if variable arg function
26197         references float args.
26198
26199 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
26200
26201         * doc/cfg.texi: Remove "See" before @ref.
26202         * doc/invoke.texi: Likewise.
26203
26204 2011-03-05  Jason Merrill  <jason@redhat.com>
26205
26206         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
26207
26208 2011-03-05  Anthony Green  <green@moxielogic.com>
26209
26210         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
26211
26212 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
26213
26214         PR rtl-optimization/47899
26215         * cfgloopmanip.c (fix_bb_placements): Fix first argument
26216         to flow_loop_nested_p when moving the loop upward.
26217
26218 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
26219
26220         PR target/47719
26221         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
26222
26223 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
26224
26225         PR tree-optimization/47967
26226         * ipa-cp.c (build_const_val): Return NULL instead of creating
26227         VIEW_CONVERT_EXPR for mismatching sizes.
26228         (ipcp_create_replace_map): Return NULL if build_const_val failed.
26229         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
26230         give up on versioning.
26231
26232 2011-03-05  Alan Modra  <amodra@gmail.com>
26233
26234         PR target/47986
26235         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
26236         full cmodel medium/large lo_sum + high addresses.
26237
26238 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26239
26240         * config/s390/s390.c (s390_decompose_address): Reject non-literal
26241         pool references in UNSPEC_LTREL_OFFSET.
26242
26243 2011-03-04  Jan Hubicka  <jh@suse.cz>
26244
26245         PR lto/47497
26246         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
26247         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
26248         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
26249         Add node pointers.
26250         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
26251         cgraph_add_thunk): Add node pointers.
26252         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
26253         associated to right node.
26254         (input_node): Update use of cgraph_same_body_alias
26255         and cgraph_add_thunk.
26256
26257 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
26258
26259         * config/i386/i386.opt (mprefer-avx128): New flag.
26260         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
26261         modes when the flag -mprefer-avx128 is on.
26262
26263 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
26264
26265         * dwarf2out.c (compare_loc_operands): Fix address handling.
26266
26267 2011-03-04  Alan Modra  <amodra@gmail.com>
26268
26269         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
26270
26271 2011-03-04  Richard Guenther  <rguenther@suse.de>
26272
26273         PR middle-end/47968
26274         * expmed.c (extract_bit_field_1): Prefer vector modes that
26275         vec_extract patterns can handle.
26276
26277 2011-03-04  Richard Guenther  <rguenther@suse.de>
26278
26279         PR middle-end/47975
26280         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
26281
26282 2011-03-04  Richard Henderson  <rth@redhat.com>
26283
26284         * explow.c (emit_stack_save): Remove 'after' parameter.
26285         (emit_stack_restore): Likewise.
26286         * expr.h: Update to match.
26287         * builtins.c, calls.c, stmt.c: Likewise.
26288         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
26289         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
26290         * function.c (expand_function_end): Insert the emit_stack_save
26291         sequence before parm_birth_insn instead of after.
26292
26293 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
26294
26295         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
26296         (ssse3_pmaddubsw128): Ditto.
26297         (ssse3_pmaddubsw): Ditto.
26298
26299 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
26300
26301         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
26302
26303 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
26304
26305         PR c/47963
26306         * gimplify.c (omp_add_variable): Only call omp_notice_variable
26307         on TYPE_SIZE_UNIT if it is a DECL.
26308
26309         PR debug/47283
26310         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
26311         first operand is not is_gimple_mem_ref_addr, try to fold it.
26312         If the operand still isn't is_gimple_mem_ref_addr, clear
26313         MEM_EXPR on op0.
26314
26315 2011-03-03  Richard Guenther  <rguenther@suse.de>
26316
26317         PR middle-end/47283
26318         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
26319         match comment.
26320         (refs_may_alias_p_1): For release branches return true if
26321         we are confused by our input.
26322
26323 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26324
26325         * config/s390/s390.c (s390_function_value): Rename to ...
26326         (s390_function_and_libcall_value): ... this.
26327         (s390_function_value): New function.
26328         (s390_libcall_value): New function.
26329         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
26330         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
26331         target macro definitions.
26332         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
26333
26334 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
26335
26336         * config/i386/freebsd64.h (CC1_SPEC): Define.
26337         * config/i386/linux64.h (CC1_SPEC): Define.
26338         * config/i386/x86-64.h (CC1_SPEC): Don't define.
26339
26340 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
26341
26342         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
26343         Remove.
26344         * config/stormy16/stormy16.c: Include reload.h.
26345         (xstormy16_memory_move_cost): New function.
26346         (TARGET_MEMORY_MOVE_COST): Define.
26347
26348 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
26349
26350         PR rtl-optimization/47925
26351         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
26352         with side effects.  Remove the more-specific check for volatile asms.
26353
26354 2011-03-02  Alan Modra  <amodra@gmail.com>
26355
26356         PR target/47935
26357         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
26358         toc relative addresses for valid offsets.
26359
26360 2011-03-01  Richard Guenther  <rguenther@suse.de>
26361
26362         PR tree-optimization/47890
26363         * tree-vect-loop.c (get_initial_def_for_induction): Set
26364         related stmt properly.
26365
26366 2011-03-01  Richard Guenther  <rguenther@suse.de>
26367
26368         PR lto/47924
26369         * lto-streamer.c (lto_record_common_node): Also register
26370         the canonical type.
26371
26372 2011-03-01  Richard Guenther  <rguenther@suse.de>
26373
26374         PR lto/46911
26375         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
26376         Do not stream DECL_ABSTRACT_ORIGIN.
26377         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
26378         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
26379         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
26380         Do not stream DECL_ABSTRACT_ORIGIN.
26381         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
26382         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
26383
26384 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
26385
26386         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
26387         FUNCTION_VALUE_REGNO_P): Remove.
26388         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
26389         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
26390         Add 'outgoing' argument.
26391         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
26392         function.
26393         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
26394         TARGET_FUNCTION_VALUE_REGNO_P): Define.
26395
26396 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
26397
26398         PR debug/28047
26399         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
26400         (lookup_filename): Likewise.
26401         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
26402
26403 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
26404             Jakub Jelinek  <jakub@redhat.com>
26405
26406         PR middle-end/47893
26407         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
26408         (assign_stack_local_1): Change last argument type to int.
26409         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
26410         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
26411         don't record padding space into frame_space_list nor use those areas.
26412         (assign_stack_local): Adjust caller.
26413         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
26414         of assign_stack_local, pass 0 as last argument.
26415         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
26416         callers.
26417
26418 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
26419
26420         PR debug/47283
26421         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
26422         Use target address_mode and pointer_mode hooks instead of hardcoded
26423         Pmode and ptr_mode.  Handle some simple cases of extending if
26424         POINTERS_EXTEND_UNSIGNED < 0.
26425         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
26426         Call convert_debug_memory_address.
26427         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
26428         convert_debug_memory_address.
26429
26430         PR middle-end/46790
26431         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
26432         * configure: Regenerated.
26433         * config.in: Regenerated.
26434         * varasm.c (default_function_section): Return NULL
26435         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
26436
26437 2011-02-28  Martin Jambor  <mjambor@suse.cz>
26438
26439         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
26440         the description to match the printed values.
26441
26442 2011-02-28  Richard Guenther  <rguenther@suse.de>
26443
26444         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
26445         of the copied scope tree.
26446
26447 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
26448
26449         * doc/extend.texi (Function Attributes): Avoid deeply (and
26450         wrongly) nested tables.
26451
26452 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
26453
26454         PR middle-end/47903
26455         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
26456         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
26457         r isn't op0 nor op1.
26458
26459 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
26460
26461         * config/avr/avr.md: Remove magic comment for emacs.
26462
26463 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
26464
26465         PR target/45261
26466         * config/avr/avr.c (avr_option_override): Use error on bad options.
26467         (avr_help): New function.
26468         (TARGET_HELP): Define.
26469
26470 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
26471
26472         PR target/42240
26473         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
26474         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
26475
26476 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
26477
26478         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
26479         (ARM Options): Ditto.
26480         (i386 and x86-64 Options): Ditto.
26481         (RX Options): Ditto.
26482         (SPARC Options): Ditto.
26483
26484 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
26485
26486         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
26487         FreeBSD 6 and later.  Generally use cpu generic.
26488
26489 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
26490
26491         * doc/cpp.texi: Update copyright years.
26492
26493 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
26494
26495         PR target/46898
26496         * config/lm32/lm32.md (ashrsi3): Added needed variable.
26497
26498 2011-02-25  Jon Beniston  <jon@beniston.com>
26499
26500         PR target/46898
26501         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
26502         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
26503         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
26504         (lm32_block_move_inline): Add type cast to remove warning.
26505         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
26506         (gen_int_relational): Move declarations to start of function.
26507
26508 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
26509
26510         PR tree-optimization/45470
26511         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
26512         can throw internally only.
26513         * tree-vect-stmts.c (vectorizable_call): Likewise.
26514
26515 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
26516
26517         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
26518         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
26519         * config/stormy16/stormy16-protos.h
26520         (xstormy16_preferred_reload_class): Remove.
26521         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
26522         static. Change 'rclass' argument and return type to reg_class_t.
26523         (TARGET_PREFERRED_RELOAD_CLASS,
26524         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
26525
26526 2011-02-24  Richard Guenther  <rguenther@suse.de>
26527
26528         * lto-streamer-in.c (input_bb): Do not find referenced vars
26529         in debug statements.
26530
26531 2011-02-23  Jason Merrill  <jason@redhat.com>
26532
26533         * common.opt (fabi-version): Document v5 and v6.
26534
26535 2011-02-23  Richard Guenther  <rguenther@suse.de>
26536
26537         PR tree-optimization/47849
26538         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
26539
26540 2011-02-23  Jie Zhang  <jie@codesourcery.com>
26541
26542         * opts-common.c (decode_cmdline_option): Print empty string
26543         argument as "" in decoded->orig_option_with_args_text.
26544         * gcc.c (execute): Print empty string argument as ""
26545         in the verbose output.
26546         (do_spec_1): Keep empty string argument.
26547
26548 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
26549
26550         * config.gcc: Declare score-* and crx-* obsolete.
26551
26552 2011-02-23  Jie Zhang  <jie@codesourcery.com>
26553
26554         PR rtl-optimization/47763
26555         * web.c (web_main): Ignore naked clobber when replacing register.
26556
26557 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
26558
26559         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
26560         Remove.
26561
26562 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
26563
26564         PR doc/47848
26565         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
26566
26567 2011-02-22  Mike Stump  <mikestump@comcast.net>
26568
26569         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
26570         assembler.
26571         * configure: Regenerate.
26572
26573 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
26574
26575         PR rtl-optimization/46002
26576         * ira-color.c (update_copy_costs): Change class intersection
26577         test to reg_class_contents[] test of 'hard_regno'.
26578
26579 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
26580
26581         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
26582         than Driver option.
26583         * config/hpux11.opt (mt): Likewise.
26584         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
26585         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
26586         * config/vax/elf.opt (mno-asm-pic): Likewise.
26587         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
26588
26589 2011-02-21  Mike Stump  <mikestump@comcast.net>
26590
26591         PR target/47822
26592         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
26593         tree so we can get save the type.
26594         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
26595         for CFString instead of trying to use past the end of the builtins.
26596         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
26597         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
26598         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
26599         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
26600         Rename to darwin_builtin_cfstring.
26601         (darwin_init_cfstring_builtins): Return the built type.
26602
26603 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
26604
26605         PR target/47840
26606         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
26607         (_mm256_insert_epi64): Use _mm_insert_epi64.
26608
26609 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
26610
26611         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
26612         * config/stormy16/stormy16-protos.h
26613         (xstormy16_mode_dependent_address_p): Remove.
26614         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
26615         Make static. Change return type to bool. Change argument type to
26616         const_rtx. Remove dead code.
26617         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
26618
26619 2011-02-21  Richard Guenther  <rguenther@suse.de>
26620
26621         PR lto/47820
26622         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
26623         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
26624         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
26625         TUs context.
26626         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
26627         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
26628
26629 2011-02-20  Richard Guenther  <rguenther@suse.de>
26630
26631         PR lto/47822
26632         * tree.c (free_lang_data_in_decl): Clean builtins from
26633         the TU decl BLOCK_VARS.
26634
26635 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
26636
26637         PR debug/47620
26638         PR debug/47630
26639         * haifa-sched.c (fix_tick_ready): Skip tick computation
26640         for debug insns.
26641
26642 2011-02-19  Richard Guenther  <rguenther@suse.de>
26643
26644         PR lto/47647
26645         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
26646         Remove lazy BLOCK_VARS streaming.
26647         (lto_input_ts_block_tree_pointers): Likewise.
26648         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
26649
26650 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
26651
26652         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
26653
26654 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
26655
26656         * config/i386/biarch32.h, config/i386/mach.h,
26657         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
26658
26659 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
26660
26661         PR target/47800
26662         * config/i386/i386.md (peephole2 for shift and plus): Use
26663         operands[1] original mode in the first insn.
26664
26665 2011-02-18  Mike Stump  <mikestump@comcast.net>
26666
26667         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
26668
26669 2011-02-18  Jan Hubicka  <jh@suse.cz>
26670
26671         PR middle-end/47788
26672         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
26673         to zero when the function is not inlinable at all.
26674
26675 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
26676
26677         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
26678         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
26679         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
26680         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
26681         * config/pa/t-pa64: Likewise.
26682         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
26683
26684 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
26685
26686         PR driver/47787
26687         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
26688
26689 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
26690
26691         PR target/47792
26692         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
26693
26694 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
26695
26696         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
26697         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
26698         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
26699         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
26700         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
26701         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
26702         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
26703         m32r_load_postinc_p, m32r_store_preinc_predec_p,
26704         m32r_legitimate_address_p): New functions.
26705         * config/m32r/constraints.md (constraint "S"): Don't use
26706         STORE_PREINC_PREDEC_P.
26707         (constraint "U"): Don't use LOAD_POSTINC_P.
26708
26709 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
26710
26711         PR rtl-optimization/46178
26712         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
26713         compute ira_hard_regno_cover_class[].
26714
26715 2011-02-18  Richard Guenther  <rguenther@suse.de>
26716
26717         PR lto/47798
26718         * lto-streamer.h (lto_global_var_decls): Declare.
26719         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
26720         statics for global var processing.
26721
26722 2011-02-18  Richard Guenther  <rguenther@suse.de>
26723
26724         PR tree-optimization/47737
26725         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
26726         edge dominance check.
26727
26728 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
26729
26730         PR debug/47780
26731         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
26732         avoid invalid rtx sharing.
26733
26734 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
26735
26736         * doc/cpp.texi (Obsolete Features): Add background on the
26737         origin of assertions.
26738
26739 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
26740
26741         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
26742         objc_abi == 2.
26743         * config/darwin.c (output_objc_section_asm_op): Added support for
26744         ABI v1 and v2.
26745         (is_objc_metadata): New.
26746         (darwin_objc2_section): New.
26747         (darwin_objc1_section): New.
26748         (machopic_select_section): Added support for ABI v1 and v2.
26749         (darwin_emit_objc_zeroed): New.
26750         (darwin_output_aligned_bss): Detect objc metadata and treat it
26751         appropriately.
26752         (darwin_asm_output_aligned_decl_common): Same.
26753         (darwin_asm_output_aligned_decl_local): Same.
26754         * config/darwin-sections.def: Updated for ABI v1 and v2.
26755         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
26756         compiling Objective-C code for the NeXT runtime, default to using
26757         ABI version 0 for 32-bit, and version 2 for 64-bit.
26758
26759 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
26760
26761         * common.opt (optimize_fast): New Variable.
26762         * opts.c (default_options_optimization): Use opts->x_optimize_fast
26763         instead of local variable ofast.
26764
26765 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
26766
26767         * doc/invoke.texi (fobjc-abi-version): Documented.
26768         (fobjc-nilcheck): Documented.
26769         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
26770         version.
26771
26772 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
26773
26774         PR driver/47390
26775         * common.opt (export-dynamic): New Driver option.
26776         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
26777
26778 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
26779
26780         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
26781
26782 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
26783             Jan Hubicka  <jh@suse.cz>
26784
26785         PR debug/47106
26786         PR debug/47402
26787         * cfgexpand.c (account_used_vars_for_block): Remove.
26788         (estimated_stack_frame_size): Use referenced vars.
26789         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
26790         that were referenced in the original function.  Test src_fn
26791         rather than cfun.  Drop redundant get_var_ann.
26792         (setup_one_parameter): Drop redundant get_var_ann.
26793         (declare_return_variable): Likewise.
26794         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
26795         (copy_arguments_for_versioning): Drop redundant get_var_ann.
26796         * ipa-inline.c (compute_inline_parameters): Do not compute
26797         disregard_inline_limits here.
26798         (compute_inlinable_for_current, pass_inlinable): New.
26799         (pass_inline_parameters): Require PROP_referenced_vars.
26800         * cgraphunit.c (cgraph_process_new_functions): Don't run
26801         compute_inline_parameters explicitly unless function is in SSA form.
26802         (cgraph_analyze_function): Set .disregard_inline_limits.
26803         * tree-sra.c (convert_callers): Compute inliner parameters
26804         only for functions already in SSA form.
26805
26806 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
26807
26808         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
26809         -mlittle-endian-data.
26810
26811 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
26812
26813         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
26814         -mno-fpu, not -fpu and -no-fpu.
26815         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
26816         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
26817
26818 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
26819
26820         PR target/43653
26821         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
26822         input reload with PLUS RTX.
26823
26824 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
26825
26826         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
26827         of InverseVar(MDMX).
26828
26829 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
26830
26831         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
26832         --m4-340.
26833
26834 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
26835
26836         * config/mn10300/mn10300.opt (mno-crt0): New.
26837
26838 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
26839
26840         * config/m68k/uclinux.opt (static-libc): New Driver option.
26841
26842 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
26843
26844         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
26845
26846 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
26847
26848         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
26849         %{muser-extend-enabled}.
26850
26851 2011-02-16  Richard Guenther  <rguenther@suse.de>
26852
26853         PR tree-optimization/47738
26854         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
26855         the TODO from tree_predictive_commoning.
26856
26857 2011-02-15  Jeff Law  <law@redhat.com>
26858
26859         Revert
26860         2011-01-25  Jeff Law  <law@redhat.com>
26861
26862         PR rtl-optimization/37273
26863         * ira-costs.c (scan_one_insn): Detect constants living in memory and
26864         handle them like argument loads from stack slots.  Do not double
26865         count memory for memory constants and argument loads from stack slots.
26866
26867 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
26868
26869         PR target/47755
26870         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
26871         mode for vector constants.  Remove code that checks for TImode.
26872
26873 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
26874
26875         PR debug/47106
26876         PR debug/47402
26877         * cgraph.h (compute_inline_parameters): Return void.
26878         * ipa-inline.c (compute_inline_parameters): Adjust.
26879
26880 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
26881
26882         PR debug/47106
26883         PR debug/47402
26884         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
26885         rather than decl.
26886         * cfgexpand.c (estimated_stack_frame_size): Likewise.
26887         * ipa-inline.c (compute_inline_parameters): Adjust.
26888
26889 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
26890
26891         PR debug/47106
26892         PR debug/47402
26893         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
26894         Adjust all users.  Pass FN to...
26895         * tree-flow-inline.h (first_referenced_var): ... this.  Add
26896         fn argument.
26897         * ipa-struct-reorg.c: Adjust.
26898         * tree-dfa.c: Adjust.
26899         * tree-into-ssa.c: Adjust.
26900         * tree-sra.c: Adjust.
26901         * tree-ssa-alias.c: Adjust.
26902         * tree-ssa-live.c: Adjust.
26903         * tree-ssa.c: Adjust.
26904         * tree-ssanames.c: Adjust.
26905         * tree-tailcall.c: Adjust.
26906
26907 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
26908
26909         PR debug/47106
26910         PR debug/47402
26911         * tree-flow.h (referenced_var_lookup): Add fn parameter.
26912         Adjust all callers.
26913         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
26914         * tree-flow-inline.h: Adjust.
26915         * gimple-pretty-print.c: Adjust.
26916         * tree-into-ssa.c: Adjust.
26917         * tree-ssa.c: Adjust.
26918         * cfgexpand.c: Adjust.
26919
26920 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
26921
26922         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
26923         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
26924         (EXTRA_CONSTRAINT): Delete.
26925         * config/iq2000/constraints.md: New file.
26926         * config/iq2000/iq2000.md: Include it.
26927         (define_insn ""): Delete.
26928         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
26929         unsupported constraint letters from patterns.
26930         (call_value, call_value_internal1): Likewise.
26931         (call_value_multiple_internal1): Likewise.
26932
26933 2011-02-15  Nick Clifton  <nickc@redhat.com>
26934
26935         * config/mn10300/mn10300.c: Include tm-constrs.h.
26936         (struct liw_data): New data structure describing an LIW candidate
26937         instruction.
26938         (extract_bundle): Use struct liw_data.  Allow small integer
26939         operands for some instructions.
26940         (check_liw_constraints): Use struct liw_data.  Remove swapped
26941         parameter.  Add comments describing the checks.  Fix bug when
26942         assigning the source of liw1 to the source of liw2.
26943         (liw_candidate): Delete.  Code moved into extract_bundle.
26944         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
26945         before swapping.
26946         * config/mn10300/predicates.md (liw_operand): New predicate.
26947         Allows registers and small integer constants.
26948         * config/mn10300/constraints.md (O): New constraint.  Accetps
26949         integers in the range -8 to +7 inclusive.
26950         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
26951         for moving a small integer into a register.  Give this alternative
26952         LIW attributes.
26953         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
26954         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
26955         using the J,K,L and M constraints,
26956         (liw): Remove SI mode on second operands to allow for HI and QI
26957         mode values.
26958         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
26959         instruction.
26960
26961 2011-02-15  Richard Guenther  <rguenther@suse.de>
26962
26963         PR tree-optimization/47743
26964         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
26965         for a non-type-compatible VN lookup bail out.
26966
26967 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
26968
26969         * config/fr30/constraints.md: New file.
26970         * config/fr30/fr30.md: Include it.
26971         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
26972         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
26973         (EXTRA_CONSTRAINT): Delete.
26974
26975 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
26976
26977         * config/frv/constraints.md: New file.
26978         * config/frv/predicates.md: Include it.
26979         * config/frv/frv.c (reg_class_from_letter): Delete.
26980         (frv_option_override): Don't initialize it.
26981         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
26982         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
26983         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
26984         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
26985         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
26986         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
26987         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
26988         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
26989         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
26990         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
26991         (REG_CLASS_FROM_CONSTRAINT): Delete.
26992
26993 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
26994
26995         PR middle-end/47581
26996         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
26997         if frame size is 0 in a leaf function.
26998
26999 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27000
27001         PR pch/14940
27002         * config/alpha/host-osf.c: New file.
27003         * config/alpha/x-osf: New file.
27004         * config.host (alpha*-dec-osf*): Use it.
27005
27006 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
27007
27008         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
27009         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
27010         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
27011         (rx_mode_dependent_address_p): ...this. Make static. Change argument
27012         type to const_rtx.
27013         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
27014
27015 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
27016
27017         * config/stormy16/constraints.md: New file.
27018         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
27019         Use satisfies_constraint_Q and satisfies_constraint_R.
27020         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
27021         Delete.
27022         (xstormy16_legitiamte_address_p): Declare.
27023         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
27024         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
27025         (EXTRA_CONSTRAINT): Delete.
27026         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
27027         Un-staticize.
27028         (xstormy16_extra_constraint_p): Delete.
27029
27030 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
27031
27032         PR tree-optimization/46494
27033         * loop-unroll.c (split_edge_and_insert): Adjust comment.
27034         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
27035         (pass_rtl_loop_done): Add TODO_verify_flow.
27036         * fwprop.c (pass_rtl_fwprop): Likewise.
27037         * modulo-sched.c (pass_sms): Likewise.
27038         * tree-ssa-dom.c (pass_dominator): Likewise.
27039         * tree-ssa-loop-ch.c (pass_ch): Likewise.
27040         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
27041         (pass_tree_loop_done): Likewise.
27042         * tree-ssa-pre.c (execute_pre): Likewise.
27043         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
27044         * tree-ssa-sink.c (pass_sink_code): Likewise.
27045         * tree-vrp.c (pass_vrp): Likewise.
27046
27047 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
27048
27049         * config/v850/constraints.md: New file.
27050         * config/v850/v850.md: Include it.
27051         * config/v850/predicates.md (reg_or_0_operand): Use
27052         satisfies_constraint_G.
27053         (special_symbolref_operand): Use satisfies_constraint_K.
27054         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
27055         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
27056         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
27057         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
27058         (EXTRA_CONSTRAINT): Delete.
27059         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
27060         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
27061         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
27062
27063 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
27064
27065         PR target/47696
27066         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
27067         description.
27068
27069 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
27070
27071         * config/mcore/constraints.md: New file.
27072         * config/mcore/mcore.md: Include it.
27073         * config/mcore/mcore.c (reg_class_from_letter): Delete.
27074         * config/mcore/mcore.h (reg_class_from_letter): Delete.
27075         (REG_CLASS_FROM_LETTER): Delete.
27076         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
27077         insn_const_int_ok_for_constraint.
27078         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
27079         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
27080         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
27081         (EXTRA_CONSTRAINT): Delete.
27082
27083 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27084
27085         PR ada/41929
27086         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
27087         (IS_SIGHANDLER): Define.
27088         (sparc64_is_sighandler): New function, split off from
27089         sparc64_fallback_frame_state.
27090         (sparc_is_sighandler): New function, split off from
27091         sparc_fallback_frame_state.
27092         (sparc64_fallback_frame_state): Merge with ...
27093         (sparc_fallback_frame_state): ... this into ...
27094         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
27095         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
27096         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
27097         stack instead of hardcoded offsets.
27098
27099 2011-02-14  Andriy Gapon  <avg@freebsd.org>
27100
27101         PR target/45808
27102         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
27103
27104 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27105
27106         * configure: Regenerate.
27107
27108 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
27109
27110         PR driver/45731
27111         * gcc.c (asm_options): Correct spec matching --target-help.
27112
27113 2011-02-12  Martin Jambor  <mjambor@suse.cz>
27114
27115         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
27116         to gimple call error.
27117
27118 2011-02-12  Mike Stump  <mikestump@comcast.net>
27119
27120         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
27121         comments in backslash regions.
27122
27123 2011-02-12  Mike Stump  <mikestump@comcast.net>
27124             Jakub Jelinek  <jakub@redhat.com>
27125             Iain Sandoe  <iains@gcc.gnu.org>
27126
27127         PR target/47324
27128         * dwarf2out.c (output_cfa_loc): When required, apply the
27129         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
27130         (output_loc_sequence): Likewise.
27131         (output_loc_operands_raw): Likewise.
27132         (output_loc_sequence_raw): Likewise.
27133         (output_cfa_loc): Likewise.
27134         (output_loc_list): Suppress register number adjustment when
27135         calling output_loc_sequence()
27136         (output_die): Likewise.
27137
27138 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
27139
27140         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
27141         Remove macros.
27142         * config/xtensa/xtensa.c (xtensa_register_move_cost,
27143         xtensa_memory_move_cost): New functions.
27144         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
27145
27146 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
27147
27148         PR lto/47225
27149         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
27150         in the current directory.
27151         * configure: Rebuilt.
27152
27153 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
27154
27155         * config/darwin.c (darwin_override_options): Add a hunk missed
27156         from the commit of r168571.  Trim comment line lengths and
27157         correct indents of the preceding block.
27158
27159 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
27160
27161         * gcc.c (driver_handle_option): Concatenate the argument to -F with
27162         the switch.
27163
27164 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
27165
27166         * common.opt (nostartfiles): New Driver option.
27167
27168 2011-02-11  Xinliang David Li  <davidxl@google.com>
27169
27170         PR tree-optimization/47707
27171         * tree-chrec.c (convert_affine_scev): Keep type precision.
27172
27173 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
27174
27175         PR tree-optimization/47420
27176         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
27177
27178 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
27179
27180         PR rtl-optimization/47614
27181         * rtl.h (check_for_inc_dec): Declare.
27182         * dse.c (check_for_inc_dec): Externalize...
27183         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
27184         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
27185
27186 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
27187
27188         PR driver/47678
27189         * gcc.c (main): Do not compile inputs if there were errors in
27190         option handling.
27191         * opts-common.c (read_cmdline_option): Check for wrong language
27192         after other error checks.
27193
27194 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
27195
27196         * cgraph.c: Fix comment typos.
27197         * cgraph.h: Likewise.
27198         * cgraphunit.c: Likewise.
27199         * ipa-cp.c: Likewise.
27200         * ipa-inline.c: Likewise.
27201         * ipa-prop.c: Likewise.
27202         * ipa-pure-const.c: Likewise.
27203         * ipa-ref.c: Likewise.
27204         * ipa-reference.c: Likewise.
27205
27206 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
27207
27208         PR debug/47684
27209         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
27210
27211 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27212
27213         PR testsuite/47400
27214         * doc/sourcebuild.texi (Require Support): Document
27215         dg-require-ascii-locale.
27216
27217 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
27218
27219         * doc/lto.texi (Write summary): Fix missing parentheses.
27220
27221 2011-02-10  DJ Delorie  <dj@redhat.com>
27222
27223         * config/m32c/m32c.c (m32c_option_override): Disable
27224         -fcombine-stack-adjustments until flag value tracking and compare
27225         optimization can be rewritten.
27226
27227 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
27228
27229         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
27230         PROCESSOR_POWER7.
27231         (PROCESSOR_DEFAULT64): Likewise.
27232
27233 2011-02-10  Richard Henderson  <rth@redhat.com>
27234
27235         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
27236         change from 2011-02-03.
27237         * config/rx/rx.c (flags_from_code): Likewise.
27238         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
27239         is valid, n/pz otherwise.
27240         (rx_select_cc_mode): Return CCmode if Y is not zero.
27241
27242 2011-02-10  Richard Guenther  <rguenther@suse.de>
27243
27244         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
27245
27246 2011-02-10  Richard Guenther  <rguenther@suse.de>
27247
27248         PR tree-optimization/47677
27249         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
27250
27251 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
27252
27253         PR target/47665
27254         * combine.c (make_compound_operation): Only change shifts into
27255         multiplication for SCALAR_INT_MODE_P.
27256
27257 2011-02-10  Jie Zhang  <jie@codesourcery.com>
27258
27259         PR testsuite/47622
27260         Revert
27261         2011-02-05  Jie Zhang  <jie@codesourcery.com>
27262         PR debug/42631
27263         * web.c (entry_register): Don't clobber the number of the
27264         first uninitialized reference in used[].
27265
27266 2011-02-09  Richard Guenther  <rguenther@suse.de>
27267
27268         PR tree-optimization/47664
27269         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
27270         all edges again.
27271
27272 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
27273
27274         PR target/46481
27275         PR target/47032
27276         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
27277         PROCESSOR_POWER7.
27278         (PROCESSOR_DEFAULT64): Same.
27279         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
27280
27281 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27282
27283         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
27284
27285 2011-02-09  Martin Jambor  <mjambor@suse.cz>
27286
27287         PR middle-end/45505
27288         * tree-sra.c (struct access): New flags grp_scalar_read and
27289         grp_scalar_write.  Changed description of assignment read and write
27290         flags.
27291         (dump_access): Dump new flags, reorder all of them.
27292         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
27293         to detect multiple scalar reads.
27294         (analyze_access_subtree): Use the new scalar read write flags instead
27295         of the old flags.  Adjusted comments.
27296
27297 2011-02-08  DJ Delorie  <dj@redhat.com>
27298
27299         PR target/47548
27300         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
27301         patterns.
27302
27303 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
27304
27305         * config/m68k/uclinux.opt: New.
27306         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
27307
27308 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
27309
27310         * config/cris/elf.opt (sim): New Driver option.
27311
27312 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
27313
27314         * config/xtensa/elf.opt: New.
27315         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
27316
27317 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
27318
27319         * config/vax/elf.opt: New.
27320         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
27321
27322 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
27323
27324         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
27325
27326 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
27327
27328         * config/gnu-user.opt: New.
27329         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
27330         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
27331         *-*-uclinux*): Use gnu-user.opt.
27332
27333 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
27334
27335         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
27336         * config/i386/gnu.h (CPP_SPEC): Likewise.
27337
27338 2011-02-08  Ian Lance Taylor  <iant@google.com>
27339
27340         * common.opt (fcx-limited-range): Add SetByCombined flag.
27341         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
27342         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
27343         (fassociative-math, freciprocal-math): Likewise.
27344         (funsafe-math-optimizations): Likewise.
27345         * opth-gen.awk: Handle SetByCombined.
27346         * optc-gen.awk: Likewise.
27347         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
27348         (set_unsafe_math_optimizations_flags): Likewise.
27349         * doc/options.texi (Option properties): Document SetByCombined.
27350
27351 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
27352
27353         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
27354         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
27355         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
27356         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
27357         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
27358
27359 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
27360
27361         PR tree-optimization/46834
27362         PR tree-optimization/46994
27363         PR tree-optimization/46995
27364         * graphite-sese-to-poly.c (used_outside_reduction): New.
27365         (detect_commutative_reduction): Call used_outside_reduction.
27366         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
27367         translate_scalar_reduction_to_array only when at least one
27368         loop-phi/close-phi tuple has been detected.
27369
27370 2011-02-08  Richard Guenther  <rguenther@suse.de>
27371
27372         PR middle-end/47639
27373         * tree-vect-generic.c (expand_vector_operations_1): Update
27374         stmts here ...
27375         (expand_vector_operations): ... not here.  Cleanup EH info
27376         and the CFG if required.
27377
27378 2011-02-08  Richard Guenther  <rguenther@suse.de>
27379
27380         PR tree-optimization/47641
27381         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
27382         require type compatibility.
27383
27384 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27385
27386         * gimple-low.c (lower_function_body): Don't remove the location of
27387         the return statement here.
27388         (lower_gimple_return): Do it here instead but only if the return
27389         statement is actually used twice.
27390
27391 2011-02-08  Richard Guenther  <rguenther@suse.de>
27392
27393         PR tree-optimization/47632
27394         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
27395         unused up_to_stmt parameter, return whether cfg-cleanup is
27396         necessary, remove EH info properly.
27397         (forward_propagate_into_gimple_cond): Adjust caller.
27398         (forward_propagate_into_cond): Likewise.
27399         (forward_propagate_comparison): Likewise.
27400         (tree_ssa_forward_propagate_single_use_vars): Make
27401         forward_propagate_comparison case similar to the two others.
27402
27403 2011-02-08  Nick Clifton  <nickc@redhat.com>
27404
27405         * config/mn10300/mn10300.opt (mliw): New command line option.
27406         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
27407         (liw_bundling): New automaton.
27408         (liw): New attribute.
27409         (liw_op): New attribute.
27410         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
27411         (movsi_internal): Add LIW attributes.
27412         (andsi3): Likewise.
27413         (iorsi3): Likewise.
27414         (xorsi3): Likewise.
27415         (addsi3): Separate register and immediate alternatives.
27416         Add LIW attributes.
27417         (subsi3): Likewise.
27418         (cmpsi): Likewise.
27419         (aslsi3): Likewise.
27420         (lshrsi3): Likewise.
27421         (ashrsi3): Likewise.
27422         (liw): New pattern.
27423         * config/mn10300/mn10300.c (liw_op_names): New
27424         (mn10300_print_operand): Handle 'W' operand descriptor.
27425         (extract_bundle): New function.
27426         (check_liw_constraints): New function.
27427         (liw_candidate): New function.
27428         (mn10300_bundle_liw): New function.
27429         (mn10300_reorg): New function.
27430         (TARGET_MACHINE_DEPENDENT_REORG): Define.
27431         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
27432         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
27433         __LIW__ or __NO_LIW__.
27434         * doc/invoke.texi: Describe the -mliw command line option.
27435
27436 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
27437
27438         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
27439         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
27440         pthread_mutex_unlock): Remove.
27441         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
27442         * config/pa/t-pa64: Likewise.
27443         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
27444         shared libc if not linking against libpthread.
27445         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
27446
27447 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
27448
27449         PR target/47558
27450         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
27451         on 10.6 and later to ensure that we always use the unwinder from
27452         the system.  Only add -no_compact_unwind when tarteting darwin
27453         10.6 or later.
27454
27455 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
27456
27457         PR target/46997
27458         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
27459         (vec_interleave_lowv2sf): Ditto.
27460         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
27461         (vec_extract_oddv2sf): Ditto.
27462
27463 2011-02-07  Mike Stump  <mikestump@comcast.net>
27464
27465         PR target/42333
27466         Add __ieee_divdc3 entry point.
27467         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
27468         entry point.
27469         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
27470         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
27471         * config/darwin.c (darwin_rename_builtins): Add.
27472         * config/darwin-protos.h (darwin_rename_builtins): Add.
27473
27474 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
27475
27476         PR target/47636
27477         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
27478         for the condition.
27479
27480 2011-02-07  Mike Stump  <mikestump@comcast.net>
27481
27482         * config/darwin.opt (mmacosx-version-min): Update default OS version.
27483
27484 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
27485
27486         PR target/47534
27487         * config/avr/libgcc.S (exit): Move .endfunc
27488
27489 2011-02-07  Richard Guenther  <rguenther@suse.de>
27490
27491         PR tree-optimization/47615
27492         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
27493         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
27494         (run_scc_vn): Initialize it.
27495         (visit_reference_op_load): Use it.
27496         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
27497
27498 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
27499
27500         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
27501         DImode trapping arithmetic libfuncs.
27502
27503 2011-02-07  Richard Guenther  <rguenther@suse.de>
27504
27505         PR tree-optimization/47621
27506         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
27507         two duplicates ...
27508         (execute_update_addresses_taken): ... here.  Make it more
27509         conservative in what we accept.
27510
27511 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
27512
27513         * config/sparc/freebsd.h (ASM_SPEC): Define.
27514         * config/sparc/vxworks.h (ASM_SPEC): Define.
27515
27516 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
27517
27518         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
27519
27520 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
27521
27522         * doc/invoke.texi: Remove reference to compiler internals from
27523         user documentation.
27524
27525         * reg-notes.def: Remove REG_VALUE_PROFILE.
27526         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
27527
27528 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
27529
27530         PR middle-end/47610
27531         * varasm.c (default_section_type_flags): If decl is NULL,
27532         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
27533
27534 2011-02-05  Jie Zhang  <jie@codesourcery.com>
27535
27536         PR debug/42631
27537         * web.c (entry_register): Don't clobber the number of the
27538         first uninitialized reference in used[].
27539
27540 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
27541
27542         PR tree-optimization/46194
27543         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
27544         (build_classic_dist_vector_1): Do not represent classic distance
27545         vectors when the access functions are variating in different loops.
27546
27547 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
27548
27549         * config/mips/iris6.opt: New.
27550         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
27551
27552 2011-02-04  Richard Henderson  <rth@redhat.com>
27553             Steve Ellcey  <sje@cup.hp.com>
27554
27555         PR target/46997
27556         * config/ia64/predicates.md (mux1_brcst_element): New.
27557         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
27558         * config/ia64/ia64.c (ia64_unpack_assemble): New.
27559         (ia64_unpack_sign): New.
27560         (ia64_expand_unpack): Rewrite using new routines.
27561         (ia64_expand_widen_sum): Ditto.
27562         (ia64_expand_dot_prod_v8qi): Ditto.
27563         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
27564         routines, add endian check.
27565         (pmpy2_even): Rename from pmpy2_r, add endian check.
27566         (pmpy2_odd): Rename from pmpy2_l, add endian check.
27567         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
27568         (vec_widen_smult_hi_v4hi): Ditto.
27569         (vec_widen_umult_lo_v4hi): Ditto.
27570         (vec_widen_umult_hi_v4hi): Ditto.
27571         (mulv2si3): Change endian checks.
27572         (sdot_prodv4hi): Rewrite with new calls.
27573         (udot_prodv4hi): New.
27574         (vec_pack_ssat_v4hi): Add endian check.
27575         (vec_pack_usat_v4hi): Ditto.
27576         (vec_pack_ssat_v2si): Ditto.
27577         (max1_even): Rename from max1_r, add endian check.
27578         (max1_odd): Rename from max1_l, add endian check.
27579         (*mux1_rev): Format change.
27580         (*mux1_mix): Ditto.
27581         (*mux1_shuf): Ditto.
27582         (*mux1_alt): Ditto.
27583         (*mux1_brcst_v8qi): Use new predicate.
27584         (vec_extract_evenv8qi): Remove endian check.
27585         (vec_extract_oddv8qi): Ditto.
27586         (vec_interleave_lowv4hi): Format change.
27587         (vec_interleave_highv4hi): Ditto.
27588         (mix2_even): Rename from mix2_r, add endian check.
27589         (mix2_odd): Rename from mux2_l, add endian check.
27590         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
27591         (vec_extract_evenodd_helper): Format change.
27592         (vec_extract_evenv4hi): Remove endian check.
27593         (vec_extract_oddv4hi): Remove endian check.
27594         (vec_interleave_lowv2si): Format change.
27595         (vec_interleave_highv2si): Format change.
27596         (vec_initv2si): Remove endian check.
27597         (vecinit_v2si): Add endian check.
27598         (reduc_splus_v2sf): Add endian check.
27599         (reduc_smax_v2sf): Ditto.
27600         (reduc_smin_v2sf): Ditto.
27601         (vec_initv2sf): Remove endian check.
27602         (fpack): Add endian check.
27603         (fswap): Add endian check.
27604         (vec_interleave_highv2sf): Add endian check.
27605         (vec_interleave_lowv2sf): Add endian check.
27606         (fmix_lr): Add endian check.
27607         (vec_setv2sf): Format change.
27608         (*vec_extractv2sf_0_be): Use shift to extract operand.
27609         (*vec_extractv2sf_1_be): New.
27610         (vec_pack_trunc_v4hi): Add endian check.
27611         (vec_pack_trunc_v2si): Format change.
27612
27613 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
27614
27615         PR inline-asm/23200
27616         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
27617         do bb, locus and block comparison and disallow loads if it is not set.
27618         (stmt_is_replaceable_p): New function.
27619         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
27620         callers.
27621         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
27622         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
27623         SSA_NAME_DEF_STMT.
27624         * tree-flow.h (stmt_is_replaceable_p): New prototype.
27625
27626 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
27627
27628         * config/rs6000/xilinx.opt: New.
27629         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
27630
27631 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
27632
27633         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
27634
27635 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
27636
27637         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
27638         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
27639         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
27640         secondary_reload_info, xtensa_secondary_reload): Remove.
27641         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
27642         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
27643         (xtensa_preferred_reload_class): Make static. Change return and
27644         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
27645         Use CONST_DOUBLE_P predicate.
27646         (xtensa_preferred_output_reload_class): New function.
27647         (xtensa_secondary_reload): Make static.
27648
27649 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
27650
27651         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
27652         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
27653         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
27654
27655 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
27656
27657         PR middle-end/31490
27658         * output.h (SECTION_RELRO): Define.
27659         (SECTION_MACH_DEP): Adjust.
27660         (get_variable_section): New prototype.
27661         * varpool.c (varpool_finalize_named_section_flags): New function.
27662         (varpool_assemble_pending_decls): Call it.
27663         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
27664         * cgraphunit.c (cgraph_output_in_order): Call
27665         varpool_finalize_named_section_flags.
27666         * varasm.c (get_section): Allow section flags conflicts between
27667         relro and read-only sections if the section hasn't been declared yet.
27668         Set SECTION_OVERRIDE after diagnosing section type conflict.
27669         (get_variable_section): No longer static.
27670         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
27671         readonly sections that need relocations.
27672         (decl_readonly_section_1): New function.
27673         (decl_readonly_section): Use it.
27674
27675         Revert:
27676         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
27677                     Steve Ellcey  <sje@cup.hp.com>
27678
27679         PR middle-end/31490
27680         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
27681         if section attribute used.
27682
27683 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
27684
27685         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
27686         * config/darwin.c (SECTION_NO_ANCHOR): Define.
27687         (darwin_init_sections): Remove assertion.
27688
27689 2011-02-03  Nick Clifton  <nickc@redhat.com>
27690
27691         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
27692         lt and ge.
27693         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
27694         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
27695         instead of "n" and "pz".
27696         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
27697         CC_FLAG_S.
27698
27699 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
27700
27701         PR target/47312
27702         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
27703         fma, expand FMA_EXPR as fma{,f,l} call.
27704
27705         PR lto/47274
27706         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
27707         copy them into a unsigned char variable and pass address of it to
27708         lto_output_data_stream.
27709
27710         PR target/47564
27711         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
27712         around backend_init_target and lang_dependent_init_target calls.
27713         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
27714         (verify_cgraph_node): Don't call set_cfun here.  Use
27715         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
27716         Set error_found for incorrectly represented calls to thunks.
27717
27718 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
27719
27720         PR debug/43092
27721         PR rtl-optimization/43494
27722         * rtl.h (for_each_inc_dec_fn): New type.
27723         (for_each_inc_dec): Declare.
27724         * rtlanal.c (struct for_each_inc_dec_ops): New type.
27725         (for_each_inc_dec_find_inc_dec): New fn.
27726         (for_each_inc_dec_find_mem): New fn.
27727         (for_each_inc_dec): New fn.
27728         * dse.c (struct insn_size): Remove.
27729         (replace_inc_dec, replace_inc_dec_mem): Remove.
27730         (emit_inc_dec_insn_before): New fn.
27731         (check_for_inc_dec): Use it, along with for_each_inc_dec.
27732         (canon_address): Pass mem modes to cselib_lookup.
27733         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
27734         (cselib_lookup_from_insn): Likewise.
27735         (cselib_subst_to_values): Likewise.
27736         * cselib.c (find_slot_memmode): New var.
27737         (cselib_find_slot): New fn.  Use it instead of
27738         htab_find_slot_with_hash everywhere.
27739         (entry_and_rtx_equal_p): Use find_slot_memmode.
27740         (autoinc_split): New fn.
27741         (rtx_equal_for_cselib_p): Rename and implement in terms of...
27742         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
27743         Deal with autoinc.  Special-case recursion into MEMs.
27744         (cselib_hash_rtx): Likewise.
27745         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
27746         address and MEM modes.
27747         (cselib_subst_to_values): Add memmode, pass it on.
27748         Deal with autoinc.
27749         (cselib_lookup): Add memmode argument, pass it on.
27750         (cselib_lookup_from_insn): Add memmode.
27751         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
27752         (struct cselib_record_autoinc_data): New.
27753         (cselib_record_autoinc_cb): New fn.
27754         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
27755         mode to cselib_lookup.  Reset autoinced REGs here instead of...
27756         (cselib_process_insn): ... here.
27757         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
27758         to cselib_lookup.
27759         (add_uses): Likewise, also to cselib_subst_to_values.
27760         (add_stores): Likewise.
27761         * sched-deps.c (add_insn_mem_dependence): Pass mode to
27762         cselib_subst_to_values.
27763         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
27764         * gcse.c (do_local_cprop): Adjusted.
27765         * postreload.c (reload_cse_simplify_set): Adjusted.
27766         (reload_cse_simplify_operands): Adjusted.
27767         * sel-sched-dump (debug_mem_addr_value): Pass mode.
27768
27769 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
27770
27771         PR tree-optimization/45122
27772         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
27773         unsafe assumptions when there's more than one loop exit.
27774
27775 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
27776
27777         PR target/47272
27778         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
27779         Document using vector double with the load/store builtins, and
27780         that the load/store builtins always use Altivec instructions.
27781
27782         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
27783         to use altivec memory instructions, even on VSX.
27784         (vector_altivec_store_<mode>): Ditto.
27785
27786         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
27787         function.
27788
27789         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
27790         V2DF, V2DI support to load/store overloaded builtins.
27791
27792         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
27793         altivec load/store builtins for V2DF/V2DI types.
27794
27795         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
27796         set avoid indexed addresses on power6 if -maltivec.
27797         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
27798         vector_altivec_load/vector_altivec_store builtins.
27799         (altivec_expand_st_builtin): Ditto.
27800         (altivec_expand_builtin): Add VSX memory builtins.
27801         (rs6000_init_builtins): Add V2DI types to internal types.
27802         (altivec_init_builtins): Add support for V2DF/V2DI altivec
27803         load/store builtins.
27804         (rs6000_address_for_altivec): Insure memory address is appropriate
27805         for Altivec.
27806
27807         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
27808         vec_vsx_ld and vec_vsx_st.
27809         (vsx_store_<mode>): Ditto.
27810
27811         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
27812         variables to hold long long types for VSX vector memory builtins.
27813         (RS6000_BTI_unsigned_long_long): Ditto.
27814         (long_long_integer_type_internal_node): Ditti.
27815         (long_long_unsigned_type_internal_node): Ditti.
27816
27817         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
27818         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
27819         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
27820
27821         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
27822         short cuts.
27823         (vec_vsx_st): Ditto.
27824
27825 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
27826
27827         * config/pa/pa-hpux10.opt: New.
27828         * config/hpux11.opt (pthread): New Driver option.
27829         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
27830         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
27831
27832 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
27833
27834         * config/ia64/vms.opt: New.
27835         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
27836
27837 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
27838
27839         PR target/47580
27840         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
27841         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
27842         generator functions.
27843         (vsx_floatuns<VSi><mode>2): Ditto.
27844         (vsx_fix_trunc<mode><VSi>2): Ditto.
27845         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
27846
27847 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
27848
27849         * config/i386/djgpp.opt (posix): New Driver option.
27850
27851 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
27852
27853         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
27854         Move to the unsupported targets list.
27855
27856 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
27857
27858         PR rtl-optimization/47525
27859         * df-scan.c: Update copyright years.
27860         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
27861         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
27862
27863 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27864
27865         * config/i386/sysv4.h (TARGET_VERSION): Remove.
27866         (SUBTARGET_RETURN_IN_MEMORY): Remove.
27867         (ASM_OUTPUT_ASCII): Remove.
27868         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
27869
27870 2011-02-02  Jeff Law  <law@redhat.com>
27871
27872         PR middle-end/47543
27873         * reload.c (find_reloads_address): Handle reg+d address where both
27874         components are invalid by reloading the entire address.
27875
27876 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
27877             Richard Guenther  <rguenther@suse.de>
27878
27879         PR tree-optimization/40979
27880         PR bootstrap/47044
27881         * passes.c (init_optimization_passes): After LIM call copy_prop
27882         and DCE to clean up.
27883         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
27884
27885 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
27886
27887         PR tree-optimization/47576
27888         PR tree-optimization/47555
27889         * doc/invoke.texi (scev-max-expr-complexity): Documented.
27890         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
27891         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
27892         * tree-scalar-evolution.c (follow_ssa_edge): Use
27893         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
27894
27895 2011-02-02  Richard Guenther  <rguenther@suse.de>
27896
27897         PR tree-optimization/47566
27898         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
27899
27900 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
27901
27902         PR debug/47106
27903         PR debug/47402
27904         * tree-inline.c (declare_return_variable): Remove unused caller
27905         variable.
27906
27907         PR debug/47106
27908         PR debug/47402
27909         * tree-flow-inline.h (clear_is_used, is_used_p): New.
27910         * cfgexpand.c (account_used_vars_for_block): Use them.
27911         * tree-nrv.c (tree_nrv): Likewise.
27912         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
27913         (dump_scope_block): Likewise.
27914         (remove_unused_locals): Likewise.
27915
27916         PR debug/47106
27917         PR debug/47402
27918         * tree-inline.c (declare_return_variable): Add result decl to
27919         local decls only once.
27920         * gimple-low.c (record_vars_into): Mark newly-created variables
27921         as referenced.
27922
27923 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
27924
27925         PR debug/47498
27926         PR debug/47501
27927         PR debug/45136
27928         PR debug/45130
27929         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
27930         debug insns.
27931         (no_real_insns_p, schedule_block, set_priorities): Drop special
27932         treatment of boundary debug insns.
27933         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
27934         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
27935         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
27936         (BOUNDARY_DEBUG_INSN_P): Likewise.
27937         (SCHEDULE_DEBUG_INSN_P): Likewise.
27938         * sched-rgn.c (init_ready_list): Drop special treatment of
27939         boundary debug insns.
27940         * final.c (rest_of_clean_state): Clear notes' BB.
27941
27942 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
27943
27944         * config/openbsd.opt (assert=): New Driver option.
27945
27946 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
27947
27948         * config/i386/nto.opt: New.
27949         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
27950
27951 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
27952
27953         * config/i386/netware.opt: New.
27954         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
27955
27956 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
27957
27958         * config/interix.opt (posix): New Driver option.
27959
27960 2011-02-01  DJ Delorie  <dj@redhat.com>
27961
27962         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
27963
27964         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
27965         class for A0/A1.
27966
27967 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
27968
27969         PR tree-optimization/47561
27970         * toplev.c (process_options): Print the Graphite flags.  Add
27971         flag_loop_flatten to the list of options requiring Graphite.
27972
27973 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
27974
27975         * config/i386/cygming.opt (posix): New Driver option.
27976
27977 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
27978
27979         * config/arm/vxworks.opt: New.
27980         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
27981
27982 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
27983
27984         * config/alpha/elf.opt: New.
27985         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
27986         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
27987
27988 2011-02-01  Richard Guenther  <rguenther@suse.de>
27989
27990         PR tree-optimization/47559
27991         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
27992         store-motion on references that can throw.
27993
27994 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
27995
27996         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
27997         * tree-pass.h (TDF_CSELIB): New macro.
27998         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
27999         cselib_lookup): Check for it rather than for TDF_DETAILS.
28000
28001 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
28002
28003         PR driver/47547
28004         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
28005         is HOST_BIT_BUCKET.
28006
28007         * opts.c (finish_options): Don't add x_aux_base_name if it is
28008         HOST_BIT_BUCKET.
28009
28010 2011-02-01  Richard Guenther  <rguenther@suse.de>
28011
28012         PR tree-optimization/47555
28013         Revert
28014         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
28015
28016         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
28017
28018 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
28019
28020         PR gcc/46692
28021         * config/lm32/t-lm32: Add multilib for all CPU options.
28022
28023 2011-02-01  Richard Guenther  <rguenther@suse.de>
28024
28025         PR tree-optimization/47541
28026         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
28027         sure to have a field at offset zero.
28028
28029 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
28030
28031         * config/arc/arc.opt (EB, EL): New Driver options.
28032
28033 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
28034
28035         * config/alpha/osf5.opt: New.
28036         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
28037
28038 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
28039
28040         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
28041
28042 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
28043
28044         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
28045         -floop-interchange.
28046         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
28047         is an alias of -floop-interchange and that it requires the
28048         Graphite infrastructure.
28049         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
28050         flag_loop_interchange based on the value of flag_tree_loop_linear.
28051
28052 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
28053             Richard Guenther  <rguenther@suse.de>
28054
28055         PR tree-optimization/47538
28056         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
28057         type instead of r1type, except for comparisons.  For right
28058         shifts and comparisons punt if there are mismatches in
28059         sizetype vs. non-sizetype types.
28060
28061 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28062
28063         * doc/sourcebuild.texi (Effective-Target Keywords): Document
28064         avx_runtime.
28065
28066 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28067
28068         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
28069         version number.
28070         * configure: Regenerate.
28071
28072 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28073
28074         * configure.ac (gcc_cv_ld_static_option): Define.
28075         (gcc_cv_ld_dynamic_option): Define.
28076         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
28077         instead.
28078         (HAVE_LD_STATIC_DYNAMIC): Update message.
28079         (LD_STATIC_OPTION): Define.
28080         (LD_DYNAMIC_OPTION): Define.
28081         * configure: Regenerate.
28082         * config.in: Regenerate.
28083         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
28084         HAVE_LD_STATIC_DYNAMIC]: Use them.
28085
28086 2011-01-31  Nick Clifton  <nickc@redhat.com>
28087
28088         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
28089         registers inside interrupt handlers if the handler is not a leaf
28090         function.
28091
28092 2011-01-31  Nick Clifton  <nickc@redhat.com>
28093
28094         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
28095         reg_renumber returning an INVALID_REGNUM.
28096
28097 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
28098
28099         PR libgcj/44341
28100         * doc/install.texi: Document host options discarded when cross
28101         configuring target libraries.
28102
28103 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
28104
28105         Reverted:
28106         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
28107         PR debug/45136
28108         PR debug/45130
28109         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
28110         debug insns.
28111         (no_real_insns_p, schedule_block, set_priorities): Drop special
28112         treatment of boundary debug insns.
28113         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
28114         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
28115         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
28116         (BOUNDARY_DEBUG_INSN_P): Likewise.
28117         (SCHEDULE_DEBUG_INSN_P): Likewise.
28118         * sched-rgn.c (init_ready_list): Drop special treatment of
28119         boundary debug insns.
28120         * final.c (rest_of_clean-state): Clear notes' BB.
28121
28122 2011-01-31  Alan Modra  <amodra@gmail.com>
28123
28124         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
28125         toc relative expressions as we do in print_operand_address.
28126
28127 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
28128
28129         * doc/extend.texi: Follow spelling conventions.
28130         * doc/invoke.texi: Fix a typo.
28131
28132 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
28133
28134         * config/hpux11.opt: New.
28135         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
28136         ia64*-*-hpux*): Use hpux11.opt.
28137
28138 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
28139
28140         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
28141         to tmake_file.
28142
28143 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
28144
28145         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
28146         support sites.
28147
28148 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
28149
28150         * doc/install.texi (Binaries): Remove outdated reference for
28151         Motorola 68HC11/68HC12 downloads.
28152
28153 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
28154
28155         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
28156         Drepper's paper.
28157
28158 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
28159
28160         PR bootstrap/47147
28161         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
28162         used by NetBSD.
28163
28164 2011-01-28  Ahmad Sharif  <asharif@google.com>
28165
28166         * value-prof.c (check_counter): Corrected error message.
28167
28168 2011-01-29  Jie Zhang  <jie@codesourcery.com>
28169
28170         * config/arm/arm.c (arm_legitimize_reload_address): New.
28171         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
28172         arm_legitimize_reload_address.
28173         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
28174
28175 2011-01-28  Ian Lance Taylor  <iant@google.com>
28176
28177         * godump.c (go_define): Ignore macros whose definitions include
28178         two adjacent operands.
28179
28180 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
28181
28182         PR target/42894
28183         * varasm.c (force_const_mem): Store copy of x in desc->constant
28184         instead of x itself.
28185         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
28186         itself into REG_EQUAL note.
28187
28188 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
28189
28190         * config/freebsd.opt (posix, rdynamic): New Driver options.
28191
28192 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28193
28194         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
28195         -Bstatic/-Bdynamic.
28196         * configure: Regenerate.
28197
28198 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
28199
28200         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
28201         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
28202
28203 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
28204
28205         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
28206         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
28207         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
28208         (s390_preferred_reload_class): Make static. Change return and
28209         'rclass' argument type to reg_class_t.
28210
28211 2011-01-27  Jan Hubicka  <jh@suse.cz>
28212
28213         PR middle-end/46949
28214         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
28215         (process_function_and_variable_attributes): Check defined weakrefs.
28216
28217 2011-01-27  Martin Jambor  <mjambor@suse.cz>
28218
28219         PR tree-optimization/47228
28220         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
28221         build_ref_for_offset.
28222
28223 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
28224
28225         * config/spu/spu-elf.h (ASM_SPEC): Remove.
28226
28227 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
28228
28229         PR rtl-optimization/46856
28230         * postreload.c (reload_combine_recognize_const_pattern): Do not
28231         separate cc0 setter and user on cc0 targets.
28232
28233 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
28234
28235         PR c/43082
28236         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
28237         passed a VOID_TYPE expression, immediately emit an error and
28238         return error_mark_node.
28239
28240 2011-01-26  Jeff Law  <law@redhat.com>
28241
28242         PR rtl-optimization/47464
28243         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
28244         rather than may_trap_p as needed.
28245
28246 2011-01-26  DJ Delorie  <dj@redhat.com>
28247
28248         PR rtl-optimization/46878
28249         * combine.c (insn_a_feeds_b): Check for the implicit cc0
28250         setter/user dependency as well.
28251
28252 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
28253
28254         PR rtl-optimization/44469
28255         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
28256         after removing trivially dead basic blocks.
28257
28258 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
28259
28260         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
28261         * config/frv/frv.h (LINK_SPEC): Likewise.
28262         * config/i386/netware.h (LINK_SPEC): Likewise.
28263         * config/m68k/linux.h (ASM_SPEC): Likewise.
28264         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
28265         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
28266         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
28267         * config/sparc/linux.h (ASM_SPEC): Likewise.
28268         * config/sparc/linux64.h (ASM_SPEC): Likewise.
28269         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
28270
28271 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
28272
28273         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
28274         * config/frv/frv.h (ASM_SPEC): Likewise.
28275         * config/m68k/linux.h (ASM_SPEC): Likewise.
28276         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
28277         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
28278         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
28279         * config/sparc/linux.h (ASM_SPEC): Likewise.
28280         * config/sparc/linux64.h (ASM_SPEC): Likewise.
28281         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
28282
28283 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
28284
28285         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
28286         * config/frv/frv.h (LINK_SPEC): Likewise.
28287         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
28288
28289 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
28290
28291         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
28292         * config/frv/frv.h (ASM_SPEC): Likewise.
28293         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
28294         * config/m68k/linux.h (ASM_SPEC): Likewise.
28295         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
28296         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
28297         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
28298         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
28299         * config/sparc/linux.h (ASM_SPEC): Likewise.
28300         * config/sparc/linux64.h (ASM_SPEC): Likewise.
28301         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
28302         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
28303
28304 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
28305
28306         PR target/46997
28307         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
28308         (*mux2): Ditto.
28309         (vec_extract_evenodd_help): Ditto.
28310         (vec_extract_evenv4hi): Ditto.
28311         (vec_extract_oddv4hi): Ditto.
28312         (vec_interleave_lowv2si): Ditto.
28313         (vec_interleave_highv2si): Ditto.
28314         (vec_extract_evenv2si): Ditto.
28315         (vec_extract_oddv2si: Ditto.
28316         (vec_pack_trunc_v2si): Ditto.
28317
28318 2011-01-22  Jan Hubicka  <jh@suse.cz>
28319
28320         PR target/47237
28321         * cgraph.h (cgraph_local_info): New field can_change_signature.
28322         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
28323         signature can change.
28324         (ipcp_estimate_growth): Call sequence simplify only if calle signature
28325         can change.
28326         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
28327         (cgraph_function_versioning): We can not change signature of functions
28328         that don't allow that.
28329         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
28330         (lto_input_node): Likewise.
28331         * ipa-inline.c (compute_inline_parameters): Compute
28332         local.can_change_signature.
28333         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
28334         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
28335         functions that can not change signature.
28336         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
28337         init_cumulative_args): Do not use local calling conventions
28338         for functions that can not change signature.
28339
28340 2011-01-22  Jan Hubicka  <jh@suse.cz>
28341
28342         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
28343
28344 2011-01-26  Richard Guenther  <rguenther@suse.de>
28345
28346         PR tree-optimization/47190
28347         * cgraphunit.c (process_common_attributes): New function.
28348         (process_function_and_variable_attributes): Use it.
28349
28350 2011-01-26  Richard Guenther  <rguenther@suse.de>
28351
28352         PR lto/47423
28353         * cgraphbuild.c (record_eh_tables): Record reference to personality
28354         function.
28355
28356 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
28357
28358         PR debug/45454
28359         * sel-sched.c (moveup_expr): Don't let debug insns prevent
28360         non-debug insns from moving up.
28361
28362 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
28363
28364         PR target/40125
28365         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
28366         t-dlldir{,-x} fragment for build and add it to tmake_file.
28367         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
28368         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
28369         * config/i386/t-dlldir: New file.
28370         (SHLIB_DLLDIR): Define.
28371         * config/i386/t-dlldir-x: New file.
28372         (SHLIB_DLLDIR): Define.
28373         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
28374         (SHLIB_INSTALL): Use it.
28375
28376 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
28377
28378         PR target/47246
28379         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
28380         lower bound of the allowed Thumb-2 coprocessor load/store
28381         index range to -256. Add explaining comment.
28382
28383 2011-01-25  Ian Lance Taylor  <iant@google.com>
28384
28385         * godump.c (go_define): Improve lexing of macro expansion to only
28386         accept expressions which match Go spec.
28387
28388 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
28389
28390         PR c++/43601
28391         * tree.c (handle_dll_attribute): Handle it.
28392         * doc/extend.texi (@item dllexport): Mention it.
28393         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
28394
28395 2011-01-25  Ian Lance Taylor  <iant@google.com>
28396
28397         PR tree-optimization/26854
28398         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
28399         (decl_jump_unsafe): Move higher in file, with no other change.
28400         (bind): Set has_jump_unsafe_decl if appropriate.
28401         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
28402         (check_earlier_gotos): Likewise.
28403         (c_check_switch_jump_warnings): Likewise.
28404
28405 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
28406
28407         * doc/invoke.texi (Warning Options): Add missing hyphen.
28408         (-fprofile-dir): Minor grammatical fixes.
28409         (-fbranch-probabilities): Likewise.
28410
28411 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
28412
28413         PR debug/45136
28414         PR debug/45130
28415         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
28416         debug insns.
28417         (no_real_insns_p, schedule_block, set_priorities): Drop special
28418         treatment of boundary debug insns.
28419         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
28420         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
28421         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
28422         (BOUNDARY_DEBUG_INSN_P): Likewise.
28423         (SCHEDULE_DEBUG_INSN_P): Likewise.
28424         * sched-rgn.c (init_ready_list): Drop special treatment of
28425         boundary debug insns.
28426         * final.c (rest_of_clean-state): Clear notes' BB.
28427
28428 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
28429
28430         * Makefile.in (LAMBDA_H): Removed.
28431         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
28432         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
28433         lambda-trans.o, and tree-loop-linear.o.
28434         (lto-symtab.o): Remove dependence on LAMBDA_H.
28435         (tree-loop-linear.o): Remove rule.
28436         (lambda-mat.o): Same.
28437         (lambda-trans.o): Same.
28438         (lambda-code.o): Same.
28439         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
28440         (tree-vect-slp.o): Same.
28441         * hwint.h (gcd): Moved here.
28442         (least_common_multiple): Same.
28443         * lambda-code.c: Removed.
28444         * lambda-mat.c: Removed.
28445         * lambda-trans.c: Removed.
28446         * lambda.h: Removed.
28447         * tree-loop-linear.c: Removed.
28448         * lto-symtab.c: Do not include lambda.h.
28449         * omega.c (gcd): Removed.
28450         * passes.c (init_optimization_passes): Remove pass_linear_transform.
28451         * tree-data-ref.c (print_lambda_vector): Moved here.
28452         (lambda_vector_copy): Same.
28453         (lambda_matrix_copy): Same.
28454         (lambda_matrix_id): Same.
28455         (lambda_vector_first_nz): Same.
28456         (lambda_matrix_row_add): Same.
28457         (lambda_matrix_row_exchange): Same.
28458         (lambda_vector_mult_const): Same.
28459         (lambda_vector_negate): Same.
28460         (lambda_matrix_row_negate): Same.
28461         (lambda_vector_equal): Same.
28462         (lambda_matrix_right_hermite): Same.
28463         * tree-data-ref.h: Do not include lambda.h.
28464         (lambda_vector): Moved here.
28465         (lambda_matrix): Same.
28466         (dependence_level): Same.
28467         (lambda_transform_legal_p): Removed declaration.
28468         (lambda_collect_parameters): Same.
28469         (lambda_compute_access_matrices): Same.
28470         (lambda_vector_gcd): Same.
28471         (lambda_vector_new): Same.
28472         (lambda_vector_clear): Same.
28473         (lambda_vector_lexico_pos): Same.
28474         (lambda_vector_zerop): Same.
28475         (lambda_matrix_new): Same.
28476         * tree-flow.h (least_common_multiple): Removed declaration.
28477         * tree-parloops.c (lambda_trans_matrix): Moved here.
28478         (LTM_MATRIX): Same.
28479         (LTM_ROWSIZE): Same.
28480         (LTM_COLSIZE): Same.
28481         (LTM_DENOMINATOR): Same.
28482         (lambda_trans_matrix_new): Same.
28483         (lambda_matrix_vector_mult): Same.
28484         (lambda_transform_legal_p): Same.
28485         * tree-pass.h (pass_linear_transform): Removed declaration.
28486         * tree-ssa-loop.c (tree_linear_transform): Removed.
28487         (gate_tree_linear_transform): Removed.
28488         (pass_linear_transform): Removed.
28489         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
28490         flag_loop_interchange.
28491
28492 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
28493
28494         PR tree-optimization/47265
28495         PR tree-optimization/47443
28496         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
28497         if name still has some uses.
28498
28499 2011-01-25  Martin Jambor  <mjambor@suse.cz>
28500
28501         PR tree-optimization/47382
28502         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
28503         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
28504
28505 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
28506
28507         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
28508         sjlj_except_unwind_info.
28509
28510 2011-01-25  Richard Guenther  <rguenther@suse.de>
28511
28512         PR tree-optimization/47426
28513         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
28514         visible functions results escape.
28515
28516 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
28517
28518         PR target/45701
28519         * config/arm/arm.c (any_sibcall_uses_r3): New function.
28520         (arm_get_frame_offsets): Use it.
28521
28522 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
28523             Jakub Jelinek  <jakub@redhat.com>
28524
28525         PR tree-optimization/47271
28526         * tree-if-conv.c (bb_postdominates_preds): New.
28527         (if_convertible_bb_p): Call bb_postdominates_preds.
28528         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
28529         (predicate_scalar_phi): Call bb_postdominates_preds.
28530
28531 2011-01-25  Nick Clifton  <nickc@redhat.com>
28532
28533         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
28534         * config/rx/rx.c (rx_function_value): Likewise.
28535         (rx_promote_function_mode): Likewise.
28536         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
28537         in order to make it legitimate.
28538         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
28539         make sure that the first operand is the same as the result register.
28540         (addsi3_unspec): Delete.
28541         (subdi3): Do not accept immediate operands.
28542         (subdi3_internal): Likewise.
28543
28544 2011-01-25  Jeff Law  <law@redhat.com>
28545
28546         PR rtl-optimization/37273
28547         * ira-costs.c (scan_one_insn): Detect constants living in memory and
28548         handle them like argument loads from stack slots.  Do not double
28549         count memory for memory constants and argument loads from stack slots.
28550
28551 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
28552
28553         PR tree-optimization/47427
28554         PR tree-optimization/47428
28555         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
28556         coalesce if the new root var would be TREE_READONLY.
28557
28558 2011-01-25  Richard Guenther  <rguenther@suse.de>
28559
28560         PR middle-end/47414
28561         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
28562         correct type for TBAA.
28563
28564 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
28565
28566         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
28567         (close_phi_written_to_memory): Call for_each_index with
28568         dr_indices_valid_in_loop.
28569
28570 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
28571
28572         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
28573         when it is initialized.
28574
28575 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
28576
28577         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
28578         call to graphite_find_data_references_in_stmt.
28579         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
28580         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
28581         call to graphite_find_data_references_in_stmt.
28582         (analyze_drs_in_stmts): Same.
28583         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
28584         in which the scalar analysis of indices is performed.
28585         (create_data_ref): Same.  Update call to dr_analyze_indices.
28586         (find_data_references_in_stmt): Update call to create_data_ref.
28587         (graphite_find_data_references_in_stmt): Same.
28588         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
28589         declaration.
28590         (create_data_ref): Same.
28591         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
28592         call to create_data_ref.
28593
28594 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
28595
28596         * graphite-sese-to-poly.c (build_poly_scop): Move
28597         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
28598
28599 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
28600
28601         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
28602         VAR_DECL, PARM_DECL, and RESULT_DECL.
28603
28604 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
28605
28606         * graphite-dependences.c (reduction_dr_1): Allow several reductions
28607         in a reduction PBB.
28608         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
28609         that have already been marked as PBB_IS_REDUCTION.
28610
28611 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
28612
28613         * graphite-scop-detection.c (same_close_phi_node): New.
28614         (remove_duplicate_close_phi): New.
28615         (make_close_phi_nodes_unique): New.
28616         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
28617
28618 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
28619
28620         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
28621         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
28622         of both data references to be the same.
28623
28624 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
28625
28626         * graphite-dependences.c (build_lexicographical_constraint): Remove
28627         the gdim parameter.
28628         (build_lexicographical_constraint): Adjust call to
28629         ppl_powerset_is_empty.
28630         (dependence_polyhedron): Same.
28631         (graphite_legal_transform_dr): Same.
28632         (graphite_carried_dependence_level_k): Same.
28633         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
28634         parameter.
28635         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
28636
28637 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
28638
28639         * graphite-sese-to-poly.c
28640         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
28641         (close_phi_written_to_memory): New.
28642         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
28643         and unshare_expr.
28644
28645 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
28646
28647         * doc/install.texi: Update the expected version number of PPL to 0.11.
28648         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
28649         #if PPL_VERSION_MINOR < 11.
28650
28651 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
28652
28653         * graphite-dependences.c: Include graphite-cloog-util.h.
28654         (new_poly_ddr): Inlined into dependence_polyhedron.
28655         (free_poly_ddr): Moved close by new_poly_ddr.
28656         (dependence_polyhedron_1): Renamed dependence_polyhedron.
28657         Early return NULL when ppl_powerset_is_empty returns true.
28658         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
28659         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
28660         (graphite_legal_transform_dr): Call new_poly_ddr.
28661         (graphite_carried_dependence_level_k): Same.
28662         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
28663         (dot_transformed_deps_stmt_1): Removed.
28664         (dot_deps_stmt_1): Call dot_deps_stmt_2.
28665         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
28666         (dot_deps_1): Call dot_deps_2.
28667         * Makefile.in (graphite-dependences.o): Add missing dependence on
28668         graphite-cloog-util.h.
28669
28670 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
28671
28672         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
28673         (build_lexicographical_constraint): Same.
28674         (dependence_polyhedron_1): Same.
28675         (graphite_legal_transform_dr): Same.
28676         (graphite_carried_dependence_level_k): Same.
28677         * graphite-ppl.c (ppl_powerset_is_empty): New.
28678         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
28679         * tree-data-ref.c (dump_data_reference): Print the basic block index.
28680
28681 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
28682
28683         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
28684         the "a followed by b" relation and document it.
28685
28686 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
28687
28688         * graphite-dependences.c (build_lexicographical_constraint): Stop the
28689         iteration when the bag of constraints is empty.
28690
28691 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
28692
28693         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
28694
28695 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
28696
28697         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
28698         nest and two loop depths as parameters.
28699         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
28700         lst_perfect_nestify.
28701
28702 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
28703
28704         * graphite-dependences.c (print_pddr): Call
28705         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
28706
28707 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
28708
28709         * graphite-ppl.c (debug_gmp_value): New.
28710         * graphite-ppl.h (debug_gmp_value): Declared.
28711
28712 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
28713
28714         * doc/install.texi: Document availability of cloog-0.16.
28715
28716 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
28717
28718         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
28719         invalid postdominance info.
28720
28721 2011-01-24  Jan Hubicka  <jh@suse.cz>
28722
28723         PR c/21659
28724         * doc/extend.texi (weak pragma): Drop claim that it must
28725         appear before definition.
28726         * varasm.c (merge_weak, declare_weak): Only sanity check
28727         that DECL is not output at a time it is declared weak.
28728
28729 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
28730
28731         * machmode.def: Fixed comments.
28732
28733 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
28734
28735         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
28736
28737 2011-01-24  Paul Koning  <ni1d@arrl.net>
28738
28739         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
28740         WORDS_BIG_ENDIAN.
28741
28742 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
28743
28744         PR target/46519
28745         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
28746         (block_info): Add scanned and prev.
28747         (move_or_delete_vzeroupper_2): Return if the basic block
28748         has been scanned and the upper 128bit state is unchanged
28749         from the last scan.
28750         (move_or_delete_vzeroupper_1): Return true if the exit
28751         state is changed.
28752         (move_or_delete_vzeroupper): Visit basic blocks using the
28753         work-list based algorithm based on vt_find_locations in
28754         var-tracking.c.
28755
28756         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
28757
28758 2011-01-24  Nick Clifton  <nickc@redhat.com>
28759
28760         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
28761         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
28762         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
28763         then define __v850e1__.
28764         * doc/invoke.texi: Document -mv850es.
28765
28766 2011-01-24  Richard Henderson  <rth@redhat.com>
28767
28768         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
28769         compound unordered comparisons.
28770         * config/rx/rx.c (rx_split_fp_compare): Remove.
28771         * config/rx/rx-protos.h: Update.
28772         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
28773         (cbranchsf4): Don't call rx_split_fp_compare.
28774         (*cbranchsf4): Use rx_split_cbranch.
28775         (*cmpsf): Don't accept "i" constraint.
28776         (*conditional_branch): Only valid after reload.
28777         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
28778
28779 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
28780
28781         PR target/47385
28782         * config/rs6000/altivec.md (vector constant splitters): Add
28783         support for creating vector single precision constants if -mvsx is
28784         used and we would create the constant using Altivec primitives.
28785
28786 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
28787             Richard Sandiford  <rdsandiford@googlemail.com>
28788
28789         PR rtl-optimization/47166
28790         * reload1.c (emit_reload_insns): Disable the spill_reg_store
28791         mechanism for PRE_MODIFY and POST_MODIFY.
28792         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
28793         reloadreg.
28794
28795 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
28796
28797         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
28798
28799 2011-01-22  Jan Hubicka  <jh@suse.cz>
28800
28801         PR lto/47333
28802         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
28803
28804 2011-01-22  Jan Hubicka  <jh@suse.cz>
28805
28806         PR tree-optimization/43884
28807         PR lto/44334
28808         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
28809         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
28810
28811 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
28812
28813         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
28814         * config/s390/s390.c (s390_register_move_cost,
28815         s390_memory_move_cost): New.
28816         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
28817
28818 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
28819
28820         PR middle-end/47401
28821         * except.c (sjlj_assign_call_site_values): Move setting the
28822         crtl->uses_eh_lsda flag to ...
28823         (sjlj_mark_call_sites): ... here.
28824         (sjlj_emit_function_enter): Support NULL dispatch label.
28825         (sjlj_build_landing_pads): In a function with no landing pads
28826         that still has must-not-throw regions, generate code to register
28827         a personality function with empty LSDA.
28828
28829 2011-01-21  Richard Henderson  <rth@redhat.com>
28830
28831         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
28832
28833         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
28834
28835         * compare-elim.c: New file.
28836         * Makefile.in (OBJS-common): Add it.
28837         (compare-elim.o): New.
28838         * common.opt (fcompare-elim): New.
28839         * opts.c (default_options_table): Add OPT_fcompare_elim.
28840         * tree-pass.h (pass_compare_elim_after_reload): New.
28841         * passes.c (init_optimization_passes): Add it.
28842         * recog.h: Protect against re-inclusion.
28843         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
28844         * doc/invoke.texi (-fcompare-elim): Document it.
28845         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
28846         * doc/tm.texi: Rebuild.
28847
28848 2011-01-22  Nick Clifton  <nickc@redhat.com>
28849
28850         * config/rx/rx.md (cstoresf4): Pass comparison operator to
28851         rx_split_fp_compare.
28852
28853 2011-01-22  Nick Clifton  <nickc@redhat.com>
28854
28855         * config/rx/rx.md (UNSPEC_CONST): New.
28856         (deallocate_and_return): Wrap the amount popped off the stack in
28857         an UNSPEC_CONST in order to stop it being rejected by
28858         -mmax-constant-size.
28859         (pop_and_return): Add a "(return)" rtx.
28860         (call): Drop the immediate operand.
28861         (call_internal): Likewise.
28862         (call_value): Likewise.
28863         (call_value_internal): Likewise.
28864         (sibcall_internal): Likewise.
28865         (sibcall_value_internal): Likewise.
28866         (sibcall): Likewise.  Generate an explicit call using
28867         sibcall_internal.
28868         (sibcall_value): Likewise.
28869         (mov<>): FAIL if a constant operand is not legitimate.
28870         (addsi3_unpsec): New pattern.
28871
28872         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
28873         (ok_for_max_constant): New function.
28874         (gen_safe_add): New function.
28875         (rx_expand_prologue): Use gen_safe_add.
28876         (rx_expand_epilogue): Likewise.
28877         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
28878         UNSPEC CONSTs.
28879
28880 2011-01-21  Jeff Law  <law@redhat.com>
28881
28882         PR tree-optimization/47053
28883         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
28884         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
28885         statements are deleted.
28886         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
28887         is nonempty, then purge dead edges and cleanup the CFG.
28888
28889 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
28890
28891         PR debug/47402
28892         Temporarily revert:
28893         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
28894         PR debug/47106
28895         * tree-dfa.c (create_var_ann): Mark variable as used.
28896
28897 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
28898
28899         PR middle-end/45566
28900         * except.c (convert_to_eh_region_ranges): Emit queued no-region
28901         notes from other section in hot/cold partitioning even if
28902         last_action is -3.  Increment call_site_base.
28903
28904         PR rtl-optimization/47366
28905         * fwprop.c (forward_propagate_into): Return bool.  If
28906         any changes are made, -fnon-call-exceptions is used and
28907         REG_EH_REGION note is present, call purge_dead_edges
28908         and return true if it purged anything.
28909         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
28910         any EH edges were purged.
28911
28912 2011-01-21  Jeff Law  <law@redhat.com>
28913
28914         PR rtl-optimization/41619
28915         * caller-save.c (setup_save_areas): Break out code to determine
28916         which hard regs are live across calls by examining the reload chains
28917         so that it is always used.
28918         Eliminate code which checked REG_N_CALLS_CROSSED.
28919
28920 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
28921
28922         PR tree-optimization/47355
28923         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
28924         NOP has non-debug uses beyond PHIs in new_bb.
28925
28926 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
28927
28928         PR debug/47106
28929         * cfgexpand.c (account_used_vars_for_block): Only account vars
28930         that are annotated as used.
28931         (estimated_stack_frame_size): Don't set TREE_USED.
28932         * tree-dfa.c (create_var_ann): Mark variable as used.
28933
28934 2011-01-21  Richard Guenther  <rguenther@suse.de>
28935
28936         PR middle-end/47395
28937         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
28938
28939 2011-01-21  Richard Guenther  <rguenther@suse.de>
28940
28941         PR tree-optimization/47365
28942         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
28943         (vn_reference_lookup_pieces): Adjust.
28944         (vn_reference_lookup): Likewise.
28945         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
28946         (vn_reference_lookup_3): Only look through kills if in
28947         VN_WALKREWRITE mode.
28948         (vn_reference_lookup_pieces): Adjust.
28949         (vn_reference_lookup): Likewise.
28950         (visit_reference_op_load): Likewise.
28951         (visit_reference_op_store): Likewise.
28952         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
28953         (compute_avail): Likewise.
28954         (eliminate): Likewise.
28955
28956 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
28957
28958         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
28959         DECL_IGNORED_P non-reg vars if they are used.
28960
28961         PR tree-optimization/47391
28962         * varpool.c (const_value_known_p): Return false if
28963         decl is volatile.
28964
28965 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
28966
28967         PR bootstrap/47215
28968         * config/i386/i386.c (ix86_local_alignment): Handle
28969         case for va_list_type_node is nil.
28970         (ix86_canonical_va_list_type): Likewise.
28971
28972 2011-01-21  Alan Modra  <amodra@gmail.com>
28973
28974         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
28975         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
28976
28977 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
28978
28979         * config/arm/arm.md (define_attr type): Rename f_load
28980         and f_store to f_fpa_load and f_fpa_store. Update.
28981         (write_conflict): Deal with rename fallout.
28982         (*push_fp_multi): Likewise.
28983         * config/arm/fpa.md (f_load): Use f_fpa_load.
28984         (f_store): Use f_fpa_store.
28985         (*movsf_fpa): Likewise.
28986         (*movdf_fpa): Likewise.
28987         (*movxf_fpa): Likewise.
28988         (*thumb2_movsf_fpa): Likewise.
28989         (*thumb2_movdf_fpa): Likewise.
28990         (*thumb2_movxf_fpa): Likewise.
28991         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
28992         f_loadd and f_stored.
28993         (*thumb2_movdi_vfp): Likewise.
28994         (*thumb2_movsf_vfp): Fix attribute to f_loads.
28995         (*thumb2_movsi_vfp): Likewise.
28996         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
28997         Use f_loads instead of f_load.
28998         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
28999
29000 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
29001
29002         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
29003         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
29004         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
29005         (xtensa_mode_dependent_address_p): New function.
29006         (constantpool_address_p): Make static. Change return type to bool.
29007         Change argument type to const_rtx. Use CONST_INT_P predicate.
29008
29009 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
29010
29011         PR debug/46583
29012         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
29013
29014 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
29015
29016         PR debug/47283
29017         * cfgexpand.c (expand_debug_expr): Instead of generating
29018         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
29019         etc. handling.
29020
29021 2011-01-20  Richard Guenther  <rguenther@suse.de>
29022
29023         PR middle-end/47370
29024         * tree-inline.c (remap_gimple_op_r): Recurse manually for
29025         the pointer operand of MEM_REFs.
29026
29027 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
29028
29029         PR tree-optimization/46130
29030         * ipa-split.c (consider_split): If return_bb contains non-virtual
29031         PHIs other than for retval or if split_function would not adjust it,
29032         refuse to split.
29033
29034 2011-01-20  Richard Guenther  <rguenther@suse.de>
29035
29036         PR tree-optimization/47167
29037         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
29038         Revert previous change, only avoid enumeral type changes.
29039
29040 2011-01-19  Mike Stump  <mikestump@comcast.net>
29041
29042         * doc/tm.texi.in (BRANCH_COST): Englishify.
29043         * doc/tm.texi (BRANCH_COST): Likewise.
29044
29045 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
29046
29047         PR c++/47291
29048         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
29049         (gen_scheduled_generic_parms_dies): New functions.
29050         (gen_struct_or_union_type_die): Schedule template parameters DIEs
29051         generation for the end of CU compilation.
29052         (dwarf2out_finish): Generate template parameters DIEs here.
29053
29054 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
29055
29056         PR debug/46240
29057         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
29058         debug bind stmt on merge edges.
29059
29060 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
29061
29062         PR debug/47079
29063         PR debug/46724
29064         * function.c (instantiate_expr): Instantiate incoming rtl of
29065         implicit arguments, and recurse on VALUE_EXPRs.
29066         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
29067         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
29068
29069 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
29070
29071         * c-parser.c (c_parser_for_statement): Initialize
29072         collection_expression.
29073
29074 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
29075
29076         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
29077
29078 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
29079
29080         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
29081         (LINK_SHLIB_SPEC): Don't use %(link_path).
29082         (SUBTARGET_EXTRA_SPECS): Remove link_path.
29083
29084 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
29085
29086         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
29087         (NO_SHARED_LIB_SUPPORT): Remove.
29088         (LINK_SHLIB_SPEC): Remove one conditional definition.
29089
29090 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
29091
29092         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
29093         %{call_shared}.
29094         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
29095         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
29096         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
29097         %{call_shared} and conditionals on these options not being passed.
29098         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
29099         %{call_shared}.
29100
29101 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
29102
29103         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
29104         simplify.
29105
29106         * ipa-split.c: Spelling fixes.
29107
29108 2011-01-19  Richard Henderson  <rth@redhat.com>
29109
29110         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
29111         (*mulsi3): Likewise.
29112
29113         * longlong.h [__mn10300__] (count_leading_zeros): New.
29114         [__mn10300__] (umul_ppmm, smul_ppmm): New.
29115         [__mn10300__] (add_ssaaaa, subddmmss): New.
29116         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
29117         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
29118
29119 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
29120
29121         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
29122
29123 2011-01-19  Richard Henderson  <rth@redhat.com>
29124
29125         * config/mn10300/mn10300.md (addsi3_flags): New.
29126         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
29127         (subsi3_flags, subc_internal, subdi3): New.
29128         (subdi3_internal, *subdi3_degenerate): New.
29129         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
29130
29131         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
29132         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
29133         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
29134         * config/mn10300/mn10300-protos.h: Update.
29135         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
29136         (return_ret): Likewise.  Rename from return_internal_regs.
29137         (return_internal): Remove.
29138
29139         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
29140         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
29141         (mn10300_legitimate_constant_p): Likewise.
29142         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
29143         (mn10300_frame_size): New.
29144         (mn10300_expand_prologue): Use it.
29145         (mn10300_expand_epilogue): Likewise.
29146         (mn10300_initial_offset): Likewise.
29147         * config/mn10300/mn10300-protos.h: Update.
29148         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
29149         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
29150         (prologue, epilogue, return_internal): Tidy output code.
29151         (mn10300_store_multiple_operation, return): Likewise.
29152         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
29153         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
29154         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
29155         (load_pic, am33_load_pic): New.
29156         (mn10300_load_pic0, mn10300_load_pic1): New.
29157
29158         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
29159         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
29160         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
29161         (cc_flags_for_mode, cc_flags_for_code): New.
29162         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
29163         overflow flag is not valid.  Validate that the flags we need
29164         for the comparison are valid.
29165         (mn10300_output_cmp): Remove.
29166         (mn10300_output_add): New.
29167         (mn10300_select_cc_mode): Use cc_flags_for_code.
29168         (mn10300_split_cbranch): New.
29169         (mn10300_match_ccmode): New.
29170         (mn10300_split_and_operand_count): New.
29171         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
29172         to the function.
29173         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
29174         (addsi3): ... here.  Use mn10300_output_add.
29175         (*addsi3_flags): New.
29176         (*am33_subsi3, *mn10300_subsi3): Merge...
29177         (subsi3): ... here.  Use attribute isa.
29178         (*subsi3_flags): New.
29179         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
29180         when possible.
29181         (*am33_andsi3, *mn10300_andsi3): Merge...
29182         (andsi3): ... here.
29183         (*andsi3_flags): New.
29184         (andsi3 splitters): New.
29185         (*am33_iorsi3, *mn10300_iorsi3): Merge...
29186         (iorsi3): ... here.
29187         (*iorsi3_flags): New.
29188         (*am33_xorsi3, *mn10300_xorsi3): Merge...
29189         (xorsi3): ... here.
29190         (*xorsi3_flags): New.
29191         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
29192         (one_cmplsi2): ... here.
29193         (*one_cmplsi2_flags): New.
29194         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
29195         instead of "dax" in constraints.  Use mn10300_split_cbranch.
29196         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
29197         use matching constraints to eliminate a self-comparison.
29198         (*integer_conditional_branch): Rename from integer_conditional_branch.
29199         Use int_mode_flags to match CC_REG.
29200         (*cbranchsi4_btst, *btstsi): New.
29201         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
29202         mn10300_split_cbranch.
29203         (*am33_cmpsf): Rename from am33_cmpsf.
29204         (*float_conditional_branch): Rename from float_conditional_branch.
29205         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
29206         (zero_extendqisi2): ... here.
29207         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
29208         (zero_extendhisi2): ... here.
29209         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
29210         (extendqisi2): ... here.
29211         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
29212         (extendhisi2): ... here.
29213         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
29214         (ashlsi3): ... here.
29215         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
29216         (lshrsi3): ... here.
29217         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
29218         (ashrsi3): ... here.
29219         (consecutive add peephole): Remove.
29220         * config/mn10300/predicates.md (label_ref_operand): New.
29221         (int_mode_flags): New.
29222         (CCZN_comparison_operator): New.
29223
29224         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
29225         (throughput_42_latency_43): New reservation.
29226         (mulsidi3, umulsidi3): New expanders.
29227         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
29228         the MDR register to allocation; separately allocate the low and
29229         high parts of the DImode result.
29230         (umulsidi3_internal): Similarly.
29231         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
29232         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
29233         (udivsi3, umodsi3): Remove.
29234         (udivmodsi4, divmodsi4): New expanders.
29235         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
29236         (*divmodsi4): Simiarly.
29237         (ext_internal): New.
29238
29239         * config/mn10300/constraints.md ("z"): New constraint.
29240         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
29241         (FIXED_REGISTERS): Don't fix MDR.
29242         (CALL_USED_REGSITERS): Reformat nicely.
29243         (REG_ALLOC_ORDER): Add MDR.
29244         (enum regclass): Add MDR_REGS.
29245         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
29246         (IRA_COVER_CLASSES): Add MDR_REGS.
29247         (REGNO_REG_CLASS): Handle MDR_REG.
29248         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
29249         (mn10300_register_move_cost): Likewise.
29250         * config/mn10300/mn10300.md (MDR_REG): New.
29251         (*movsi_internal): Handle moves to/from MDR_REGS.
29252
29253         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
29254         POST_MODIFY.
29255         (mn10300_secondary_reload): Tidy combination reload classes.
29256         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
29257         addresses for AM33.  Allow symbolic offsets for reg+imm.
29258         (mn10300_regno_in_class_p): New.
29259         (mn10300_legitimize_reload_address): New.
29260         * config/mn10300/mn10300.h (enum reg_class): Remove
29261         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
29262         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
29263         SP_OR_GENERAL_REGS.
29264         (REG_CLASS_NAMES): Update to match.
29265         (REG_CLASS_CONTENTS): Likewise.
29266         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
29267         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
29268         (REGNO_IN_RANGE_P): Remove.
29269         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
29270         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
29271         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
29272         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
29273         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
29274         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
29275         (REGNO_GENERAL_P): New.
29276         (HAVE_POST_MODIFY_DISP): New.
29277         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
29278         (LEGITIMIZE_RELOAD_ADDRESS): New.
29279         * config/mn10300/mn10300-protos.h: Update.
29280
29281         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
29282         DATA_REGS for AM33 stack-pointer destination.
29283         (mn10300_preferred_output_reload_class): Likewise.
29284         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
29285         into a form appropriate for ...
29286         (TARGET_SECONDARY_RELOAD): New.
29287         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
29288         * config/mn10300/mn10300-protos.h: Update.
29289         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
29290         reload_insi; use the "A" constraint for the scratch; handle AM33
29291         moves of sp to non-address registers.
29292
29293         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
29294         (*movqi_internal): ... here.
29295         (*am33_movhi, *mn10300_movhi): Merge into...
29296         (*movhi_internal): ... here.
29297         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
29298         as the source/destination of moves from/to SP.
29299         (movsf): Only allow for AM33-2.
29300         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
29301         any integer constant constraint.  Only allow for AM33-2.  Tidy
29302         all of the alternative outputs.
29303         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
29304         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
29305         for MN103.
29306         (udivsi3, umodsi3): New patterns for MN103 only.
29307
29308 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
29309
29310         * doc/tm.texi.in: Spell out that a lack of register class unions
29311         can lead to ICEs.
29312         * doc/tm.texi: Regenerate.
29313
29314 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
29315
29316         PR rtl-optimization/47337
29317         * dce.c (check_argument_store): New function.
29318         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
29319
29320         PR tree-optimization/47290
29321         * tree-eh.c (infinite_empty_loop_p): New function.
29322         (cleanup_empty_eh): Use it.
29323
29324 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
29325
29326         PR target/46997
29327         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
29328         (a64_expand_widen_sum): Ditto.
29329         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
29330         (vec_extract_evenodd_help): Ditto.
29331         (vec_extract_evenv4hi): Ditto.
29332         (vec_extract_oddv4hi): Ditto.
29333         (vec_extract_evenv2si): Ditto.
29334         (vec_extract_oddv2si): Ditto.
29335         (vec_extract_evenv2sf): Ditto.
29336         (vec_extract_oddv2sf): Ditto.
29337         (vec_pack_trunc_v4hi: Ditto.
29338         (vec_pack_trunc_v2si): Ditto.
29339         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
29340         (vec_interleave_highv8qi): Ditto.
29341         (mix1_r): Ditto.
29342         (vec_extract_oddv8qi): Ditto.
29343         (vec_interleave_lowv4hi): Ditto.
29344         (vec_interleave_highv4hi): Ditto.
29345         (vec_interleave_lowv2si): Ditto.
29346         (vec_interleave_highv2si): Ditto.
29347
29348 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
29349
29350         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
29351         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
29352         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
29353         (pa_c_mode_for_suffix): New.
29354         (TARGET_EXPAND_BUILTIN): Define.
29355         (TARGET_C_MODE_FOR_SUFFIX): Define.
29356         (pa_builtins): Define.
29357         (pa_init_builtins): Register __float128 type and init new support
29358         builtins.
29359         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
29360         * config/pa/quadlib.c (_U_Qfcopysign): New.
29361
29362 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
29363
29364         PR middle-end/46894
29365         * explow.c (allocate_dynamic_stack_space): Do not assume more than
29366         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
29367         are defined.
29368
29369 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
29370
29371         PR tree-optimization/47179
29372         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
29373         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
29374
29375 2011-01-18  Richard Guenther  <rguenther@suse.de>
29376
29377         PR rtl-optimization/47216
29378         * emit-rtl.c: Include tree-flow.h.
29379         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
29380         of replicating it with different semantics.
29381         * Makefile.in (emit-rtl.o): Adjust.
29382
29383 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
29384
29385         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
29386         (cortex_a9_dp): Handle neon types correctly.
29387
29388 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
29389
29390         PR rtl-optimization/47299
29391         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
29392         subtarget.  Use normal multiplication if both operands are constants.
29393         * expmed.c (expand_widening_mult): Don't try to optimize constant
29394         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
29395         before using it.
29396
29397 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
29398
29399         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
29400         spacing after 'e.g.', typos, comma, hyphenation.
29401
29402 2011-01-17  Richard Henderson  <rth@redhat.com>
29403
29404         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
29405         (rx_restricted_mem_operand): New.
29406         (rx_shift_operand): Use register_operand.
29407         (rx_source_operand, rx_compare_operand): Likewise.
29408         * config/rx/rx.md (addsi3_flags): New expander.
29409         (adddi3): Rewrite as expander.
29410         (adc_internal, *adc_flags, adddi3_internal): New patterns.
29411         (subsi3_flags): New expander.
29412         (subdi3): Rewrite as expander.
29413         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
29414
29415         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
29416         (rx_init_builtins): Remove sat builtin.
29417         (rx_expand_builtin): Likewise.
29418         * config/rx/rx.md (ssaddsi3): New.
29419         (*sat): Rename from sat.  Represent the CC_REG input.
29420
29421         * config/rx/predicates.md (rshift_operator): New.
29422         * config/rx/rx.c (rx_expand_insv): Remove.
29423         * config/rx/rx-protos.h: Update.
29424         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
29425         operand to the canonical position.
29426         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
29427         (*bitclr, *bitclr_in_memory): Similarly.
29428         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
29429         (insv): Retain the zero_extract in the expansion.
29430
29431         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
29432         (bswaphi2, bitinvert, revw): Likewise.
29433
29434         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
29435         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
29436         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
29437         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
29438         (bitset, bitset_in_memory): Likewise.
29439         (bitinvert, bitinvert_in_memory): Likewise.
29440         (bitclr, bitclr_in_memory): Likewise.
29441         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
29442         (rx_strend, rx_cmpstrn): Likewise.
29443         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
29444         (bitop peep2 patterns): Remove.
29445
29446         * config/rx/rx.c (rx_match_ccmode): New.
29447         * config/rx/rx-protos.h: Update.
29448         * config/rx/rx.md (abssi2): Clobber, don't set flags.
29449         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
29450         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
29451         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
29452         (fix_truncsfsi2, floatsisf2): Likewise.
29453         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
29454         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
29455         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
29456         (*subsi3_flags, *xorsi3_flags): New.
29457
29458         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
29459
29460         * config/rx/rx.c (rx_print_operand): Remove workaround for
29461         unsplit comparison operations.
29462
29463         * config/rx/rx.md (movsicc): Split after reload.
29464         (*movsicc): Merge *movsieq and *movsine via match_operator.
29465         (*stcc): New pattern.
29466
29467         * config/rx/rx.c (rx_float_compare_mode): Remove.
29468         * config/rx/rx.h (rx_float_compare_mode): Remove.
29469         * config/rx/rx.md (cstoresi4): Split after reload.
29470         (*sccc): New pattern.
29471
29472         * config/rx/predicates.md (label_ref_operand): New.
29473         (rx_z_comparison_operator): New.
29474         (rx_zs_comparison_operator): New.
29475         (rx_fp_comparison_operator): New.
29476         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
29477         Validate that the flags are set properly for the comparison.
29478         (rx_gen_cond_branch_template): Remove.
29479         (rx_cc_modes_compatible): Remove.
29480         (mode_from_flags): New.
29481         (flags_from_code): Rename from flags_needed_for_conditional.
29482         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
29483         (rx_select_cc_mode): Likewise.
29484         (rx_split_fp_compare): New.
29485         (rx_split_cbranch): New.
29486         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
29487         (*cbranchsi4): Use match_operator and rx_split_cbranch.
29488         (*cbranchsf4): Similarly.
29489         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
29490         match_operator and rx_split_cbranch.
29491         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
29492         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
29493         (*cmpsi): Rename from cmpsi.
29494         (*tstsi): Rename from tstsi.
29495         (*cmpsf): Rename from cmpsf; use CC_Fmode.
29496         (*conditional_branch): Rename from conditional_branch.
29497         (*reveresed_conditional_branch): Remove.
29498         (b<code>): Remove expander.
29499         * config/rx/rx-protos.h: Update.
29500
29501         * config/rx/rx.c (rx_compare_redundant): Remove.
29502         * config/rx/rx.md (cmpsi): Don't use it.
29503         * config/rx/rx-protos.h: Update.
29504
29505         * config/rx/rx-modes.def (CC_F): New mode.
29506         * config/rx/rx.c (rx_select_cc_mode): New.
29507         * config/rx/rx.h (SELECT_CC_MODE): Use it.
29508         * config/rx/rx-protos.h: Update.
29509
29510 2011-01-17  Richard Henderson  <rth@redhat.com>
29511
29512         * except.c (dump_eh_tree): Fix stray ; after for statement.
29513
29514 2011-01-17  Richard Guenther  <rguenther@suse.de>
29515
29516         PR tree-optimization/47313
29517         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
29518         handling before copying the body.  Properly deal with
29519         by-reference result in SSA form.
29520
29521 2011-01-17  Ian Lance Taylor  <iant@google.com>
29522
29523         PR target/47219
29524         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
29525         (struct_value_alias_set): Don't define.
29526         (sparc_option_override): Don't set sparc_sr_alias_set and
29527         struct_value_alias_set.
29528         (save_or_restore_regs): Use gen_frame_mem rather than calling
29529         set_mem_alias_set.
29530         (sparc_struct_value_rtx): Likewise.
29531
29532 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
29533
29534         PR target/47318
29535         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
29536         (_mm_maskstore_pd): Likewise.
29537         (_mm_maskload_ps): Likewise.
29538         (_mm_maskstore_ps): Likewise.
29539         (_mm256_maskload_pd): Change mask to __m256i.
29540         (_mm256_maskstore_pd): Likewise.
29541         (_mm256_maskload_ps): Likewise.
29542         (_mm256_maskstore_ps): Likewise.
29543
29544         * config/i386/i386-builtin-types.def: Updated.
29545         (ix86_expand_special_args_builtin): Likewise.
29546
29547         * config/i386/i386.c (bdesc_special_args): Update
29548         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
29549         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
29550         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
29551         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
29552
29553         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
29554         Use <avxpermvecmode> on mask register.
29555         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
29556
29557 2011-01-17  Olivier Hainque  <hainque@adacore.com>
29558             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
29559             Eric Botcazou  <ebotcazou@adacore.com>
29560
29561         PR target/46655
29562         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
29563         if <= USHRT_MAX in 32-bit mode.
29564
29565 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
29566
29567         * doc/install.texi (Configuration, Specific): Wrap long
29568         lines in examples.  Allow line wrapping in long options
29569         and URLs where beneficial for PDF output.
29570
29571 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
29572
29573         * config/mips/mips.c (mips_classify_symbol): Don't return
29574         SYMBOL_PC_RELATIVE for nonlocal labels.
29575
29576 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
29577
29578         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
29579
29580 2011-01-15  Jan Hubicka  <jh@suse.cz>
29581
29582         PR tree-optimization/47276
29583         * ipa.c (function_and_variable_visibility): Do not try to mark alias
29584         declarations as needed.
29585
29586 2011-01-15  Martin Jambor  <mjambor@suse.cz>
29587
29588         * common.opt (fdevirtualize): New flag.
29589         * doc/invoke.texi (Option Summary): Document it.
29590         * opts.c (default_options_table): Add devirtualize flag.
29591         * ipa-prop.c (detect_type_change): Return immediately if
29592         devirtualize flag is not set.
29593         (detect_type_change_ssa): Likewise.
29594         (compute_known_type_jump_func): Likewise.
29595         (ipa_analyze_virtual_call_uses): Likewise.
29596
29597 2011-01-14  Martin Jambor  <mjambor@suse.cz>
29598
29599         PR tree-optimization/45934
29600         PR tree-optimization/46302
29601         * ipa-prop.c (type_change_info): New type.
29602         (stmt_may_be_vtbl_ptr_store): New function.
29603         (check_stmt_for_type_change): Likewise.
29604         (detect_type_change): Likewise.
29605         (detect_type_change_ssa): Likewise.
29606         (compute_complex_assign_jump_func): Check for dynamic type change.
29607         (compute_complex_ancestor_jump_func): Likewise.
29608         (compute_known_type_jump_func): Likewise.
29609         (compute_scalar_jump_functions): Likewise.
29610         (ipa_analyze_virtual_call_uses): Likewise.
29611         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
29612
29613 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
29614
29615         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
29616         * config/i386/i386.opt (msse5): New Alias.
29617
29618 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
29619
29620         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
29621         * config/sparc/linux64.h (CC1_SPEC): Likewise.
29622         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
29623         * config/sparc/sparc.h (CC1_SPEC): Likewise.
29624
29625 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
29626
29627         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
29628         -mcpu options.
29629         * config/sparc/linux64.h (CC1_SPEC): Likewise.
29630         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
29631         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
29632         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
29633         Likewise.
29634         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
29635
29636 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
29637
29638         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
29639
29640 2011-01-14  Mike Stump  <mikestump@comcast.net>
29641
29642         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
29643         * config/fr30/fr30.md: Likweise
29644         (movsi_push): Likewise.
29645         (movsi_pop): Likewise.
29646         (enter_func): Likewise.
29647         * config/moxie/moxie.md (movsi_push): Likewise.
29648         (movsi_pop): Likewise.
29649
29650 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
29651
29652         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
29653         %{no_archive} %{exact_version}.
29654         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
29655         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
29656         %{no_archive} %{exact_version}.
29657         * config/mips/openbsd.h (LINK_SPEC): Likewise.
29658         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
29659         * config/mips/vxworks.h: Likewise.
29660
29661 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
29662
29663         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
29664
29665 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
29666
29667         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
29668         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
29669
29670 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
29671
29672         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
29673         -nodefaultlib.
29674
29675 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
29676
29677         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
29678         for mcpu not cpu.
29679         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
29680         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
29681         not cpu.
29682         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
29683         Don't handle -shlib.
29684
29685 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
29686
29687         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
29688         (CC1_SPEC): Don't handle -profile.
29689
29690 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
29691
29692         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
29693         * config/mips/mips.h (CC1_SPEC): Likewise.
29694
29695 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
29696
29697         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
29698         * config/mips/mips.h (CC1_SPEC): Likewise.
29699
29700 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
29701
29702         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
29703         * config/m32r/linux.h (LINK_SPEC): Likewise.
29704         * config/mips/linux.h (LINK_SPEC): Likewise.
29705         * config/mips/linux64.h (LINK_SPEC): Likewise.
29706         * config/sparc/linux.h (LINK_SPEC): Likewise.
29707         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
29708         LINK_SPEC): Likewise.
29709         * config/xtensa/linux.h (LINK_SPEC): Likewise.
29710
29711 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
29712
29713         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
29714         %{version:-v}.
29715         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
29716
29717 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
29718
29719         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
29720         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
29721
29722 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
29723
29724         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
29725
29726 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29727
29728         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
29729         supports -Bstatic/-Bdynamic.
29730         * configure: Regenerate.
29731
29732 2011-01-14  Jan Hubicka  <jh@suse.cz>
29733             Jack Howarth  <howarth@bromo.med.uc.edu>
29734
29735         PR target/46037
29736         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
29737         when checking debug_info_level. Test write_symbols instead of
29738         debug_hooks->var_location when setting flag_var_tracking_uninit.
29739
29740 2011-01-14  Richard Guenther  <rguenther@suse.de>
29741
29742         PR tree-optimization/47179
29743         * target.def (ref_may_alias_errno): New target hook.
29744         * targhooks.h (default_ref_may_alias_errno): Declare.
29745         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
29746         (default_ref_may_alias_errno): New function.
29747         * target.h (struct ao_ref_s): Declare.
29748         * tree-ssa-alias.c: Include target.h.
29749         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
29750         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
29751         (targhooks.o): Likewise.
29752         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
29753         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
29754
29755 2011-01-14  Richard Guenther  <rguenther@suse.de>
29756
29757         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
29758
29759 2011-01-14  Richard Guenther  <rguenther@suse.de>
29760
29761         PR tree-optimization/47280
29762         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
29763         return CFG changes.
29764         (tree_ssa_forward_propagate_single_use_vars): Deal with
29765         CFG changes from associate_plusminus.
29766
29767 2011-01-14  Richard Guenther  <rguenther@suse.de>
29768
29769         PR middle-end/47281
29770         Revert
29771         2011-01-11  Richard Guenther  <rguenther@suse.de>
29772
29773         PR tree-optimization/46076
29774         * tree-ssa.c (useless_type_conversion_p): Conversions from
29775         unprototyped to empty argument list function types are useless.
29776
29777 2011-01-14  Richard Guenther  <rguenther@suse.de>
29778
29779         PR tree-optimization/47286
29780         * tree-ssa-structalias.c (new_var_info): Register variables are global.
29781
29782 2011-01-14  Martin Jambor  <mjambor@suse.cz>
29783
29784         PR middle-end/46823
29785         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
29786
29787 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
29788
29789         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
29790         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
29791         * config/xtensa/xtensa.c (xtensa_libcall_value,
29792         xtensa_function_value_regno_p): New functions.
29793         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
29794
29795 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
29796
29797         PR c++/47213
29798         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
29799         PE specific hook.
29800         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
29801         New function prototype.
29802         * config/i386/winnt.c (i386_pe_assemble_visibility):
29803         Warn only if attribute was specified by user.
29804
29805 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
29806
29807         PR target/47251
29808         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
29809         floating point.
29810         (floatunsdidf2_fcfidu): Ditto.
29811
29812 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
29813
29814         * config/s390/s390.c (print_operand_address): Replace 'error' with
29815         'output_operand_lossage'.
29816         (print_operand): Likewise.
29817
29818 2011-01-13  Jeff Law  <law@redhat.com>
29819
29820         PR rtl-optimization/39077
29821         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
29822         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
29823         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
29824         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
29825         * gcse.c (prune_insertions_deletions): New function.
29826         (compute_pre_data): Use it.
29827
29828 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
29829
29830         PR debug/PR46973
29831         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
29832         static function.
29833         (prune_unused_types_mark): Use it.
29834
29835 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
29836
29837         PR rtl-optimization/45352
29838         * sel-sched.c: Update copyright years.
29839         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
29840         in the advancing loop when we have issued issue_rate insns.
29841
29842 2011-01-12  Richard Henderson  <rth@redhat.com>
29843
29844         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
29845         (TARGET_MD_ASM_CLOBBERS): New.
29846
29847         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
29848         (TARGET_DELEGITIMIZE_ADDRESS): New.
29849
29850         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
29851         (clzsi2, *bsch): New patterns.
29852
29853         * config/mn10300/mn10300.md (INT): New mode iterator.
29854         (*mov<INT>_clr): New pattern, and peep2 to generate it.
29855
29856         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
29857         flag_split_wide_types.
29858
29859         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
29860         (mn10300_trampoline_init): Rewrite without a template, an immediate
29861         load and a direct branch.
29862         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
29863
29864 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
29865
29866         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
29867         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
29868         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
29869         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
29870
29871 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
29872
29873         PR debug/47209
29874         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
29875         of type.
29876
29877 2011-01-12  Jan Hubicka  <jh@suse.cz>
29878
29879         PR driver/47244
29880         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
29881         (PLUGIN_COND_CLOSE): New macro.
29882         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
29883
29884 2011-01-12  Richard Guenther  <rguenther@suse.de>
29885
29886         PR lto/47259
29887         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
29888         register variables in a MEM_REF.
29889
29890 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
29891
29892         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
29893         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
29894         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
29895         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
29896         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
29897         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
29898         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
29899         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
29900         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
29901         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
29902         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
29903         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
29904         * config/gnu-user.h: New.  Copied from linux.h.
29905         (LINUX_TARGET_STARTFILE_SPEC): Rename to
29906         GNU_USER_TARGET_STARTFILE_SPEC.
29907         (LINUX_TARGET_ENDFILE_SPEC): Rename to
29908         GNU_USER_TARGET_ENDFILE_SPEC.
29909         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
29910         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
29911         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
29912         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
29913         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
29914         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
29915         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
29916         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
29917         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
29918         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
29919         * config/arm/linux-eabi.h (CC1_SPEC): Use
29920         GNU_USER_TARGET_CC1_SPEC.
29921         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
29922         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
29923         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
29924         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
29925         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
29926         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
29927         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
29928         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
29929
29930 2011-01-12  Richard Guenther  <rguenther@suse.de>
29931
29932         PR other/46946
29933         * doc/invoke.texi (ffast-math): Document it is turned on
29934         with -Ofast.
29935
29936 2011-01-12  Jan Hubicka  <jh@suse.cz>
29937
29938         PR tree-optimization/47233
29939         * opts.c (common_handle_option): Disable ipa-reference with profile
29940         feedback.
29941
29942 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
29943
29944         * c-parser.c (c_parser_objc_at_property_declaration): Improved
29945         error message.
29946
29947 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
29948
29949         * c-parser.c (c_lex_one_token): Updated and reindented some
29950         comments.  No changes in code.
29951
29952 2011-01-11  Ian Lance Taylor  <iant@google.com>
29953
29954         * godump.c (go_output_var): Don't output the variable if there is
29955         already a type with the same name.
29956
29957 2011-01-11  Ian Lance Taylor  <iant@google.com>
29958
29959         * godump.c (go_format_type): Don't generate float80.
29960
29961 2011-01-11  Richard Henderson  <rth@redhat.com>
29962
29963         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
29964         declaration.  Rewrite for both speed and size.
29965         (mn10300_address_cost_1): Remove.
29966         (mn10300_register_move_cost): New.
29967         (mn10300_memory_move_cost): New.
29968         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
29969         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
29970         extensions, shifts, BSWAP, CLZ.
29971         (mn10300_wide_const_load_uses_clr): Remove.
29972         (TARGET_REGISTER_MOVE_COST): New.
29973         (TARGET_MEMORY_MOVE_COST): New.
29974         * config/mn10300/mn10300-protos.h: Update.
29975         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
29976
29977         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
29978         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
29979         * config/mn10300/mn10300-protos.h: Update.
29980         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
29981         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
29982         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
29983         (*test_int_bitfield, *test_byte_bitfield): Remove.
29984         (*bit_test, *subreg_bit_test): Remove.
29985         * config/mn10300/predicates.md (const_8bit_operand): Remove.
29986
29987         * config/mn10300/constraints.md ("c"): Rename from "A".
29988         ("A", "D"): New constraint letters.
29989         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
29990         (fmssf4, fnmasf4, fnmssf4): Likewise.
29991
29992         * config/mn10300/mn10300.md (isa): New attribute.
29993         (enabled): New attribute.
29994
29995         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
29996         (abssf2, negsf2): Define only for hardware fp.
29997         (sqrtsf2): Reformat.
29998         (addsf3, subsf3, mulsf3): Merge expander and insn.
29999
30000         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
30001         (DEBUGGER_AUTO_OFFSET): Remove.
30002         (DEBUGGER_ARG_OFFSET): Remove.
30003
30004         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
30005         Emit register stores with the same offsets as the hardware.
30006         (mn10300_store_multiple_operation): Don't check that the register
30007         save offsets are monotonic.
30008         * config/mn10300/mn10300-protos.h: Update.
30009
30010         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
30011
30012         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
30013         in terms of the value on the stack, not the MDR register.
30014
30015 2011-01-11  Jan Hubicka  <jh@suse.cz>
30016
30017         PR lto/45721
30018         PR lto/45375
30019         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
30020         (symbol_alias_set_destroy, symbol_alias_set_contains,
30021         propagate_aliases_backward): Declare.
30022         * lto-streamer-out.c (struct sets): New sturcture.
30023         (trivally_defined_alias): New function.
30024         (output_alias_pair_p): Rewrite.
30025         (output_unreferenced_globals): Fix output of alias pairs.
30026         (produce_symtab): Likewise.
30027         * ipa.c (function_and_variable_visibility): Set weak alias destination
30028         as needed in lto.
30029         * varasm.c (symbol_alias_set_t): Remove.
30030         (symbol_alias_set_destroy): Export.
30031         (propagate_aliases_forward, propagate_aliases_backward): New functions
30032         based on ...
30033         (compute_visible_aliases): ... this one; remove.
30034         (trivially_visible_alias): New
30035         (trivially_defined_alias): New.
30036         (remove_unreachable_alias_pairs): Rewrite.
30037         (finish_aliases_1): Reorganize code checking if alias is defined.
30038         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
30039         in LTO mode.
30040
30041 2011-01-11  Richard Guenther  <rguenther@suse.de>
30042
30043         PR tree-optimization/46076
30044         * tree-ssa.c (useless_type_conversion_p): Conversions from
30045         unprototyped to empty argument list function types are useless.
30046
30047 2011-01-11  Richard Guenther  <rguenther@suse.de>
30048
30049         PR middle-end/45235
30050         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
30051         volatile MEMs as MEM_READONLY_P.
30052
30053 2011-01-11  Richard Guenther  <rguenther@suse.de>
30054
30055         PR tree-optimization/47239
30056         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
30057
30058 2011-01-11  Jeff Law  <law@redhat.com>
30059
30060         PR tree-optimization/47086
30061         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
30062         IVs from statements that might throw.
30063
30064 2011-01-10  Jan Hubicka  <jh@suse.cz>
30065
30066         PR lto/45375
30067         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
30068
30069 2011-01-10  Jan Hubicka  <jh@suse.cz>
30070
30071         PR lto/45375
30072         * profile.c (read_profile_edge_counts): Ignore profile inconistency
30073         when correcting profile.
30074
30075 2011-01-10  Jan Hubicka  <jh@suse.cz>
30076
30077         PR lto/46083
30078         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
30079         DECL_FINI_PRIORITY.
30080         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
30081         Restore DECL_FINI_PRIORITY.
30082
30083 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
30084
30085         * doc/gimple.texi: Fix quoting of multi-word return values in
30086         @deftypefn statements.  Ensure presence of return value.  Wrap
30087         overlong @deftypefn lines.
30088         (is_gimple_operand, is_gimple_min_invariant_address): Remove
30089         descriptions of removed functions.
30090         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
30091         of multi-word return value in @deftypefn statement.
30092
30093 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
30094
30095         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
30096         (Conditional Expressions, Logical Operators)
30097         (Statement and operand traversals): Do not indent smallexample
30098         code.  Fix duplicate function argument in example.
30099
30100 2011-01-10  Jeff Law  <law@redhat.com>
30101
30102         PR tree-optimization/47141
30103         * ipa-split.c (split_function): Handle case where we are
30104         returning a value and the return block has a virtual operand phi.
30105
30106 2011-01-10  Jan Hubicka  <jh@suse.cz>
30107
30108         PR tree-optimization/47234
30109         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
30110         (pass_feedback_split_functions): Declare.
30111         * passes.c (init_optimization_passes): Add ipa-split as subpass of
30112         tree-profile.
30113         * ipa-split.c (gate_split_functions): Update comments; disable
30114         split-functions for profile_arc_flag and branch_probabilities.
30115         (gate_feedback_split_functions): New function.
30116         (execute_feedback_split_functions): New function.
30117         (pass_feedback_split_functions): New global var.
30118
30119 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
30120
30121         PR lto/46760
30122         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
30123         calling gimple_call_set_cannot_inline.
30124
30125 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
30126
30127         * config/darwin-sections.def: Remove unused section.
30128
30129 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
30130
30131         PR c++/47218
30132         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
30133
30134 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
30135
30136         PR objc/47232
30137         * c-parser.c (c_parser_declaration_or_fndef): Improved
30138         error message.
30139
30140 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
30141
30142         * config/i386/winnt.c (i386_pe_start_function): Make sure
30143         to switch back to function's section.
30144
30145 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
30146
30147         PR gcc/46902
30148         PR testsuite/46912
30149         * plugin.c: Move include of dlfcn.h from here...
30150         * system.h: ... to here.
30151
30152 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
30153
30154         * doc/cpp.texi (C++ Named Operators): Fix markup for header
30155         file name.
30156         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
30157         two extra empty pages in PDF output.
30158
30159 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
30160
30161         PR objc/47078
30162         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
30163         for error recovery purposes behave as if it was not specified so
30164         that the default type is usd.
30165
30166 2011-01-07  Jan Hubicka  <jh@suse.cz>
30167
30168         PR tree-optmization/46469
30169         * ipa.c (function_and_variable_visibility): Clear needed flags on
30170         nodes with external decls; handle weakrefs merging correctly.
30171
30172 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
30173
30174         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
30175         not false.
30176
30177 2011-01-07  Jan Hubicka  <jh@suse.cz>
30178
30179         * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
30180         and no longer claim that gold is required for linker plugin.
30181         * configure: Regenerate.
30182         * gcc.c (PLUGIN_COND): New macro.
30183         (LINK_COMMAND_SPEC): Use it.
30184         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
30185         * config.in (HAVE_LTO_PLUGIN): New.
30186         * configure.ac (--with-lto-plugin): New parameter; autodetect
30187         HAVE_LTO_PLUGIN.
30188
30189 2011-01-07  Jan Hubicka  <jh@suse.cz>
30190
30191         PR tree-optimization/46367
30192         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
30193         when we can update original.
30194         (cgraph_mark_inline_edge): Sanity check.
30195         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
30196
30197 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30198
30199         * config/spu/spu.h (ASM_COMMENT_START): Define.
30200
30201 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
30202
30203         PR driver/42445
30204         * gcc.c (%>S): New.
30205         (SWITCH_KEEP_FOR_GCC): Likewise.
30206         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
30207         (do_spec_1): Handle "%>".
30208
30209         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
30210
30211 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
30212
30213         PR target/47201
30214         * config/i386/i386.c (ix86_delegitimize_address): If
30215         simplify_gen_subreg fails, return orig_x.
30216
30217         PR bootstrap/47187
30218         * value-prof.c (gimple_stringop_fixed_value): Handle
30219         lhs of the call properly.
30220
30221 2011-01-07  Jan Hubicka  <jh@suse.cz>
30222
30223         PR lto/45375
30224         * lto-opt.c (lto_reissue_options): Set flag_shlib.
30225
30226 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
30227
30228         * target.def (function_switched_text_sections): New hook.
30229         * doc/tm.texi: Regenerated.
30230         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
30231         * final.c (default_function_switched_text_sections): New.
30232         (final_scan_insn): Call function_switched_text_sections when a
30233         mid-function section change occurs.
30234         * output.h (default_function_switched_text_sections): Declare.
30235         * config/darwin-protos.h (darwin_function_switched_text_sections):
30236         Likewise.
30237         * config/darwin.c (darwin_function_switched_text_sections): New.
30238         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
30239
30240 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
30241
30242         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
30243         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
30244         the secondary code fragment when outputting for DWARF == 2.
30245
30246 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
30247
30248         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
30249         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
30250         Remove.
30251         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
30252         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
30253
30254 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
30255
30256         PR debug/46704
30257         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
30258         when it is not empty.
30259
30260 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
30261
30262         Bobcat Enablement
30263         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
30264         (case ${target}): Add btver1.
30265         * config/i386/driver-i386.c (host_detect_local_cpu): Let
30266         -march=native recognize btver1 processors.
30267         * config/i386/i386-c.c (ix86_target_macros_internal): Add
30268         btver1 def_and_undef
30269         * config/i386/i386.c (struct processor_costs btver1_cost): New
30270         btver1 cost table.
30271         (m_BTVER1): New definition.
30272         (m_AMD_MULTIPLE): Includes m_BTVER1.
30273         (initial_ix86_tune_features): Add btver1 tune.
30274         (processor_target_table): Add btver1 entry.
30275         (static const char *const cpu_names): Add btver1 entry.
30276         (software_prefetching_beneficial_p): Add btver1.
30277         (ix86_option_override_internal): Add btver1 instruction sets.
30278         (ix86_issue_rate): Add btver1.
30279         (ix86_adjust_cost): Add btver1.
30280         * config/i386/i386.h (TARGET_BTVER1): New definition.
30281         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
30282         (enum processor_type): Add PROCESSOR_BTVER1.
30283         * config/i386/i386.md (define_attr "cpu"): Add btver1.
30284
30285 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30286
30287         PR target/43309
30288         * config/i386/i386.c (legitimize_tls_address)
30289         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
30290         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
30291         (tls_initial_exec_64_sun): New pattern.
30292
30293 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
30294
30295         * doc/invoke.texi (Overall Options): Improve wording and markup
30296         of the description of -wrapper.
30297
30298 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
30299
30300         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
30301         rdynamic, threads): New Driver options.
30302
30303 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30304
30305         PR target/38118
30306         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
30307         if coming from .tdata.
30308         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
30309
30310 2011-01-06  Jan Hubicka  <jh@suse.cz>
30311
30312         PR lto/47188
30313         * collect2.c (main): Do not enable LTOmode when plugin is active.
30314
30315 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30316
30317         PR other/45915
30318         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
30319         --version output if supported.
30320         * configure: Regenerate.
30321
30322 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
30323
30324         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
30325         Driver options.
30326
30327 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
30328
30329         PR c/47150
30330         * c-convert.c (convert): When converting a complex expression
30331         other than COMPLEX_EXPR to a different complex type, ensure
30332         c_save_expr is called instead of save_expr, unless in_late_binary_op.
30333         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
30334         when converting COMPLEX_TYPE.
30335
30336 2011-01-06  Ira Rosen  <irar@il.ibm.com>
30337
30338         PR tree-optimization/47139
30339         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
30340         only the last reduction value is used outside the loop.  Update
30341         documentation.
30342
30343 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
30344
30345         * config/rtems.opt: New.
30346         * config.gcc (*-*-rtems*): Use rtems.opt.
30347
30348 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
30349
30350         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
30351         processors do not support 3DNow instructions.
30352
30353 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30354
30355         * config/spu/spu.c (spu_option_override): Set parameter
30356         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
30357
30358 2011-01-05  Jan Hubicka  <jh@suse.cz>
30359
30360         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
30361         at the command line.
30362
30363 2011-01-05  Martin Jambor  <mjambor@suse.cz>
30364
30365         PR lto/47162
30366         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
30367         deltas on streamed outgoing edges.
30368         (output_node_opt_summary): Output info for outgoing edges only when
30369         the node is in new parameter set.
30370         (output_cgraph_opt_summary): New parameter set, passed to the two
30371         aforementioned functions.  Update its forward declaration and its
30372         callee too.
30373
30374 2011-01-05  Tom Tromey  <tromey@redhat.com>
30375
30376         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
30377         operator to c_finish_omp_atomic.
30378         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
30379         (build_unary_op): Update.
30380         (build_modify_expr): Update.
30381         (build_asm_expr): Update.
30382
30383 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30384
30385         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
30386         newly inserted insns.
30387         (pad_bb): Likewise.
30388         (spu_emit_branch_hint): Likewise.
30389         (insert_hbrp_for_ilb_runout): Likewise.
30390         (spu_machine_dependent_reorg): Call df_finish_pass after
30391         schedule_insns returns.
30392
30393 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30394
30395         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
30396
30397 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
30398
30399         PR tree-optimization/47005
30400         * tree-sra.c (struct access): Add 'non_addressable' bit.
30401         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
30402         (decide_one_param_reduction): Return 0 if the parameter is passed by
30403         reference and one of the accesses in the group is non_addressable.
30404
30405 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
30406
30407         PR tree-optimization/47056
30408         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
30409         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
30410         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
30411
30412 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
30413
30414         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
30415         initializer.  Skip view conversions from aggregate types.
30416
30417 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
30418
30419         PR bootstrap/47055
30420         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
30421
30422 2011-01-04  Philipp Thomas  <pth@suse.de>
30423
30424         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
30425         obvious typo.
30426
30427 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30428
30429         * function.c (thread_prologue_and_epilogue_insns): Do not crash
30430         on empty epilogue sequences.
30431
30432 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
30433
30434         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
30435         non-static): New Driver options.
30436
30437 2011-01-04  Jie Zhang  <jie@codesourcery.com>
30438
30439         PR driver/47137
30440         * gcc.c (default_compilers[]): Set combinable field to 0
30441         for all assembly languages.
30442
30443 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
30444
30445         * config/mips/loongson3a.md: New file.
30446         * config/mips/mips.md: Include loongson3a.md.
30447         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
30448         TUNE_LOONGSON_3A.
30449
30450 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
30451
30452         PR middle-end/47017
30453         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
30454         instead of convert_memory_address_addr_space on the base expression.
30455
30456 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30457
30458         * config/spu/spu.c (spu_option_override): Update error text
30459         for bad -march= / -mtune= values.
30460
30461 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30462
30463         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
30464         if branch-hint optimization will be performed.
30465
30466 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
30467
30468         PR tree-optimization/47148
30469         * ipa-split.c (split_function): Convert arguments to
30470         DECL_ARG_TYPE if possible.
30471
30472         PR tree-optimization/47155
30473         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
30474         when computing uns.
30475
30476         PR rtl-optimization/47157
30477         * combine.c (try_combine): If undobuf.other_insn becomes
30478         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
30479         and set *new_direct_jump_p too.
30480
30481 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
30482
30483         PR tree-optimization/47021
30484         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
30485
30486 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
30487
30488         * gcc.c (process_command): Update copyright notice dates.
30489         * gcov.c (print_version): Likewise.
30490         * gcov-dump.c (print_version): Likewise.
30491         * mips-tfile.c (main): Likewise.
30492         * mips-tdump.c (main): Likewise.
30493
30494 2011-01-03  Martin Jambor  <mjambor@suse.cz>
30495
30496         PR tree-optimization/46801
30497         * tree-sra.c (type_internals_preclude_sra_p): Check whether
30498         aggregate fields start at byte boundary instead of the bit-field flag.
30499
30500 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
30501
30502         PR driver/47137
30503         * gcc.c (main): Revert revision 168407.
30504
30505 2011-01-03  Martin Jambor  <mjambor@suse.cz>
30506
30507         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
30508
30509 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30510
30511         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
30512         vector optab to expand vector/scalar shift, update gimple to vector.
30513
30514 2011-01-03  Martin Jambor  <mjambor@suse.cz>
30515
30516         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
30517         a thunk.
30518
30519 2011-01-03  Martin Jambor  <mjambor@suse.cz>
30520
30521         PR tree-optimization/46984
30522         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
30523         HOST_WIDE_INT.
30524         (cgraph_create_indirect_edge): Fixed line length.
30525         (cgraph_indirect_call_info): Declare.
30526         (cgraph_make_edge_direct) Update declaration.
30527         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
30528         (cgraph_create_indirect_edge): Use it.
30529         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
30530         callees.
30531         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
30532         the new thunk_delta representation.
30533         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
30534         HOST_WIDE_INT.
30535         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
30536         (ipa_read_indirect_edge_info): Likewise.
30537         * lto-cgraph.c (output_edge_opt_summary): New function.
30538         (output_node_opt_summary): Call it on all outgoing edges.
30539         (input_edge_opt_summary): New function.
30540         (input_node_opt_summary): Call it on all outgoing edges.
30541
30542 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
30543
30544         PR driver/47137
30545         * gcc.c (main): Don't check have_o when settting combine_inputs.
30546
30547 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
30548
30549         * regrename.c: Add general comment describing the pass.
30550         (struct du_head): Remove 'length' field.
30551         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
30552         (regrename_optimize): Do not sort chains.  Rework comments, add others.
30553         Force renaming to the preferred class (if any) in the first pass and do
30554         not consider registers that belong to it in the second pass.
30555         (create_new_chain): Do not set 'length' field.
30556         (scan_rtx_reg): Likewise.
30557
30558 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
30559
30560         PR tree-optimization/47140
30561         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
30562         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
30563         to bit_value_binop.
30564
30565         PR rtl-optimization/47028
30566         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
30567         parm_birth_insn instead of at the beginning of first bb.
30568
30569 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
30570
30571         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
30572         Remove the word "see" before "@pxref".
30573         * doc/rtl.texi: Remove the word "see" before "@pxref".
30574
30575 2011-01-01  Jan Hubicka  <jh@suse.cz>
30576
30577         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
30578         memory.
30579
30580 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
30581
30582         PR target/38662
30583         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
30584
30585 \f
30586 Copyright (C) 2011 Free Software Foundation, Inc.
30587
30588 Copying and distribution of this file, with or without modification,
30589 are permitted in any medium without royalty provided the copyright
30590 notice and this notice are preserved.