OSDN Git Service

Fix sparc when assembler lacks support for vis3/fmaf instructions.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-10-12  David S. Miller  <davem@davemloft.net>
2
3         * config/sparc/sparc.h: Do not force TARGET_VIS3 and TARGET_FMAF
4         to zero when assembler lacks support for such instructions.
5         * config/sparc/sparc.c (sparc_option_override): Clear MASK_VIS3
6         and MASK_FMAF in defaults when assembler lacks necessary support.
7
8 2011-10-12  Jakub Jelinek  <jakub@redhat.com>
9
10         * config/i386/sse.md (vec_unpacks_lo_<mode>,
11         vec_unpacks_hi_<mode>, vec_unpacku_lo_<mode>,
12         vec_unpacku_hi_<mode>): Change VI124_128 mode to
13         VI124_AVX2.
14         * config/i386/i386.c (ix86_expand_sse_unpack): Handle
15         V32QImode, V16HImode and V8SImode for TARGET_AVX2.
16
17         * config/i386/sse.md (vec_avx2): New mode_attr.
18         (mulv16qi3): Macroize to cover also mulv32qi3 for
19         TARGET_AVX2 into ...
20         (mul<mode>3): ... this.
21
22         * config/i386/i386.md (UNSPEC_VPERMDI): Remove.
23         * config/i386/i386.c (ix86_expand_vec_perm): Handle
24         V16QImode and V32QImode for TARGET_AVX2.
25         (MAX_VECT_LEN): Increase to 32.
26         (expand_vec_perm_blend): Add support for 32-byte integer
27         vectors with TARGET_AVX2.
28         (valid_perm_using_mode_p): New function.
29         (expand_vec_perm_pshufb): Add support for 32-byte integer
30         vectors with TARGET_AVX2.
31         (expand_vec_perm_vpshufb2_vpermq): New function.
32         (expand_vec_perm_vpshufb2_vpermq_even_odd): New function.
33         (expand_vec_perm_even_odd_1): Handle 32-byte integer vectors
34         with TARGET_AVX2.
35         (ix86_expand_vec_perm_builtin_1): Try expand_vec_perm_vpshufb2_vpermq
36         and expand_vec_perm_vpshufb2_vpermq_even_odd.
37         * config/i386/sse.md (VEC_EXTRACT_EVENODD_MODE): Add for TARGET_AVX2
38         32-byte integer vector modes.
39         (vec_pack_trunc_<mode>): Use VI248_AVX2 instead of VI248_128.
40         (avx2_interleave_highv32qi, avx2_interleave_lowv32qi): Remove pasto.
41         (avx2_pshufdv3, avx2_pshuflwv3, avx2_pshufhwv3): Generate
42         4 new operands.
43         (avx2_pshufd_1, avx2_pshuflw_1, avx2_pshufhw_1): Don't use
44         match_dup, instead add 4 new operands and require they have
45         right cross-lane values.
46         (avx2_permv4di): Change into define_expand.
47         (avx2_permv4di_1): New instruction.
48         (avx2_permv2ti): Use nonimmediate_operand instead of register_operand
49         for "xm" constrained operand.
50         (VEC_PERM_AVX2): Add V32QI and V16QI for TARGET_AVX2.
51
52         * config/i386/sse.md (avx2_gathersi<mode>,
53         avx2_gatherdi<mode>, avx2_gatherdi<mode>256): Add clobber of
54         match_scratch, change memory_operand to register_operand,
55         add (mem:BLK (scratch)) use.
56         (*avx2_gathersi<mode>, *avx2_gatherdi<mode>,
57         *avx2_gatherdi<mode>256): Add clobber of match_scratch,
58         add earlyclobber to the output operand and match_scratch,
59         add (mem:BLK (scratch)) use, change the other mem to match_operand.
60         Use %p6 instead of %c6 in the pattern.
61         * config/i386/i386.c (ix86_expand_builtin): Adjust for
62         operand 2 being a Pmode register_operand instead of memory_operand.
63
64 2011-10-12  Kai Tietz  <ktietz@redhat.com>
65
66         * config/i386/i386.md (simple_return): Disable
67         if TARGET_SEH is active.
68
69 2011-10-12  Steve Ellcey  <sje@cup.hp.com>
70
71         * config/ia64/ia64.c (ia64_init_builtins): Fix unbalanced parentheses.
72
73 2011-10-12  Richard Guenther  <rguenther@suse.de>
74
75         * tree-ssa-alias.c (maybe_skip_until): Cache also at the point
76         of the first store we visit in a basic-block.
77         (get_continuation_for_phi): Search for a candidate VUSE that
78         might dominates all others.  Do pairwise disambiguation against
79         that candidate.
80
81 2011-10-12  Paul Koning  <pkoning@gcc.gnu.org>
82
83         PR tree-optimization/50189
84         * tree-vrp.c (extract_range_from_assert): Use the type of
85         the variable, not the limit.
86
87 2011-10-12  Richard Guenther  <rguenther@suse.de>
88
89         PR tree-optimization/50700
90         * tree-object-size.c (addr_object_size): Simplify and treat
91         MEM_REF bases consistently.
92
93 2011-10-12  Bernd Schmidt  <bernds@codesourcery.com>
94
95         * function.c (prepare_shrink_wrap, bb_active_p): New function.
96         (thread_prologue_and_epilogue_insns): Use bb_active_p.
97         Call prepare_shrink_wrap, then recompute bb_active_p for the
98         last block.
99
100 2011-10-12  Joseph Myers  <joseph@codesourcery.com>
101
102         PR c/50565
103         * convert.c (convert_to_integer): Do not narrow operands of
104         pointer subtraction.
105
106 2011-10-12  Nick Clifton  <nickc@redhat.com>
107
108         * config/arm/arm.h (EMIT_EABI_ATTRIBUTE): New macro.  Used to
109         emit a .eabi_attribute assembler directive, possibly with a
110         comment attached.
111         * config/arm/arm.c (arm_file_start): Use the new macro.
112         * config/arm/arm-c.c (arm_output_c_attributes): Likewise.
113
114 2011-10-12  Georg-Johann Lay  <avr@gjlay.de>
115
116         PR target/49939
117         * config/avr/avr.md (*movqi): Rename to movqi_insn.
118         (*call_insn): Rename to call_insn.
119         (*call_value_insn): Rename to call_value_insn.
120         * config/avr/avr.c (avr_2word_insn_p): New static function.
121         (jump_over_one_insn_p): Use it.
122
123 2011-10-12  Richard Sandiford  <richard.sandiford@linaro.org>
124
125         * expr.h (copy_blkmode_to_reg): Declare.
126         * expr.c (copy_blkmode_to_reg): New function.
127         (expand_assignment): Don't expand register RESULT_DECLs before
128         the lhs.  Use copy_blkmode_to_reg to copy BLKmode values into a
129         RESULT_DECL register.
130         (expand_expr_real_1): Handle BLKmode decls when looking for promotion.
131         * stmt.c (expand_return): Move BLKmode-to-register code into
132         copy_blkmode_to_reg.
133
134 2011-10-11  Eric Botcazou  <ebotcazou@adacore.com>
135
136         PR target/49965
137         * config/sparc/sparc.md (mov<I:mode>cc): Do not save comparison code.
138         (mov<F:mode>cc): Likewise.
139
140 2011-10-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
141
142         * tree-ssa-address.c (copy_ref_info): Remove copy of TREE_THIS_NOTRAP.
143
144 2011-10-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
145
146         * tree.h (built_in_decls): Delete old interface with two parallel
147         arrays to hold standard builtin declarations, and replace it with
148         a function based interface that can support creating builtins on
149         the fly in the future.  Change all uses, and poison the old
150         names.  Make sure 0 is not a legitimate builtin index.
151         (implicit_built_in_decls): Ditto.
152         (built_in_info): Ditto.
153         (BUILTIN_VALID_P): Ditto.
154         (builtin_decl_explicit): Ditto.
155         (builtin_decl_implicit): Ditto.
156         (set_builtin_decl): Ditto.
157         (set_builtin_decl_implicit_p): Ditto.
158         (builtin_decl_explicit_p): Ditto.
159         (builtin_decl_implicit_p): Ditto.
160         * tree-complex.c (expand_complex_libcall): Ditto.
161         * tree-loop-distribution.c (generate_memset_zero): Ditto.
162         * tree-ssa-strlen.c (get_string_length): Ditto.
163         (handle_builtin_strcpy): Ditto.
164         (handle_builtin_strcat): Ditto.
165         * tree.c (iterative_hash_expr): Ditto.
166         (local_define_builtin): Ditto.
167         (build_common_builtin_nodes): Ditto.
168         * builtins.c (built_in_decls): Ditto.
169         (implicit_built_in_decls): Ditto.
170         (built_in_info): Ditto
171         (expand_builtin_classify_type): Ditto.
172         (mathfn_built_in_1): Ditto.
173         (expand_builtin_cexpi): Ditto.
174         (expand_builtin_mempcpy_args): Ditto.
175         (expand_builtin_stpcpy): Ditto.
176         (gimplify_va_arg_expr): Ditto.
177         (expand_builtin_sync_operation): Ditto.
178         (build_builtin_expect_predicate): Ditto.
179         (fold_builtin_memory_op): Ditto.
180         (fold_builtin_strcpy): Ditto.
181         (fold_builtin_stpcpy): Ditto.
182         (fold_builtin_strncpy): Ditto.
183         (fold_builtin_interclass_mathfn): Ditto.
184         (fold_builtin_classify): Ditto.
185         (fold_builtin_2): Ditto.
186         (fold_builtin_strstr): Ditto.
187         (fold_builtin_strrchr): Ditto.
188         (fold_builtin_strpbrk): Ditto.
189         (fold_builtin_strcat): Ditto.
190         (fold_builtin_strncat): Ditto.
191         (fold_builtin_strcspn): Ditto.
192         (fold_builtin_fputs): Ditto.
193         (fold_builtin_sprintf): Ditto.
194         (fold_builtin_snprintf): Ditto.
195         (expand_builtin_memory_chk): Ditto.
196         (fold_builtin_memory_chk): Ditto.
197         (fold_builtin_stxcpy_chk): Ditto.
198         (fold_builtin_strncpy_chk): Ditto.
199         (fold_builtin_strcat_chk): Ditto.
200         (fold_builtin_strncat_chk): Ditto.
201         (fold_builtin_sprintf_chk_1): Ditto.
202         (fold_builtin_snprintf_chk_1): Ditto.
203         (fold_builtin_printf): Ditto.
204         (fold_builtin_fprintf): Ditto.
205         (fold_call_stmt): Ditto.
206         (set_builtin_user_assembler_name): Ditto.
207         * tree-emutls.c (emutls_common_1): Ditto.
208         * omp-low.c (scan_omp): Ditto.
209         (lower_rec_input_clauses): Ditto.
210         (lower_reduction_clauses): Ditto.
211         (expand_parallel_call): Ditto.
212         (expand_task_call): Ditto.
213         (maybe_catch_exception): Ditto.
214         (optimize_omp_library_calls): Ditto.
215         (expand_omp_for_generic): Ditto.
216         (expand_omp_for_static_nochunk): Ditto.
217         (expand_omp_for_static_chunk): Ditto.
218         (expand_omp_sections): Ditto.
219         (expand_omp_atomic_fetch_op): Ditto.
220         (expand_omp_atomic_pipeline): Ditto.
221         (expand_omp_atomic_mutex): Ditto.
222         (lower_omp_single_simple): Ditto.
223         (lower_omp_single_copy): Ditto.
224         (lower_omp_master): Ditto.
225         (lower_omp_ordered): Ditto.
226         (lower_omp_critical): Ditto.
227         * tree-ssa-ccp.c (optimize_stdarg_builtin): Ditto.
228         * builtins.c (DEF_BUILTIN_STUB): Ditto.
229         (BUILT_IN_NONE): Ditto.
230         * tree-ssa-math-opts.c (execute_optimize_bswap): Ditto.
231         * gimple-low.c (lower_function_body): Ditto.
232         (lower_builtin_setjmp): Ditto.
233         * c-decl.c (merge_decls): Ditto.
234         * tree-eh.c (lower_resx): Ditto.
235         (lower_resx): Ditto.
236         (lower_eh_dispatch): Ditto.
237         * function (gimplify_parameters): Ditto.
238         * c-typeck.c (build_function_call_vec): Ditto.
239         * gimplify.c (build_stack_save_restore): Ditto.
240         (gimplify_vla_decl): Ditto.
241         (gimplify_modify_expr_to_memcpy): Ditto.
242         (gimplify_modify_expr_to_memset): Ditto.
243         (gimplify_variable_sized_compare): Ditto.
244         (gimplify_function_tree): Ditto.
245         * calls.c (emit_call_1): Ditto.
246         * tree-ssa-forprop.c (simplify_builtin_call): Ditto.
247         * tree-nested.c (convert_nl_goto_reference): Ditto.
248         (convert_tramp_reference_op): Ditto.
249         (finalize_nesting_tree_1): Ditto.
250         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
251         (tree_ssa_prefetch_arrays): Ditto.
252         * tree-streamer-in.c (streamer_get_builtin_tree): Ditto.
253         * system.h (built_in_decls): Ditto.
254         (implicit_built_in_decls): Ditto.
255         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
256         * config/sparc/sparc.c (sparc_gimplify_va_arg): Ditto.
257         * config/i386/i386.c (ix86_gimplify_va_arg): Ditto.
258         (ix86_veclibabi_svml): Ditto.
259         (ix86_veclibabi_acml): Ditto.
260         * config/vms/vms.c (vms_patch_builtins): Ditto.
261         * config/ia64/ia64.c (ia64_init_builtins): Ditto.
262         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Ditto.
263         (rs6000_builtin_vectorized_libmass): Ditto.
264         (rs6000_init_builtins): Ditto.
265         * config/darwin.c (darwin_override_options): Ditto.
266         (darwin_patch_builtin): Ditto.
267         (darwin_rename_builtins): Ditto.
268         * config/pa/pa.c (pa_init_builtins): Ditto.
269
270 2011-10-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
271
272         * tree.h (copy_ref_info): Expose existing function.
273         * tree-ssa-loop-ivopts.c (copy_ref_info): Move function to...
274         * tree-ssa-address.c (copy_ref_info): ...here, and remove static token.
275
276 2011-10-11  Georg-Johann Lay  <avr@gjlay.de>
277
278         * config/avr/avr-protos.h (avr_mode_code_base_reg_class): New prototype.
279         (avr_regno_mode_code_ok_for_base_p): New prototype.
280         * config/avr/avr.h (BASE_REG_CLASS): Remove.
281         (REGNO_OK_FOR_BASE_P): Remove.
282         (REG_OK_FOR_BASE_NOSTRICT_P): Remove.
283         (REG_OK_FOR_BASE_STRICT_P): Remove.
284         (MODE_CODE_BASE_REG_CLASS): New define.
285         (REGNO_MODE_CODE_OK_FOR_BASE_P): New define.
286         * config/avr/avr.c (avr_mode_code_base_reg_class): New function.
287         (avr_regno_mode_code_ok_for_base_p): New function.
288         (avr_reg_ok_for_addr_p): New static function.
289         (avr_legitimate_address_p): Use it.  Beautify.
290
291 2011-10-11  Georg-Johann Lay  <avr@gjlay.de>
292
293         PR target/50447
294         * config/avr/avr.md (cc): Add out_plus attribute alternative.
295         (addsi3): Use it.  Adapt avr_out_plus to new prototype.  Use
296         avr_out_plus for all CONST_INT addends.
297         * config/avr/avr-protos.h (avr_out_plus): Change prototype.
298         * config/avr/avr.c (notice_update_cc): Call avr_out_plus on
299         CC_OUT_PLUS.
300         (avr_out_plus_1): Change prototype and report effect on cc0.
301         (avr_out_plus): Ditto.
302         (adjust_insn_length): Adapt call to avr_out_plus to new prototype.
303
304 2011-10-11  H.J. Lu  <hongjiu.lu@intel.com>
305
306         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove
307         the extra break.
308
309 2011-10-11  Artjoms Sinkarovs  <artyom.shinkaroff@gmail.com>
310
311         * doc/invoke.texi: Document new warning.
312         * common.opt (Wvector-operation-performance): Define new warning.
313         * tree-vect-generic.c (expand_vector_piecewise): Warn about expanded
314         vector operation.
315         (exapnd_vector_parallel): Warn about expanded vector operation.
316         (lower_vec_shuffle): Warn about expanded vector operation.
317         * c-typeck.c (c_build_vec_perm_expr): Store correct location
318         when creating VEC_PERM_EXPR.
319
320 2011-10-11  Richard Guenther  <rguenther@suse.de>
321
322         PR tree-optimization/50204
323         * tree-ssa-alias.c (get_continuation_for_phi_1): Split out
324         two argument handling from ...
325         (get_continuation_for_phi): ... here.  Handle arbitrary number
326         of PHI args.
327
328 2011-10-11  Paolo Carlini  <paolo.carlini@oracle.com>
329
330         PR c++/33067
331         * c-family/c-pretty-print.c (pp_c_floating_constant): Output
332         max_digits10 (in the ISO C++ WG N1822 sense) decimal digits.
333
334 2011-10-11  Richard Sandiford  <richard.sandiford@linaro.org>
335
336         * modulo-sched.c: Fix comment typo.  Mention the possibility
337         of using scheduling windows of II+1 cycles.
338
339 2011-10-11  Tristan Gingold  <gingold@adacore.com>
340
341         * doc/invoke.texi (C Dialect Options): Document
342         -fallow-parameterless-variadic-functions.
343         * c-parser.c (c_parser_parms_list_declarator): Handle it.
344
345 2011-10-10  Georg-Johann Lay  <avr@gjlay.de>
346
347         * config/avr/avr.c (avr_option_override): Set
348         flag_omit_frame_pointer to 0 if frame pointer is needed for
349         unwinding.
350
351 2011-10-10  Uros Bizjak  <ubizjak@gmail.com>
352
353         PR bootstrap/50665
354         * optabs.h (DOI_vec_perm): Rename from OTI_vec_perm.  Move from enum
355         optab_index to enum direct_optab_index.
356         (vec_perm_optab): Update.
357
358 2011-10-10  Anatoly Sokolov  <aesok@post.ru>
359
360         * config/cris/cris.c (cris_preferred_reload_class): New function.
361         (TARGET_PREFERRED_RELOAD_CLASS): Define.
362         * config/cris/cris.h (PREFERRED_RELOAD_CLASS): Remove.
363
364 2011-10-10  Georg-Johann Lay  <avr@gjlay.de>
365
366         * config/avr/avr.md (*tablejump_rjmp): Change insn condition to
367         !AVR_HAVE_JMP_CALL.
368         (*tablejump_lib): Change insn condition to AVR_HAVE_JMP_CALL.
369         (*tablejump_enh, *tablejump): Remove insns.
370         * config/avr/libgcc.S (__tablejump__): Use RET instead of EIND +
371         EIJMP for indirect jump.  Use LPM Z+ where available.
372
373 2011-10-10  Richard Henderson  <rth@redhat.com>
374
375         * doc/md.texi (vec_perm_const): Fix typo in cindex.
376
377 2011-10-10  Kirill Yukhin  <kirill.yukhin@intel.com>
378             Yakovlev Vladimir  <vladimir.b.yakovlev@intel.com>
379
380         * config/i386/sse.md (fma_fnmsub_<mode>): Fix a typo.
381
382 2011-10-10  Richard Guenther  <rguenther@suse.de>
383
384         PR middle-end/50389
385         * gimple-fold.c (gimplify_and_update_call_from_tree): Do not
386         mark symbols for renaming.  Append the VUSE to all statements
387         that possibly can have one.
388
389 2011-10-10  Richard Guenther  <rguenther@suse.de>
390
391         * ipa-split.c (pass_split_functions): Add verification TODOs.
392         (pass_feedback_split_functions): Likewise.
393
394 2011-10-10  Richard Guenther  <rguenther@suse.de>
395
396         PR middle-end/50195
397         * fold-const.c (fold_binary_loc): Canonicalize x*x to pow (x, 2)
398         only when optimizing.
399
400 2011-10-10  Nick Clifton  <nickc@redhat.com>
401
402         PR middle-end/49801
403         * compare-elim.c (find_comparisons_in_bb): Use df_get_live_in and
404         df_get_live_out instead of accessing the bitmaps directly.
405         (execute_compare_elim_after_reload): Remove calls to df_set_flags,
406         df_live_add_problem and df_analyze.
407
408 2011-10-10  Michael Matz  <matz@suse.de>
409
410         PR middle-end/50638
411         * tree-emutls.c (gen_emutls_addr): Call add_referenced_var.
412
413 2011-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
414
415         * modulo-sched.c (ps_reg_move_info): Add num_consecutive_stages.
416         (SCHED_FIRST_REG_MOVE, SCHED_NREG_MOVES): Delete.
417         (node_sched_params): Remove first_reg_move and nreg_moves.
418         (ps_num_consecutive_stages, extend_node_sched_params): New functions.
419         (update_node_sched_params): Move up file.
420         (print_node_sched_params): Print the stage.  Don't dump info related
421         to first_reg_move and nreg_moves.
422         (set_columns_for_row): New function.
423         (set_columns_for_ps): Move up file and use set_columns_for_row.
424         (schedule_reg_move): New function.
425         (schedule_reg_moves): Call extend_node_sched_params and
426         schedule_reg_move.  Extend size of uses bitmap.  Initialize
427         num_consecutive_stages.  Return false if a move could not be
428         scheduled.
429         (apply_reg_moves): Don't emit moves here.
430         (permute_partial_schedule): Handle register moves.
431         (duplicate_insns_of_cycles): Remove for_prolog.  Emit moves according
432         to the same stage-count test as ddg nodes.
433         (generate_prolog_epilog): Update calls accordingly.
434         (sms_schedule): Allow move-scheduling to add a new first stage.
435
436 2011-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
437
438         * modulo-sched.c (ps_insn): Adjust comment.
439         (ps_reg_move_info): New structure.
440         (partial_schedule): Add reg_moves field.
441         (SCHED_PARAMS): Use node_sched_param_vec instead of node_sched_params.
442         (node_sched_params): Turn first_reg_move into an identifier.
443         (ps_reg_move): New function.
444         (ps_rtl_insn): Cope with register moves.
445         (ps_first_note): Adjust comment and assert that the instruction
446         isn't a register move.
447         (node_sched_params): Replace with...
448         (node_sched_param_vec): ...this vector.
449         (set_node_sched_params): Adjust accordingly.
450         (print_node_sched_params): Take a partial schedule instead of a ddg.
451         Use ps_rtl_insn and ps_reg_move.
452         (generate_reg_moves): Rename to...
453         (schedule_reg_moves): ...this.  Remove rescan parameter.  Record each
454         move in the partial schedule, but don't emit it here.  Don't perform
455         register substitutions here either.
456         (apply_reg_moves): New function.
457         (duplicate_insns_of_cycles): Use register indices directly,
458         rather than finding instructions using PREV_INSN.  Use ps_reg_move.
459         (sms_schedule): Call schedule_reg_moves before committing to
460         a partial schedule.   Try the next ii if the schedule fails.
461         Use apply_reg_moves instead of generate_reg_moves.  Adjust
462         call to print_node_sched_params.  Free node_sched_param_vec
463         instead of node_sched_params.
464         (create_partial_schedule): Initialize reg_moves.
465         (free_partial_schedule): Free reg_moves.
466
467 2011-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
468
469         * modulo-sched.c (ps_insn): Replace node field with an identifier.
470         (SCHED_ASAP): Replace with..
471         (NODE_ASAP): ...this macro.
472         (SCHED_PARAMS): New macro.
473         (SCHED_TIME, SCHED_FIRST_REG_MOVE, SCHED_NREG_MOVES, SCHED_ROW)
474         (SCHED_STAGE, SCHED_COLUMN): Redefine using SCHED_PARAMS.
475         (node_sched_params): Remove asap.
476         (ps_rtl_insn, ps_first_note): New functions.
477         (set_node_sched_params): Use XCNEWVEC.  Don't copy across the
478         asap values.
479         (print_node_sched_params): Use SCHED_PARAMS and NODE_ASAP.
480         (generate_reg_moves): Pass ids to the SCHED_* macros.
481         (update_node_sched_params): Take a ps insn identifier rather than
482         a node as parameter.  Use ps_rtl_insn.
483         (set_columns_for_ps): Update for above field and SCHED_* macro changes.
484         (permute_partial_schedule): Use ps_rtl_insn and ps_first_note.
485         (optimize_sc): Update for above field and SCHED_* macro changes.
486         Update calls to try_scheduling_node_in_cycle and
487         update_node_sched_params.
488         (duplicate_insns_of_cycles): Adjust for above field and SCHED_*
489         macro changes.  Use ps_rtl_insn and ps_first_note.
490         (sms_schedule): Pass ids to the SCHED_* macros.
491         (get_sched_window): Adjust for above field and SCHED_* macro changes.
492         Use NODE_ASAP instead of SCHED_ASAP.
493         (try_scheduling_node_in_cycle): Remove node parameter.  Update
494         call to ps_add_node_check_conflicts.  Pass ids to the SCHED_*
495         macros.
496         (sms_schedule_by_order): Update call to try_scheduling_node_in_cycle.
497         (ps_insert_empty_row): Adjust for above field changes.
498         (compute_split_row): Use ids rather than nodes.
499         (verify_partial_schedule): Adjust for above field changes.
500         (print_partial_schedule): Use ps_rtl_insn.
501         (create_ps_insn): Take an id rather than a node.
502         (ps_insn_find_column): Adjust for above field changes.
503         Use ps_rtl_insn.
504         (ps_insn_advance_column): Adjust for above field changes.
505         (add_node_to_ps): Remove node parameter.  Update call to
506         create_ps_insn.
507         (ps_has_conflicts): Use ps_rtl_insn.
508         (ps_add_node_check_conflicts): Replace node parameter than an id.
509
510 2011-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
511
512         * modulo-sched.c (undo_replace_buff_elem): Delete.
513         (generate_reg_moves): Don't build and return an undo list.
514         (free_undo_replace_buff): Delete.
515         (sms_schedule): Adjust call to generate_reg_moves.
516         Don't call free_undo_replace_buff.
517
518 2011-10-10  Matthias Klose <doko@ubuntu.com>
519
520         * common/config/m32c: Remove empty directory.
521
522 2011-10-10  Georg-Johann Lay  <avr@gjlay.de>
523
524         * config/avr/avr.md (*mulhi3_enh): Treat squaring smarter.
525
526 2011-10-10  Georg-Johann Lay  <avr@gjlay.de>
527
528         PR target/50652
529         * config/avr/avr-mcus.def (AVR_MCU): Set .data_section_start of
530         atmega164a to 0x100.
531
532 2011-10-09  Eric Botcazou  <ebotcazou@adacore.com>
533
534         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Do not make
535         the replacement if the conversion to the LHS type is not useless.
536
537 2011-10-09  Ira Rosen  <ira.rosen@linaro.org>
538
539         PR tree-optimization/50635
540         * tree-vect-patterns.c (vect_handle_widen_mult_by_const): Add
541         DEF_STMT to the list of statements to be replaced by the
542         pattern statements.
543         (vect_handle_widen_mult_by_const): Don't check TYPE_OUT.
544
545 2011-10-09  Anatoly Sokolov  <aesok@post.ru>
546
547         * system.h: Commit forgotten hunk in previous patch.
548         (OUTPUT_ADDR_CONST_EXTRA): Poison.
549
550 2011-10-08  Nicola Pero  <nicola.pero@meta-innovation.com>
551
552         PR libobjc/50428
553         * doc/objc.texi (Garbage Collection): Updated example to protect
554         +initialize against execution in subclasses.
555
556 2011-10-07  Richard Henderson  <rth@redhat.com>
557
558         * doc/extend.texi (__builtin_shuffle): Improve the description to
559         include the modulus of the selector.  Mention OpenCL.
560         * doc/md.texi (vec_perm, vec_perm_const): Document named patterns.
561
562         * tree.def (VEC_PERM_EXPR): Rename from VEC_SHUFFLE_EXPR.
563         * genopinit.c (optabs): Rename vshuffle to vec_perm.
564         * c-typeck.c (c_build_vec_perm_expr): Rename from
565         c_build_vec_shuffle_expr.  Update for name changes.
566         * optabs.c (expand_vec_perm_expr_p): Rename from
567         expand_vec_shuffle_expr_p.
568         (expand_vec_perm_expr): Rename from expand_vec_shuffle_expr.
569         * optabs.h (OTI_vec_perm): Rename from DOI_vshuffle.
570         (vec_perm_optab): Rename from vshuffle_optab.
571         * expr.c, gimple-pretty-print.c, gimple.c, gimplify.c,
572         c-tree.h, c-parser.c, tree-cfg.c, tree-inline.c, tree-pretty-print.c,
573         tree-ssa-operands.c, tree-vect-generic.c: Update for name changes.
574
575         * config/i386/i386.c (ix86_expand_vec_perm): Rename from
576         ix86_expand_vshuffle.
577         * config/i386/i386-protos.h: Update.
578         * config/i386/sse.md (VEC_PERM_AVX2): Rename from VSHUFFLE_AVX2.
579         (vec_perm<VEC_PERM_AVX2>): Rename from vshuffle<VSHUFFLE_AVX2>.
580
581 2011-10-07  Richard Henderson  <rth@redhat.com>
582
583         * config/i386/predicates.md (avx2_pblendw_operand): New.
584         * config/i386/sse.md (sse4_1_pblendw): Un-macroize.
585         (avx2_pblendw, *avx2_pblendw): New expander and insn.
586
587 2011-10-07  Richard Henderson  <rth@redhat.com>
588
589         * config/i386/i386.c (bdesc_args): Update code for
590         __builtin_ia32_palignr256.  Change type of __builtin_ia32_pslldqi256,
591         and __builtin_ia32_psrldqi256 to V4DI_FTYPE_V4DI_INT_CONVERT.
592         (ix86_expand_args_builtin): Handle V4DI_FTYPE_V4DI_INT_CONVERT.
593         * config/i386/sse.md (mode iterator V16): Add V2TI.
594         (mode iterator SSESCALARMODE): Use V2TI not V4DI.
595         (mode attr ssse3_avx2): Add V2TI.
596         (avx2_lshrqv4di3, avx2_lshlqv4di3): Remove.
597
598 2011-10-07  David S. Miller  <davem@davemloft.net>
599
600         PR 50655
601         * configure.ac: Add .register directives to VIS3 test.
602         * configure: Regenerate.
603
604 2011-10-07  Richard Henderson  <rth@redhat.com>
605
606         * config.gcc (x86_64-*): Add core-avx-i, core-avx2 for with_cpu.
607
608 2011-10-07  Richard Henderson  <rth@redhat.com>
609
610         PR 49752
611         * fold-const.c (fold_checksum_tree): Remove out-of-date assert.
612
613 2011-10-07  Andrew Stubbs  <ams@codesourcery.com>
614
615         * config/arm/predicates.md (shift_amount_operand): Remove constant
616         range check.
617         (shift_operator): Check range of constants for all shift operators.
618
619 2011-10-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
620
621         * config/s390/s390.c (s390_emit_tls_call_insn): Remove assertion.
622         Load GOT pointer for non-pic builds.
623         (s390_load_got): Replace pic_offset_table_rtx with hardcoded r12.
624         (s390_emit_call): Likewise.
625
626 2011-10-07  Tom de Vries  <tom@codesourcery.com>
627
628         PR middle-end/50527
629         * tree.c (build_common_builtin_nodes): Add local_define_builtin for
630         * builtins.c (expand_builtin_alloca): Handle BUILT_IN_ALLOCA_WITH_ALIGN
631         * tree-ssa-ccp.c (evaluate_stmt): Set align for
632         * builtins.def (BUILT_IN_ALLOCA_WITH_ALIGN): Declare using
633         * ipa-pure-const.c (special_builtin_state): Handle
634         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1)
635         * function.c (gimplify_parameters): Lower vla to
636         * gimplify.c (gimplify_vla_decl): Same.
637         * cfgexpand.c (expand_call_stmt): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
638         * tree-mudflap.c (mf_xform_statements): Same.
639         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary)
640         * varasm.c (incorporeal_function_p): Same.
641         * tree-object-size.c (alloc_object_size): Same.
642         * gimple.c (gimple_build_call_from_tree): Same.
643
644 2011-10-07  Bernd Schmidt  <bernds@codesourcery.com>
645
646         * function.c (frame_required_for_rtx): Remove function.
647         (requires_stack_frame_p): New arg set_up_by_prologue.  All callers
648         changed.  Compute a set of mentioned registers and compare against
649         the new arg rather than calling frame_required_for_rtx.
650         (thread_prologue_and_epilogue_insns): Compute the set_up_by_prologue
651         reg set.  Convert the unconverted_simple_returns mechanism to store
652         jump insns rather than their basic blocks.  Also check the
653         orig_entry_edge destination for new blocks.
654
655 2011-10-07  Jakub Jelinek  <jakub@redhat.com>
656
657         PR tree-optimization/50650
658         * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): Don't
659         call vect_is_simple_cond here, instead fail if cond_expr isn't
660         COMPARISON_CLASS_P or if get_vectype_for_scalar_type returns NULL
661         for cond_expr's first operand.
662         * tree-vect-stmts.c (vect_is_simple_cond): Static again.
663         * tree-vectorizer.h (vect_is_simple_cond): Remove prototype.
664
665 2011-10-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
666
667         * config/s390/s390.md (DWH, dwh): New mode macros.
668         ("umulsidi3"): Extend to support "umulditi3" as well.
669
670 2011-10-07  Uros Bizjak  <ubizjak@gmail.com>
671             H.J. Lu  <hongjiu.lu@intel.com>
672
673         PR target/50603
674         * config/i386/i386.c (ix86_fixup_binary_operands): Force src2 of
675         integer PLUS RTX to a register to improve address combine.
676
677 2011-10-06  Richard Henderson  <rth@redhat.com>
678
679         * combine-stack-adjust.c (maybe_move_args_size_note): Add after
680         parameter; use it to decide whether to merge two notes.
681         (combine_stack_adjustments_for_block): Use maybe_move_args_size_note
682         for the deallocation case as well.
683
684 2011-10-06  Anatoly Sokolov  <aesok@post.ru>
685
686         * system.h (OUTPUT_ADDR_CONST_EXTRA): Poison.
687         * doc/tm.texi.in (OUTPUT_ADDR_CONST_EXTRA): Remove documentation.
688         * doc/tm.texi: Regenerate.
689         * target.def (output_addr_const_extra): Use
690         hook_bool_FILEptr_rtx_false.
691         * targhooks.c (default_asm_output_addr_const_extra): Remove.
692         * targhooks.h (default_asm_output_addr_const_extra): Remove.
693         * hooks.c (hook_bool_FILEptr_rtx_false): New functions.
694         * hooks.h (hook_bool_FILEptr_rtx_false): Declare.
695
696 2011-10-06  David S. Miller  <davem@davemloft.net>
697
698         * config/sparc/sparc.md (popcount<mode>2, clz<mode>2): Split up into...
699         (popcountdi2, popcountsi2, clzdi2, clzsi2): Explicit expanders, in the
700         SI mode 64-bit code gen case explicitly zero-extend and truncate.
701         (*popcount<mode>_sp64): Split up into...
702         (*popcountdi_sp64, *popcountsi_64): Explicit instantiations, and in the
703         SImode case use truncate.
704         (*clzsi_sp64): Rewrite to use truncate, and let the expander emit the
705         subtract so the compiler can optimize it.
706         (SIDI): Remove unused mode iterator.
707
708 2011-10-06  Bernd Schmidt  <bernds@codesourcery.com>
709
710         * function.c (thread_prologue_and_epilogue_insns): Emit split prologue
711         on the orig_entry_edge. Don't account for it in prologue_clobbered.
712
713 2011-10-06  Jakub Jelinek  <jakub@redhat.com>
714
715         PR tree-optimization/50596
716         * tree-vectorizer.h (vect_is_simple_cond): New prototype.
717         (NUM_PATTERNS): Change to 6.
718         * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): New
719         function.
720         (vect_vect_recog_func_ptrs): Add vect_recog_mixed_size_cond_pattern.
721         (vect_mark_pattern_stmts): Don't create stmt_vinfo for def_stmt
722         if it already has one, and don't set STMT_VINFO_VECTYPE in it
723         if it is already set.
724         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Handle
725         COND_EXPR in pattern stmts.
726         (vect_is_simple_cond): No longer static.
727
728 2001-10-06  Richard Henderson  <rth@redhat.com>
729
730         * config/i386/i386.c (ix86_expand_vshuffle): Add AVX2 support.
731         * config/i386/sse.md (sseshuffint): Remove.
732         (sseintvecmode): Support V16HI, V8HI, V32QI, V16QI.
733         (VSHUFFLE_AVX2): New mode iterator.
734         (vshuffle<mode>): Use it.
735         (avx_vec_concat<V_256>): Rename from *vec_concat<V_256>_avx.
736
737         * config/i386/i386.c (ix86_expand_sse_movcc): Use correct mode
738         for vector_all_ones_operand.
739         (ix86_expand_int_vcond): Distinguish between comparison mode
740         and data mode.  Allow them to differ.
741         (ix86_expand_vshuffle): Don't force data mode to match maskmode.
742
743 2001-10-06  Richard Henderson  <rth@redhat.com>
744
745         * optabs.c (expand_vec_shuffle_expr): Use the proper mode for the
746         mask operand.  Tidy the code.
747
748 2011-10-06  Jakub Jelinek  <jakub@redhat.com>
749
750         * tree-vect-patterns.c (vect_pattern_recog_1): Use
751         vect_recog_func_ptr typedef for the first argument.
752         (vect_pattern_recog): Rename vect_recog_func_ptr variable
753         to vect_recog_func, use vect_recog_func_ptr typedef for it.
754
755         PR tree-optimization/49279
756         * tree-ssa-structalias.c (find_func_aliases): Don't handle
757         CAST_RESTRICT.
758         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Allow
759         restrict propagation.
760         * tree-ssa.c (useless_type_conversion_p): Don't return false
761         if TYPE_RESTRICT differs.
762
763 2011-10-06  Bernd Schmidt  <bernds@codesourcery.com>
764
765         * function.c (thread_prologue_and_epilogue_insns): Build a vector
766         of unconverted simple return blocks rather than trying to
767         recompute them later based on bb_flags bitmap tests.
768
769 2011-10-06  Michael Matz  <matz@suse.de>
770
771         * tree-flow.h (get_var_ann): Don't declare.
772         * tree-flow-inline.h (get_var_ann): Remove.
773         (set_is_used): Use var_ann, not get_var_ann.
774         * tree-dfa.c (add_referenced_var): Inline body of get_var_ann.
775         * tree-profile.c (gimple_gen_edge_profiler): Call
776         find_referenced_var_in.
777         (gimple_gen_interval_profiler): Ditto.
778         (gimple_gen_pow2_profiler): Ditto.
779         (gimple_gen_one_value_profiler): Ditto.
780         (gimple_gen_average_profiler): Ditto.
781         (gimple_gen_ior_profiler): Ditto.
782         (gimple_gen_ic_profiler): Ditto plus call add_referenced_var.
783         (gimple_gen_ic_func_profiler): Call add_referenced_var.
784         * tree-mudflap.c (execute_mudflap_function_ops): Call
785         add_referenced_var.
786
787 2011-10-06  Jakub Jelinek  <jakub@redhat.com>
788
789         * tree-vect-patterns.c (vect_handle_widen_mult_by_const): For lhs
790         don't set SSA_NAME_DEF_STMT that has been already set by
791         gimple_build_assign_with_ops.
792         (vect_recog_pow_pattern, vect_recog_widen_sum_pattern,
793         vect_operation_fits_smaller_type, vect_recog_over_widening_pattern):
794         Likewise.
795
796         * tree.h (avoid_folding_inline_builtin): New prototype.
797         * builtins.c (avoid_folding_inline_builtin): No longer static.
798         * gimple-fold.c (gimple_fold_builtin): Give up if
799         avoid_folding_inline_builtin returns true.
800
801 2011-10-06  Richard Guenther  <rguenther@suse.de>
802
803         * tree-vect-generic.c (vector_element): Look at previous
804         generated results.
805
806 2011-10-06  David Edelsohn  <dje.gcc@gmail.com>
807
808         PR target/39950
809         * config/rs6000/aix.h (TARGET_OS_AIX_CPP_BUILTINS): Define
810         __powerpc__, __PPC__, __unix__.
811
812 2011-10-06  Michael Matz  <matz@suse.de>
813
814         * i386/i386.opt (recip_mask, recip_mask_explicit,
815         x_recip_mask_explicit): New variables and cl_target member.
816         (mrecip=): New option.
817         * i386/i386.h (RECIP_MASK_DIV, RECIP_MASK_SQRT, RECIP_MASK_VEC_DIV,
818         RECIP_MASK_VEC_SQRT, RECIP_MASK_ALL, RECIP_MASK_NONE): New bitmasks.
819         (TARGET_RECIP_DIV, TARGET_RECIP_SQRT, TARGET_RECIP_VEC_DIV,
820         TARGET_RECIP_VEC_SQRT): New tests.
821         * i386/i386.md (divsf3): Check TARGET_RECIP_DIV.
822         (sqrt<mode>2): Check TARGET_RECIP_SQRT.
823         * i386/sse.md (div<mode>3): Check TARGET_RECIP_VEC_DIV.
824         (sqrt<mode>2): Check TARGET_RECIP_VEC_SQRT.
825         * i386/i386.c (ix86_option_override_internal): Set recip_mask
826         for -mrecip and -mrecip=options.
827         (ix86_function_specific_save): Save recip_mask_explicit.
828         (ix86_function_specific_restore): Restore recip_mask_explicit.
829
830         * doc/invoke.texi (ix86 Options): Document the new option.
831
832 2011-10-06  Bernd Schmidt  <bernds@codesourcery.com>
833
834         PR target/49049
835         * config/arm/arm.md (arm_subsi3_insn): Lose the last alternative.
836
837 2011-10-06  Ulrich Weigand  <ulrich.weigand@linaro.org>
838
839         PR target/50305
840         * config/arm/arm.c (arm_legitimize_reload_address): Recognize
841         output of a previous pass through legitimize_reload_address.
842         Do not attempt to optimize addresses if the base register is
843         equivalent to a constant.
844
845 2011-10-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
846
847         * function.c (thread_prologue_and_epilogue_insns): Mark
848         last_bb_active as possibly unused.  It is unused for targets which
849         do neither have "return" nor "simple_return" expanders.
850
851 2011-10-06  Richard Guenther  <rguenther@suse.de>
852
853         * fold-const.c (fold_ternary_loc): Also fold non-constant
854         vector CONSTRUCTORs.  Make more efficient.
855         * tree-ssa-dom.c (cprop_operand): Don't handle virtual operands.
856         (cprop_into_stmt): Don't propagate into virtual operands.
857         (optimize_stmt): Really dump original statement.
858
859 2011-10-06  Nick Clifton  <nickc@redhat.com>
860
861         * config/rx/rx.md (smin3): Revert previous delta.
862
863 2011-10-06  Richard Guenther  <rguenther@suse.de>
864
865         PR tree-optimization/38884
866         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle partial
867         reads from aggregate SSA names.
868
869 2011-10-05  Jakub Jelinek  <jakub@redhat.com>
870
871         * tree-vect-patterns.c (vect_pattern_recog_1): Add stmts_to_replace
872         argument, truncate it at the beginning instead of allocating there
873         and freeing at the end.
874         (vect_pattern_recog): Allocate stmts_to_replace here and free at end,
875         pass its address to vect_pattern_recog_1.
876
877 2011-10-05  David S. Miller  <davem@davemloft.net>
878
879         * config/sparc/sparc.opt (POPC): New option.
880         * doc/invoke.texi: Document it.
881         * config/sparc/sparc.c (sparc_option_override): Enable MASK_POPC by
882         default on Niagara-2 and later.
883         * config/sparc/sparc.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
884         * config/sparc/sparc.md (SIDI): New mode iterator.
885         (ffsdi2): Delete commented out pattern and comments.
886         (popcount<mode>2, clz<mode>2): New expanders.
887         (*popcount<mode>_sp64, popcountsi_v8plus, popcountdi_v8plus,
888         *clzdi_sp64, clzdi_v8plus, *clzsi_sp64, clzsi_v8plus): New insns.
889
890 2011-10-06  Artjoms Sinkarovs  <artyom.shinkaroff@gmail.com>
891
892         PR middle-end/50607
893         * c-tree.h (c_expr_t): New typedef for struct c_expr.
894         (C_EXPR_APPEND): New macro.
895         * c-parser.c (c_parser_get_builtin_args): Preserve
896         original_tree_code of c_expr structure.
897         (c_parser_postfix_expression): Adjust to the new function.
898
899 2011-10-05  Bernd Schmidt  <bernds@codesourcery.com>
900
901         * function.c (thread_prologue_and_epilogue_insns): Don't shrink-wrap
902         if profiling after the prologue.
903
904 2011-10-05  Jakub Jelinek  <jakub@redhat.com>
905
906         PR tree-optimization/50613
907         * tree-ssa-strlen.c (find_equal_ptrs): If CASE_CONVERT
908         operand is ADDR_EXPR, fallthru into ADDR_EXPR handling,
909         and if it is neither that not SSA_NAME, give up.
910
911 2011-10-05  Richard Henderson  <rth@redhat.com>
912
913         * tree-vect-generic.c (vector_element): Never fail.  Use
914         build_zero_cst.  Tidy up type references.
915         (lower_vec_shuffle): Never fail.  Mask shuffle indicies.  Reduce
916         code duplication.  Do update_stmt here ...
917         (expand_vector_operations_1): ... not here.
918
919         * config/i386/i386.c (ix86_expand_vshuffle): Never fail.  Handle
920         TARGET_XOP.  Fix pshufb constant vector creation.  Reduce code
921         duplication.  Handle V2DI without SSE4.1.
922         * config/i386/i386-protos.h (ix86_expand_vshuffle): Update decl.
923         * config/i386/i386.md (vshuffle<V_128>): Remove assert for ok.
924
925 2011-10-05  Uros Bizjak  <ubizjak@gmail.com>
926
927         * config/i386/i386.c (distance_non_agu_define): Simplify calculation
928         of "found".  Simplify return value calculation.
929         (distance_agu_use): Ditto.
930
931 2011-10-05  Bernd Schmidt  <bernds@codesourcery.com>
932
933         PR bootstrap/50621
934         * config/i386/i386.c (ix86_add_cfa_restore_note): Omit notes only
935         if the function was not shrink-wrapped.
936         (ix86_expand_epilogue): Ensure queued cfa_adjust notes are attached
937         to an insn.
938         * function.c (thread_prologue_and_epilogue_insns): Make sure the
939         shrink_wrapped flag is set even if there is no dump file.
940
941 2011-10-05  DJ Delorie  <dj@redhat.com>
942             Nick Clifton  <nickc@redhat.com>
943
944         * config/rx/rx.opt (mpid): Define.
945         * config/rx/t-rx (MULTILIB_OPTIONS): Add -mpid
946         (MULTILIB_DIRNAMES): Add pid.
947         * config/rx/rx.c (rx_gp_base_regnum_val, rx_pid_base_regnum_val)
948         (rx_num_interrupt_regs): New variable.
949         (rx_gp_base_regnum): New function.  Returns the number of the
950         small data area register.
951         (rx_pid_base_regnum): New function.  Returns the number of the pid
952         base register.
953         (rx_decl_for_addr): New function.  Returns the symbolic part of a MEM.
954         (rx_pid_data_operand): New function.  Returns whether an object is
955         in the position independent data area.
956         (rx_legitimize_address): New function.  Puts undecided PID
957         objects in the PID data area.
958         (rx_is_legitimate_address): Add support for PID operands.
959         (rx_print_operand_address): Likewise.
960         (rx_print_operand): Likewise.
961         (rx_maybe_pidify_operand): New function.  Determine if an operand
962         is suitable for PID addressing.
963         (rx_gen_move_template): Add PID support.
964         (rx_conditional_register_usage): Likewise.
965         (rx_option_override): Initialise rx_num_interrupt_regs.
966         (rx_is_legitimate_constant): Add support for PID constants.
967         (TARGET_LEGITIMIZE_ADDRESS): Define.
968         * config/rx/constraints.md (Rpid): Define.
969         (Rpda): Define.
970         * config/rx/rx.md (UNSPEC_PID_ADDR): Define.
971         (tablejump): Add PID support.
972         (mov<>): Likewise.
973         (mov<>_internal): Likewise.
974         (addsi3): Convert to an expander.  Add PID support.
975         (pid_addr): New pattern.
976         * config/rx/rx.h (CPP_SPEC): Define.
977         (ASM_SPEC): Pass -mpid and -mint-register on to assembler.
978         (CASE_VECTOR_PC_RELATIVE): Define.
979         (JUMP_TABLES_IN_TEXT_SECTION): Enable for PID mode.
980         * config/rx/rx-protos.h (rx_maybe_pidify_operand): Prototype.
981         * doc/invoke.texi (RX Options): Document -mpid command line option.
982
983 2011-10-05  Richard Guenther  <rguenther@suse.de>
984
985         PR tree-optimization/38885
986         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle partial reads
987         from constants.
988
989 2011-10-05  Bernd Schmidt  <bernds@codesourcery.com>
990
991         * doc/invoke.texi (-fshrink-wrap): Document.
992         * opts.c (default_options_table): Add it.
993         * common.opt (fshrink-wrap): Add.
994         * function.c (emit_return_into_block): Remove useless declaration.
995         (record_hard_reg_uses_1, record_hard_reg_uses, frame_required_for_rtx,
996         requires_stack_frame_p, gen_return_pattern): New static functions.
997         (emit_return_into_block): New arg simple_p.  All callers changed.
998         Use gen_return_pattern.
999         (thread_prologue_and_epilogue_insns): Implement shrink-wrapping.
1000         * config/i386/i386.md (return): Expand into a simple_return.
1001         (simple_return): New expander):
1002         (simple_return_internal, simple_return_internal_long,
1003         simple_return_pop_internal_long, simple_return_indirect_internal):
1004         Renamed from return_internal, return_internal_long,
1005         return_pop_internal_long and return_indirect_internal; changed to use
1006         simple_return.
1007         * config/i386/i386.c (ix86_expand_epilogue): Adjust to expand
1008         simple returns.
1009         (ix86_pad_returns): Likewise.
1010         * function.h (struct rtl_data): Add member shrink_wrapped.
1011         * cfgcleanup.c (outgoing_edges_match): If shrink-wrapped, edges that
1012         are not jumps or sibcalls can't be compared.
1013
1014 2011-10-05  Richard Guenther  <rguenther@suse.de>
1015
1016         * tree-ssa-sccvn.c (vn_get_expr_for): Handle CONSTRUCTOR of
1017         vector type.
1018         (simplify_unary_expression): Handle BIT_FIELD_REFs.
1019         (try_to_simplify): Handle BIT_FIELD_REFs.
1020
1021 2011-10-05  Georg-Johann Lay  <avr@gjlay.de>
1022
1023         * config/avr/avr-protos.h (avr_out_addto_sp): New prototype.
1024         * config/avr/avr.c (avr_out_addto_sp): New function.
1025         (adjust_insn_length): Handle ADJUST_LEN_ADDTO_SP.
1026         * config/avr/avr.md (adjust_len): Add "addto_sp".
1027         (*movhi_sp): Remove insn.
1028         (*addhi3_sp_R_pc2, *addhi3_sp_R_pc3): Merge to *addhi3_sp_R.
1029
1030 2011-10-05  Richard Guenther  <rguenther@suse.de>
1031
1032         * gimple-fold.c (gimple_fold_stmt_to_constant_1): For ternary ops
1033         with an embedded expression valueize and fold that as well.
1034         * tree-ssa-sccvn.c (try_to_simplify): Also allow SSA name
1035         results from gimple_fold_stmt_to_constant_1.
1036
1037 2011-10-05  Nick Clifton  <nickc@redhat.com>
1038
1039         * config/rx/rx.md (tablejump): Add missing label.
1040         (adddi3_internal): Mark operand 0 as early-clobbered.
1041         (smaxsi3): Revert previous delta.
1042         (adc_internal): Fix whitespace in generated asm.
1043         (adc_flags): Likewise.
1044
1045 2011-10-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1046
1047         * expmed.c (expand_mult_highpart_optab): Replace optab_handler
1048         with the new widening_optab_handler.
1049
1050 2011-10-05  Richard Guenther  <rguenther@suse.de>
1051
1052         PR tree-optimization/50609
1053         * gimple-fold.c (fold_array_ctor_reference): Also handle
1054         vector typed constructors.
1055         (fold_ctor_reference): Dispatch to fold_array_ctor_reference
1056         for vector typed constructors.
1057
1058 2011-10-05  Uros Bizjak  <ubizjak@gmail.com>
1059
1060         * config/i386/i386.c (ix86_emit_binop): New static function.
1061         (ix86_split_lea_for_addr): Use ix86_emit_binop to emit add and shl
1062         instructions.
1063         (x86_output_mi_thunk): Use ix86_emit_binop to emit add instructions.
1064
1065 2011-10-04  David S. Miller  <davem@davemloft.net>
1066
1067         * config/sparc/sparc.md (UNSPEC_FHADD, UNSPEC_FHSUB,
1068         UNSPEC_XMUL): New unspecs.
1069         (muldi3_v8plus): Use output_v8plus_mult.
1070         (*naddsf3, *nadddf3, *nmulsf3, *nmuldf3, *nmuldf3_extend):
1071         New VIS 3.0 combiner patterns.
1072         (fhaddsf_vis, fhadddf_vis, fhsubsf_vis, fhsubdf_vis,
1073         fnhaddsf_vis, fnhaddf_vis, umulxhi_vis, *umulxhi_sp64,
1074         umulxhi_v8plus, xmulx_vis, *xmulx_sp64, xmulx_v8plus,
1075         xmulxhi_vis, *xmulxhi_sp64, xmulxhi_v8plus): New VIS 3.0
1076         builtins patterns.
1077         * config/sparc/sparc.c (sparc_vis_init_builtins): Emit new builtins.
1078         (output_v8plus_mult): New function.
1079         * config/sparc/sparc-protos.h: Declare it.
1080         * config/sparc/visintrin.h (__vis_fhadds, __vis_fhaddd,
1081         __vis_fhsubs, __vis_fhsubd, __vis_fnhadds, __vis_fnhaddd,
1082         __vis_umulxhi, __vis_xmulx, __vis_xmulxhi): New intrinsics.
1083         * doc/extend.texi: Document new builtins.
1084
1085 2011-10-04  Richard Henderson  <rth@redhat.com>
1086
1087         * c-typeck.c (c_build_vec_shuffle_expr): Fix uninitialized variable.
1088         Avoid save_expr unless two_arguments.
1089
1090 2011-10-04  Ozkan Sezer  <sezeroz@gmail.com>
1091
1092         * config/i386/mingw-w64.h (CPP_SPEC): Rename _REENTRANCE to _REENTRANT.
1093         * config/i386/mingw32.h (CPP_SPEC): Likewise.
1094
1095 2011-10-04  David S. Miller  <davem@davemloft.net>
1096
1097         * config/sparc/driver-sparc.c (cpu_names): Fix string for supersparc
1098         under Linux.
1099
1100 2011-10-04  Jakub Jelinek  <jakub@redhat.com>
1101
1102         PR tree-optimization/50604
1103         * builtins.c (fold_builtin_strcpy, fold_builtin_stpcpy,
1104         fold_builtin_strncpy, fold_builtin_stxcpy_chk): Ensure
1105         last argument to memcpy has size_type_node type instead of ssizetype.
1106         * tree-ssa-strlen.c (handle_builtin_memcpy): Use size_type_node
1107         instead of TREE_TYPE (len) as type for newlen.
1108
1109         PR tree-optimization/50522
1110         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Don't test
1111         TYPE_RESTRICT.
1112         (ptr_derefs_may_alias_p): Call pt_solutions_same_restrict_base
1113         unconditionally.
1114
1115         * fold-const.c (fold_unary_loc): Don't optimize
1116         POINTER_PLUS_EXPR casted to TYPE_RESTRICT pointer by
1117         casting the inner pointer if it isn't TYPE_RESTRICT.
1118         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't through
1119         casts from non-TYPE_RESTRICT pointer to TYPE_RESTRICT pointer.
1120
1121 2011-10-04  Joseph Myers  <joseph@codesourcery.com>
1122
1123         * config.gcc (i[34567]86-*-elf*, x86_64-*-elf*): Use i386/t-crtstuff.
1124
1125 2011-10-04  Jan Hubicka  <jh@suse.cz>
1126
1127         * lto-streamer.h (lto_input_toplevel_asms): Add order_base parameter.
1128         * lto-streamer-in.c (lto_input_toplevel_asms): Stream in order.
1129         * lto-streamer-out.c (lto_output_toplevel_asms): Stream out order.
1130         * lto-cgraph.c (order_base): New static var.
1131         (lto_output_node): Stream in order.
1132         (lto_output_varpool_node): Stream out order.
1133         (input_node): Stream in order.
1134         (input_varpool_node): Stream out order.
1135         (input_cgraph_1): Initialize order base; update call of
1136         lto_input_toplevel_asms.
1137
1138 2011-10-04  Georg-Johann Lay  <avr@gjlay.de>
1139
1140         PR target/50566
1141         * config/avr/avr-protos.h (avr_legitimize_reload_address): New
1142         prototype.
1143         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Copy worker code
1144         from here...
1145         * config/avr/avr.c (avr_legitimize_reload_address) ...to this new
1146         function.  Log if avr_log.legitimize_reload_address.
1147
1148 2011-10-04  Eric Botcazou  <ebotcazou@adacore.com>
1149
1150         * config/sparc/sparc.c (sparc_fold_builtin): Use a sequence of tests.
1151
1152 2011-10-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1153
1154         * longlong.h (smul_ppmm, sdiv_qrnnd): Add underscores to the local
1155         variables.  Fix second operand of DR.  Swap inputs for sdiv_qrnnd.
1156
1157 2011-10-03  David S. Miller  <davem@davemloft.net>
1158
1159         * config/sparc/sparc.md (fpack16_vis, fpackfix_vis, fpack32_vis): Make
1160         GSR_REG an input operand to UNSPEC instead of a parallel USE.
1161         (faligndata<V64I:mode>_vis): Likewise and use DI mode.
1162         (alignaddrsi_vis, alignaddrdi_vis, alignaddrlsi_vis, alignaddrldi_vis):
1163         Reference GSR_REG in DI mode, simplify convoluted expressions by using
1164         zero_extract.
1165         (bshuffle<V64I:mode>_vis): Reference GSR_REG in DI mode.
1166
1167 2011-10-03  Maxim Kuvyrkov  <maxim@codesourcery.com>
1168
1169         * tree-eh.c (remove_unreachable_handlers): Obvious cleanup.
1170
1171 2011-10-03  Jakub Jelinek  <jakub@redhat.com>
1172             Ian Lance Taylor  <iant@google.com>
1173
1174         * godump.c (go_output_typedef): Support printing enum values that
1175         don't fit in a signed HOST_WIDE_INT.
1176
1177 2011-10-03  Anatoly Sokolov  <aesok@post.ru>
1178
1179         * config/cris/cris.c (cris_output_addr_const_extra): Make static.
1180         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
1181         * config/cris/cris.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
1182         * config/cris/cris-protos.h (cris_output_addr_const_extra): Remove.
1183
1184 2011-10-03  Anatoly Sokolov  <aesok@post.ru>
1185
1186         * config/m68k/m68k.c (m68k_output_addr_const_extra): Make static.
1187         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
1188         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
1189         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Remove.
1190
1191 2011-10-03  Steve Ellcey  <sje@cup.hp.com>
1192
1193         PR target/49967
1194         * configure.ac (gcc_cv_ld_static_dynamic): Define for *-*-hpux*.
1195         (gcc_cv_ld_static_option): Ditto.
1196         (gcc_cv_ld_dynamic_option): Ditto.
1197         * configure: Regenerate.
1198
1199 2011-10-03  David S. Miller  <davem@davemloft.net>
1200
1201         * config/sparc/sparc.md (bmask<P:mode>_vis): Split into explicit 'di'
1202         and 'si' patterns which describe the GSR changes explicitly in the
1203         RTL using zero_extract.
1204         (bshuffle<V64I:mode>_vis): Put the GSR use inside of the unspec.
1205
1206         * config/sparc/sparc.md (bshuffle<V64I:mode>_vis): Don't wrap
1207         GSR_REG in a USE, since it's now a true arg to the UNSPEC.
1208
1209 2011-10-03  Artjoms Sinkarovs  <artyom.shinkaroff@gmail.com>
1210
1211         * optabs.c (expand_vec_shuffle_expr_p): New function. Checks
1212         if given expression can be expanded by the target.
1213         (expand_vec_shuffle_expr): New function. Expand VEC_SHUFFLE_EXPR
1214         using target vector instructions.
1215         * optabs.h: New optab vshuffle.
1216         (expand_vec_shuffle_expr_p): New prototype.
1217         (expand_vec_shuffle_expr): New prototype.
1218         (vshuffle_optab): New optab.
1219         * genopinit.c: Adjust to support vecshuffle.
1220         * c-tree.h (c_build_vec_shuffle_expr): New prototype.
1221         * expr.c (expand_expr_real_2): Adjust.
1222         * c-typeck.c: (c_build_vec_shuffle_expr): Build a VEC_SHUFFLE_EXPR
1223         recognizing the cases of two and three arguments.
1224         (convert_arguments) (build_binary_op)
1225         (scalar_to_vector) (build_array_ref): Spurious whitespace.
1226         * gimplify.c (gimplify_exp): Adjusted to support VEC_SHUFFLE_EXPR.
1227         * tree.def: New tree code VEC_SHUFFLE_EXPR.
1228         * tree-inline.c (estimate_operator_cost): Recognize VEC_SHUFFLE_EXPR.
1229         * tree-vect-generic.c (vector_element): New function. Returns an
1230         element of the vector at the given position.
1231         (lower_vec_shuffle): Checks if VEC_SHUFLLE_EXPR is supported
1232         by the backend or expand an expression piecewise.
1233         (expand_vector_operations_1): Adjusted.
1234         (gate_expand_vector_operations_noop): New gate function.
1235         * Makefile.in (tree-vect-generic.o): New include.
1236         * gimple.c (get_gimple_rhs_num_ops): Adjust.
1237         * tree-cfg.c (verify_gimple_assign_trenary): Verify VEC_SHUFFLE_EXPR.
1238         * passes.c: Move veclower down.
1239         * tree-pretty-print.c (dump_generic_node): Recognize
1240         VEC_SHUFFLE_EXPR as valid expression.
1241         * c-parser.c (c_parser_get_builtin_args): Helper function for the
1242         builtins with variable number of arguments.
1243         (c_parser_postfix_expression): Use a new helper function for
1244         RID_CHOOSE_EXPR, RID_BUILTIN_COMPLEX and RID_BUILTIN_SHUFFLE.
1245         * tree-ssa-operands: Adjust.
1246         * c-family/c-common.c: New __builtin_shuffle keyword.
1247         * c-family/c-common.h: New __builtin_shuffle keyword.
1248         * gcc/doc/extend.texi: Adjust.
1249
1250         * gcc/config/i386/sse.md: (sseshuffint) New mode_attr.  Correspondence
1251         between the vector and the type of the mask when shuffling.
1252         (vecshuffle<mode>): New expansion.
1253         * gcc/config/i386/i386-protos.h (ix86_expand_vshuffle): New prototype.
1254         * gcc/config/i386/i386.c (ix86_expand_vshuffle): New function.
1255         (ix86_vectorize_builtin_vec_perm_ok): Adjust.
1256
1257 2011-10-03  Jakub Jelinek  <jakub@redhat.com>
1258
1259         PR tree-optimization/50587
1260         * tree-ssa-reassoc.c (init_range_entry): Stop iterating when
1261         arg0 is not a SSA_NAME.
1262
1263 2011-10-03  Richard Sandiford  <rdsandiford@googlemail.com>
1264
1265         * ipa-inline-analysis.c (MAX_TIME): Update comment.
1266
1267 2011-10-02  Richard Henderson  <rth@redhat.com>
1268             David S. Miller  <davem@davemloft.net>
1269
1270         * config/sparc/sparc.md (ashlsi3, *ashldi3_sp64): Remove
1271         conditional insn type setting, we always emit a shift.
1272         (*ashlsi3_extend, *lshrsi3_extend0): New patterns.
1273         (*lshrsi3_extend): Rename to *lshrsi3_extend1.
1274         * config/sparc/predicates.md (const_one_operand): Delete.
1275
1276 2011-10-02  Gerald Pfeifer  <gerald@pfeifer.com>
1277
1278         * invoke.texi (SPARC Options): Refer to GNU/Linux.
1279
1280 2011-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
1281
1282         * config/mips/mips.c (mips_frame_barrier): New function.
1283         (mips_expand_prologue): Call it after allocating stack space.
1284         (mips_deallocate_stack): New function.
1285         (mips_expand_epilogue): Call mips_frame_barrier and
1286         mips_deallocate_stack.
1287
1288 2011-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
1289
1290         PR target/49696
1291         * config/mips/sync.md (sync_<optab>_12): Allow zero operands.
1292         (sync_old_<optab>_12, sync_new_<optab>_12, sync_nand_12): Likewise.
1293         (sync_old_nand_12, sync_new_nand_12, test_and_set_12): Likewise.
1294
1295 2011-10-02  Jan Hubicka  <jh@suse.cz>
1296
1297         * cgraphunit.c (verify_edge_count_and_frequency): Bounds check.
1298
1299         * cgraphunit.c (ipa_passes): Remove unrechable nodes.
1300         * lto-streamer-out.c (produce_symtab): Skip unused extern declarations.
1301         * ipa.c (cgraph_remove_unreachable_nodes): Do not assume that external
1302         functions are reachable when address is taken.
1303         * tree-sra.c (modify_function): Free dominance info.
1304
1305 2011-10-02  Jan Hubicka  <jh@suse.cz>
1306
1307         * ipa-inline-analysis.c (inline_summary_alloc): Bounds check.
1308
1309         * ipa-inline-analysis.c (reset_inline_edge_summary): New function.
1310         (reset_inline_summary): New function.
1311         (compute_inline_parameters, inline_node_removal_hook,
1312         inline_edge_removal_hook): Use it.
1313         (inline_free_summary): Reset holders correctly.
1314         (inline_generate_summary): Free summary before computing it.
1315
1316 2011-10-02  Paolo Carlini  <paolo.carlini@oracle.com>
1317
1318         PR preprocessor/36819
1319         * incpath.c (merge_include_chains): Call free_path on
1320         heads[QUOTE] and tails[QUOTE].
1321
1322 2011-10-02  Jan Hubicka  <jh@suse.cz>
1323
1324         PR lto/47247
1325         * lto-symtab.c (lto_symtab_resolve_symbols): Do not resolve
1326         when resolution is already availbale from plugin.
1327         (lto_symtab_merge_decls_1): Handle LDPR_PREVAILING_DEF_IRONLY_EXP.
1328         * cgraph.c (ld_plugin_symbol_resolution): Add
1329         prevailing_def_ironly_exp.
1330         * lto-cgraph.c (LDPR_NUM_KNOWN): Update.
1331         * ipa.c (varpool_externally_visible_p): IRONLY variables are never
1332         externally visible.
1333         * varasm.c (resolution_to_local_definition_p): Add
1334         LDPR_PREVAILING_DEF_IRONLY_EXP.
1335         (resolution_local_p): Likewise.
1336
1337 2011-10-01  David S. Miller  <davem@davemloft.net>
1338
1339         * config/sparc/sparc.opt (VIS3): New option.
1340         * doc/invoke.texi: Document it.
1341         * config/sparc/sparc.h: Force TARGET_VIS3 to zero if assembler is
1342         not capable of such instructions.
1343         * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__
1344         to 0x300 when TARGET_VIS3.
1345         * config/sparc/sparc-modes.def: Create 16-byte vector modes.
1346         * config/sparc/sparc.md (UNSPEC_CMASK8, UNSPEC_CMASK16, UNSPEC_CMASK32,
1347         UNSPEC_FCHKSM16, UNSPEC_PDISTN, UNSPC_FUCMP): New unspecs.
1348         (V64N8, VASS): New mode iterators.
1349         (vis3_shift, vis3_addsub_ss): New code iterators.
1350         (vbits, vconstr): New mode attributes.
1351         (vis3_shift_insn, vis3_addsub_ss_insn): New code attributes.
1352         (cmask8<P:mode>_vis, cmask16<P:mode>_vis, cmask32<P:mode>_vis,
1353         fchksm16_vis, <vis3_shift_insn><vbits>_vis, pdistn<mode>_vis,
1354         fmean16_vis, fpadd64_vis, fpsub64_vis,
1355         <vis3_addsub_ss_insn><vbits>_vis, fucmp<code>8<P:mode>_vis): New
1356         VIS 3.0 instruction patterns.
1357         * config/sparc/sparc.c (sparc_option_override): Set MASK_VIS3 by
1358         default when targetting capable cpus.  TARGET_VIS3 implies
1359         TARGET_VIS2 and TARGET_VIS, and clear them when TARGET_FPU is disabled.
1360         (sparc_vis_init_builtins): Emit new VIS 3.0 builtins.
1361         (sparc_fold_builtin): Do not eliminate cmask{8,16,32} when result
1362         is ignored.
1363         * config/sparc/visintrin.h (__vis_cmask8, __vis_cmask16,
1364         __vis_cmask32, __vis_fchksm16, __vis_fsll16, __vis_fslas16,
1365         __vis_fsrl16, __vis_fsra16, __vis_fsll32, __vis_fslas32,
1366         __vis_fsrl32, __vis_fsra32, __vis_pdistn, __vis_fmean16,
1367         __vis_fpadd64, __vis_fpsub64, __vis_fpadds16, __vis_fpadds16s,
1368         __vis_fpsubs16, __vis_fpsubs16s, __vis_fpadds32, __vis_fpadds32s,
1369         __vis_fpsubs32, __vis_fpsubs32s, __vis_fucmple8, __vis_fucmpne8,
1370         __vis_fucmpgt8, __vis_fucmpeq8): New VIS 3.0 interfaces.
1371         * doc/extend.texi: Document new VIS 3.0 builtins.
1372
1373 2011-10-01  Eric Botcazou  <ebotcazou@adacore.com>
1374
1375         * ira-color.c (assign_hard_reg): Fix typo.
1376
1377 2011-09-30  H.J. Lu  <hongjiu.lu@intel.com>
1378
1379         * doc/extend.texi: Add missing ','.
1380
1381 2011-09-30  Bernd Schmidt  <bernds@codesourcery.com>
1382
1383         * common/config/c6x/c6x-common.c (c6x_option_optimization_table):
1384         Enable -fmodulo-sched at -O2 and above.
1385         * config/c6x/c6x.md (doloop_end): New expander.
1386         (mvilc, sploop, spkernel, loop_end): New patterns.
1387         (loop_end with memory destination splitter): New.
1388         * config/c6x/c6x.c: Include "hw-doloop.h".
1389         (enum unitreqs): New.
1390         (unit_req_table): New typedef.
1391         (unit_reqs): New static variable.
1392         (unit_req_factor, get_unit_reqs, count_unit_reqs, merge_unit_reqs,
1393         res_mii, split_delayed_nonbranch, undo_split_delayed_nonbranch,
1394         hwloop_pattern_reg, bb_earliest_end_cycle, filter_insns_above,
1395         hwloop_optimize, hwloop_fail, c6x_hwloops): New static functions.
1396         (struct c6x_sched_context): New member last_scheduled_iter0.
1397         (init_sched_state): Initialize it.
1398         (c6x_variable_issue): Update it.
1399         (sploop_max_uid_iter0): New static variable.
1400         (c6x_sched_reorder_1): Be careful about issuing sploop.
1401         (c6x_reorg): Call c6x_hwlooops before the final schedule.
1402
1403 2011-09-30  Georg-Johann Lay  <avr@gjlay.de>
1404
1405         PR target/50566
1406         * config/avr/avr-protos.h (avr_log_t): New field address_cost.
1407         * config/avr/avr.c (avr_address_cost): Use it.
1408         * config/avr/avr-log.c (avr_log_set_avr_log): Initialize it.
1409         (avr_log_vadump): Unknown %-codes finish printing.
1410
1411 2011-09-30  Jakub Jelinek  <jakub@redhat.com>
1412
1413         PR inline-asm/50571
1414         * gimple-fold.c (fold_stmt_1) <case GIMPLE_ASM>: If
1415         input constraints allow mem and not reg, pass true instead of
1416         false as second argument to maybe_fold_reference.
1417
1418         PR tree-optimization/46309
1419         * fold-const.c (make_range, merge_ranges): Remove prototypes.
1420         (make_range_step): New function.
1421         (make_range): Use it.
1422         * tree.h (make_range_step): New prototypes.
1423         * Makefile.in (tree-ssa-reassoc.o): Depend on $(DIAGNOSTIC_CORE_H).
1424         * tree-ssa-reassoc.c: Include diagnostic-core.h.
1425         (struct range_entry): New type.
1426         (init_range_entry, range_entry_cmp, update_range_test,
1427         optimize_range_tests): New functions.
1428         (reassociate_bb): Call optimize_range_tests.
1429
1430 2011-09-30  Jakub Jelinek  <jakub@redhat.com>
1431             Richard Guenther  <rguenther@suse.de>
1432
1433         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Handle
1434         BUILT_IN_STRDUP and BUILT_IN_STRNDUP.
1435         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Likewise.  Fix
1436         handling of BUILT_IN_STRNCAT and BUILT_IN_STRNCAT_CHK.
1437         (ref_maybe_used_by_call_p_1): Fix handling of BUILT_IN_STRCAT,
1438         BUILT_IN_STRNCAT, BUILT_IN_STRCAT_CHK and BUILT_IN_STRNCAT_CHK.
1439
1440 2011-09-30  Jan Beulich  <jbeulich@suse.com>
1441
1442         * lto-cgraph.c (output_cgraph): Remove processing of
1443         'cgraph_asm_nodes', call lto_output_toplevel_asms() instead.
1444         (input_cgraph_1): Remove loop calling cgraph_add_asm_node(), call
1445         lto_input_toplevel_asms() instead.
1446         * lto-section-in.c (lto_section_name): Add "asm" entry.
1447         * lto-streamer-in.c (lto_input_toplevel_asms): New.
1448         * lto-streamer-out.c (lto_output_toplevel_asms): New.
1449         * lto-streamer.h (LTO_minor_version): Bump.
1450         (enum lto_section_type): Add LTO_section_asm.
1451         (struct lto_asm_header): New.
1452         (lto_input_toplevel_asms, lto_output_toplevel_asms): Declare.
1453         * tree-streamer.h (streamer_write_string_cst): Declare.
1454         * tree-streamer-out.c (write_string_cst): Rename to
1455         streamer_write_string_cst and make global. Handle incoming string
1456         being NULL.
1457         (streamer_write_tree_header): Adjust call to renamed function.
1458
1459 2011-09-30  Bernd Schmidt  <bernds@codesourcery.com>
1460
1461         * haifa-sched.c (modulo_ii, modulo_max_states, modulo_n_insns,
1462         modulo_insns_scheduled, modulo_iter0_max_uid, modulo_backtracks_left,
1463         modulo_last_stage): New static variables.
1464         (set_modulo_params, discard_delay_pairs_above): New functions.
1465         (struct delay_pair): New member stages.
1466         (htab_i2_traverse, htab_i1_traverse): New static functions.
1467         (record_delay_slot_pair): New arg stages.  All callers changed.
1468         Record it.
1469         (pair_delay): Take stages into account.
1470         (add_delay_dependencies): Don't do so for stage pairs.
1471         (struct sched_block_state): New member modulo_epilogue.
1472         (save_backtrack_point): Don't set SHADOW_P for stage pairs.
1473         (unschedule_insns_until): Decrease modulo_insns_scheduled.
1474         Set HARD_DEP without using or.
1475         (resolve_dependencies): New static function.
1476         (prune_ready_list): New arg modulo_epilogue_p.  All callers changed.
1477         If it is true, allow only insns with INSN_EXACT_TICK set.
1478         (schedule_block): Return bool, always true for normal scheduling,
1479         true or false depending on modulo scheduling success otherwise.
1480         Add bookkeeping for modulo scheduling, and call resolve_dependencies
1481         on everything left over after a modulo schedule.
1482         (haifa_sched_init): Remove check_cfg call.  Clear modulo_ii.
1483         * sched-int.h (schedule_block, record_delay_slot_pair): Adjust
1484         declarations.
1485         (set_modulo_params, discard_delay_pairs_above): Declare.
1486         * params.def (PARAM_MAX_MODULO_BACKTRACK_ATTEMPS): New.
1487         * doc/invoke.texi (--param): Document it.
1488
1489         * sched-ebb.c (schedule_ebb): No longer static.  Remove declaration.
1490         New arg modulo_scheduling.  All callers changed.  Move note handling
1491         code here from schedule_ebbs.
1492         (schedule_ebbs_finish, schedule_ebbs_init): New functions, broken
1493         out of schedule_ebbs.
1494         (schedule_ebbs): Call them.  Remove note handling code moved to
1495         schedule_ebb.
1496         * sched-int.h (schedule_ebb, schedule_ebbs_init,
1497         schedule_ebbs_finish): Declare.
1498
1499 2011-09-30  Richard Guenther  <rguenther@suse.de>
1500
1501         PR middle-end/50574
1502         * tree-cfg.c (verify_gimple_comparison): Compare component
1503         mode sizes for vector comparisons.
1504
1505 2011-09-30  Revital Eres  <revital.eres@linaro.org>
1506
1507         * ddg.c (autoinc_var_is_used_p): New function.
1508         (create_ddg_dep_from_intra_loop_link,
1509         add_cross_iteration_register_deps): Call it.
1510         * ddg.h (autoinc_var_is_used_p): Declare.
1511         * modulo-sched.c (generate_reg_moves): Call autoinc_var_is_used_p.
1512         (sms_schedule): Handle instructions with REG_INC.
1513
1514 2011-09-30  Revital Eres  <revital.eres@linaro.org>
1515
1516         * modulo-sched.c (generate_reg_moves): Skip instructions that
1517         do not set a register and verify no regmoves are created for
1518         !single_set instructions.
1519
1520 2011-09-30  Bernd Schmidt  <bernds@codesourcery.com>
1521
1522         * hw-doloop.c (scan_loop): Compute register usage only for non-debug
1523         insns.
1524
1525 2011-09-30  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1526
1527         PR target/50099
1528         * config/arm/iterators.md (qhs_zextenddi_cstr): New.
1529         (qhs_zextenddi_op): New.
1530         * config/arm/arm.md ("zero_extend<mode>di2"): Use them.
1531         * config/arm/predicates.md ("arm_extendqisi_mem_op"):
1532         Distinguish between ARM and Thumb2 states.
1533
1534 2011-09-30  David S. Miller  <davem@davemloft.net>
1535
1536         * config/sparc/sparc.opt (VIS2): New option.
1537         * doc/invoke.texi: Document it.
1538         * config/sparc/sparc.md (UNSPEC_EDGE8N, UNSPEC_EDGE8LN,
1539         UNSPEC_EDGE16N, UNSPEC_EDGE16LN, UNSPEC_EDGE32N,
1540         UNSPEC_EDGE32LN, UNSPEC_BSHUFFLE): New unspecs.
1541         (define_attr type): New insn type 'edgen'.
1542         (bmask<P:mode>_vis, bshuffle<V64I:mode>_vis, edge8n<P:mode>_vis,
1543         edge8ln<P:mode>_vis, edge16n<P:mode>_vis, edge16ln<P:mode>_vis,
1544         edge32n<P:mode>_vis, edge32ln<P:mode>_vis): New insn VIS 2.0
1545         patterns.
1546         * niagara.md: Handle edgen.
1547         * niagara2.md: Likewise.
1548         * ultra1_2.md: Likewise.
1549         * ultra3.md: Likewise.
1550         * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__
1551         to 0x200 when TARGET_VIS2.
1552         * config/sparc/sparc.c (sparc_option_override): Set MASK_VIS2 by
1553         default when targetting capable cpus.  TARGET_VIS2 implies
1554         TARGET_VIS, clear and it when TARGET_FPU is disabled.
1555         (sparc_vis_init_builtins): Emit new VIS 2.0 builtins.
1556         (sparc_expand_builtin): Fix predicate indexing when builtin returns
1557         void.
1558         (sparc_fold_builtin): Do not eliminate bmask when result is ignored.
1559         * config/sparc/visintrin.h (__vis_bmask, __vis_bshuffledi,
1560         __vis_bshufflev2si, __vis_bshufflev4hi, __vis_bshufflev8qi,
1561         __vis_edge8n, __vis_edge8ln, __vis_edge16n, __vis_edge16ln,
1562         __vis_edge32n, __vis_edge32ln): New VIS 2.0 interfaces.
1563         * doc/extend.texi: Document new VIS 2.0 builtins.
1564
1565 2011-09-29  Nick Clifton  <nickc@redhat.com>
1566             Bernd Schmidt  <bernds@codesourcery.com>
1567
1568         * config/frv/frvbegin.c: Fix location of unwind-dw2-fde.h header file.
1569         * config/frv/frvend.c: Likewise.
1570         * config/frv/frv.c (frv_function_prologue): Move misplaced
1571         CALL_ARG_LOCATION notes back to their proper locations.
1572
1573 2011-09-29  Georg-Johann Lay  <avr@gjlay.de>
1574
1575         PR target/50566
1576         * config/avr/avr-log.c (avr_log_vadump): Use %b to print bool.
1577         * config/avr/avr.c (avr_rtx_costs_1): New static function, renamed
1578         from avr_rtx_costs.
1579         (avr_legitimate_address_p): Use avr_edump to print log information
1580         filtered by avr_log.
1581         (extra_constraint_Q): Ditto.
1582         (avr_legitimize_address): Ditto.
1583         (avr_rtx_costs): Ditto.  Rewrite as wrapper for avr_rtx_costs_1.
1584         (final_prescan_insn): Use avr_log.rtx_costs as filter.
1585
1586 2011-09-29  Richard Sandiford  <richard.sandiford@linaro.org>
1587
1588         * config/arm/arm-protos.h (arm_modes_tieable_p): Declare.
1589         * config/arm/arm.h (MODES_TIEABLE_P): Use it.
1590         * config/arm/arm.c (arm_modes_tieable_p): New function.  Allow
1591         NEON vector and structure modes to be tied.
1592
1593 2011-09-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1594
1595         * graphite-scop-detection.c (make_close_phi_nodes_unique):  New
1596         forward declaration.
1597         (remove_duplicate_close_phi): Detect and repair creation of
1598         duplicate close-phis for a containing loop.
1599
1600 2011-09-27   Andi Kleen <ak@linux.intel.com>
1601
1602         * gcc.c (get_local_tick). Rename to get_random_number.  Read from
1603         /dev/urandom.  Add getpid call.
1604         (compare_debug_dump_opt_spec_function): Drop getpid call.
1605
1606 2011-09-26   Andi Kleen <ak@linux.intel.com>
1607
1608         * toplev.c (init_local_tick): Try reading random seed
1609         from /dev/urandom.
1610
1611 2011-09-26   Andi Kleen <ak@linux.intel.com>
1612
1613         * hwint.h (HOST_WIDE_INT_PRINT_HEX_PURE): Add.
1614         * lto-streamer.c (lto_get_section_name): Remove crc32_string.
1615         Handle numerical random seed.
1616         * lto-streamer.h (lto_file_decl_data): Change id to
1617         unsigned HOST_WIDE_INT.
1618         * toplev.c (random_seed): Add.
1619         (init_random_seed): Change for numerical random seed.
1620         (get_random_seed): Return as HOST_WIDE_INT.
1621         (set_random_seed): Crc32 existing string.
1622         * toplev.h (get_random_seed): Change to numercal return.
1623         * tree.c (get_file_function_name): Remove CRC. Handle
1624         numerical random seed.
1625
1626 2011-09-29  Georg-Johann Lay  <avr@gjlay.de>
1627
1628         PR target/50566
1629         * config.gcc (extra_objs): Add avr-log.o for $target in:
1630         avr-*-rtems*, avr-*-*.
1631         * config/avr/t-avr (avr-log.o): New rule to compile...
1632         * config/avr/avr-log.c: ...this new file.
1633         * config/avr/avr.opt (mlog=): New option.
1634         * config/avr/avr-protos.h (avr_edump, avr_fdump): New macros.
1635         (avr_log_set_caller_e, avr_log_set_caller_f): New prototypes.
1636         (avr_log_set_avr_log): New prototype.
1637         (avr_log_t): New typedef.
1638         (avr_log): New declaration.
1639         * config/avr/avr.c (avr_option_override): Call avr_log_set_avr_log.
1640
1641 2011-09-29  Artjoms Sinkarovs <artyom.shinkaroff@gmail.com>
1642
1643         * expr.c (do_store_flag): Expand vector comparison by
1644         building an appropriate VEC_COND_EXPR.
1645         * c-typeck.c (build_binary_op): Typecheck vector comparisons.
1646         (c_objc_common_truthvalue_conversion): Adjust.
1647         * tree-vect-generic.c (do_compare): Helper function.
1648         (expand_vector_comparison): Check if hardware supports
1649         vector comparison of the given type or expand vector piecewise.
1650         (expand_vector_operation): Treat comparison as binary
1651         operation of vector type.
1652         (expand_vector_operations_1): Adjust.
1653
1654 2011-09-29  Richard Guenther  <rguenther@suse.de>
1655
1656         * tree.c (build_opaque_vector_type): Make opaque vectors
1657         variant types of the corresponding non-opaque type.  Make
1658         sure to share opaque vector types properly.
1659
1660 2011-09-29  David S. Miller  <davem@davemloft.net>
1661
1662         * config/sparc/sparc.md (UNSPEC_ARRAY8, UNSPEC_ARRAY16,
1663         UNSPEC_ARRAY32): New unspec.
1664         (define_attr type): New type 'array'.
1665         (array{8,16,32}<P:mode>_vis): New patterns.
1666         * config/sparc/ultra1_2.md: Add reservations for 'array'.
1667         * config/sparc/ultra3.md: Likewise.
1668         * config/sparc/niagara.md: Likewise.
1669         * config/sparc/niagara2.md: Likewise.
1670         * config/sparc/sparc.c (sparc_vis_init_builtins): Build new
1671         array builtins.
1672         * config/sparc/visintrin.h (__vis_array8, __vis_array16,
1673         __vis_array32): New.
1674         * doc/extend.texi: Document new VIS builtins.
1675
1676         * config/sparc/sparc.md (gcond_name): Delete unnecessary code attr.
1677         (VIS pixel-compare insn): Just use <gcond:name>.
1678
1679         * config/sparc/sparc.md (VIS pixel-compare insn): There is only one
1680         code iterator used, so just use <code>.  There are two mode iterators
1681         so explicitly use <GCM:gcm_name>.
1682
1683 2011-09-29  Iain Sandoe  <iains@gcc.gnu.org>
1684
1685         * config/darwin9.h (STACK_CHECK_STATIC_BUILTIN): Enable for
1686         Darwin >= 9.
1687
1688 2011-09-28  David S. Miller  <davem@davemloft.net>
1689
1690         * config/sparc/sparc.md (UNSPEC_FCMPLE, UNSPEC_FCMPNE,
1691         UNSPEC_FCMPGT, UNSPEC_FCMPEQ): Delete and reduce to...
1692         (UNSPEC_FCMP): New unspec.
1693         (gcond): New code iterator.
1694         (gcond_name): New code attr.
1695         (GCM): New mode iterator.
1696         (gcm_name): New mode attr.
1697         (fcmp{le,ne,gt,eq}{16,32}_vis): Reimplement using iterators.
1698
1699 2011-09-28  Oleg Endo  <oleg.endo@t-online.de>
1700
1701         PR target/49486
1702         * config/sh/sh.md (negdi2): Move expansion into split to
1703         allow more combination options.  Add T_REG clobber.
1704         (abssi2): New expander.
1705         (*negdi2, *abssi2, *negabssi2): New insns.
1706         (cneg): Change from insn to insn_and_split.  Rename to
1707         negsi_cond.  Add alternative for non-SH4.
1708
1709 2011-09-28  Richard Sandiford  <richard.sandiford@linaro.org>
1710
1711         * config/arm/neon.md (neon_move_lo_quad_<mode>): Delete.
1712         (neon_move_hi_quad_<mode>): Likewise.
1713         (move_hi_quad_<mode>, move_lo_quad_<mode>): Use subreg moves.
1714
1715 2011-09-28  Nick Clifton  <nickc@redhat.com>
1716
1717         * config/rx/predicates.md (rx_minmax_operand): New predicate.
1718         Accepts immediates and a restricted subset of MEMs.
1719         * config/rx/rx.md (int_modes): New iterator.
1720         (smaxsi3, sminsi3): Delete and replace with...
1721         (smax<int_mode>3, smin<int_mode>3): New patterns.
1722         (umax<>3_u, umax<>3_ur, umax<>3, umin<>3): New patterns.
1723
1724 2011-09-28  Richard Guenther  <rguenther@suse.de>
1725
1726         PR middle-end/50460
1727         * fold-const.c (try_move_mult_to_index): Handle &a.array the
1728         same as &a.array[0].
1729
1730 2011-09-28  Kai Tietz  <ktietz@redhat.com>
1731
1732         * configure.ac: Add test for new section attribute
1733         specifier "e" via define HAVE_GAS_SECTION_EXCLUDE.
1734         * config.in: Regenerated.
1735         * configure: Regenerated.
1736         * config/i386/winnt.c (i386_pe_asm_named_section): Emit
1737         new section flag "e" for excluded sections, if supported.
1738         Otherwise we mark section withc SECTION_EXCLUDE flag as never-load.
1739
1740 2011-09-28  Richard Sandiford  <rdsandiford@googlemail.com>
1741
1742         * config/m32r/m32r.md: Use match_test rather than eq/ne symbol_ref
1743         throughout file.
1744
1745 2011-09-28  Richard Sandiford  <rdsandiford@googlemail.com>
1746
1747         * config/iq2000/iq2000.md: Use match_test rather than eq/ne symbol_ref
1748         throughout file.
1749
1750 2011-09-27  Sriraman Tallam  <tmsriram@google.com>
1751
1752         * output.h (SECTION_EXCLUDE): New macro.
1753         * varasm.c (default_elf_asm_named_section): Check for SECTION_EXCLUDE.
1754
1755 2011-09-27  Richard Sandiford  <rdsandiford@googlemail.com>
1756
1757         * fwprop.c (forward_propagate_and_simplify): After checking
1758         reg/subreg combinations, check whether the modes are the same.
1759
1760 2011-09-27  Bernd Schmidt  <bernds@codesourcery.com>
1761             Richard Sandiford  <rdsandiford@googlemail.com>
1762
1763         * config/mips/mips.c (mips_add_cfa_restore): New function.
1764         (mips16e_save_restore_reg): Use it.
1765         (mips_restore_reg): Likewise.  Split double FPRs for
1766         REG_CFA_RESTORE notes.
1767
1768 2011-09-27  Richard Sandiford  <rdsandiford@googlemail.com>
1769
1770         PR middle-end/50386
1771         PR middle-end/50326
1772         * tree-sra.c (build_ref_for_model): Use the type of the field as
1773         the type of the COMPONENT_REF.
1774
1775 2011-09-27  Jeff Law  <law@redhat.com>
1776
1777         * ifcvt.c (cheap_bb_rtx_cost_p): Add SCALE argument.  Scale
1778         non-jumping insns by REG_BR_PROB_BASE and the maximum cost by SCALE.
1779         (find_if_case_1): Use the probability of the THEN clause when
1780         determining if speculation is profitable.
1781         (find_if_case_2): Similarly for the ELSE clause.
1782
1783 2011-09-27  Jakub Jelinek  <jakub@redhat.com>
1784
1785         * common.opt: Add -foptimize-strlen option.
1786         * Makefile.in (OBJS): Add tree-ssa-strlen.o.
1787         (tree-sssa-strlen.o): Add dependencies.
1788         * opts.c (default_options_table): Enable -foptimize-strlen
1789         by default at -O2 if not -Os.
1790         * passes.c (init_optimization_passes): Add pass_strlen
1791         after pass_object_sizes.
1792         * timevar.def (TV_TREE_STRLEN): New timevar.
1793         * params.def (PARAM_MAX_TRACKED_STRLENS): New parameter.
1794         * tree-pass.h (pass_strlen): Declare.
1795         * tree-ssa-strlen.c: New file.
1796         * c-decl.c (merge_decls): If compatible stpcpy prototype
1797         is seen, set implicit_built_in_decls[BUILT_IN_STPCPY].
1798
1799 2011-09-27  Tom de Vries  <tom@codesourcery.com>
1800
1801         PR middle-end/43864
1802         * tree-ssa-tail-merge.c: New file.
1803         (struct same_succ_def): Define.
1804         (same_succ, const_same_succ): New typedef.
1805         (struct bb_cluster_def): Define.
1806         (bb_cluster, const_bb_cluster): New typedef.
1807         (struct aux_bb_info): Define.
1808         (BB_SIZE, BB_SAME_SUCC, BB_CLUSTER, BB_VOP_AT_EXIT): Define.
1809         (gvn_uses_equal): New function.
1810         (same_succ_print, same_succ_print_traverse, update_dep_bb)
1811         (stmt_update_dep_bb, local_def, same_succ_hash)
1812         (inverse_flags, same_succ_equal, same_succ_alloc, same_succ_delete)
1813         (same_succ_reset): New function.
1814         (same_succ_htab, same_succ_edge_flags)
1815         (deleted_bbs, deleted_bb_preds): New var.
1816         (debug_same_succ): New function.
1817         (worklist): New var.
1818         (print_worklist, add_to_worklist, find_same_succ_bb, find_same_succ)
1819         (init_worklist, delete_worklist, delete_basic_block_same_succ)
1820         (same_succ_flush_bbs, purge_bbs, update_worklist): New function.
1821         (print_cluster, debug_cluster, update_rep_bb)
1822         (add_bb_to_cluster, new_cluster, delete_cluster): New function.
1823         (all_clusters): New var.
1824         (alloc_cluster_vectors, reset_cluster_vectors, delete_cluster_vectors)
1825         (merge_clusters, set_cluster): New function.
1826         (gimple_equal_p, gsi_advance_bw_nondebug_nonlocal, find_duplicate)
1827         (same_phi_alternatives_1, same_phi_alternatives, bb_has_non_vop_phi)
1828         (deps_ok_for_redirect_from_bb_to_bb, deps_ok_for_redirect)
1829         (find_clusters_1, find_clusters): New function.
1830         (update_vuses, vop_phi, vop_at_entry, replace_block_by): New function.
1831         (update_bbs): New var.
1832         (apply_clusters): New function.
1833         (update_debug_stmt, update_debug_stmts): New function.
1834         (tail_merge_optimize): New function.
1835         tree-pass.h (tail_merge_optimize): Declare.
1836         * tree-ssa-pre.c (execute_pre): Use tail_merge_optimize.
1837         * Makefile.in (OBJS-common): Add tree-ssa-tail-merge.o.
1838         (tree-ssa-tail-merge.o): New rule.
1839         * opts.c (default_options_table): Set OPT_ftree_tail_merge by
1840         default at OPT_LEVELS_2_PLUS.
1841         * tree-ssa-sccvn.c (vn_valueize): Move to ...
1842         * tree-ssa-sccvn.h (vn_valueize): Here.
1843         * timevar.def (TV_TREE_TAIL_MERGE): New timevar.
1844         * common.opt (ftree-tail-merge): New switch.
1845         * params.def (PARAM_MAX_TAIL_MERGE_COMPARISONS)
1846         (PARAM_MAX_TAIL_MERGE_ITERATIONS): New parameter.
1847         * doc/invoke.texi (Optimization Options, -O2): Add -ftree-tail-merge.
1848         (-ftree-tail-merge, max-tail-merge-comparisons)
1849         (max-tail-merge-iterations): New item.
1850
1851 2011-09-27  Jan Hubicka  <jh@suse.cz>
1852
1853         * ipa-inline-analysis.c (MAX_TIME): Reduce to avoid overflows.
1854
1855 2011-09-27  Jan Hubicka  <jh@suse.cz>
1856
1857         * ipa-inline-analysis.c (eliminated_by_inlining_prob): Handle
1858         parameters passed by reference; handle loads from non-SSA scalars
1859         and update comments.
1860
1861 2011-09-27  Bernd Schmidt  <bernds@codesourcery.com>
1862
1863         PR rtl-optimization/50249
1864         * reload1.c (reload_reg_reaches_end_p): Accept a reloadnum argument
1865         instead of opnum and type.  All callers changed.  Remove useless
1866         declaration.
1867         Search forward for other reloads of the same type for the same operand
1868         using the same register; if any are found, return false.
1869         (reload_regs_reach_end_p): Same argument changes; all callers changed.
1870
1871 2011-09-27  Andi Kleen  <ak@linux.intel.com>
1872             Jan Hubicka  <jh@suse.cz>
1873
1874         * doc/invoke.texi (ffat-lto-objects): Document.
1875         * toplev.c (compile_file): Do not output assembly when doing slim lto;
1876         Output __gnu_slim_lto when doing slim lto.
1877         * cgraphunit.c (ipa_passes): Do only analysis when producing slim lto.
1878         (cgraph_optimize): Return early when doing slim lto.
1879         * opts.c (finish_options): Complain about lack of linker plugin
1880         when doing slim lto.
1881         * common.opt (ffat-lto-objects): New.
1882
1883 2011-09-27  Richard Sandiford  <richard.sandiford@linaro.org>
1884
1885         * ipa-inline-analysis.c (predicate_probability): Avoid comparison
1886         between signed and unsigned.
1887
1888 2011-09-27  Ira Rosen  <ira.rosen@linaro.org>
1889
1890         * tree-vect-stmts.c (vectorizable_type_demotion): Handle basic block
1891         vectorization.
1892         (vectorizable_type_promotion): Likewise.
1893         (vect_analyze_stmt): Call vectorizable_type_demotion and
1894         vectorizable_type_promotion for basic blocks.
1895         (supportable_widening_operation): Don't assume loop vectorization.
1896         * tree-vect-slp.c (vect_build_slp_tree): Allow multiple types for
1897         basic blocks.  Update vectorization factor for basic block
1898         vectorization.
1899         (vect_analyze_slp_instance): Allow multiple types for basic block
1900         vectorization.  Recheck unrolling factor after construction of SLP
1901         instance.
1902
1903 2011-09-27  Richard Guenther  <rguenther@suse.de>
1904
1905         * tree-object-size.c (compute_object_sizes): Fix dumping of
1906         folded statement.
1907
1908 2011-09-27  Richard Guenther  <rguenther@suse.de>
1909
1910         PR tree-optimization/50363
1911         * tree-ssa-pre.c (create_expression_by_pieces): Handle
1912         pointer conversions in POINTER_PLUS_EXPRs properly.
1913
1914 2011-09-27  Richard Sandiford  <richard.sandiford@linaro.org>
1915
1916         * config/arm/neon.md (neon_vget_highv16qi, neon_vget_highv8hi)
1917         (neon_vget_highv4si, neon_vget_highv4sf, neon_vget_highv2di)
1918         (neon_vget_lowv16qi, neon_vget_lowv8hi, neon_vget_lowv4si)
1919         (neon_vget_lowv4sf, neon_vget_lowv2di): Turn into define_expands
1920         that produce subreg moves.  Define using VQX iterators.
1921
1922 2011-09-27  Georg-Johann Lay  <avr@gjlay.de>
1923
1924         * config/avr/avr.md (ashrqi3): Split alternative "n"
1925         into its remaining parts C03, C04, C05, C06, C07 and describe
1926         impact in CC by attribute "cc" appropriately.
1927         * config/avr/avr.c (notice_update_cc): Clean-up: Don't patch CC0
1928         by digging RTX.
1929
1930 2011-09-27  Jakub Jelinek  <jakub@redhat.com>
1931
1932         * rtl.h (const_tiny_rtx): Change into array of 4 x MAX_MACHINE_MODE
1933         from 3 x MAX_MACHINE_MODE.
1934         (CONSTM1_RTX): Define.
1935         * emit-rtl.c (const_tiny_rtx): Change into array of
1936         4 x MAX_MACHINE_MODE from 3 x MAX_MACHINE_MODE.
1937         (gen_rtx_CONST_VECTOR): Use CONSTM1_RTX if all inner constants are
1938         CONSTM1_RTX.
1939         (init_emit_once): Initialize CONSTM1_RTX for MODE_INT and
1940         MODE_VECTOR_INT modes.
1941         * simplify-rtx.c (simplify_binary_operation_1) <case IOR, XOR, AND>:
1942         Optimize if one operand is CONSTM1_RTX.
1943         * config/i386/i386.c (ix86_expand_sse_movcc): Optimize mask ? -1 : x
1944         into mask | x.
1945
1946 2011-09-26  David S. Miller  <davem@davemloft.net>
1947
1948         * config/sparc/sparc.md (edge{8,16,32}{,l}): Return Pmode.
1949         (fcmp{le,ne,gt,eq}{16,32}): Likewise.
1950         * config/sparc/visintrin.h: Update edge and pixel-compare
1951         intrinsics to return 'long' instead of 'int'.
1952         * doc/extend.texi: Update documentation to match.
1953         * config/sparc/sparc.c (eligible_for_return_delay): When leaf or
1954         flat, allow any instruction.  Otherwise, when V9 allow parallels
1955         which consist only of sets to registers outside of %o0 to %o5.
1956         (sparc_vis_init_builtins): Update VIS builtin types for edge
1957         and pixel-compare.
1958
1959         * config/sparc/sparc.c (sparc_conditional_register_usage): When VIS
1960         is enabled, mark %gsr as global.
1961         * config/sparc/sparc.md (UNSPEC_WRGSR): Delete.
1962         (wrgsr_vis, *wrgsr_sp64, wrgsr_v8plus): Don't wrap in an unspec.
1963
1964         * config/sparc/sparc-c.c: New file implementing sparc_target_macros,
1965         which will now define __VIS and __VIS__ when -mvis is enabled.
1966         * config/sparc/t-sparc: Likewise.
1967         * config.gcc: Add sparc-c.o to c_target_objs and cxx_target_objs,
1968         and add t-sparc to tmake_file for all sparc targets.
1969         * config/sparc/sparc-protos.h (sparc_target_macros): Declare.
1970         * config/sparc/sparc.h (TARGE_CPU_CPP_BUILTINS): Call it.
1971
1972         * config/sparc/sparc.c (sparc_vis_init_builtins): Add explicit
1973         builtins for VIS vector addition and subtraction.
1974         * config/sparc/visintrin.h (__vis_fpadd16, __vis_fpadd16s,
1975         __vis_fpadd32, __vis_fpadd32s, __vis_fpsub16, __vis_fpsub16s,
1976         __vis_fpsub32, __vis_fpsub32s): New.
1977         * doc/extend.texi: Document new VIS intrinsics.
1978
1979 2011-09-26  Georg-Johann Lay  <avr@gjlay.de>
1980
1981         * config/avr/avr.md (peephole casesi+2): Use -1 instead of 65536.
1982         * config/avr/avr.c (avr_out_compare): Print shorter sequence for
1983         EQ/NE comparisons against +/-1 in the case of unused-after,
1984         non-ld-regs target.
1985
1986 2011-09-26  Jakub Jelinek  <jakub@redhat.com>
1987
1988         * gimple-fold.c (gimplify_and_update_call_from_tree): Set
1989         gctx.into_ssa after push_gimplify_context.
1990
1991         * gimple.c (gimple_build_call_valist): New function.
1992         * gimple.h (gimple_build_call_valist): New prototype.
1993         * tree-ssa-propagate.c (finish_update_gimple_call): New function.
1994         (update_gimple_call): Likewise.
1995         (update_call_from_tree): Use finish_update_gimple_call.
1996         * tree-ssa-propagate.h (update_gimple_call): New prototype.
1997
1998 2011-09-26  Richard Guenther  <rguenther@suse.de>
1999
2000         PR tree-optimization/50472
2001         * gimple-fold.c (fold_const_aggregate_ref_1): Do not fold
2002         volatile references.
2003
2004 2011-09-26  Bingfeng Mei <bmei@broadcom.com>
2005
2006         * doc/tm.texi: Correct documentation for TARGET_ADDR_SPACE_SUBSET_P.
2007         * target.def: (addr_space_subset_p): Likewise.
2008
2009 2011-09-26  Tom de Vries  <tom@codesourcery.com>
2010
2011         * tree-ssa-alias.h (pt_solution_singleton_p): Declare.
2012         * tree-ssa-structalias.c (pt_solution_singleton_p): New function.
2013         * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Set points-to solution
2014         of new var.
2015
2016 2011-09-26  Georg-Johann Lay  <avr@gjlay.de>
2017
2018         PR target/50465
2019         * config/avr/avr-protos.h (output_reload_insisf): Don't pass insn.
2020         * config/avr/avr.md (*reload_insi, *reload_insf): Change call to
2021         output_reload_insisf.
2022         (adjust_len): Set default to "no".
2023         Remove alternative "yes".  Add alternatives: "mov8", "mov16",
2024         "mov32", "ashlqi", "ashrqi", "lshrqi", "ashlhi", "ashrhi",
2025         "lshrhi", "ashlsi, "ashrsi", "lshrsi".
2026         (*movqi, *movhi, *movsi, *ashlqi3, ashlhi3, ashlsi3,
2027         *ashlhi3_const, *ashlsi3_const, ashrqi3, ashrhi3, ashrsi3,
2028         *ashrhi3_const, *ashrsi3_const, *lshrqi3, lshrhi3, *lshrhi3_const,
2029         *lshrsi3_const): Set attribute "adjust_len".
2030         * config/avr/avr.c (output_reload_insisf): Remove parameter "insn".
2031         (output_movsisf): Don't pass insn to output_reload_insisf.
2032         (adjust_insn_length): Handle new alternatives to adjust_len.
2033         Remove handling of ADJUST_LEN_YES.  Clean-up code.
2034
2035 2011-09-26  Eric Botcazou  <ebotcazou@adacore.com>
2036
2037         * ifcvt.c (noce_try_cmove_arith): Use may_trap_or_fault_p in lieu of
2038         may_trap_p to detect loads that may trap of fault.
2039
2040 2011-09-26  Georg-Johann Lay  <avr@gjlay.de>
2041
2042         * config/avr/avr-protos.h (output_reload_inhi): Change prototype.
2043         * config/avr/avr.md (adjust_len): Add "reload_in16" alternative.
2044         (*reload_inhi): Use it.  Adapt call to output_reload_inhi to new
2045         prototype.
2046         (*movhi): Split constraint alternative "r,rL" into "r,r" and "r,L".
2047         * config/avr/avr.c: Rename output_reload_insisf_1 to
2048         output_reload_in_const.
2049         (avr_popcount_each_byte): Handle SFmode, too.
2050         (output_reload_in_const): Change so it can handle HI loads, too.
2051         Use avr_popcount_each_byte to work out if scratch register must be
2052         created on the fly.
2053         (output_reload_inhi): Rewrite using output_reload_in_const and...
2054         (output_movhi): ...use it to print constants' loads.
2055         (adjust_insn_length): New case ADJUST_LEN_RELOAD_IN16. Cleanup code.
2056
2057 2011-09-25  David S. Miller  <davem@davemloft.net>
2058
2059         * config/sparc/constraints.md (C, P, Z): New constraints for
2060         const_doube, const_int, and const_vector "all ones" values.
2061         Make unused constraint letters comment match reality.
2062         * config/sparc/predicates.md (const_all_ones_operand,
2063         register_or_zero_or_all_ones_operand): New predicates.
2064         * config/sparc/sparc.c (sparc_expand_move): Allow all ones
2065         as well as zero constants when VIS.
2066         (sparc_legitimate_constant_p): Likewise.
2067         * config/sparc/sparc.md (movsi_insn): Add fones alternative.
2068         (movsf_insn): Likewise
2069         (movdi_insn_sp64): Add fone alternative.
2070         (movdf_insn_sp32_v9): Likewise.
2071         (movdf_insn_sp64): Likewise.
2072
2073         * configure.ac: Add feature check to make sure the assembler
2074         supports the FMAF, HPC, and VIS 3.0 instructions found on
2075         Niagara-3 and later cpus.
2076         * configure: Rebuild.
2077         * config.in: Likewise.
2078         * config/sparc/sparc.opt: New option '-mfmaf'.
2079         * config/sparc/sparc.md: Add float fused multiply-add patterns.
2080         * config/sparc/sparc.h (AS_NIAGARA3_FLAG): New macro.
2081         (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC): Use it, as needed.
2082         * config/sparc/sol2.h (ASM_CPU32_DEFAULT_SPEC,
2083         ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC): Likewise.
2084         * config/sparc/sparc.c (sparc_option_override): Turn MASK_FMAF on
2085         by default for Niagara-3 and later.  Turn it off if TARGET_FPU is
2086         disabled.
2087         (sparc_rtx_costs): Handle 'FMA'.
2088         * doc/invoke.texi: Document -mfmaf.
2089
2090 2011-09-25  Jakub Jelinek  <jakub@redhat.com>
2091
2092         * tree-ssa-structalias.c (intra_create_variable_infos): Treat
2093         TYPE_RESTRICT REFERENCE_TYPE parameters like restricted
2094         DECL_BY_REFERENCE parameters.
2095
2096 2011-09-25  Eric Botcazou  <ebotcazou@adacore.com>
2097
2098         * tree-eh.c (cleanup_empty_eh): Allow a call to __builtin_stack_restore
2099         if there is no outgoing edge.
2100
2101         * tree-scalar-evolution.c (simple_iv): Accept all kinds of pointer and
2102         integral types.
2103
2104 2011-09-25  Ira Rosen  <ira.rosen@linaro.org>
2105
2106         * tree-vect-slp.c (vect_slp_analyze_bb_1): Split out core part
2107         of vect_analyze_bb here.
2108         (vect_analyze_bb): Loop over vector sizes calling vect_analyze_bb_1.
2109
2110 2011-09-25  Ira Rosen  <ira.rosen@linaro.org>
2111
2112         * tree-data-ref.c (dr_analyze_innermost): Add new argument.
2113         Allow not simple iv if analyzing basic block.
2114         (create_data_ref): Update call to dr_analyze_innermost.
2115         (stmt_with_adjacent_zero_store_dr_p, ref_base_address): Likewise.
2116         * tree-loop-distribution.c (generate_memset_zero): Likewise.
2117         * tree-predcom.c (find_looparound_phi): Likewise.
2118         * tree-data-ref.h (dr_analyze_innermost): Add new argument.
2119
2120 2011-09-24  David S. Miller  <davem@davemloft.net>
2121
2122         * config/sparc/sparc.h (FIRST_PSEUDO_REGISTER): Bump to 103.
2123         (SPARC_GSR_REG): Define.
2124         (FIXED_REGISTERS): Mark GSR as fixed.
2125         (CALL_USED_REGISTERS): Mark GSR as call used.
2126         (HARD_REGNO_NREGS): GSR is always 1 register.
2127         (REG_CLASS_CONTENTS): Add GSR to ALL_REGS.
2128         (REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER): Add GSR to the end.
2129         (REGISTER_NAMES): Add "%gsr".
2130         * config/sparc/sparc.md (UNSPEC_ALIGNADDR, UNSPEC_ALIGNADDRL): Delete.
2131         (UNSPEC_WRGSR): New unspec.
2132         (GSR_REG): New constant.
2133         (type): Add new insn type 'gsr'.
2134         (fpack16_vis, fpackfix_vis, fpack32_vis,
2135         faligndata<V64I:MODE>_vis)): Add use of GSR_REG.
2136         (wrgsr_vis, *wrgsr_sp64, wrgsr_v8plus, rdgsr_vis, *rdgsr_sp64,
2137         rdgsr_v8plus): New expanders and insns.
2138         (alignaddr<P:mode>_vis, alignaddrl<P:mode>_vis): Reimplement
2139         using patterns which show that this is a plus in addition to a
2140         modification of GSR_REG, instead of an unspec.
2141         * config/sparc/ultra1_2.md: Handle 'gsr'.
2142         * config/sparc/ultra3.md: Likewise.
2143         * config/sparc/niagara.md: Likewise.
2144         * config/sparc/niagara2.md: Likewise.
2145         * config/sparc/sparc.c (leaf_reg_remap, sparc_leaf_regs): Fill out
2146         end of table.
2147         (sparc_option_override): Make -mvis imply -mv8plus.
2148         (hard_32bit_mode_classes, hard_64bit_mode_classes): Add entries
2149         for %gsr.
2150         (sparc_vis_init_builtins): Build __builtin_vis_write_gsr and
2151         __builtin_vis_read_gsr.
2152         (sparc_expand_buildin): Handle builtins that take one argument and
2153         return void.
2154         (sparc_fold_builtin): Never fold writes to %gsr.
2155         * config/sparc/visintrin.h (__vis_write_gsr, __vis_read_gsr): New.
2156         * doc/extend.texi: Document new VIS intrinsics.
2157
2158 2011-09-23  Jan Hubicka  <jh@suse.cz>
2159
2160         * ipa-inline-transform.c (inline_call): Add comment.
2161         * ipa-inline.h (inline_param_summary): New structure and vector.
2162         (struct inline_edge_summary): Add param field.
2163         * ipa-inline-analysis.c (CHANGED): New constant.
2164         (add_clause): Handle CHANGED and NOT_CONSTANT.
2165         (predicate_probability): New function.
2166         (dump_condition): Dump CHANGED predicate.
2167         (evaluate_conditions_for_known_args): Handle ERROR_MARK as marker
2168         of unknown function wide invariant.
2169         (evaluate_conditions_for_edge): Handle change probabilities.
2170         (inline_edge_duplication_hook): Copy param summaries.
2171         (inline_edge_removal_hook): Free param summaries.
2172         (dump_inline_edge_summary): Fix dumping of indirect edges and callee
2173         sizes; dump param summaries.
2174         (will_be_nonconstant_predicate): Use CHANGED predicate.
2175         (record_modified_bb_info): New structure.
2176         (record_modified): New function.
2177         (param_change_prob): New function.
2178         (estimate_function_body_sizes): Compute param summaries.
2179         (estimate_edge_size_and_time): Add probability argument.
2180         (estimate_node_size_and_time): Add inline_param_summary argument;
2181         handle predicate probabilities.
2182         (remap_predicate): Fix formating.
2183         (remap_edge_change_prob): New function.
2184         (remap_edge_summaries): Rename from ...; use remap_edge_change_prob.
2185         (remap_edge_predicates): ... this one.
2186         (inline_merge_summary): Remap edge summaries; handle predicate
2187         probabilities; remove param summaries after we are done.
2188         (do_estimate_edge_time): Update.
2189         (do_estimate_edge_growth): Update.
2190         (read_inline_edge_summary): Read param info.
2191         (inline_read_summary): Fix formating.
2192         (write_inline_edge_summary): Write param summaries.
2193
2194 2011-09-23  Jakub Jelinek  <jakub@redhat.com>
2195
2196         * config/i386/i386.c (ix86_print_operand): Handle %~.
2197         (ix86_print_operand_punct_valid_p): Return true also for '~'.
2198         * config/i386/sse.md (i128): New mode_attr.
2199         (vec_extract_hi_<mode>, vec_extract_hi_<mode>,
2200         avx_vbroadcastf128_<mode>, *avx_vperm2f128<mode>_full,
2201         *avx_vperm2f128<mode>_nozero, vec_set_lo_<mode>,
2202         vec_set_hi_<mode>, *vec_concat<mode>_avx): Use <i128> in the
2203         patterns, use "<sseinsnmode>" for "mode" attribute.
2204         (vec_extract_hi_v16hi, vec_extract_hi_v32qi, vec_set_lo_v16hi,
2205         vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Use
2206         %~128 in the patterns, use "OI" for "mode" attribute.
2207
2208 2011-09-23  Georg-Johann Lay  <avr@gjlay.de>
2209
2210         PR target/50447
2211         * config/avr/avr.md (adjust_len): Add alternatives "tsthi",
2212         "tstsi", "compare".
2213         (*cmpqi_sign_extend): Use s8_operand.
2214         (*cmphi, *cmpsi): Rewrite using avr_out_compare.
2215         * config/avr/avr-protos.h (compare_diff_p, compare_eq_p): Remove
2216         prototypes.
2217         (out_tsthi, out_tstsi): Remove prototypes.
2218         (avr_out_tsthi, avr_out_tstsi): New prototypes.
2219         * config/avr/avr.c (out_tsthi, out_tstsi): Remove functions.
2220         (avr_asm_len): Negative length now sets *plen to -length.
2221         (compare_sign_p): Return bool instead of int.
2222         (compare_diff_p, compare_eq_p): Ditto and make static.
2223         (avr_out_tsthi): New function.
2224         (avr_out_tstsi): New function.
2225         (avr_out_compare): New function.
2226         (adjust_insn_length): Handle ADJUST_LEN_TSTHI, ADJUST_LEN_TSTSI,
2227         ADJUST_LEN_COMPARE.
2228
2229 2011-09-23  Georg-Johann Lay  <avr@gjlay.de>
2230
2231         PR target/50447
2232         * config/avr/avr.md: (adjust_len): Add alternative "out_plus".
2233         (addsi3): Rewrite using QI scratch register.  Adjust text
2234         peepholes using plus:SI.
2235         (*addsi3_zero_extend.hi): New insn.
2236         (*subsi3_zero_extend.hi): New insn.
2237         (*subhi3_zero_extend1): Set attribute "cc" to "set_czn".
2238         (*subsi3_zero_extend): Ditto.
2239         (subsi3): Change predicate #2 to register_operand.
2240         * config/avr/avr-protos.h (avr_out_plus): New prototype.
2241         (avr_out_plus_1): New static function.
2242         (avr_out_plus): New function.
2243         (adjust_insn_length): Handle ADJUST_LEN_OUT_PLUS.
2244
2245 2011-09-23  Jakub Jelinek  <jakub@redhat.com>
2246
2247         * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): For
2248         GE/GT/UNLE/UNLT swap arguments and condition even for TARGET_AVX.
2249
2250 2011-09-23  Ian Lance Taylor  <iant@google.com>
2251
2252         * godump.c (go_define): Treat a single character in single quotes,
2253         or a string, as an operand.
2254
2255 2011-09-23  Martin Jambor  <mjambor@suse.cz>
2256
2257         * ipa-prop.h (jump_func_type): Updated comments.
2258         (ipa_known_type_data): New type.
2259         (ipa_jump_func): Use it to describe known type jump functions.
2260         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Updated to
2261         reflect the new known type jump function contents.
2262         (compute_known_type_jump_func): Likewise.
2263         (combine_known_type_and_ancestor_jfs): Likewise.
2264         (try_make_edge_direct_virtual_call): Likewise.
2265         (ipa_write_jump_function): Likewise.
2266         (ipa_read_jump_function): Likewise.
2267         * ipa-cp.c (ipa_value_from_known_type_jfunc): New function.
2268         (ipa_value_from_jfunc): Use ipa_value_from_known_type_jfunc.
2269         (propagate_accross_jump_function): Likewise.
2270
2271 2011-09-23  Georg-Johann Lay  <avr@gjlay.de>
2272
2273         PR target/50446
2274         * config/avr/avr.md (rotlqi3): Support all offsets 0..7.
2275         (rotlqi3_4): Turn insn into expander.
2276         (*rotlqi3): New insn.
2277         (rotlhi3, rotlsi3): Support rotate left/right by 1.
2278         (*rotlhi2.1, *rotlhi2.15): New insns.
2279         (*rotlsi2.1, *rotlsi2.31): New insns.
2280         * config/avr/constraints.md (C03, C05, C06, C07): New constraints.
2281
2282 2011-09-23  Bin Cheng  <bin.cheng@arm.com>
2283
2284         * config/arm/bpabi.h (BE8_LINK_SPEC): Add cortex-m arch and processors.
2285
2286 2011-09-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
2287
2288         * ipa-prop.c (ipa_print_node_jump_functions): Fix typos.
2289
2290 2011-09-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2291
2292         * reload.c (find_reloads): Set operand_mode to Pmode for address
2293         operands consisting of just a CONST_INT.
2294
2295 2011-09-22  Uros Bizjak  <ubizjak@gmail.com>
2296
2297         PR target/50482
2298         * config/i386/i386.c (ix86_expand_sse_movcc): When generating
2299         blendv, force op_true to register if it doesn't satisfy
2300         nonimmediate_operand predicate.
2301
2302 2011-09-22  Richard Sandiford  <rdsandiford@googlemail.com>
2303
2304         PR middle-end/50113
2305         PR middle-end/50061
2306         * calls.c (emit_library_call_value_1): Use BLOCK_REG_PADDING to
2307         get the locate.where_pad value for register-only arguments.
2308         * config/arm/arm.c (arm_pad_arg_upward): Remove HFmode handling.
2309         (arm_pad_reg_upward): Handle null types.
2310
2311 2011-09-22  Jan Hubicka  <jh@suse.cz>
2312
2313         * ipa-inline-analysis.c: Fix overly long lines.
2314
2315 2011-09-22  Jan Hubicka  <jh@suse.cz>
2316
2317         * ipa-inline-transform.c (inline_call): Always update jump functions
2318         after inlining.
2319         * ipa-inline.c (ipa_inline): Likewise; do not call
2320         ipa_create_all_structures_for_iinln.
2321         (ipa_inline): Always free jump functions.
2322         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Remove hack.
2323         (remap_edge_predicates): Fix pasto.
2324         (inline_merge_summary): Remove nlined edge predicate; remove hack.
2325         (inline_analyze_function): Always initialize jump functions.
2326         (inline_generate_summary): Likewise.
2327         (inline_write_summary): Always write jump functions when ipa-cp
2328         is not doing that.
2329         (inline_read_summary): Always read jump functions when ipa-cp
2330         is not doing that.
2331         * ipa-prop.c (iinlining_processed_edges): Remove.
2332         (update_indirect_edges_after_inlining): Do not use
2333         iinlining_processed_edges; instead set param_index to -1.
2334         (propagate_info_to_inlined_callees): Only try to indirect inlining
2335         when asked to do so; update jump functions of indirect calls, too;
2336         remove jump functions of the inlined edge.
2337         (ipa_edge_duplication_hook): Do not copy iinlining_processed_edges.
2338         (ipa_create_all_structures_for_iinln): Remove.
2339         (ipa_free_all_structures_after_iinln): Do not free
2340         iinlining_processed_edges.
2341         * ipa-prop.h (ipa_create_all_structures_for_iinln): Remove.
2342
2343 2011-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
2344
2345         * config/arm/predicates.md (expandable_comparison_operator): New
2346         predicate, extracted from...
2347         (arm_comparison_operator): ...here.
2348         * config/arm/arm.md (cbranchsi4, cbranchsf4, cbranchdf4, cbranchdi4)
2349         (cstoresi4, cstoresf4, cstoredf4, cstoredi4, movsicc, movsfcc)
2350         (movdfcc): Use expandable_comparison_operator.
2351
2352 2011-09-22  Georg-Johann Lay  <avr@gjlay.de>
2353
2354         PR target/50447
2355         PR target/50465
2356         * config/avr/avr-protos.h (avr_out_bitop): New prototype.
2357         (avr_popcount_each_byte): New prototype.
2358         * config/avr/avr.c (avr_popcount): New static function.
2359         (avr_popcount_each_byte): New function.
2360         (avr_out_bitop): New function.
2361         (adjust_insn_length): ADJUST_LEN_OUT_BITOP dispatches to
2362         avr_out_bitop.  Cleanup code.
2363         * config/avr/constraints.md (Ca2, Co2, Cx2): New constraints.
2364         (Ca4, Co4, Cx4): New constraints.
2365         * config/avr/avr.md (adjust_len): Add "out_bitop" insn attribute
2366         alternative.
2367         (andhi3, iorhi3, xorhi3): Rewrite insns using avr_out_bitop.
2368         (andsi3, iorsi3, xorsi3): Ditto.
2369         (*iorhi3_clobber, *iorsi3_clobber): Remove insns.
2370
2371 2011-09-22  Ira Rosen  <ira.rosen@linaro.org>
2372
2373         PR tree-optimization/50451
2374         * tree-vect-slp.c (vect_get_constant_vectors): Don't fail for
2375         constant operands in reduction.
2376         (vect_get_slp_defs): Don't create vector operand for NULL scalar
2377         operand.
2378
2379 2011-09-22  David S. Miller  <davem@davemloft.net>
2380
2381         * config/sparc/sparc.c (sparc_vis_init_builtins): Do not mark
2382         fpack16, fpack32, fpackfix as const.
2383
2384         * config/sparc/sparc.md (G[0-7]_REG, O[0-7]_REG, L[0-7]_REG,
2385         I[0-7]_REG, F[0-62]_REG, FCC[0-3]_REG, CC_REG, SFP_REG): New
2386         constants.  Use them everywhere.
2387
2388 2011-09-22  Oleg Endo  <oleg.endo@t-online.de>
2389
2390         * config/sh/sh.c (andcosts): Renamed to and_xor_ior_costs.
2391         Added AND special case.  Adapted comments.
2392         (sh_rtx_costs): Added XOR and IOR case.
2393
2394 2011-09-21  Jan Hubicka  <jh@suse.cz>
2395
2396         * ipa-inline-analsis.c (compute_inline_parameters): Set
2397         cfun and current_function_decl.
2398
2399 2011-09-21  Jan Hubicka  <jh@suse.cz>
2400
2401         * ipa-inline-analysis.c (set_cond_stmt_execution_predicate): Allow
2402         handled components in parameter of builtin_constant_p.
2403         (will_be_nonconstant_predicate): Allow loads of non-SSA parameters.
2404
2405 2011-09-21  Jan Hubicka  <jh@suse.cz>
2406
2407         * ipa-inline.c (relative_time_benefit): Fix wrong bracketting.
2408         * ipa-inline.h (estimate_edge_time): Fix pasto.
2409         * ipa-inline-analysis.c (do_estiamte_edge_time): Remove capping.
2410
2411 2011-09-21  Jakub Jelinek  <jakub@redhat.com>
2412
2413         * config/i386/i386.c (ix86_expand_sse_movcc): Use
2414         blendvps, blendvpd and pblendvb if possible.
2415
2416 2011-09-21  Uros Bizjak  <ubizjak@gmail.com>
2417
2418         PR target/50464
2419         * config/i386/sse.md (xop_pcmov_<mode><avxsizesuffix>): Change
2420         operand 1 predicate to register_operand and operand 2 predicate
2421         to nonimmediate_operand.
2422         * config/i386/i386.c (ix86_expand_sse_movcc): When generating
2423         xop_pcmov, force op_true to register.  Also, force op_false to
2424         register if it doesn't satisfy nonimmediate_operand predicate.
2425
2426 2011-09-21  Kirill Yukhin  <kirill.yukhin@intel.com>
2427
2428         * config/i386/bmi2intrin.h (_mulx_u64): New.
2429         (_mulx_u32): Ditto.
2430
2431 2011-09-21  Jan Hubicka  <jh@suse.cz>
2432
2433         PR tree-optimization/50433
2434         * ipa-inline-analysis.c (eliminated_by_inlining_prob):
2435         Use get_base_address.
2436
2437 2011-09-21  Jakub Jelinek  <jakub@redhat.com>
2438
2439         * config/i386/sse.md (<code><mode>3 smaxmin:VI124_128 expander): Use
2440         nonimmediate_operand instead of register_operand predicate for operands
2441         1 and 2, force them into registers if expanding them as comparison.
2442         (<code><mode>3 umaxmin:VI124_128 expander): Similarly.  For UMAX
2443         V8HImode force into register just operand 1.
2444
2445 2011-09-21  Georg-Johann Lay  <avr@gjlay.de>
2446
2447         PR target/45099
2448         * config/avr/avr.c (avr_function_arg_advance): Change error to
2449         warning if a fixed register is needed as function argument.
2450
2451 2011-09-21  Georg-Johann Lay  <avr@gjlay.de>
2452
2453         PR target/50449
2454         PR target/50465
2455         * config/avr/avr.md (adjust_len): New insn attribute.
2456         (*reload_insi, *reload_insf): Use it.
2457         (*movsi, *movsf): Use new interface of output_movsisf.
2458         * config/avr/avr-protos.h (output_movsisf): Change prototype.
2459         * config/avr/avr.c (output_movsisf): Ditto.
2460         (adjust_insn_length): Use insn attribute "adjust_len" to adjust
2461         lengths of insns *reload_insi, *reload_insf.
2462         (output_reload_insisf_1): New static function.
2463         (output_reload_insisf): Use it.
2464
2465 2011-09-21  David S. Miller  <davem@davemloft.net>
2466
2467         * config/sparc/sparc.c (def_builtin): Change from macro into function.
2468         (def_builtin_const): New.
2469         (sparc_vis_init_builtins): Use def_builtin_const for all VIS builtins
2470         other than alignaddr and falignaddr.
2471
2472         * config/sparc/sparc.md (UNSPEC_FCMPLE, UNSPEC_FCMPNE, UNSPEC_FCMPGT,
2473         UNSPEC_FCMPEQ): New unspec codes.
2474         (fcmple16_vis, fcmple32_vis, fcmpne16_vis, fcmpne32_vis, fcmpgt16_vis,
2475         fcmpgt32_vis, fcmpeq16_vis, fcmpeq32_vis): New patterns.
2476         * config/sparc/sparc.c (sparc_vis_init_builtins): Create builtins for
2477         new pixel compare VIS patterns.
2478         * config/sparc/visintrin.h (__vis_fcmple16, __vis_fcmple32,
2479         __vis_fcmpne16, __vis_fcmpne32, __vis_fcmpgt16, __vis_fcmpgt32,
2480         __vis_fcmpeq16, __vis_fcmpeq32): New.
2481         * doc/extend.texi: Document new pixel compare VIS intrinsics.
2482
2483 2011-09-21  Tom de Vries  <tom@codesourcery.com>
2484
2485         * final.c (final): Handle if JUMP_LABEL is not LABEL_P.
2486
2487 2011-09-20  David S. Miller  <davem@davemloft.net>
2488
2489         * config/sparc/sparc.md (UNSPEC_ALIGNADDRL): New unspec.
2490         (aligneddrl<P:mode>_vis): New pattern.
2491         (edge8_vis, edge8l_vis, edge16_vis, edge16l_vis, edge32_vis,
2492         edge32l_vis): Adjust to take Pmode arguments, and return SImode.
2493         * config/sparc/sparc.c (sparc_vis_init_builtins): Handle new
2494         alignaddrl insn, and adjust edge operations for updated types.
2495         * config/sparc/visintrin.h: Likewise.
2496         * doc/extend.texi: Make typing in VIS documentation match reality.
2497
2498 2011-09-20  Terry Guo  <terry.guo@arm.com>
2499
2500         * config/arm/arm-arches.def: Add armv6s-m.
2501         * config/arm/arm-tables.opt: Regenerate.
2502
2503 2011-09-20  Wei Guozhi  <carrot@google.com>
2504
2505         PR rtl-optimization/49452
2506         * postreload.c (reload_combine): Invalidate use information when across
2507         volatile insn.
2508
2509 2011-09-19  Maxim Kuvyrkov  <maxim@codesourcery.com>
2510
2511         * haifa-sched.c (has_edge_p, prev_non_location_insn, check_cfg):
2512         Remove maintenance overhead.
2513         (haifa_sched_init, sched_finish): Update.
2514
2515 2011-09-19  Uros Bizjak  <ubizjak@gmail.com>
2516
2517         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use if_then_else RTX
2518         to calculate unit, prefix_rep and prefix_data16 attributes.
2519         (*mov<mode>_internal): Ditto for unit attribute.
2520         (*movv2sf_internal_rex64): Ditto for unit and prefix_rep attributes.
2521         (*movv2sf_internal): Ditto.
2522         * config/i386/sse.md (VI1248_256): Remove mode iterator.
2523         (avx2_eq<mode>3): Use VI_256 instead of VI1248_256.
2524         (*avx2_eq<mode>3): Ditto.
2525         (avx2_gt<mode>3): Ditto.
2526
2527 2011-09-19  Uros Bizjak  <ubizjak@gmail.com>
2528
2529         * config/i386/i386.md (maxmin): New code iterator.
2530         * config/i386/sse.md (<maxmin:code><mode>3): Macroize expander
2531         from <umaxmin:code><mode>3 and <smaxmin:code><mode>3 using maxmin
2532         code iterator.
2533         (*avx2_<maxmin:code><mode>3): Macroize isn from
2534         *avx2_<umaxmin:code><mode>3 and *avx2_<smaxmin:code><mode>3 using
2535         maxmin code iterator.
2536         (<smaxmin:code><VI124_128:mode>3): Merge with <smaxmin:code>v8hi3.
2537         (<umaxmin:code><VI124_128:mode>3): Merge with umaxv4si3 and
2538         <umaxmin:code>v16qi3.
2539
2540 2011-09-19  Alan Modra  <amodra@gmail.com>
2541             Michael Meissner  <meissner@linux.vnet.ibm.com>
2542
2543         PR target/50341
2544         * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Do not
2545         split the load of the indirect function's TOC from the call to
2546         prevent the compiler from moving the load of the new TOC above
2547         code that references the current function's TOC.
2548         (call_indirect_aix<ptrsize>_internal): Ditto.
2549         (call_indirect_aix<ptrsize>_nor11): Ditto.
2550         (call_indirect_aix<ptrsize>_internal2): Ditto.
2551         (call_value_indirect_aix<ptrsize>): Ditto.
2552         (call_value_indirect_aix<ptrsize>_internal): Ditto.
2553         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
2554         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
2555
2556 2011-09-19  Jakub Jelinek  <jakub@redhat.com>
2557
2558         * config/i386/sse.md (*sse4_1_extractps): Change into
2559         define_insn_and_split, add =x 0 n and =x x n alternatives
2560         and split them after reload.
2561
2562 2011-09-19  Alexandre Oliva  <aoliva@redhat.com>
2563
2564         * tree.h (TREE_NOT_CHECK4): Rename from bogus NON_TREE_CHECK4.
2565
2566 2011-09-19  Alexandre Oliva  <aoliva@redhat.com>
2567
2568         * emit-rtl.c (copy_insn_1): Do not copy DEBUG_EXPRs.
2569
2570 2011-09-19  Ira Rosen  <ira.rosen@linaro.org>
2571
2572         PR tree-optimization/50413
2573         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail to vectorize
2574         a basic block if one of its data-refs can't be analyzed.
2575
2576 2011-09-19  Paul Brook  <paul@codesourcery.com>
2577
2578         * config/arm/predicates.md (shift_amount_operand): Check constant
2579         shift count is in range.
2580         (const_shift_operand): Remove.
2581
2582 2011-09-18  Eric Botcazou  <ebotcazou@adacore.com>
2583             Iain Sandoe  <developer@sandoe-acoustics.co.uk>
2584
2585         PR target/50091
2586         * config/rs6000/rs6000.md (probe_stack): Use explicit operand.
2587         * config/rs6000/rs6000.c (output_probe_stack_range): Likewise.
2588
2589 2011-09-18  H.J. Lu  <hongjiu.lu@intel.com>
2590
2591         * config/i386/bmiintrin.h: Remove tmp.
2592         * config/i386/tbmintrin.h: Likewise.
2593
2594 2011-09-18  Ira Rosen  <ira.rosen@linaro.org>
2595
2596         PR tree-optimization/50414
2597         * tree-vect-slp.c (vect_get_constant_vectors): Handle MAX_EXPR and
2598         MIN_EXPR.
2599
2600 2011-09-18  Ira Rosen  <ira.rosen@linaro.org>
2601
2602         PR tree-optimization/50412
2603         * tree-vect-data-refs.c (vect_analyze_group_access): Fail for
2604         acceses that require epilogue loop if vectorizing outer loop.
2605
2606 2011-09-17  David S. Miller  <davem@davemloft.net>
2607
2608         * config/sparc/sparc.md (UNSPEC_EDGE8, UNSPEC_EDGE8L,
2609         UNSPEC_EDGE16, UNSPEC_EDGE16L, UNSPEC_EDGE32, UNSPEC_EDGE32L):
2610         New unspecs.
2611         (define_attr type): New type 'edge'.
2612         (edge8_vis, edge8l_vis, edge16_vis, edge16l_vis, edge32_vis,
2613         edge32l_vis): New patterns.
2614         * config/sparc/ultra1_2.md: Add insn reservation for 'edge'.
2615         * config/sparc/ultra3.md: Likewise.
2616         * config/sparc/niagara.md: Likewise.
2617         * config/sparc/niagara2.md: Likewise.
2618         * config/sparc/sparc.d (sparc_vis_init_builtins): Generate
2619         builtins for VIS edge instructions.
2620         * config/sparc/visintrin.h (__vis_edge8, __vis_edge8l)
2621         (__vis_edge16, __vis_edge16l, __vis_edge32, __vis_edge32l): New
2622         intrinsics.
2623         (__v8qi, __v4qi): Make unsigned.
2624         (__vis_faligndatadi, ___vis_faligndatav2si, __vis_faligndatav4hi,
2625         __vis_faligndatav8qi, __vis_fmul8x16au, __vis_fmul8x16al,
2626         __vis_fpack32): Fix types.
2627         * doc/extend.texi: Document new 'edge' VIS intrinsics.
2628
2629         * gcc/config/sparc/sparc.c (niagara2_costs): Adjust integer
2630         divide costs.
2631         (niagara3_costs): New.
2632         (sparc_option_override): Use it.
2633         * gcc/config/sparc/niagara2.md: Adjust with more accurate
2634         Niagara-3 reservations.
2635
2636 2011-09-17  Jakub Jelinek  <jakub@redhat.com>
2637
2638         * config/i386/sse.md (VIMAX_AVX2): Change V4DI to V2TI.
2639         (sse2_avx, sseinsnmode): Add V2TI.
2640         (REDUC_SMINMAX_MODE): New mode iterator.
2641         (reduc_smax_v4sf, reduc_smin_v4sf, reduc_smax_v8sf,
2642         reduc_smin_v8sf, reduc_smax_v4df, reduc_smin_v4df): Remove.
2643         (reduc_<code>_<mode>): New smaxmin and umaxmin expanders.
2644         (sse2_lshrv1ti3): Rename to...
2645         (<sse2_avx2>_lshr<mode>3): ... this.  Use VIMAX_AVX2 mode
2646         iterator.  Move before umaxmin expanders.
2647         * config/i386/i386.h (VALID_AVX256_REG_MODE,
2648         SSE_REG_MODE_P): Accept V2TImode.
2649         * config/i386/i386.c (ix86_expand_reduc): Handle V32QImode,
2650         V16HImode, V8SImode and V4DImode.
2651
2652         * config/i386/i386.c (ix86_build_const_vector): Handle V8SImode
2653         and V4DImode.
2654         (ix86_build_signbit_mask): Likewise.
2655         (ix86_expand_int_vcond): Likewise.  Handle V16HImode and V32QImode.
2656         (bdesc_args): Use CODE_FOR_{s,u}m{ax,in}v{32q,16h,8s}i3
2657         instead of CODE_FOR_avx2_{s,u}m{ax,in}v{32q,16h,8s}i3.
2658         * config/i386/sse.md (avx2_<code><mode>3 umaxmin expand): Rename to...
2659         (<code><mode>3) ... this.
2660         (avx2_<code><mode>3 smaxmin expand): Rename to...
2661         (<code><mode>3) ... this.
2662         (smax<mode>3, smin<mode>3): Macroize using smaxmin code iterator.
2663         (smaxv2di3, sminv2di3): Macroize using smaxmin code iterator and
2664         VI8_AVX2 mode iterator.
2665         (umaxv2di3, uminv2di3): Macroize using umaxmin code iterator and
2666         VI8_AVX2 mode iterator.
2667         (vcond<V_256:mode><VI_256:mode>, vcondu<V_256:mode><VI_256:mode>):
2668         New expanders.
2669
2670 2011-09-17  Richard Sandiford  <rdsandiford@googlemail.com>
2671
2672         * config/ia64/itanium2.md: Use match_test rather than eq/ne symbol_ref
2673         throughout file.
2674
2675 2011-09-16  David S. Miller  <davem@davemloft.net>
2676
2677         * config/sparc/visintrin.h: New file.
2678         * config.gcc: Add it to extra_headers on sparc.
2679
2680 2011-09-16  Jakub Jelinek  <jakub@redhat.com>
2681
2682         * config/i386/i386.c (ix86_expand_reduc_v4sf): Rename to ...
2683         (ix86_expand_reduc): ... this.  Handle also V8SFmode and V4DFmode.
2684         * config/i386/sse.md (reduc_splus_v4sf, reduc_smax_v4sf,
2685         reduc_smin_v4sf): Adjust callers.
2686         (reduc_smax_v8sf, reduc_smin_v8sf, reduc_smax_v4df, reduc_smin_v4df):
2687         New expanders.
2688
2689         * config/i386/sse.md (vec_extract_hi_<mode>,
2690         vec_extract_hi_v16hi, vec_extract_hi_v32qi): Use
2691         vextracti128 instead of vextractf128 for -mavx2 and
2692         integer vectors.  For V4DFmode fix up mode attribute.
2693         (VEC_EXTRACT_MODE): For TARGET_AVX add 32-byte vectors.
2694         (vec_set_lo_<mode>, vec_set_hi_<mode>): For VI8F_256 modes use V4DF
2695         instead of V8SF mode attribute.
2696         (avx2_extracti128): Change into define_expand.
2697         * config/i386/i386.c (ix86_expand_vector_extract): Handle
2698         32-byte vector modes if TARGET_AVX.
2699
2700 2011-09-16  Georg-Johann Lay  <avr@gjlay.de>
2701
2702         * config/avr/avr.md: (umulqihi3, mulqihi3): Write as one pattern.
2703         (umulqi3_highpart, smulqi3_highpart): Ditto.
2704         (*maddqihi4.const, *umaddqihi4.uconst): Ditto.
2705         (*msubqihi4.const, *umsubqihi4.uconst): Ditto.
2706         (*muluqihi3.uconst, *mulsqihi3.sconst): Ditto.
2707
2708 2011-09-16  Georg-Johann Lay  <avr@gjlay.de>
2709
2710         PR target/50358
2711         * config/avr/avr.md (*ashiftqihi2.signx.1): New insn.
2712         (*maddqi4, *maddqi4.const): New insns.
2713         (*msubqi4, *msubqi4.const): New insns.
2714         * config/avr/avr.c (avr_rtx_costs): Record costs of above in cases
2715         PLUS:QI and MINUS:QI.  Increase costs of multiply-add/-sub for
2716         HImode by 1 in the case of multiplying with a CONST_INT.
2717         Record cost of *ashiftqihi2.signx.1 in case ASHIFT:QI.
2718
2719 2011-09-15   Jan Hubicka  <jh@suse.cz>
2720
2721         PR lto/50430
2722         * gimple-fold.c (gimple_get_virt_method_for_binfo): Do not ICE on
2723         error_mark_node in the DECL_INITIAL of vtable.
2724
2725 2011-09-15   Diego Novillo  <dnovillo@google.com>
2726
2727         * Makefile.in (SYSROOT_CFLAGS_FOR_TARGET): Define from
2728         @SYSROOT_CFLAGS_FOR_TARGET@.
2729         * configure.ac (SYSROOT_CFLAGS_FOR_TARGET): Set from build-sysroot.
2730         * configure: Regenerate.
2731         (site.exp): Add definition of TEST_ALWAYS_FLAGS.
2732         Remove setting of GCC_UNDER_TEST.
2733
2734 2011-09-15  Uros Bizjak  <ubizjak@gmail.com>
2735
2736         * config/i386/i386.c (output_fp_compare): Return %v prefixed
2737         instruction mnemonics for TARGET_AVX.
2738
2739         * config/i386/i386.md (*movdf_internal_rex64): use cond RTX in
2740         "type" attribute calculation.
2741         (*movdf_internal): Ditto.
2742         (*movsf_internal): Ditto.
2743
2744 2011-09-15  James Greenhalgh  <james.greenhalgh@arm.com>
2745
2746         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): New builtin macro.
2747
2748 2011-09-15  Jason Merrill  <jason@redhat.com>
2749
2750         PR c++/50361
2751         * expr.c (count_type_elements): Handle NULLPTR_TYPE.
2752
2753 2011-09-15  Jan Hubicka  <jh@suse.cz>
2754
2755         * ipa-inline-analysis.c (add_condition): Add conditions parameter;
2756         simplify obviously true clauses.
2757         (and_predicates, or_predicates): Add conditions parameter.
2758         (inline_duplication_hoook): Update.
2759         (mark_modified): New function.
2760         (unmodified_parm): New function.
2761         (eliminated_by_inlining_prob, (set_cond_stmt_execution_predicate,
2762         set_switch_stmt_execution_predicate, will_be_nonconstant_predicate):
2763         Use unmodified_parm.
2764         (estimate_function_body_sizes): Update.
2765         (remap_predicate): Update.
2766
2767 2011-09-15  Ira Rosen  <ira.rosen@linaro.org>
2768
2769         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Allow
2770         read-after-read dependencies in basic block SLP.
2771
2772 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
2773
2774         * config/sparc/sparc.md: Use match_test rather than eq/ne symbol_ref
2775         throughout file.
2776
2777 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
2778
2779         * config/sh/sh.md: Use match_test rather than eq/ne symbol_ref
2780         throughout file.
2781
2782 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
2783
2784         * config/s390/s390.md: Use match_test rather than eq/ne symbol_ref
2785         throughout file.
2786
2787 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
2788
2789         * config/rs6000/rs6000.md: Use match_test rather than eq/ne symbol_ref
2790         throughout file.
2791         * config/rs6000/constraints.md: Likewise.
2792
2793 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
2794
2795         * config/microblaze/microblaze.md: Use match_test rather than
2796         eq/ne symbol_ref throughout file.
2797
2798 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
2799
2800         * config/bfin/bfin.md: Use match_test rather than eq/ne symbol_ref
2801         throughout file.
2802
2803 2011-09-14  Tom de Vries  <tom@codesourcery.com>
2804
2805         PR middle-end/50251
2806         * explow.c (emit_stack_restore): Set crtl->need_drap if
2807         stack_restore is emitted.
2808
2809 2011-09-14  Julian Brown  <julian@codesourcery.com>
2810
2811         * config/arm/arm.c (arm_override_options): Add unaligned_access
2812         support.
2813         (arm_file_start): Emit attribute for unaligned access as appropriate.
2814         * config/arm/arm.md (UNSPEC_UNALIGNED_LOAD)
2815         (UNSPEC_UNALIGNED_STORE): Add constants for unspecs.
2816         (insv, extzv): Add unaligned-access support.
2817         (extv): Change to expander. Likewise.
2818         (extzv_t1, extv_regsi): Add helpers.
2819         (unaligned_loadsi, unaligned_loadhis, unaligned_loadhiu)
2820         (unaligned_storesi, unaligned_storehi): New.
2821         (*extv_reg): New (previous extv implementation).
2822         * config/arm/arm.opt (munaligned_access): Add option.
2823         * config/arm/constraints.md (Uw): New constraint.
2824         * expmed.c (store_bit_field_1): Adjust bitfield numbering according
2825         to size of access, not size of unit, when BITS_BIG_ENDIAN !=
2826         BYTES_BIG_ENDIAN. Don't use bitfield accesses for
2827         volatile accesses when -fstrict-volatile-bitfields is in effect.
2828         (extract_bit_field_1): Likewise.
2829
2830 2011-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
2831
2832         * simplify-rtx.c (simplify_subreg): Check that the inner mode is
2833         a scalar integer before applying integer-only optimisations to
2834         inner arithmetic.
2835
2836 2011-09-14  Bernd Schmidt  <bernds@codesourcery.com>
2837
2838         * config/mips/mips.c (mips_expand_epilogue): Generate a
2839         simple_return only if the return address is in r31.
2840
2841 2011-09-13  Bernd Schmidt  <bernds@codesourcery.com>
2842
2843         * cfgcleanup.c (try_head_merge_bb): If get_condition returns
2844         NULL for a jump that is a cc0 insn, pick the previous insn for
2845         move_before.
2846
2847 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
2848
2849         * config/v850/v850.md: Use match_test rather than eq/ne symbol_ref
2850         throughout file.
2851
2852 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
2853
2854         * config/pa/pa.md: Use match_test rather than eq/ne symbol_ref
2855         throughout file.
2856
2857 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
2858
2859         * config/mn10300/mn10300.md: Use match_test rather than eq/ne
2860         symbol_ref throughout file.
2861
2862 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
2863
2864         * config/m68k/m68k.md: Use match_test rather than eq/ne symbol_ref
2865         throughout file.
2866
2867 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
2868
2869         * config/h8300/h8300.md: Use match_test rather than eq/ne symbol_ref
2870         throughout file.
2871
2872 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
2873
2874         * config/arm/arm.md: Use match_test rather than eq/ne symbol_ref
2875         throughout file.
2876         * config/arm/neon.md: Likewise.
2877         * config/arm/vfp.md: Likewise.
2878         * config/arm/thumb2.md: Likewise.
2879         * config/arm/cortex-m4.md: Likewise.
2880
2881 2011-09-13  Sevak Sargsyan <sevak.sargsyan@ispras.ru>
2882
2883         * config/arm/neon.md (neon_vabd<mode>_2, neon_vabd<mode>_3): New
2884         define_insn patterns for combine.
2885
2886 2011-09-13  Giuseppe Scrivano  <gscrivano@gnu.org>
2887
2888         * reorg.c: Always define make_return_insns.
2889
2890 2011-09-13  Jan Hubicka  <jh@suse.cz>
2891
2892         PR other/49533
2893         * cgraphunit.c (assemble_thunks_and_aliases): Force alias to be output.
2894
2895 2011-09-13  Jan Hubicka  <jh@suse.cz>
2896
2897         PR other/49533
2898         * ipa-inline-transform.c (can_remove_node_now_p): Fix thunkos.
2899
2900 2011-09-13  Paul Brook  <paul@codesourcery.com>
2901
2902         * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
2903         (ARM_TARGET2_DWARF_FORMAT): Provide default definition.
2904         * config/arm/linux-eabi.h (ARM_TARGET2_DWARF_FORMAT): Define.
2905         * config/arm/symbian.h (ARM_TARGET2_DWARF_FORMAT): Define.
2906         * config/arm/uclinux-eabi.h(ARM_TARGET2_DWARF_FORMAT): Define.
2907         * config/arm/t-bpabi (EXTRA_HEADERS): Add unwind-arm-common.h.
2908         * config/arm/t-symbian (EXTRA_HEADERS): Add unwind-arm-common.h.
2909         * config/c6x/c6x.c (c6x_output_file_unwind): Don't rely on dwarf2 code
2910         enabling unwind tables.
2911         (c6x_debug_unwind_info): New function.
2912         (TARGET_ARM_EABI_UNWINDER): Define.
2913         (TARGET_DEBUG_UNWIND_INFO): Define.
2914         * config/c6x/c6x.h (DWARF_FRAME_RETURN_COLUMN): Define.
2915         (TARGET_EXTRA_CFI_SECTION): Remove.
2916         * config/c6x/t-c6x-elf (EXTRA_HEADERS): Set.
2917         * ginclude/unwind-arm-common.h: New file.
2918
2919 2011-09-13  Georg-Johann Lay  <avr@gjlay.de>
2920
2921         PR target/50358
2922         * config/avr/predicates.md (const_1_to_6_operand): New predicate.
2923         * config/avr/avr.md: (extend_s): New code attribute.
2924         (mul_r_d): New code attribute.
2925         (*maddqihi4, *umaddqihi4): New insns.
2926         (*msubqihi4, *umsubqihi4): New insns.
2927         (*usmaddqihi4, *sumaddqihi4): New insns.
2928         (*usmsubqihi4, *susubdqihi4): New insns.
2929         (*umaddqihi4.uconst, *maddqihi4.sconst): New insn-and-splits.
2930         (*umsubqihi4.uconst, *msubqihi4.sconst): New insn-and-splits.
2931         (*umsubqihi4.uconst.ashift): New insn-and-split.
2932         (*msubqihi4.sconst.ashift): New insn-and-split.
2933         (*sumaddqihi4.uconst): New insn-and-split.
2934         (*sumsubqihi4.uconst): New insn-and-split.
2935         * config/avr/avr.c (avr_rtx_costs): Report costs of above in case
2936         PLUS:HI and MINUS:HI.
2937
2938 2011-09-13  Revital Eres  <revital.eres@linaro.org>
2939
2940         modulo-sched.c (remove_node_from_ps): Return void instead of bool.
2941         (optimize_sc): Adjust call to remove_node_from_ps.
2942         (sms_schedule): Add print info.
2943
2944 2011-09-13  Bernd Schmidt  <bernds@codesourcery.com>
2945
2946         * rtl.c (copy_rtx): Do not handle frame_related, jump or call
2947         flags specially.
2948
2949 2011-09-12  Jakub Jelinek  <jakub@redhat.com>
2950
2951         PR bootstrap/50010
2952         * dwarf2cfi.c (add_cfis_to_fde): Ignore non-active insns in between
2953         NOTE_INSN_CFI notes, with the exception of
2954         NOTE_INSN_SWITCH_TEXT_SECTIONS.
2955
2956 2011-09-12  Bernd Schmidt  <bernds@codesourcery.com>
2957             Richard Sandiford  <rdsandiford@googlemail.com>
2958
2959         * config/mips/mips.c (mips_epilogue): New structure.
2960         (mips16e_save_restore_reg): Queue REG_CFA_RESTORE notes when
2961         restoring registers.
2962         (mips_epilogue_emit_cfa_restores): New function.
2963         (mips_epilogue_set_cfa): Likewise.
2964         (mips_restore_reg): Queue REG_CFA_RESTORE notes.  When restoring
2965         the current CFA register from the stack, redefine the CFA in terms
2966         of the stack pointer.
2967         (mips_expand_epilogue): Set up mips_epilogue.  Attach CFA information
2968         to the epilogue instructions.
2969
2970 2011-09-12  Richard Sandiford  <rdsandiford@googlemail.com>
2971
2972         * config/mips/mips.c (mips16e_save_restore_reg): Add a reg_parm_p
2973         argument.
2974         (mips16e_build_save_restore): Update accordingly.
2975
2976 2011-09-12  Jakub Jelinek  <jakub@redhat.com>
2977
2978         PR rtl-optimization/50212
2979         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
2980         Skip also lps with NULL landing_pad or non-LABEL_P landing_pad.
2981
2982         PR debug/50299
2983         * calls.c (load_register_parameters): Use use_reg_mode instead
2984         of use_reg when adding a single register CALL_INSN_FUNCTION_USAGE
2985         entry.
2986         (expand_call): Set EXPR_LIST mode to TYPE_MODE of the argument
2987         for stack CALL_INSN_FUNCTION_USAGE uses.
2988         * expr.h (use_reg_mode): New prototype.
2989         (use_reg): Changed into inline around use_reg_mode.
2990         * expr.c (use_reg): Renamed to...
2991         (use_reg_mode): ... this.  Added MODE argument, set EXPR_LIST
2992         mode to that mode instead of VOIDmode.
2993         * var-tracking.c (prepare_call_arguments): Don't track parameters
2994         whose EXPR_LIST mode is VOIDmode, BLKmode or X mode isn't convertible
2995         to it using lowpart_subreg.  Convert VALUE and REG/MEM to the
2996         EXPR_LIST mode.
2997
2998 2011-09-12  Georg-Johann Lay  <avr@gjlay.de>
2999
3000         PR target/43746
3001         * config/avr/avr.c (AVR_SECTION_PROGMEM): New Define.
3002         (progmem_section): New Variable.
3003         (avr_asm_init_sections): Initialize it.
3004         (TARGET_ASM_SELECT_SECTION): Define to...
3005         (avr_asm_select_section): ... this new Function.
3006         (avr_replace_prefix): New Function.
3007         (avr_asm_function_rodata_section): Use it.
3008         (avr_insert_attributes): Don't add section attribute for PROGMEM.
3009         (avr_section_type_flags): Use avr_progmem_p instead of section
3010         name to detect if object is in PROGMEM.
3011         (avr_asm_named_section): Set section name prefix for objects in
3012         PROGMEM.
3013
3014 2011-09-12  Jakub Jelinek  <jakub@redhat.com>
3015
3016         PR bootstrap/50352
3017         * config/arm/arm.md (*push_fp_multi): Add % before %( and %) in the
3018         sprintf format string.
3019
3020 2011-09-12  Richard Guenther  <rguenther@suse.de>
3021
3022         PR tree-optimization/50343
3023         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check
3024         that the reduction is over an SSA name before checking its definition.
3025
3026 2011-09-11  Richard Sandiford  <rdsandiford@googlemail.com>
3027
3028         * config/cris/cris.md: Use match_test rather than eq/ne symbol_ref
3029         throughout file.
3030
3031 2011-09-11  Richard Sandiford  <rdsandiford@googlemail.com>
3032
3033         * config/mips/mips.md: Use match_test rather than eq/ne symbol_ref
3034         throughout file.
3035         * config/mips/sb1.md: Likewise.
3036         * config/mips/predicates.md: Replace (match_test "!...")
3037         with (not (match_test "..."))
3038         * config/mips/constraints.md: Likewise.
3039
3040 2011-09-09  Andrew Stubbs  <ams@codesourcery.com>
3041
3042         * config/arm/arm-cores.def (generic-armv7-a): New architecture.
3043         * config/arm/arm-tables.opt: Regenerate.
3044         * config/arm/arm-tune.md: Regenerate.
3045         * config/arm/arm.c (arm_file_start): Output .arch directive when
3046         user passes -mcpu=generic-*.
3047         (arm_issue_rate): Add genericv7a support.
3048         * config/arm/arm.h (EXTRA_SPECS): Add asm_cpu_spec.
3049         (ASM_CPU_SPEC): New define.
3050         * config/arm/elf.h (ASM_SPEC): Use %(asm_cpu_spec).
3051         * config/arm/semi.h (ASM_SPEC): Likewise.
3052         * doc/invoke.texi (ARM Options): Document -mcpu=generic-*
3053         and -mtune=generic-*.
3054
3055 2011-09-09  Richard Guenther  <rguenther@suse.de>
3056
3057         PR tree-optimization/50328
3058         * tree-vect-loop.c (vect_is_simple_reduction_1): Allow one
3059         constant or default-def operand.
3060
3061 2011-09-09  Richard Guenther  <rguenther@suse.de>
3062
3063         * tree-ssa-pre.c (create_expression_by_pieces): Fold the
3064         last statement.
3065
3066 2011-09-09  Richard Guenther  <rguenther@suse.de>
3067
3068         * gimple.h (fold_stmt_inplace): Adjust to take a gimple_stmt_iterator
3069         instead of a statement.
3070         * gimple-fold.c (fold_stmt_inplace): Likewise.
3071         * sese.c (graphite_copy_stmts_from_block): Adjust.
3072         * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
3073         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Use
3074         fold_stmt.
3075         (forward_propagate_addr_into_variable_array_index): Likewise.
3076         (forward_propagate_addr_expr_1): adjust.
3077         (associate_plusminus): Likewise.
3078         (ssa_forward_propagate_and_combine): Likewise.
3079         * tree-ssa-mathopts.c (replace_reciprocal): Adjust.
3080         (execute_cse_reciprocals): Likewise.
3081         * tree-ssa.c (insert_debug_temp_for_var_def): Adjust.
3082
3083 2011-09-09  Nick Clifton  <nickc@redhat.com>
3084
3085         * config/mn10300/mn10300.c (mn10300_split_and_operand_count):
3086         Return a positive value to indicate that the bits at the
3087         bottom of the register should be cleared.
3088
3089 2011-09-09  Richard Guenther  <rguenther@suse.de>
3090
3091         * tree-ssa-operands.c (swap_tree_operands): Always adjust
3092         existing operand positions.
3093
3094 2011-09-09  Richard Guenther  <rguenther@suse.de>
3095
3096         PR middle-end/50333
3097         * tree-data-ref.c (split_constant_offset): Do not try to handle
3098         ternary ops.
3099
3100 2011-09-08  Andrew Stubbs  <ams@codesourcery.com>
3101
3102         PR tree-optimization/50318
3103         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Correct
3104         typo in use of mult_rhs1 and mult_rhs2.
3105
3106 2011-09-08  Uros Bizjak  <ubizjak@gmail.com>
3107
3108         * config/i386/i386.c (standard_sse_constant_p): Handle AVX2 modes.
3109         (standard_sse_constant_opcode) <case 2>: Change vpcmpeqd template.
3110
3111 2011-09-08  Bernd Schmidt  <bernds@codesourcery.com>
3112
3113         * config/arm/arm.md (push_multi): Emit predicates.
3114         (push_fp_multi): Likewise.
3115         * config/arm/arm.c (vfp_output_fstmd): Likewise.
3116
3117 2011-09-08  Dodji Seketeli  <dodji@redhat.com>
3118
3119         PR c++/33255 - Support -Wunused-local-typedefs warning
3120         * c-decl.c (lookup_name): Use the new maybe_record_typedef_use.
3121         (pushdecl): Use the new record_locally_defined_typedef.
3122         (store_parm_decls): Allocate cfun->language.
3123         (finish_function): Use the new maybe_warn_unused_local_typedefs,
3124         and free cfun->language.
3125         (c_push_function_context): Allocate cfun->language here only if needed.
3126         (c_pop_function_context): Likewise, mark cfun->language
3127         for collection only when it should be done.
3128         * c-common.c (handle_used_attribute): Don't ignore TYPE_DECL nodes.
3129         * c-typeck.c (c_expr_sizeof_type, c_cast_expr): Use the new
3130         maybe_record_local_typedef_use.
3131         * doc/invoke.texi: Update documentation for
3132         -Wunused-local-typedefs.
3133
3134 2011-09-08  Enkovich Ilya  <ilya.enkovich@intel.com>
3135
3136         * config/i386/i386-protos.h (ix86_lea_outperforms): New.
3137         (ix86_avoid_lea_for_add): Likewise.
3138         (ix86_avoid_lea_for_addr): Likewise.
3139         (ix86_split_lea_for_addr): Likewise.
3140
3141         * config/i386/i386.c (LEA_MAX_STALL): New.
3142         (increase_distance): Likewise.
3143         (insn_defines_reg): Likewise.
3144         (insn_uses_reg_mem): Likewise.
3145         (distance_non_agu_define_in_bb): Likewise.
3146         (distance_agu_use_in_bb): Likewise.
3147         (ix86_lea_outperforms): Likewise.
3148         (ix86_ok_to_clobber_flags): Likewise.
3149         (ix86_avoid_lea_for_add): Likewise.
3150         (ix86_avoid_lea_for_addr): Likewise.
3151         (ix86_split_lea_for_addr): Likewise.
3152         (distance_non_agu_define): Search in pred BBs added.
3153         (distance_agu_use): Search in succ BBs added.
3154         (IX86_LEA_PRIORITY): Value changed from 2 to 0.
3155         (LEA_SEARCH_THRESHOLD): Now depends on LEA_MAX_STALL.
3156         (ix86_lea_for_add_ok): Use ix86_lea_outperforms to make decision.
3157
3158         * config/i386/i386.md: Split added to transform non destructive
3159         add into move and add.
3160         (lea_1): transformed into insn_and_split to avoid AGU stalls.
3161         (lea<mode>_2): Likewise.
3162
3163 2011-09-08  Martin Jambor  <mjambor@suse.cz>
3164
3165         PR tree-optimization/50287
3166         * ipa-split.c (split_function): Do not create SSA names for
3167         non-gimple-registers.
3168
3169 2011-09-08  Richard Guenther  <rguenther@suse.de>
3170
3171         PR tree-optimization/19831
3172         * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Also
3173         skip builtins with vdefs that do not really store something.
3174         (propagate_necessity): For calls to free that we can associate
3175         with an allocation function do not mark the freed pointer
3176         definition necessary.
3177         (eliminate_unnecessary_stmts): Remove a call to free if
3178         the associated call to an allocation function is not necessary.
3179
3180 2011-09-08  Richard Guenther  <rguenther@suse.de>
3181
3182         PR tree-optimization/19831
3183         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Do not mark
3184         allocation functions as necessary.
3185
3186 2011-09-08  Iain Sandoe  <iains@gcc.gnu.org>
3187
3188         * config/darwin-driver.c (darwin_find_version_from_kernel): New routine
3189         cut from ...
3190         (darwin_default_min_version): Amended to provide defaults
3191         for the cross directory case.
3192         (darwin_driver_init): call darwin_default_min_version unconditionally.
3193         * config/darwin.h (DEF_MIN_OSX_VERSION): New.
3194         * config/darwin9.h: Likewise.
3195         * config/darwin10.h: Likewise.
3196         * config/rs6000/darwin7.h: Likewise.
3197
3198 2011-09-08  Jakub Jelinek  <jakub@redhat.com>
3199
3200         PR target/50310
3201         * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): Return
3202         code early if TARGET_AVX.
3203         (ix86_expand_fp_vcond): Handle LTGT and UNEQ.
3204
3205 2011-09-07  Jakub Jelinek  <jakub@redhat.com>
3206
3207         * config/i386/sse.md (sseinsnmode): Remove 32-byte integer vector
3208         duplicates.
3209
3210         PR target/50310
3211         * config/i386/sse.md (*andnot<mode>3, *<code><mode>3): Fix up
3212         "mode" attribute computation.
3213
3214 2011-09-07  Bernd Schmidt  <bernds@codesourcery.com>
3215
3216         * regrename.c (struct du_head): Make nregs signed.
3217         (closed_chains): Remove.
3218         (create_new_chain): Return the new chain.
3219         (chain_from_id): New static function.
3220         (dump_def_use_chain): Change argument to be an int, indicating
3221         the first ID to print.  All callers changed.
3222         (merge_overlapping_regs): Use chain_from_id.  Assert that
3223         chains don't conflict with themselves.
3224         (rename_chains): Take no argument.  Iterate over id_to_chain
3225         rather to find chains to rename.  Clear tick before the main loop.
3226         (struct incoming_reg_info): New struct.
3227         (struct bb_rename_info): New struct.
3228         (init_rename_info, set_incoming_from_chain, merge_chains): New
3229         static functions.
3230         (regrename_analyze): New static function, broken out of
3231         regrename_optimize.  Record and make use of open chain information
3232         at basic block boundaries, and merge chains where possible.
3233         (scan_rtx_reg): Make this_nregs signed.  Don't update
3234         closed_chains.
3235         (build_def_use): Return a bool to indicate success.  All callers
3236         changed.  Don't initialize global data here.
3237         (regrename_optimize): Move most code out of here into
3238         regrename_analyze.
3239         * regs.h (add_range_to_hard_reg_set, remove_range_from_hard_reg_set,
3240         range_overlaps_hard_reg_set_p, range_in_hard_reg_set_p): New
3241         static inline functions.
3242         * vec.h (FOR_EACH_VEC_ELT_FROM): New macro.
3243
3244         * bb-reorder.c (insert_section_boundary_note): Don't check
3245         optimize_function_for_speed_p.
3246         (gate_handle_partition_blocks): Do it here instead.
3247         (gate_handle_reorder_blocks): Move preliminary checks here ...
3248         (rest_of_handle_reorder_blocks): ... from here.
3249
3250 2011-09-07  Martin Jambor  <mjambor@suse.cz>
3251
3252         PR middle-end/50301
3253         * ipa-cp.c (find_more_values_for_callers_subset): Check jump
3254         function index bounds.
3255         (perhaps_add_new_callers): Likewise.
3256
3257 2011-09-07  Martin Jambor  <mjambor@suse.cz>
3258
3259         PR tree-optimization/49911
3260         * tree-sra.c (analyze_access_subtree): Change type of to-be-replaced
3261         enumerations to the corresponding plain integer type.
3262
3263 2011-09-07  Richard Guenther  <rguenther@suse.de>
3264
3265         PR tree-optimization/50319
3266         * tree-if-conv.c (set_bb_predicate): Assert we only set
3267         canonical predicates.
3268         (add_to_predicate_list): Simplify.  Allow TRUTH_NOT_EXPR
3269         around canonical predicates.
3270         (predicate_bbs): Do not re-gimplify already canonical
3271         predicates.  Properly unshare them though.
3272         (find_phi_replacement_condition): Simplify.
3273
3274 2011-09-07  Richard Sandiford  <richard.sandiford@linaro.org>
3275
3276         PR target/49030
3277         * config/arm/arm-protos.h (maybe_get_arm_condition_code): Declare.
3278         * config/arm/arm.c (maybe_get_arm_condition_code): New function,
3279         reusing the old code from get_arm_condition_code.  Return ARM_NV
3280         for invalid comparison codes.
3281         (get_arm_condition_code): Redefine in terms of
3282         maybe_get_arm_condition_code.
3283         * config/arm/predicates.md (arm_comparison_operator): Use
3284         maybe_get_arm_condition_code.
3285
3286 2011-09-07  Richard Guenther  <rguenther@suse.de>
3287
3288         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
3289         Canonicalize negated predicates by swapping edges.
3290         (forward_propagate_into_cond): Likewise.
3291
3292 2011-09-07  Richard Guenther  <rguenther@suse.de>
3293
3294         PR tree-optimization/50213
3295         * tree-flow.h (simple_iv_increment_p): Declare.
3296         * tree-ssa-dom.c (simple_iv_increment_p): Export.  Also handle
3297         POINTER_PLUS_EXPR.
3298         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Do
3299         not propagate simple IV counter increments.
3300
3301 2011-09-07  Eric Botcazou  <ebotcazou@adacore.com>
3302             Iain Sandoe  <iains@gcc.gnu.org>
3303
3304         * config/rs6000/rs6000.c (compute_save_world_info): Test
3305         cfun->has_nonlocal_label to determine if the out-of-line save
3306         world call may be used.
3307
3308 2011-09-07  Nick Clifton  <nickc@redhat.com>
3309
3310         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Set the jump
3311         label on the parallel part of the insn.
3312
3313 2011-09-07  Jakub Jelinek  <jakub@redhat.com>
3314
3315         PR debug/50191
3316         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Try
3317         avoid_constant_pool_reference first instead of last.
3318
3319 2011-09-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
3320
3321         * doc/configfiles.texi (Configuration Files): Update documentation
3322         about tm_p.h and remove FIXME comment.
3323
3324 2011-09-06  Uros Bizjak  <ubizjak@gmail.com>
3325
3326         * config/i386/i386.c (ix86_function_value_regno_p): Use AX_REG.
3327         (function_value_32): Do not check TARGET_MMX, TARGET_SSE or TARGET_AVX.
3328
3329 2011-09-06  Iain Sandoe  <iains@gcc.gnu.org>
3330
3331         * config/darwin10.h Remove duplicate LIB_SPEC.
3332
3333 2011-09-06  Enkovich Ilya  <ilya.enkovich@intel.com>
3334
3335         PR middle-end/44382
3336         * target.def (reassociation_width): New hook.
3337
3338         * doc/tm.texi.in (reassociation_width): Likewise.
3339
3340         * doc/tm.texi (reassociation_width): Likewise.
3341
3342         * doc/invoke.texi (tree-reassoc-width): New param documented.
3343
3344         * hooks.h (hook_int_uint_mode_1): New default hook.
3345
3346         * hooks.c (hook_int_uint_mode_1): Likewise.
3347
3348         * config/i386/i386.h (ix86_tune_indices): Add
3349         X86_TUNE_REASSOC_INT_TO_PARALLEL and X86_TUNE_REASSOC_FP_TO_PARALLEL.
3350
3351         (TARGET_REASSOC_INT_TO_PARALLEL): New.
3352         (TARGET_REASSOC_FP_TO_PARALLEL): Likewise.
3353
3354         * config/i386/i386.c (initial_ix86_tune_features): Add
3355         X86_TUNE_REASSOC_INT_TO_PARALLEL and X86_TUNE_REASSOC_FP_TO_PARALLEL.
3356
3357         (ix86_reassociation_width): New function.
3358
3359         * params.def (PARAM_TREE_REASSOC_WIDTH): New param added.
3360
3361         * tree-ssa-reassoc.c (get_required_cycles): New function.
3362         (get_reassociation_width): Likewise.
3363         (swap_ops_for_binary_stmt): Likewise.
3364         (rewrite_expr_tree_parallel): Likewise.
3365
3366         (rewrite_expr_tree): Refactored.  Part of code moved into
3367         swap_ops_for_binary_stmt.
3368
3369         (reassociate_bb): Now checks reassociation width to be used and
3370         call rewrite_expr_tree_parallel instead of rewrite_expr_tree if needed.
3371
3372 2011-09-06  Richard Guenther  <rguenther@suse.de>
3373
3374         PR tree-optimization/47025
3375         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): BUILT_IN_VA_END
3376         uses nothing.
3377         (call_may_clobber_ref_p_1): BUILT_IN_VA_END is a barrier like
3378         BUILT_IN_FREE.
3379         (stmt_kills_ref_p_1): BUILT_IN_VA_END kills what its argument
3380         definitely points to.
3381         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
3382         BUILT_IN_VA_START doesn't let its va_list argument escape.
3383         * tree-ssa-dce.c (propagate_necessity): BUILT_IN_VA_END does
3384         not make any previous stores necessary.
3385
3386 2011-09-06  Martin Jambor  <mjambor@suse.cz>
3387
3388         * ipa-inline.h (struct inline_summary): Move versionable flag...
3389         * cgraph.h (struct cgraph_local_info): ...here
3390         * ipa-cp.c (determine_versionability): Use the new versionable flag.
3391         (determine_versionability): Likewise.
3392         (ipcp_versionable_function_p): Likewise.
3393         (ipcp_generate_summary): Likewise.
3394         * ipa-inline-analysis.c (dump_inline_summary): Do not dump the
3395         versionable flag.
3396         (compute_inline_parameters): Do not clear the versionable flag.
3397         (inline_read_section): Do not stream the versionable flag.
3398         (inline_write_summary): Likewise.
3399         * lto-cgraph.c (lto_output_node): Stream the versionable flag.
3400         (input_overwrite_node): Likewise.
3401
3402 2011-09-06  Richard Guenther  <rguenther@suse.de>
3403
3404         PR tree-optimization/48149
3405         * tree-ssa-sccvn.c (vn_get_expr_for): Simplify.  Fix tuplification bug.
3406         (vn_valueize): Move earlier.
3407         (valueize_expr): Use vn_valueize.
3408         (simplify_binary_expression): Simplify, also combine COMPLEX_EXPR
3409         operands.
3410         (simplify_unary_expression): Simplify.
3411
3412 2011-09-06  Richard Guenther  <rguenther@suse.de>
3413
3414         PR tree-optimization/48317
3415         * tree-ssa-sccvn.h (struct vn_nary_op_s): Make op a true
3416         trailing array.
3417         (sizeof_vn_nary_op): New inline function.
3418         (vn_nary_op_lookup_pieces): Adjust.
3419         (vn_nary_op_insert_pieces): Likewise.
3420         * tree-ssa-sccvn.c (vn_nary_op_eq): Also compare the length.
3421         (init_vn_nary_op_from_pieces): Adjust signature.  Deal with
3422         any number of operands.
3423         (vn_nary_length_from_stmt): New function.
3424         (init_vn_nary_op_from_stmt): Adjust for CONSTRUCTOR handling.
3425         (vn_nary_op_lookup_pieces): Adjust signature and allocate properly
3426         sized temporary.
3427         (vn_nary_op_lookup): Likewise.
3428         (vn_nary_op_lookup_stmt): Likewise.
3429         (vn_nary_op_insert_into): Likewise.
3430         (vn_nary_op_insert_stmt): Likewise.
3431         (visit_use): Handle CONSTRUCTOR as nary.
3432         * tree-ssa-pre.c (phi_translate_1): Adjust.
3433         (create_expression_by_pieces): Likewise.
3434         (compute_avail): Likewise.
3435
3436 2011-09-06  Ira Rosen  <ira.rosen@linaro.org>
3437
3438          * config/arm/arm.c (arm_preferred_simd_mode): Check
3439         TARGET_NEON_VECTORIZE_DOUBLE instead of
3440         TARGET_NEON_VECTORIZE_QUAD.
3441         (arm_autovectorize_vector_sizes): Likewise.
3442         * config/arm/arm.opt (mvectorize-with-neon-quad): Make inverse
3443         mask of mvectorize-with-neon-double.  Add RejectNegative.
3444         (mvectorize-with-neon-double): New.
3445
3446 2011-09-06  Richard Guenther  <rguenther@suse.de>
3447
3448         * tree-ssa-sccvn.c (visit_use): CSE stmt pieces and simplify matching.
3449
3450 2011-09-06  Tom de Vries  <tom@codesourcery.com>
3451
3452         * recog.c (asm_labels_ok): New function.
3453         (check_asm_operands): Use asm_labels_ok.
3454
3455 2011-09-05  Richard Sandiford  <rdsandiford@googlemail.com>
3456
3457         PR target/49606
3458         * config/mips/mips.h (ABI_HAS_64BIT_SYMBOLS): Check Pmode.
3459         (PMODE_INSN): New macro.
3460         * config/mips/mips.c (gen_load_const_gp): Use PMODE_INSN.
3461         (mips_got_load, mips_expand_synci_loop): Likewise.
3462         (mips_save_gp_to_cprestore_slot): Handle SImode and DImode
3463         cprestore patterns.
3464         (mips_emit_loadgp): Use PMODE_INSN.  Handle SImode and DImode
3465         copygp_mips16 patterns.
3466         (mips_expand_prologue): Handle SImode and DImode potential_cprestore
3467         and use_cprestore patterns.
3468         (mips_override_options): Check for incompatible -mabi and -mlong
3469         combinations.
3470         * config/mips/mips.md (unspec_got<mode>): Rename to...
3471         (unspec_got_<mode>): ...this.
3472         (copygp_mips16): Use the Pmode iterator.
3473         (potential_cprestore, cprestore, use_cprestore): Likewise.
3474         (clear_cache, indirect_jump): Use PMODE_INSN.
3475         (indirect_jump<mode>): Rename to...
3476         (indirect_jump_<mode>): ...this.
3477         (tablejump): Use PMODE_INSN.
3478         (tablejump<mode>): Rename to...
3479         (tablejump_<mode>): ...this.
3480         (exception_receiver): Handle restore_gp_si and restore_gp_di.
3481         (restore_gp): Use the Pmode iterator.
3482         * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Use
3483         PMODE_INSN.
3484
3485 2011-09-05  Richard Sandiford  <rdsandiford@googlemail.com>
3486
3487         * config/mips/mips.c (mips_gimplify_va_arg_expr): Unshare off.
3488         Fix the type of the BIT_AND_EXPR.
3489
3490 2011-09-05  David S. Miller  <davem@davemloft.net>
3491
3492         * config.host: Add driver-sparc.o and sparc/x-sparc on
3493         native sparc*-*-linux* builds.
3494         * config/sparc/driver-sparc.c: Correct Linux strings.
3495         * config/sparc/linux.h: Add DRIVER_SELF_SPECS.
3496         * config/sparc/linux64.h: Likewise.
3497         * doc/invoke.texi: Document that Linux also supports
3498         -mcpu=native and -mtune=native on sparc.
3499
3500         * config/sparc/sparc-opts.h (PROCESSOR_NIAGARA3,
3501         PROCESSOR_NIAGARA4): New.
3502         * config/sparc/sparc.opt: Handle new processor types.
3503         * config/sparc/sparc.md: Add to "cpu" attribute.
3504         * config/sparc/sparc.h (TARGET_CPU_niagara3,
3505         TARGET_CPU_niagara4): New, treat as niagara2.
3506         * config/sparc/linux64.h: Handle niagara3 and niagara4 like niagara2.
3507         * config/sparc/sol2.h: Likewise.
3508         * config/sparc/niagara2.md: Schedule niagara3 like niagara2.
3509         * config/sparc/sparc.c (sparc_option_override): Add
3510         niagara3 and niagara4 handling.
3511         (sparc32_initialize_trampoline): Likewise.
3512         (sparc64_initialize_trampoline): Likewise.
3513         (sparc_use_sched_lookahead): Likewise.
3514         (sparc_issue_rate): Likewise.
3515         (sparc_register_move_cost): Likewise.
3516         * config/sparc/driver-sparc.c (cpu_names): Use niagara3
3517         and niagara4 as appropriate.
3518         * doc/invoke.texi: Document new processor types.
3519         * config.gcc: Recognize niagara3 and niagara4 in --with-cpu
3520         and --with-tune options.
3521
3522         * config/sparc/sol2-64.h: Move ...
3523         * config/sparc/default-64.h: ... to here.  Update comment.
3524         * config.gcc: Update Solaris sparc to use default-64.h, also
3525         prefix this header into the list on sparc64-*-linux.
3526         * config/sparc/linux64.h (TARGET_DEFAULT): Only override if
3527         TARGET_64BIT_DEFAULT is defined.  Remove commented out reference
3528         to MASK_HARD_QUAD.
3529
3530 2011-09-05  Georg-Johann Lay  <avr@gjlay.de>
3531
3532         PR target/50289
3533         * config/avr/avr.c (sequent_regs_live): Don't recognize sequences
3534         that contain global register variable.
3535
3536 2011-09-05  Richard Guenther  <rguenther@suse.de>
3537
3538         * tree-cfg.c (replace_uses_by): Use fold_stmt, not fold_stmt_inplace.
3539
3540 2011-09-05  Richard Guenther  <rguenther@suse.de>
3541
3542         * stor-layout.c (layout_type): Use size_binop for array size
3543         calculations.
3544
3545 2011-09-05  Georg-Johann Lay  <avr@gjlay.de>
3546
3547         * config/avr/avr.h (progmem_section): Remove Declaration.
3548         * config/avr/avr.c (progmem_section): Make static and rename to
3549         progmem_swtable_section.
3550         (avr_output_addr_vec_elt): No need to switch sections.
3551         (avr_asm_init_sections): Use output_section_asm_op as section
3552         callback for progmem_swtable_section.
3553         (avr_output_progmem_section_asm_op): Remove Function.
3554         (TARGET_ASM_FUNCTION_RODATA_SECTION): New Define.
3555         (avr_asm_function_rodata_section): New static Function.
3556         * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Output
3557         alignment 2**1 for jump tables.
3558
3559 2011-09-04  Jan Hubicka  <jh@suse.cz>
3560
3561         * ipa-inline-analysis.c (set_cond_stmt_execution_predicate): Check that
3562         parameter is SSA name.
3563
3564 2011-09-04  Richard Guenther  <rguenther@suse.de>
3565
3566         Revert
3567         2011-08-31  Richard Guenther  <rguenther@suse.de>
3568
3569         * fold-const.c (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE
3570         special-casing.
3571
3572 2011-09-04  Iain Sandoe  <iains@gcc.gnu.org>
3573
3574         PR debug/49901
3575         * config/darwin.h (DEBUG_MACRO_SECTION): New macro.
3576
3577 2011-09-04  Jakub Jelinek  <jakub@redhat.com>
3578             Ira Rosen  <ira.rosen@linaro.org>
3579
3580         PR tree-optimization/50208
3581         * tree-vect-patterns.c (vect_handle_widen_mult_by_const): Add an
3582         argument.  Check that def_stmt is inside the loop.
3583         (vect_recog_widen_mult_pattern): Update calls to
3584         vect_handle_widen_mult_by_cons.
3585         (vect_operation_fits_smaller_type): Check that def_stmt is
3586         inside the loop.
3587
3588 2011-09-04  Ira Rosen  <ira.rosen@linaro.org>
3589
3590         * tree-vectorizer.c (vect_print_dump_info): Print line
3591         number when dumping to a file.
3592         (vectorize_loops): Add new messages to dump file.
3593
3594 2011-09-03  Martin Jambor  <mjambor@suse.cz>
3595
3596         * ipa-prop.h (ipa_jump_func_t): New typedef.
3597         (struct ipa_edge_args): Removed field argument_count, field
3598         jump_functions turned into a vector.
3599         (ipa_set_cs_argument_count): Removed.
3600         (ipa_get_cs_argument_count): Updated to work on vectors.
3601         (ipa_get_ith_jump_func): Likewise.
3602         * ipa-prop.c (ipa_count_arguments): Removed.
3603         (compute_scalar_jump_functions): Use ipa_get_ith_jump_func to access
3604         jump functions.  Update caller.
3605         (compute_pass_through_member_ptrs): Likewise.
3606         (compute_cst_member_ptr_arguments): Likewise.
3607         (ipa_compute_jump_functions_for_edge): Get number of arguments from
3608         the statement, allocate vector.
3609         (ipa_compute_jump_functions): Do not call ipa_count_arguments.
3610         (duplicate_ipa_jump_func_array): Removed.
3611         (ipa_edge_duplication_hook): Use VEC_copy, do not copy argument count.
3612         (ipa_read_node_info): Allocate vector.
3613
3614 2011-09-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3615
3616         PR middle-end/50232
3617         * config/pa/pa.md (return): Define "return" insn pattern.
3618         (epilogue): Use it when no epilogue is needed.
3619         * config/pa/pa.c (pa_can_use_return_insn): New function.
3620         * config/pa/pa-protos.h (pa_can_use_return_insn): Declare.
3621
3622 2011-09-03  Eric Botcazou  <ebotcazou@adacore.com>
3623
3624         * cfgexpand.c (add_stack_var): Assert that the alignment is not zero.
3625         * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Revert latest change.
3626         Force at least BITS_PER_UNIT alignment on the new variable.
3627
3628 2011-09-02  Gary Funck <gary@intrepid.com>
3629
3630         * opts.c (print_specific_help): Fix off-by-one compare in
3631         assertion check.
3632         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
3633         CL_TARGET, CL_COMMON, CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED):
3634         Increase by +5 to allow for more languages.
3635         * optc-gen.awk: Generate #if that ensures that the number of
3636         languages is within the implementation-defined limit.
3637
3638 2011-09-02  Michael Matz  <matz@suse.de>
3639
3640         PR middle-end/50260
3641         * ipa-split.c (split_function): Call add_referenced_var.
3642
3643         * tree-ssa-phiopt.c (cond_store_replacement): Don't call get_var_ann.
3644         (cond_if_else_store_replacement_1): Ditto.
3645         * tree-ssa-pre.c (get_representative_for): Ditto.
3646         (create_expression_by_pieces): Ditto.
3647         (insert_into_preds_of_block): Ditto.
3648         * tree-sra.c (create_access_replacement): Ditto.
3649         (get_replaced_param_substitute): Ditto.
3650
3651 2011-09-02  Bernd Schmidt  <bernds@codesourcery.com>
3652
3653         * config/c6x/c6x.md (collapse-ndfa, no-comb-vect): New
3654         automata_options.
3655         (d1, l1, s1, m1, d2, l2, s2, m2): Changed to define_query_cpu_unit.
3656         (l1w, s1w, l2w, s2w): Define in the main automaton.
3657         (fps1, fpl1, adddps1, adddpl1, fps2, fpl2, adddps2, adddpl2): New
3658         units.
3659         * config/c6x/c6x.c (c6x_sched_insn_info): Add unit_mask member.
3660         (c6x_unit_names): Add the new units.
3661         (c6x_unit_codes): New static array.
3662         (UNIT_QID_D1, UNIT_QID_L1, UNIT_QID_S1, UNIT_QID_M1, UNIT_QID_FPS1,
3663         UNIT_QID_FPL1, UNIT_QID_ADDDPS1, UNIT_QID_ADDDPL1,
3664         UNIT_QID_SIDE_OFFSET): New macros.
3665         (RESERVATION_S2): Adjust value.
3666         (c6x_option_override): Compute c6x_unit_codes.
3667         (assign_reservations): Take the unit_mask of the last instruction
3668         into account.  Detect floating point reservations by looking for
3669         the new units.  Don't assign reservations if the field is already
3670         nonzero.
3671         (struct c6x_sched_context): Add member prev_cycle_state_ctx.
3672         (init_sched_state): Initialize it.
3673         (c6x_clear_sched_context): Free it.
3674         (insn_set_clock): Clear reservation.
3675         (prev_cycle_state): New static variable.
3676         (c6x_init_sched_context): Save it.
3677         (c6x_sched_init): Allocate space for it and clear it.
3678         (c6x_sched_dfa_pre_cycle_insn): New static function.
3679         (c6x_dfa_new_cycle): Save state at the start of a new cycle.
3680         (c6x_variable_issue): Only record units in the unit_mask that
3681         were not set at the start of the cycle.
3682         (c6x_variable_issue): Compute and store the unit_mask from the
3683         current state.
3684         (reorg_split_calls): Ensure the new information remains correct.
3685         (TARGET_SCHED_DFA_NEW_CYCLE, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
3686         TARGET_SCHED_DFA_PRE_CYCLE_INSN): Define.
3687         * config/c6x/c6x.h (CPU_UNITS_QUERY): Define.
3688         * config/c6x/c6x-sched.md.in (fp4_ls_N__CROSS_, adddp_ls_N__CROSS_):
3689         Add special reservations.
3690         * config/c6x/c6x-sched.md: Regenerate.
3691
3692 2011-09-02  Martin Jambor  <mjambor@suse.cz>
3693
3694         * ipa-prop.h (ipa_node_params): Removed fields
3695         called_with_var_arguments and node_versionable.
3696         (ipa_set_called_with_variable_arg): Removed.
3697         (ipa_is_called_with_var_arguments): Likewise.
3698         * ipa-cp.c (ipa_get_lattice): Fixed index check in an assert.
3699         (determine_versionability): Do not check for type attributes and va
3700         builtins.  Record versionability into inline summary.
3701         (initialize_node_lattices): Do not check
3702         ipa_is_called_with_var_arguments.
3703         (propagate_constants_accross_call): Likewise, ignore arguments we do
3704         not have PARM_DECLs for, set variable flag for parameters that were
3705         not passed a value.
3706         (create_specialized_node): Dump info that we cannot change signature.
3707         * ipa-prop.c (ipa_compute_jump_functions): Do not care about variable
3708         number of arguments.
3709         (ipa_make_edge_direct_to_target): Likewise.
3710         (ipa_update_after_lto_read): Likewise.
3711         (ipa_node_duplication_hook): Do not copy called_with_var_arguments flag.
3712         * tree-inline.c (copy_arguments_for_versioning): Copy PARM_DECLs if
3713         they were remapped.
3714
3715 2011-09-02  Richard Guenther  <rguenther@suse.de>
3716
3717         PR tree-optimization/27460
3718         PR middle-end/29269
3719         * doc/md.texi (vcond): Document.
3720         * genopinit.c (optabs): Turn vcond{,u}_optab into a conversion
3721         optab with two modes.
3722         * optabs.h (enum convert_optab_index): Add COI_vcond, COI_vcondu.
3723         (enum direct_optab_index): Remove DOI_vcond, DOI_vcondu.
3724         (vcond_optab): Adjust.
3725         (vcondu_optab): Likewise.
3726         (expand_vec_cond_expr_p): Adjust prototype.
3727         * optabs.c (get_vcond_icode): Adjust.
3728         (expand_vec_cond_expr_p): Likewise.
3729         (expand_vec_cond_expr): Likewise.
3730         * tree-vect-stmts.c (vect_is_simple_cond): Return the comparison
3731         vector type.
3732         (vectorizable_condition): Allow differing types for comparison
3733         and result.
3734         * config/i386/i386.c (ix86_expand_sse_cmp): Use proper mode
3735         for the comparison.
3736         * config/i386/sse.md (vcond<mode>): Split to
3737         vcond<V_256:mode><VF_256:mode>, vcond<V_128:mode><VF_128:mode>,
3738         vcond<V_128:mode><VI124_128:mode> and
3739         vcondu<V_128:mode><VI124_128:mode>.
3740         (vcondv2di): Change to vcond<VI8F_128:mode>v2di.
3741         (vconduv2di): Likewise.
3742         * config/arm/neon.md (vcond<mode>): Change to vcond*<mode><mode>.
3743         (vcondu<mode>): Likewise.
3744         * config/ia64/vect.md (vcond<mode>): Likewise.
3745         (vcondu<mode>): Likewise.
3746         (vcondv2sf): Likewise.
3747         * config/mips/mips-ps-3d.md (vcondv2sf): Likewise.
3748         * config/rs6000/paired.md (vcondv2sf): Likewise.
3749         * config/rs6000/vector.md (vcond<mode>): Likewise.
3750         (vcondu<mode>): Likewise.
3751         * config/spu/spu.md (vcond<mode>): Likewise.
3752         (vcondu<mode>): Likewise.
3753
3754 2011-09-02  Richard Guenther  <rguenther@suse.de>
3755
3756         * pretty-print.h (pp_unsigned_wide_integer): New.
3757         * tree-pretty-print.c (dump_generic_node): Print unsigned
3758         host-wide-int fitting INTEGER_CSTs with pp_unsigned_wide_integer.
3759
3760 2011-09-02  Richard Sandiford  <richard.sandiford@linaro.org>
3761
3762         PR target/49987
3763         * config/rs6000/rs6000.c (paired_expand_vector_init): Check for
3764         valid CONST_VECTOR operands.
3765         (rs6000_expand_vector_init): Likewise.
3766
3767 2011-09-02  Martin Jambor  <mjambor@suse.cz>
3768
3769         * cgraph.h (cgraph_indirect_call_info): Removed field thunk_delta.
3770         * gimple-fold.c (gimple_get_virt_method_for_binfo): Rewritten to use
3771         BINFO_VTABLE.  Parameter delta removed, all callers updated.
3772         * tree.c (free_lang_data_in_binfo): Clear BINFO_VIRTUALs instead
3773         BINFO_VTABLE.
3774         * cgraph.c (cgraph_make_edge_direct): Removed parameter delta, updated
3775         all calls.
3776         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Removed
3777         handling of thunk_delta.
3778         * ipa-cp.c (get_indirect_edge_target): Removed parameter delta.
3779         (devirtualization_time_bonus): Do not handle thunk deltas.
3780         (ipcp_discover_new_direct_edges): Likewise.
3781         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
3782         (try_make_edge_direct_simple_call): Likewise.
3783         (try_make_edge_direct_virtual_call): Likewise.
3784         * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise.  Mark
3785         parameter set as unused.
3786         (output_edge_opt_summary): Likewise.  Mark both parameters as unused.
3787         * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise.  Mark
3788         parameter set as unused.
3789         (output_edge_opt_summary): Likewise.  Mark both parameters as unused.
3790         (input_edge_opt_summary): Likewise.
3791         * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not stream
3792         BINFO_VIRTUALS at all.
3793         * lto-streamer-in.c (lto_input_ts_binfo_tree_pointers): Likewise.
3794
3795 2011-09-02  Richard Guenther  <rguenther@suse.de>
3796
3797         * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Do not fold alloca (0).
3798         (ccp_fold_stmt): Continue replacing args when folding alloca fails.
3799
3800 2011-08-31  Richard Guenther  <rguenther@suse.de>
3801
3802         * expr.c (expand_expr_real_2): Move COND_EXPR and VEC_COND_EXPR
3803         handling here, from ...
3804         (expand_expr_real_1): ... here.
3805         * gimple-pretty-print.c (dump_ternary_rhs): Handle COND_EXPR
3806         and VEC_COND_EXPR.
3807         * gimple.c (gimple_rhs_class_table): Make COND_EXPR and VEC_COND_EXPR
3808         a GIMPLE_TERNARY_RHS.
3809         * tree-cfg.c (verify_gimple_assign_ternary): Handle COND_EXPR
3810         and VEC_COND_EXPR here ...
3811         (verify_gimple_assign_single): ... not here.
3812         * gimple-fold.c (fold_gimple_assign): Move COND_EXPR folding.
3813         * tree-object-size.c (cond_expr_object_size): Adjust.
3814         (collect_object_sizes_for): Likewise.
3815         * tree-scalar-evolution.c (interpret_expr): Don't handle ternary RHSs.
3816         * tree-ssa-forwprop.c (forward_propagate_into_cond): Fix and simplify.
3817         (ssa_forward_propagate_and_combine): Adjust.
3818         * tree-ssa-loop-im.c (move_computations_stmt): Build the COND_EXPR
3819         as ternary.
3820         * tree-ssa-threadedge.c (fold_assignment_stmt): Adjust.
3821         * tree-vect-loop.c (vect_is_simple_reduction_1): Likewise.
3822         * tree-vect-stmt.c (vectorizable_condition): Likewise.
3823         * tree-vrp.c (extract_range_from_cond_expr): Likewise.
3824         (extract_range_from_assignment): Likewise.
3825
3826 2011-08-31  Richard Sandiford  <rdsandiford@googlemail.com>
3827
3828         * config/i386/i386.md: Use (match_test ...) for attribute tests.
3829         * config/i386/mmx.md: Likewise.
3830         * config/i386/sse.md: Likewise.
3831         * config/i386/predicates.md (call_insn_operand): Use
3832         (not (match_test "...")) instead of (match_test "!...")
3833         * config/i386/constraints.md (w): Likewise.
3834
3835 2011-08-31  Richard Sandiford  <rdsandiford@googlemail.com>
3836
3837         * doc/md.texi: Describe the use of match_tests in attribute tests.
3838         * rtl.def (MATCH_TEST): Update commentary.
3839         * genattrtab.c (attr_copy_rtx, check_attr_test, clear_struct_flag)
3840         (write_test_expr, walk_attr_value): Handle MATCH_TEST.
3841
3842 2011-08-31  Richard Sandiford  <rdsandiford@googlemail.com>
3843
3844         * genattrtab.c (attr_rtx_1): Hash SYMBOL_REFs.
3845         (attr_string): Use copy_md_ptr_loc.
3846
3847 2011-08-31  Martin Jambor  <mjambor@suse.cz>
3848
3849         PR middle-end/49886
3850         * ipa-inline-analysis.c (compute_inline_parameters): Set
3851         can_change_signature of noes with typde attributes.
3852         * ipa-split.c (split_function): Do not skip any arguments if
3853         can_change_signature is set.
3854
3855 2011-08-31  Martin Jambor  <mjambor@suse.cz>
3856
3857         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Alias
3858         check removed.
3859
3860 2011-08-31  Richard Guenther  <rguenther@suse.de>
3861
3862         * fold-const.c (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE
3863         special-casing.
3864
3865 2011-08-31  Marc Glisse  <marc.glisse@inria.fr>
3866
3867         * doc/generic.texi (Types for C++): CP_TYPE_QUALS -> cp_type_quals.
3868
3869 2011-08-31  Tom de Vries  <tom@codesourcery.com>
3870
3871         PR middle-end/43513
3872         * Makefile.in (tree-ssa-ccp.o): Add $(PARAMS_H) to rule.
3873         * tree-ssa-ccp.c (params.h): Include.
3874         (fold_builtin_alloca_for_var): New function.
3875         (ccp_fold_stmt): Use fold_builtin_alloca_for_var.
3876
3877 2011-08-30  Uros Bizjak  <ubizjak@gmail.com>
3878
3879         * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
3880         Handle FMA option.
3881
3882 2011-08-30  Andrew Stubbs  <ams@codesourcery.com>
3883
3884         * config/arm/arm.c (optimal_immediate_sequence_1): Make b1, b2,
3885         b3 and b4 unsigned.
3886
3887 2011-08-30  Andrew Stubbs  <ams@codesourcery.com>
3888
3889         * config/arm/arm.c (arm_gen_constant): Set can_negate correctly
3890         when code is SET.
3891
3892 2011-08-30  Richard Guenther  <rguenther@suse.de>
3893
3894         PR middle-end/48571
3895         * gimple.h (maybe_fold_offset_to_address): Remove.
3896         (maybe_fold_offset_to_reference): Likewise.
3897         (maybe_fold_stmt_addition): Likewise.
3898         (may_propagate_address_into_dereference): Likewise.
3899         * tree-inline.c (remap_gimple_op_r): Do not reconstruct
3900         array references.
3901         * gimple-fold.c (canonicalize_constructor_val): Likewise.
3902         Canonicalize invariant POINTER_PLUS_EXPRs to invariant MEM_REF
3903         addresses instead.
3904         (may_propagate_address_into_dereference): Remove.
3905         (maybe_fold_offset_to_array_ref): Likewise.
3906         (maybe_fold_offset_to_reference): Likewise.
3907         (maybe_fold_offset_to_address): Likewise.
3908         (maybe_fold_stmt_addition): Likewise.
3909         (fold_gimple_assign): Do not reconstruct array references but
3910         instead canonicalize invariant POINTER_PLUS_EXPRs to invariant
3911         MEM_REF addresses.
3912         (gimple_fold_stmt_to_constant_1): Likewise.
3913         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
3914         * gimplify.c (gimplify_conversion): Likewise.
3915         (gimplify_expr): Likewise.
3916
3917 2011-08-30  Ilya Tocar  <ilya.tocar@intel.com>
3918
3919         * config/i386/fmaintrin.h: New.
3920         * config.gcc: Add fmaintrin.h.
3921         * config/i386/i386.c
3922         (enum ix86_builtins) <IX86_BUILTIN_VFMADDSS3>: New.
3923         <IX86_BUILTIN_VFMADDSD3>: Likewise.
3924         * config/i386/sse.md (fmai_vmfmadd_<mode>): New.
3925         (*fmai_fmadd_<mode>): Likewise.
3926         (*fmai_fmsub_<mode>): Likewise.
3927         (*fmai_fnmadd_<mode>): Likewise.
3928         (*fmai_fnmsub_<mode>): Likewise.
3929         * config/i386/immintrin.h: Add fmaintrin.h.
3930
3931 2011-08-30  Bernd Schmidt  <bernds@codesourcery.com>
3932
3933         * genautomata.c (NO_COMB_OPTION): New macro.
3934         (no_comb_flag): New static variable.
3935         (gen_automata_option): Handle NO_COMB_OPTION.
3936         (comb_vect_p): False if no_comb_flag.
3937         (add_vect): Move computation of min/max values.  Return early if
3938         no_comb_flag.
3939         * doc/md.texi (automata_option): Document no-comb-vect.
3940
3941         * config/i386/i386.c (get_pc_thunk_name): Change prefix to
3942         "__x86.get_pc_thunk".
3943
3944         * bb-reorder.c (insert_section_boundary_note): Only do it if
3945         we reordered the blocks; i.e. not if !optimize_function_for_speed_p.
3946
3947 2011-08-30  Christian Bruel  <christian.bruel@st.com>
3948
3949         * coverage.c (coverage_init): Check flag_branch_probabilities instead of
3950         flag_profile_use.
3951
3952 2011-08-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
3953
3954         * config/rs6000/rs6000.opt (-msave-toc-indirect): Change default
3955         to off.  Document switch.
3956         * doc/invoke.texi (-msave-toc-indirect): Ditto.
3957
3958 2011-08-29  Jakub Jelinek  <jakub@redhat.com>
3959
3960         * gthr-posix.h (__gthread_active_p): Do not use preprocessor
3961         conditionals and comments inside macro arguments.
3962
3963 2011-08-29  Artjoms Sinkarovs  <artyom.shinkaroff@gmail.com>
3964             Richard Guenther  <rguenther@suse.de>
3965
3966         * tree.h (constant_boolean_node): Adjust prototype.
3967         * fold-const.c (fold_convert_loc): Move aggregate conversion
3968         leeway down.
3969         (constant_boolean_node): Make value parameter boolean, add
3970         vector type handling.
3971         (fold_unary_loc): Use constant_boolean_node.
3972         (fold_binary_loc): Preserve types properly when folding
3973         COMPLEX_EXPR <__real x, __imag x>.
3974         * gimplify.c (gimplify_expr): Handle vector comparison.
3975         * tree.def (EQ_EXPR, ...): Document behavior on vector typed
3976         comparison.
3977         * tree-cfg.c (verify_gimple_comparison): Verify vector typed
3978         comparisons.
3979
3980 2011-08-29  Jakub Jelinek  <jakub@redhat.com>
3981
3982         PR middle-end/48722
3983         * emit-rtl.c (unshare_all_rtl_again): For CALL_INSNs,
3984         reset_used_flags also in CALL_INSN_FUNCTION_USAGE.
3985         (verify_rtl_sharing): Likewise and verify_rtx_sharing
3986         in there too.
3987         (unshare_all_rtl_in_chain): For CALL_INSNs
3988         copy_rtx_if_shared also CALL_INSN_FUNCTION_USAGE.
3989
3990 2011-08-29  Richard Guenther  <rguenther@suse.de>
3991
3992         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Set a location
3993         on the built ADDR_EXPR.
3994
3995 2011-08-29  Jakub Jelinek  <jakub@redhat.com>
3996
3997         PR debug/50215
3998         * var-tracking.c (create_entry_value): Call cselib_lookup_from_insn
3999         before adding ENTRY_VALUE to val->locs.
4000
4001 2011-08-28  Mikael Pettersson  <mikpe@it.uu.se>
4002
4003         PR bootstrap/50218
4004         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Initialize
4005         comp.
4006
4007 2011-08-27  Bernd Schmidt  <bernds@codesourcery.com>
4008
4009         * doc/rtl.texi (simple_return): Document.
4010         (parallel, PATTERN): Here too.
4011         * doc/md.texi (return): Mention it's allowed to expand to simple_return
4012         in some cases.
4013         (simple_return): Document standard pattern.
4014         * gengenrtl.c (special_rtx): SIMPLE_RETURN is special.
4015         * final.c (final_scan_insn): Use ANY_RETURN_P on body.
4016         * reorg.c (function_return_label, function_simple_return_label):
4017         New static variables, replacing...
4018         (end_of_function_label): ... this.
4019         (simplejump_or_return_p): New static function.
4020         (optimize_skip, steal_delay_list_from_fallthrough,
4021         fill_slots_from_thread): Use it.
4022         (relax_delay_slots): Likewise.  Use ANY_RETURN_P on body.
4023         (rare_destination, follow_jumps): Use ANY_RETURN_P on body.
4024         (find_end_label): Take a new arg which is one of the two return
4025         rtxs.  Depending on which, set either function_return_label or
4026         function_simple_return_label.  All callers changed.
4027         (make_return_insns): Make both kinds.
4028         (dbr_schedule): Adjust for two kinds of end labels.
4029         * function.c (emit_return_into_block): Set JUMP_LABEL properly.
4030         * genemit.c (gen_exp): Handle SIMPLE_RETURN.
4031         (gen_expand, gen_split): Use ANY_RETURN_P.
4032         * df-scan.c (df_uses_record): Handle SIMPLE_RETURN.
4033         * rtl.def (SIMPLE_RETURN): New code.
4034         * ifcvt.c (find_if_case_1): Be more careful about
4035         redirecting jumps to the EXIT_BLOCK.
4036         * jump.c (condjump_p, condjump_in_parallel_p, any_condjump_p,
4037         returnjump_p_1): Handle SIMPLE_RETURNs.
4038         * print-rtl.c (print_rtx): Likewise.
4039         * rtl.c (copy_rtx): Likewise.
4040         * bt-load.c (compute_defs_uses_and_gen): Use ANY_RETURN_P.
4041         * combine.c (simplify_set): Likewise.
4042         * resource.c (find_dead_or_set_registers, mark_set_resources):
4043         Likewise.
4044         * emit-rtl.c (verify_rtx_sharing, classify_insn, copy_insn_1,
4045         copy_rtx_if_shared_1, mark_used_flags): Handle SIMPLE_RETURNs.
4046         (init_emit_regs): Initialize simple_return_rtx.
4047         * cfglayout.c (fixup_reorder_chain): Pass a JUMP_LABEL to
4048         force_nonfallthru_and_redirect.
4049         * rtl.h (ANY_RETURN_P): Allow SIMPLE_RETURN.
4050         (GR_SIMPLE_RETURN): New enum value.
4051         (simple_return_rtx): New macro.
4052         * basic-block.h (force_nonfallthru_and_redirect): Adjust
4053         declaration.
4054         * cfgrtl.c (force_nonfallthru_and_redirect): Take a new jump_label
4055         argument.  All callers changed.  Be careful about what kinds of
4056         returnjumps to generate.
4057         * config/i386/3i86.c (ix86_pad_returns, ix86_count_insn_bb,
4058         ix86_pad_short_function): Likewise.
4059         * config/arm/arm.c (arm_final_prescan_insn): Handle both kinds
4060         of return.
4061         * config/mips/mips.md (any_return): New code_iterator.
4062         (optab): Add cases for return and simple_return.
4063         (return): Expand to a simple_return.
4064         (simple_return): New pattern.
4065         (*<optab>, *<optab>_internal for any_return): New patterns.
4066         (return_internal): Remove.
4067         * config/mips/mips.c (mips_expand_epilogue): Make the last insn
4068         a simple_return_internal.
4069
4070 2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
4071
4072         * config/i386/sse.md (*absneg<mode>2): Fix split condition.
4073         (vec_extract_lo_<mode>): Prevent both operands in memory.
4074         (vec_extract_lo_v16hi): Ditto.
4075         (*vec_extract_v4sf_mem): Add TARGET_SSE insn constraint.
4076
4077 2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
4078
4079         * config/i386/sse.md (mulv16qi3): Attach REG_EQUAL note.
4080         (*sse2_mulv4si3): Ditto.
4081         (mulv2di3): Ditto.
4082         * config/i386/i386.c (legitimize_tls_address): Change REG_EQIV
4083         notes to REG_EQUAL.
4084
4085 2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
4086
4087         PR target/50202
4088         * config/i386/sse.md (sse4_2_pcmpestr): Emit NOTE_INSN_DELETED note
4089         when all outputs are unused.
4090         (sse4_2_pcmpistr): Ditto.
4091
4092 2011-08-26  Uros Bizjak  <ubizjak@gmail.com>
4093
4094         * config/i386/i386.md (round<mode>2): New expander.
4095         * config/i386/i386.c (enum ix86_builtins): Add
4096         IX86_BUILTIN_ROUND{PS,PD}_AZ{,256}.
4097         (struct builtin_description): Add __builtin_ia32_round{ps,pd}_az{,256}
4098         descriptions.
4099         (ix86_builtin_vectorized_function): Handle BUILT_IN_ROUND{,F} builtins.
4100         (ix86_build_const_vector): Rewrite using loop with RTVEC_ELT accessor.
4101
4102 2011-08-26  Uros Bizjak  <ubizjak@gmail.com>
4103
4104         PR middle-end/50083
4105         * convert.c (convert_to_integer) <BUIT_IN_ROUND{,F,L}>: Convert
4106         only when TARGET_C99_FUNCTIONS.
4107         <BUILT_IN_NEARBYINT{,F,L}>: Ditto.
4108         <BUILT_IN_RINT{,F,L}>: Ditto.
4109
4110 2011-08-26  Michael Matz  <matz@suse.de>
4111             Jakub Jelinek  <jakub@redhat.com>
4112
4113         PR lto/50165
4114         * lto-streamer-in.c (canon_file_name): Initialize new_slot->len;
4115         don't call strlen twice, use memcpy.
4116
4117 2011-08-26  H.J. Lu  <hongjiu.lu@intel.com>
4118
4119         * config/i386/bmi2intrin.h: Allow in <immintrin.h>.
4120         * config/i386/bmiintrin.h: Likewise.
4121         * config/i386/lzcntintrin.h: Likewise.
4122
4123         * config/i386/immintrin.h: Include <lzcntintrin.h>,
4124         <bmiintrin.h> and <bmi2intrin.h>.
4125
4126 2011-08-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4127
4128         PR target/50166
4129         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Check count in main.
4130         * configure: Regenerate.
4131
4132 2011-08-26  Jakub Jelinek  <jakub@redhat.com>
4133
4134         PR c/50179
4135         * c-typeck.c (c_process_expr_stmt): Skip over nops and
4136         call mark_exp_read even if exprv is ADDR_EXPR.
4137
4138 2011-08-26  Richard Sandiford  <richard.sandiford@linaro.org>
4139
4140         * df-problems.c (df_note_bb_compute): Pass uses rather than defs
4141         to df_set_dead_notes_for_mw.
4142
4143 2011-08-26  Richard Guenther  <rguenther@suse.de>
4144
4145         * varasm.c (decode_addr_const): Handle MEM_REF[&X, OFF].
4146
4147 2011-08-26  Zdenek Dvorak  <ook@ucw.cz>
4148             Tom de Vries  <tom@codesourcery.com>
4149
4150         * tree-ssa-loop-ivopts.c (struct cost_pair): Add comp field.
4151         (struct ivopts_data): Add loop_single_exit_p field.
4152         (niter_for_exit): Change parameter desc_p into return value.  Return
4153         desc if desc->may_be_zero.  Free desc if unused.
4154         (niter_for_single_dom_exit): Change return type.
4155         (find_induction_variables): Handle changed return type of
4156         niter_for_single_dom_exit.  Dump may_be_zero.
4157         (add_candidate_1): Keep original base and step type for IP_ORIGINAL.
4158         (set_use_iv_cost): Add and handle comp parameter.
4159         (determine_use_iv_cost_generic, determine_use_iv_cost_address): Add
4160         comp argument to set_use_iv_cost.
4161         (strip_wrap_conserving_type_conversions, expr_equal_p)
4162         (difference_cannot_overflow_p, iv_elimination_compare_lt): New function.
4163         (may_eliminate_iv): Add comp parameter.  Handle new return type of
4164         niter_for_exit.  Use loop_single_exit_p.  Use iv_elimination_compare_lt.
4165         (determine_use_iv_cost_condition): Add comp argument to set_use_iv_cost
4166         and may_eliminate_iv.
4167         (rewrite_use_compare): Move call to iv_elimination_compare to ...
4168         (may_eliminate_iv): Here.
4169         (tree_ssa_iv_optimize_loop): Initialize loop_single_exit_p.
4170
4171 2011-08-26  Tom de Vries  <tom@codesourcery.com>
4172
4173         * tree-pretty-print (dump_generic_node): Test for NULL_TREE before
4174         accessing TREE_TYPE.
4175
4176 2011-08-26  Jiangning Liu  <jiangning.liu@arm.com>
4177
4178         * config/arm/arm.md (*ior_scc_scc): Enable for Thumb2 as well.
4179         (*ior_scc_scc_cmp): Likewise
4180         (*and_scc_scc): Likewise.
4181         (*and_scc_scc_cmp): Likewise.
4182         (*and_scc_scc_nodom): Likewise.
4183         (*cmp_ite0, *cmp_ite1, *cmp_and, *cmp_ior): Handle Thumb2.
4184
4185 2011-08-26  Jakub Jelinek  <jakub@redhat.com>
4186
4187         * rtlanal.c (nonzero_bits1): Handle CLRSB.
4188
4189 2011-08-26  Richard Guenther  <rguenther@suse.de>
4190
4191         * expr.c (string_constant): Handle &MEM_REF.
4192
4193 2011-08-26  Andrew Stubbs  <ams@codesourcery.com>
4194
4195         * config/arm/arm.c (struct four_ints): New type.
4196         (count_insns_for_constant): Delete function.
4197         (find_best_start): Delete function.
4198         (optimal_immediate_sequence): New function.
4199         (optimal_immediate_sequence_1): New function.
4200         (arm_gen_constant): Move constant splitting code to
4201         optimal_immediate_sequence.
4202         Rewrite constant negation/invertion code.
4203
4204 2011-08-26  Andrew Stubbs  <ams@codesourcery.com>
4205
4206         * config/arm/arm-protos.h (const_ok_for_op): Add prototype.
4207         * config/arm/arm.c (const_ok_for_op): Add support for addw/subw.
4208         Remove prototype. Remove static function type.
4209         * config/arm/arm.md (*arm_addsi3): Add addw/subw support.
4210         Add arch attribute.
4211         * config/arm/constraints.md (Pj, PJ): New constraints.
4212
4213 2011-08-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4214
4215         * config/arm/cortex-a9.md ("cortex_a9_mult_long"): New.
4216         ("cortex_a9_multiply_long"): New and use above.  Handle all
4217         long multiply cases.
4218         ("cortex_a9_multiply"): Handle smmul and smmulr.
4219         ("cortex_a9_mac"): Handle smmla.
4220
4221 2011-08-25  Richard Henderson  <rth@redhat.com>
4222
4223         PR 50132
4224         PR 49864
4225         * cfgcleanup.c (old_insns_match_p): Don't allow cross-jump for
4226         non-constant stack adjutment.
4227         * expr.c (find_args_size_adjust): Break out from ...
4228         (fixup_args_size_notes): ... here.
4229         * rtl.h (find_args_size_adjust): Declare.
4230
4231 2011-08-25  Uros Bizjak  <ubizjak@gmail.com>
4232
4233         * config/i386/i386.md (isa): Add sse2, sse2_noavx, sse3,
4234         sse4 and sse4_noavx.
4235         (enabled): Handle sse2, sse2_noavx, sse3, sse4 and sse4_noavx.
4236         (*pushdf_rex64): Change Y2 register constraint to x.
4237         (*movdf_internal_rex64): Ditto.
4238         (*zero_extendsidi2_rex64): Ditto.
4239         (*movdi_internal): Change Y2 register constraint to x
4240         and update "isa" attribute.
4241         (*pushdf): Ditto.
4242         (*movdf internal): Ditto.
4243         (zero_extendsidi2_1): Ditto.
4244         (*truncdfdf_mixed): Ditto.
4245         (*truncxfdf2_mixed): Ditto.
4246         * config/i386/mmx.md (*mov<mode>_internal_rex64): Change Y2
4247         register constraint to x.
4248         (*movv2sf_internal_rex64): Ditto.
4249         (*mov<mode>_internal): Change Y2 register constraint to x
4250         and add "isa" attribute.
4251         (*movv2sf_internal): Ditto.
4252         (*vec_extractv2si_1): Ditto.
4253         * config/i386/sse.md ("vec_set<mode>_0): Change Y2 and Y4 register
4254         constraints to x and update "isa" attribute.
4255         (*vec_interleave_highv2df): Change Y3 registerconstraint
4256         to x and update "isa" attribute.
4257         (*vec_interleave_lowv2df): Ditto.
4258         (*vec_concatv2df): Change Y2 register constraint to x and
4259         update "isa" attribute.
4260         (sse2_loadld): Ditto.
4261         (*vec_extractv2di_1): Ditto.
4262         (*vec_dupv4si): Ditto.
4263         (*vec_dupv2di): Ditto.
4264         (*vec_concatv4si): Ditto.
4265         (vec_concatv2di): Ditto.
4266         * config/i386/constraints.md (Y2): Remove.
4267         (Y3): Ditto.
4268         (Y4): Ditto.
4269
4270 2011-08-25  Bernd Schmidt  <bernds@codesourcery.com>
4271
4272         * regrename.c (scan_rtx_reg, scan_rtx_address, build_def_use,
4273         dump_def_use_chain): Don't declare.
4274         (mark_conflict, create_new_chain): Move before users.
4275         (regrename_optimize): Move to near end of file.
4276
4277 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
4278
4279         * config/avr-protos.h (byte_immediate_operand): Remove Prototype.
4280         (secondary_input_reload_class): Remove Prototype.
4281         * config/avr/avr.c (byte_immediate_operand): Remove Function.
4282         * config/avr/avr.md (setmemhi): Use u8_operand.
4283         (strlenhi): Use const0_rtx for comparison.
4284         * config/avr/avr.h (avr_reg_order): Remove Declaration.
4285
4286 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
4287
4288         * config/avr/avr.c (reg_class_tab): Make local to
4289         avr_regno_reg_class.  Return smallest register class available.
4290
4291 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
4292
4293         * config/avr/avr.c (STR_PREFIX_P): New Define.
4294         (avr_asm_declare_function_name): Use it.
4295         (avr_asm_named_section): Use it.
4296         (avr_section_type_flags): Use it.
4297
4298 2011-08-25  Bernd Schmidt  <bernds@codesourcery.com>
4299
4300         * doc/md.texi (automata_option): Document collapse-ndfa.
4301         * genautomata.c (COLLAPSE_OPTION): New macro.
4302         (collapse_flag): New static variable.
4303         (struct description): New member normal_decls_num.
4304         (struct automaton): New members advance_ainsn and collapse_ainsn.
4305         (gen_automata_option): Check for COLLAPSE_OPTION.
4306         (collapse_ndfa_insn_decl): New static variable.
4307         (add_collapse_ndfa_insn_decl, special_decl_p): New functions.
4308         (find_arc): If insn is the collapse-ndfa insn, accept any arc we find.
4309         (transform_insn_regexps): Call add_collapse_ndfa_insn_decl if
4310         necessary.  Use normal_decls_num rather than decls_num, remove
4311         test for special decls.
4312         (create_alt_states, form_ainsn_with_same_reservs): Use special_decl_p.
4313         (make_automaton); Likewise.  Use the new advance_cycle_insn member
4314         of struct automaton.
4315         (create_composed_state): Disallow advance-cycle arcs if collapse_flag
4316         is set.
4317         (NDFA_to_DFA): Don't create composed states for the collapse-ndfa
4318         transition.  Create the necessary transitions for it.
4319         (create_ainsns): Return void.  Take an automaton_t argument, and
4320         update its ainsn_list, advance_ainsn and collapse_ainsn members.  All
4321         callers changed.
4322         (COLLAPSE_NDFA_VALUE_NAME): New macro.
4323         (output_tables): Output code to define it.
4324         (output_internal_insn_code_evaluation): Output code to accept
4325         const0_rtx as collapse-ndfa transition.
4326         (output_default_latencies, output_print_reservation_func,
4327         output_print_description): Reorganize loops to use normal_decls_num
4328         as loop bound; remove special case for advance_cycle_insn_decl.
4329         (initiate_automaton_gen): Handle COLLAPSE_OPTION.
4330         (check_automata_insn_issues): Check for collapse_ainsn.
4331         (expand_automate): Allocate sufficient space.  Initialize
4332         normal_decls_num.
4333
4334 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
4335
4336         * config/avr/avr.md: Fix indentation from r177991.
4337
4338 2011-08-25  Bernd Schmidt  <bernds@codesourcery.com>
4339
4340         * regrename.c (struct du_head): Remove member terminated.
4341         (create_new_chain): Don't initialize it.
4342         (scan_rtx_reg): Don't set or test it, test the open_chains_set
4343         bitmap instead.
4344         (tick, this_tick): New global variables, moved out of
4345         regrename_optimize.
4346         (current_id, open_chains, closed_chains, open_chains_set,
4347         live_in_chains, live_hard_regs): Reorder declarations.
4348         (dump_def_use_chain): Move function earlier in the file.
4349         (rename_chains): New static function, broken out of
4350         regrename_optimize.
4351         (regrename_optimize): Use it.  Remove #if 0'ed code.
4352
4353 2011-08-25  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
4354
4355         * varasm.c: (default_binds_local_p_1): Commentary typo fix.
4356
4357 2011-08-24  H.J. Lu  <hongjiu.lu@intel.com>
4358
4359         PR target/50172
4360         * config/i386/i386.c (ix86_expand_builtin): Convert to Pmode if needed.
4361
4362 2011-08-24  Richard Guenther  <rguenther@suse.de>
4363
4364         * tree-data-ref.c (dr_analyze_indices): Avoid unsharing the
4365         ref in the basic-block case.  Move stripping array-refs
4366         to the place we create an access-function for it.  Remove
4367         bogus stripping down a MEM_REF to its base.
4368
4369 2011-08-24  Richard Guenther  <rguenther@suse.de>
4370
4371         * fold-const.c (fold_comparison): Fold &a < &a + 4 even
4372         with -fno-strict-overflow.
4373
4374 2011-08-24  Richard Guenther  <rguenther@suse.de>
4375
4376         * tree-vectorizer.c (vect_print_dump_info): Avoid the
4377         file and location clutter when dumping to dump files.
4378
4379 2011-08-24  Simon Baldwin  <simonb@google.com>
4380
4381         * gengtype-state.c (write_state): Remove timestamped header line.
4382
4383 2011-08-24  Joseph Myers  <joseph@codesourcery.com>
4384
4385         * Makefile.in (CFLAGS-collect2.o, CFLAGS-c-family/c-opts.o)
4386         (CFLAGS-c-family/c-pch.o, CFLAGS-prefix.o, CFLAGS-version.o)
4387         (CFLAGS-lto-compress.o, CFLAGS-toplev.o, CFLAGS-intl.o)
4388         (CFLAGS-cppbuiltin.o, CFLAGS-cppdefault.o): New.
4389         (collect2.o, c-family/c-cppbuiltin.o, c-family/c-opts.o)
4390         (c-family/c-pch.o, prefix.o, version.o, lto-compress.o, toplev.o)
4391         (intl.o, cppbuiltin.o, cppdefault.o): Remove explicit compilation
4392         rules.
4393         (lto-wrapper$(exeext)): Use $(LINKER) not $(COMPILER).
4394
4395 2011-08-24  Joseph Myers  <joseph@codesourcery.com>
4396
4397         * Makefile.in (ALL_CXXFLAGS): Include $(CFLAGS-$@).
4398
4399 2011-08-24  Richard Guenther  <rguenther@suse.de>
4400
4401         PR tree-optimization/50067
4402         * tree-data-ref.c (dr_analyze_indices): Do not add an access
4403         function for a MEM_REF base that has no evolution in the loop
4404         nest or that is not analyzable.
4405
4406 2011-08-23  Vladimir Makarov  <vmakarov@redhat.com>
4407
4408         * ira.c (ira_init_register_move_cost): Check small subclasses
4409         through ira_reg_class_max_nregs and ira_available_class_regs.
4410
4411 2011-08-23  Uros Bizjak  <ubizjak@gmail.com>
4412
4413         * config/i386/constraints.md (Yp): New register constraint.
4414         * config/i386/i386.md (*addhi_1): Merge with *addhi_1_lea using
4415         Yp register constraint.
4416         (*addqi_1): Merge with *addqi_1_lea using Yp register constraint.
4417         (*ashlhi3_1): Merge with *ashlhi3_1_lea using Yp register constraint.
4418         (*ashlqi3_1): Merge with *ashlqi3_1_lea using Yp register constraint.
4419
4420 2011-08-23  Kirill Yukhin  <kirill.yukhin@intel.com>
4421
4422         * config/i386/sse.md (<s>mul<mode>3_highpart): Update.
4423
4424 2011-08-23  Mark Heffernan  <meheff@google.com>
4425
4426         PR middle-end/38509
4427         * common.opt (Wfree-nonheap-object): New option.
4428         * doc/invoke.texi (Warning options): Document -Wfree-nonheap-object.
4429         * builtins.c (maybe_emit_free_warning): Add OPT_Wfree_nonheap_object
4430         to warning.
4431         (expand_builtin): Make warning conditional.
4432
4433 2011-08-23  Uros Bizjak  <ubizjak@gmail.com>
4434
4435         * config/i386/i386.md (type): Add imulx, ishiftx and rotatex.
4436         (length_immediate): Handle imulx, ishiftx and rotatex.
4437         (imm_disp): Ditto.
4438         (isa): Add bmi2.
4439         (enabled): Handle bmi2.
4440         (*mul<mode><dwi>3): Split from *<u>mul<mode><dwi>3.
4441         (*umul<mode><dwi>3): Ditto.  Add imulx BMI2 alternative.
4442         (*bmi2_umulditi3_1): New insn pattern.
4443         (*bmi2_umulsidi3_1): Ditto.
4444         (*umul<mode><dwi>3 splitter): New splitter to avoid flags dependency.
4445         (*bmi2_ashl<mode>3_1): New insn pattern.
4446         (*ashl<mode>3_1): Add ishiftx BMI2 alternative.
4447         (*ashl<mode>3_1 splitter): New splitter to avoid flags dependency.
4448         (*bmi2_ashlsi3_1_zext): New insn pattern.
4449         (*ashlsi3_1_zext): Add ishiftx BMI2 alternative.
4450         (*ashlsi3_1_zext splitter): New splitter to avoid flags dependency.
4451         (*bmi2_<shiftrt_insn><mode>3_1): New insn pattern.
4452         (*<shiftrt_insn><mode>3_1): Add ishiftx BMI2 alternative.
4453         (*<shiftrt_insn><mode>3_1 splitter): New splitter to avoid
4454         flags dependency.
4455         (*bmi2_<shiftrt_insn>si3_1_zext): New insn pattern.
4456         (*<shiftrt_insn>si3_1_zext): Add ishiftx BMI2 alternative.
4457         (*<shiftrt_insn>si3_1_zext splitter): New splitter to avoid
4458         flags dependency.
4459         (*bmi2_rorx<mode>3_1): New insn pattern.
4460         (*<rotate_insn><mode>3_1): Add rotatex BMI2 alternative.
4461         (*rotate<mode>3_1 splitter): New splitter to avoid flags dependency.
4462         (*rotatert<mode>3_1 splitter): Ditto.
4463         (*bmi2_rorxsi3_1_zext): New insn pattern.
4464         (*<rotate_insn>si3_1_zext): Add rotatex BMI2 alternative.
4465         (*rotatesi3_1_zext splitter): New splitter to avoid flags dependency.
4466         (*rotatertsi3_1_zext splitter): Ditto.
4467
4468 2011-08-23  Kirill Yukhin  <kirill.yukhin@intel.com>
4469
4470         * common/config/i386/i386-common.c (OPTION_MASK_ISA_BMI2_SET): New.
4471         (OPTION_MASK_ISA_BMI2_UNSET): Likewise.
4472         (ix86_handle_option): Handle OPT_mbmi2 case.
4473         * config.gcc (i[34567]86-*-*): Add bmi2intrin.h.
4474         (x86_64-*-*): Likewise.
4475         * config/i386/bmi2intrin.h: New file.
4476         * config/i386/cpuid.h (bit_BMI2): New.
4477         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
4478         BMI2 feature.
4479         * config/i386/i386-c.c (ix86_target_macros_internal):
4480         Conditionally define __BMI2__.
4481         * config/i386/i386.c (ix86_option_override_internal): Define PTA_BMI2.
4482         Handle BMI2 option.
4483         (ix86_valid_target_attribute_inner_p): Handle BMI2 option.
4484         (print_reg): New code.
4485         (ix86_print_operand): Likewise.
4486         (ix86_builtins): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64,
4487         IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32,
4488         IX86_BUILTIN_PEXT64.
4489         (bdesc_args): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64,
4490         IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32,
4491         IX86_BUILTIN_PEXT64.
4492         * config/i386/i386.h (TARGET_BMI2): New.
4493         * config/i386/i386.md (UNSPEC_PDEP): New.
4494         (UNSPEC_PEXT): Likewise.
4495         (*bmi2_bzhi_<mode>3): Likewise.
4496         (*bmi2_pdep_<mode>3): Likewise.
4497         (*bmi2_pext_<mode>3): Likewise.
4498         * config/i386/i386.opt (mbmi2): New.
4499         * config/i386/x86intrin.h: Include bmi2intrin.h when __BMI2__
4500         is defined.
4501         * doc/extend.texi: Document BMI2 built-in functions.
4502         * doc/invoke.texi: Document -mbmi2.
4503
4504 2011-08-23  Jakub Jelinek  <jakub@redhat.com>
4505
4506         PR middle-end/50161
4507         * simplify-rtx.c (simplify_const_unary_operation): If
4508         op is CONST_INT, don't look at op_mode, but use instead mode.
4509         * optabs.c (add_equal_note): For FFS, CLZ, CTZ,
4510         CLRSB, POPCOUNT, PARITY and BSWAP use operand mode for
4511         operation and TRUNCATE/ZERO_EXTEND if needed.
4512         * doc/rtl.texi (ffs, clrsb, clz, ctz, popcount, parity, bswap):
4513         Document that operand mode must be same as operation mode,
4514         or VOIDmode.
4515         * config/avr/avr.md (paritysi2, *parityqihi2.libgcc,
4516         *paritysihi2.libgcc, popcountsi2, *popcountsi2.libgcc,
4517         *popcountqihi2.libgcc, clzsi2, *clzsihi2.libgcc, ctzsi2,
4518         *ctzsihi2.libgcc, ffssi2, *ffssihi2.libgcc): For unary ops
4519         use the mode of operand for the operation and add truncate
4520         or zero_extend around if needed.
4521         * config/c6x/c6x.md (ctzdi2): Likewise.
4522         * config/bfin/bfin.md (clrsbsi2, signbitssi2): Likewise.
4523
4524 2011-08-12  Michael Matz  <matz@suse.de>
4525
4526         * cfgexpand.c (expand_one_register_var): Use get_pointer_alignment.
4527         (gimple_expand_cfg): Merge alignment info for coalesced pointer
4528         SSA names.
4529
4530 2011-08-23  Richard Guenther  <rguenther@suse.de>
4531
4532         * Makefile.in (tree-data-ref.o): Add tree-affine.h dependency.
4533         * tree-affine.h (aff_comb_cannot_overlap_p): Declare.
4534         * tree-affine.c (aff_comb_cannot_overlap_p): New function, moved
4535         from ...
4536         * tree-ssa-loop-im.c (cannot_overlap_p): ... here.
4537         (mem_refs_may_alias_p): Adjust.
4538         * tree-data-ref.h (dr_may_alias_p): Adjust.
4539         * tree-data-ref.c: Include tree-affine.h.
4540         (dr_analyze_indices): Do nothing for the non-loop case.
4541         (dr_may_alias_p): Distinguish loop and non-loop case.  Disambiguate
4542         more cases in the non-loop case.
4543         * graphite-sese-to-poly.c (write_alias_graph_to_ascii_dimacs): Adjust
4544         calls to dr_may_alias_p.
4545         (write_alias_graph_to_ascii_ecc): Likewise.
4546         (write_alias_graph_to_ascii_dot): Likewise.
4547         (build_alias_set_optimal_p): Likewise.
4548
4549 2011-08-23  Richard Guenther  <rguenther@suse.de>
4550
4551         PR tree-optimization/50162
4552         * tree-vect-stmts.c (vectorizable_call): Fix argument lookup.
4553
4554 2011-08-23  Richard Guenther  <rguenther@suse.de>
4555
4556         * tree-data-ref.c (dr_analyze_indices): Add comments, handle
4557         REALPART_EXPR and IMAGPART_EXPR similar to ARRAY_REFs.
4558         (create_data_ref): Also dump access functions for the created data-ref.
4559
4560 2011-08-22  Uros Bizjak  <ubizjak@gmail.com>
4561             Kirill Yukhin  <kirill.yukhin@intel.com>
4562
4563         PR target/50155
4564         * config/i386/sse.md (VI_AVX2): New.
4565         (<plusminus_insn><mode>3): Use VI_AVX2 mode iterator.
4566         (*<plusminus_insn><mode>3): Ditto.
4567         (<sse2_avx2>_andnot<mode>3): Ditto.
4568         (*andnot<mode>3): Fix order of cond operands.
4569         Add asserts for correct TARGET_xxx.
4570         (*<any_logic:code><mode>3): Ditto.
4571
4572 2011-08-22  Anatoly Sokolov  <aesok@post.ru>
4573
4574         * config/m32c/m32c.h (CLASS_MAX_NREGS): Remove macro.
4575         * config/m32c/m32c-protos.h (m32c_class_max_nregs): Remove.
4576         * config/m32c/m32c.c (m32c_class_max_nregs): Make static. Change
4577         regclass argument type to reg_class_t. Change 'max' and 'v' vars
4578         and return types to unsigned char. Use reg_class_contents instead
4579         of class_contents.
4580         (TARGET_CLASS_MAX_NREGS): Define.
4581
4582 2011-08-22  Bernd Schmidt  <bernds@codesourcery.com>
4583
4584         * config/c6x/c6x.md (indirect_jump_shadow): Tweak representation
4585         to make computed_jump_p return true.
4586
4587 2011-08-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4588
4589         * configure.ac (GCC_PICFLAG_FOR_TARGET): Call it.
4590         (PICFLAG_FOR_TARGET): Substitute.
4591         * aclocal.m4: Regenerate.
4592         * configure: Regenerate.
4593
4594 2011-08-22  Dodji Seketeli  <dodji@redhat.com>
4595
4596         * c-family/c-pch.c (c_common_read_pch): Re-set line table right
4597         after reading in the pch.
4598
4599 2011-08-22  H.J. Lu  <hongjiu.lu@intel.com>
4600
4601         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Error if __ELF__ isn't defined.
4602         * configure: Regenerated.
4603
4604 2011-08-22  Jakub Jelinek  <jakub@redhat.com>
4605
4606         PR tree-optimization/50133
4607         * tree-vect-stmts.c (vect_finish_stmt_generation): Copy location
4608         from stmt instead of some statement around gsi.
4609
4610         PR middle-end/50141
4611         * expr.c (get_bit_range): Only use DECL_THREAD_LOCAL_P if
4612         innerdecl is a VAR_DECL.
4613
4614 2011-08-22  Kirill Yukhin  <kirill.yukhin@intel.com>
4615
4616         * config/i386/avx2intrin.h: New file.
4617         * config/i386/i386-builtin-types.def (PCINT, PCINT64, PV4SI,
4618         PV8SI, V32QI_FTYPE_V32QI, V32QI_FTYPE_V16QI, V16HI_FTYPE_V16HI,
4619         V16HI_FTYPE_V8HI, V8SI_FTYPE_V8SI, V16HI_FTYPE_V16QI,
4620         V8SI_FTYPE_V16QI, V4DI_FTYPE_V16QI, V8SI_FTYPE_V8HI,
4621         V4DI_FTYPE_V8HI, V4DI_FTYPE_V4SI, V4DI_FTYPE_PV4DI,
4622         V4DI_FTYPE_V2DI, V2DI_FTYPE_PCV2DI_V2DI, V4SI_FTYPE_PCV4SI_V4SI,
4623         V32QI_FTYPE_V16HI_V16HI, V16HI_FTYPE_V8SI_V8SI,
4624         V32QI_FTYPE_V32QI_V32QI, V16HI_FTYPE_V32QI_V32QI,
4625         V16HI_FTYPE_V16HI_V8HI, V16HI_FTYPE_V16HI_V16HI,
4626         V16HI_FTYPE_V16HI_INT, V16HI_FTYPE_V16HI_SI,
4627         V16HI_FTYPE_V16HI_V16HI_INT, V32QI_FTYPE_V32QI_V32QI_INT,
4628         V8SI_FTYPE_V8SI_V4SI, V8SI_FTYPE_V8SI_V8SI,
4629         V8SI_FTYPE_V16HI_V16HI, V8SI_FTYPE_V8SI_INT, V8SI_FTYPE_V8SI_SI,
4630         V8SI_FTYPE_PCV8SI_V8SI, V4DI_FTYPE_V4DI_V4DI,
4631         V4DI_FTYPE_V8SI_V8SI, V4DI_FTYPE_V4DI_V2DI,
4632         V4DI_FTYPE_PCV4DI_V4DI, V4DI_FTYPE_V4DI_INT,
4633         V2DI_FTYPE_V4DI_INT, V4DI_FTYPE_V4DI_V4DI_INT,
4634         V4DI_FTYPE_V4DI_V2DI_INT, VOID_FTYPE_PV2DI_V2DI_V2DI,
4635         VOID_FTYPE_PV4DI_V4DI_V4DI, VOID_FTYPE_PV4SI_V4SI_V4SI,
4636         VOID_FTYPE_PV8SI_V8SI_V8SI,
4637         V2DF_FTYPE_V2DF_PCDOUBLE_V4SI_V2DF_INT,
4638         V4DF_FTYPE_V4DF_PCDOUBLE_V4SI_V4DF_INT,
4639         V2DF_FTYPE_V2DF_PCDOUBLE_V2DI_V2DF_INT,
4640         V4DF_FTYPE_V4DF_PCDOUBLE_V4DI_V4DF_INT,
4641         V4SF_FTYPE_V4SF_PCFLOAT_V4SI_V4SF_INT,
4642         V8SF_FTYPE_V8SF_PCFLOAT_V8SI_V8SF_INT,
4643         V4SF_FTYPE_V4SF_PCFLOAT_V2DI_V4SF_INT,
4644         V4SF_FTYPE_V4SF_PCFLOAT_V4DI_V4SF_INT,
4645         V2DI_FTYPE_V2DI_PCINT64_V4SI_V2DI_INT,
4646         V4DI_FTYPE_V4DI_PCINT64_V4SI_V4DI_INT,
4647         V2DI_FTYPE_V2DI_PCINT64_V2DI_V2DI_INT,
4648         V4DI_FTYPE_V4DI_PCINT64_V4DI_V4DI_INT,
4649         V4SI_FTYPE_V4SI_PCINT_V4SI_V4SI_INT,
4650         V8SI_FTYPE_V8SI_PCINT_V8SI_V8SI_INT,
4651         V4SI_FTYPE_V4SI_PCINT_V2DI_V4SI_INT,
4652         V4SI_FTYPE_V4SI_PCINT_V4DI_V4SI_INT,
4653         V16HI_FTYPE_V16HI_SI_COUNT, V16HI_FTYPE_V16HI_V8HI_COUNT,
4654         V8SI_FTYPE_V8SI_SI_COUNT, V8SI_FTYPE_V8SI_V4SI_COUNT,
4655         V4DI_FTYPE_V4DI_INT_COUNT, V4DI_FTYPE_V4DI_V2DI_COUNT,
4656         V4DI_FTYPE_V4DI_INT_CONVERT,
4657         V4DI_FTYPE_V4DI_V4DI_INT_CONVERT): New.
4658         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MPSADBW256,
4659         IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256,
4660         IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256,
4661         IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256,
4662         IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256,
4663         IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256,
4664         IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256,
4665         IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256,
4666         IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256,
4667         IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I,
4668         IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256,
4669         IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256,
4670         IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
4671         IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
4672         IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
4673         IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256,
4674         IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256,
4675         IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256,
4676         IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256,
4677         IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256,
4678         IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256,
4679         IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256,
4680         IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256,
4681         IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256,
4682         IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256,
4683         IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256,
4684         IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256,
4685         IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256,
4686         IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256,
4687         IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256,
4688         IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256,
4689         IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256,
4690         IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256,
4691         IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256,
4692         IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256,
4693         IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256,
4694         IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256,
4695         IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256,
4696         IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256,
4697         IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256,
4698         IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256,
4699         IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256,
4700         IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256,
4701         IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256,
4702         IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256,
4703         IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256,
4704         IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256,
4705         IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256,
4706         IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256,
4707         IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256,
4708         IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256,
4709         IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256,
4710         IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256,
4711         IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256,
4712         IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256,
4713         IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256,
4714         IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256,
4715         IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256,
4716         IX86_BUILTIN_MOVNTDQA256, IX86_BUILTIN_VBROADCASTSS_PS,
4717         IX86_BUILTIN_VBROADCASTSS_PS256,
4718         IX86_BUILTIN_VBROADCASTSD_PD256,
4719         IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256,
4720         IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256,
4721         IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256,
4722         IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128,
4723         IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128,
4724         IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256,
4725         IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256,
4726         IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256,
4727         IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256,
4728         IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ,
4729         IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256,
4730         IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ,
4731         IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256,
4732         IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI,
4733         IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI,
4734         IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI,
4735         IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI,
4736         IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI,
4737         IX86_BUILTIN_GATHERSIV2DF, IX86_BUILTIN_GATHERSIV4DF,
4738         IX86_BUILTIN_GATHERDIV2DF, IX86_BUILTIN_GATHERDIV4DF,
4739         IX86_BUILTIN_GATHERSIV4SF, IX86_BUILTIN_GATHERSIV8SF,
4740         IX86_BUILTIN_GATHERDIV4SF, IX86_BUILTIN_GATHERDIV8SF,
4741         IX86_BUILTIN_GATHERSIV2DI, IX86_BUILTIN_GATHERSIV4DI,
4742         IX86_BUILTIN_GATHERDIV2DI, IX86_BUILTIN_GATHERDIV4DI,
4743         IX86_BUILTIN_GATHERSIV4SI, IX86_BUILTIN_GATHERSIV8SI,
4744         IX86_BUILTIN_GATHERDIV4SI, IX86_BUILTIN_GATHERDIV8SI.
4745         (bdesc_special_args): Add IX86_BUILTIN_MOVNTDQA256,
4746         IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ,
4747         IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256,
4748         IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ,
4749         IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256.
4750         (bdesc_args): Add  IX86_BUILTIN_MPSADBW256,
4751         IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256,
4752         IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256,
4753         IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256,
4754         IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256,
4755         IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256,
4756         IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256,
4757         IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256,
4758         IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256,
4759         IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I,
4760         IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256,
4761         IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256,
4762         IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
4763         IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
4764         IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
4765         IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256,
4766         IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256,
4767         IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256,
4768         IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256,
4769         IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256,
4770         IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256,
4771         IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256,
4772         IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256,
4773         IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256,
4774         IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256,
4775         IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256,
4776         IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256,
4777         IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256,
4778         IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256,
4779         IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256,
4780         IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256,
4781         IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256,
4782         IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256,
4783         IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256,
4784         IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256,
4785         IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256,
4786         IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256,
4787         IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256,
4788         IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256,
4789         IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256,
4790         IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256,
4791         IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256,
4792         IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256,
4793         IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256,
4794         IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256,
4795         IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256,
4796         IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256,
4797         IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256,
4798         IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256,
4799         IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256,
4800         IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256,
4801         IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256,
4802         IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256,
4803         IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256,
4804         IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256,
4805         IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256,
4806         IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256,
4807         IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256,
4808         IX86_BUILTIN_VBROADCASTSS_PS, IX86_BUILTIN_VBROADCASTSS_PS256,
4809         IX86_BUILTIN_VBROADCASTSD_PD256,
4810         IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256,
4811         IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256,
4812         IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256,
4813         IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128,
4814         IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128,
4815         IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256,
4816         IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256,
4817         IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256,
4818         IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256,
4819         IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI,
4820         IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI,
4821         IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI,
4822         IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI,
4823         IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI.
4824         (ix86_init_mmx_sse_builtins): Add IX86_BUILTIN_GATHERSIV2DF,
4825         IX86_BUILTIN_GATHERSIV4DF, IX86_BUILTIN_GATHERDIV2DF,
4826         IX86_BUILTIN_GATHERDIV4DF, IX86_BUILTIN_GATHERSIV4SF,
4827         IX86_BUILTIN_GATHERSIV8SF, IX86_BUILTIN_GATHERDIV4SF,
4828         IX86_BUILTIN_GATHERDIV8SF, IX86_BUILTIN_GATHERSIV2DI,
4829         IX86_BUILTIN_GATHERSIV4DI, IX86_BUILTIN_GATHERDIV2DI,
4830         IX86_BUILTIN_GATHERDIV4DI, IX86_BUILTIN_GATHERSIV4SI,
4831         IX86_BUILTIN_GATHERSIV8SI, IX86_BUILTIN_GATHERDIV4SI,
4832         IX86_BUILTIN_GATHERDIV8SI.
4833         (ix86_preferred_simd_mode): Support AVX2 modes.
4834         (ix86_expand_args_builtin): Support AVX2 builtins.
4835         (ix86_expand_special_args_builtin): Likewise.
4836         (ix86_expand_builtin): Likewise.
4837         * config/i386/i386.md (UNSPEC_VPERMSI): New.
4838         (UNSPEC_VPERMDF): Likewise.
4839         (UNSPEC_VPERMSF): Likewise.
4840         (UNSPEC_VPERMDI): Likewise.
4841         (UNSPEC_VPERMTI): Likewise.
4842         (UNSPEC_GATHER): Likewise.
4843         (ssemodesuffix): Extend.
4844         * config/i386/immintrin.h: Include avx2intrin.h when __AVX2__
4845         is defined.
4846         * config/i386/predicates.md (const1248_operand): New.
4847         * config/i386/sse.md (VI1_AVX2): New mode iterator.
4848         (VI2_AVX2): Likewise.
4849         (VI4_AVX2): Likewise.
4850         (VI8_AVX2): Likewise.
4851         (VIMAX_AVX2): Likewise.
4852         (SSESCALARMODE): Likewise.
4853         (VI12_AVX2): Likewise.
4854         (VI24_AVX2): Likewise.
4855         (VI124_AVX2): Likewise.
4856         (VI248_AVX2): Likewise.
4857         (VI48_AVX2): Likewise.
4858         (VI4SD_AVX2): Likewise.
4859         (V48_AVX2): Likewise.
4860         (AVX256MODE2P): Likewise.
4861         (AVXMODE48P_DI): Likewise.
4862         (sse2_avx2): New mode attribute.
4863         (ssse3_avx2): Likewise.
4864         (sse4_1_avx2): Likewise.
4865         (avx_avx2): Likewise.
4866         (ssebytemode): Likewise.
4867         (AVXTOSSEMODE): Likewise.
4868         (AVXMODE48P_DI): Likewise.
4869         (gthrfirstp): Likewise.
4870         (gthrlastp): Likewise.
4871         (lshift): New code_iterator
4872         (lshift): New code attribute.
4873         (lshift): Likewise.
4874         (ssescalarmodesuffix): Update.
4875         (sseunpackmode): Likewise.
4876         (ssepackmode): Likewise.
4877         (avx2_vec_dupv4sf): New insn pattern.
4878         (avx2_vec_dupv8sf): Likewise.
4879         (avx2_interleave_highv4di): Likewise.
4880         (avx2_interleave_lowv4di): Likewise.
4881         (avx2_umulv4siv4di3): Likewise
4882         (*avx2_umulv4siv4di3): Likewise
4883         (avx2_pmaddwd): Likewise.
4884         (*avx2_pmaddwd): Likewise.
4885         (avx2_lshrqv4di3): Likewise.
4886         (avx2_lshlqv4di3): Likewise.
4887         (avx2_lshl<mode>3): Likewise.
4888         (avx2_<umaxmin:code><mode>3): Likewise.
4889         (*avx2_<umaxmin:code><mode>3): Likewise.
4890         (avx2_<smaxmin:code><mode>3): Likewise.
4891         (*avx2_<smaxmin:code><mode>3): Likewise.
4892         (avx2_eq<mode>3): Likewise.
4893         (*avx2_eq<mode>3): Likewise.
4894         (avx2_gt<mode>3): Likewise.
4895         (avx2_interleave_highv32qi): New.
4896         (avx2_interleave_lowv32qi): Likewise.
4897         (avx2_interleave_highv16hi): Likewise.
4898         (avx2_interleave_lowv16hi): Likewise.
4899         (avx2_interleave_highv8si): Likewise.
4900         (avx2_interleave_lowv8si): Likewise.
4901         (avx2_pshufd): Likewise.
4902         (avx2_pshufd_1): Likewise.
4903         (avx2_pshuflwv3): Likewise.
4904         (avx2_pshuflw_1): Likewise.
4905         (avx2_pshufhwv3): Likewise.
4906         (avx2_pshufhw_1): Likewise.
4907         (avx2_uavgv32qi3): Likewise.
4908         (*avx2_uavgv32qi3): Likewise.
4909         (avx2_uavgv16hi3): Likewise.
4910         (*avx2_uavgv16hi3): Likewise.
4911         (avx2_pmovmskb): Likewise.
4912         (avx2_phaddwv16hi3): Likewise.
4913         (avx2_phadddv8si3): Likewise.
4914         (avx2_phaddswv16hi3): Likewise.
4915         (avx2_phsubwv16hi3): Likewise.
4916         (avx2_phsubdv8si3): Likewise.
4917         (avx2_phsubswv16hi3): Likewise.
4918         (avx2_pmaddubsw256): Likewise.
4919         (avx2_umulhrswv16hi3): Likewise.
4920         (*avx2_umulhrswv16hi3): Likewise.
4921         (avx2_packusdw): Likewise.
4922         (avx2_pblendd<mode>): Likewise.
4923         (avx2_<code>v16qiv16hi2): Likewise.
4924         (avx2_<code>v8qiv8si2): Likewise.
4925         (avx2_<code>v8hiv8si2): Likewise.
4926         (avx2_<code>v4qiv4di2): Likewise.
4927         (avx2_<code>v4hiv4di2): Likewise.
4928         (avx2_<code>v4siv4di2): Likewise.
4929         (avx2_pbroadcast<mode>): Likewise.
4930         (avx2_permvarv8si): Likewise.
4931         (avx2_permv4df): Likewise.
4932         (avx2_permvarv8sf): Likewise.
4933         (avx2_permv4di): Likewise.
4934         (avx2_permv2ti): Likewise.
4935         (avx2_vec_dupv4df): Likewise.
4936         (avx2_vbroadcasti128_<mode>): Likewise.
4937         (avx2_vec_set_lo_v4di): Likewise.
4938         (avx2_vec_set_hi_v4di): Likewise.
4939         (*avx2_maskmov<avx2modesuffix><avxmodesuffix>): Likewise.
4940         (avx2_extracti128): Likewise.
4941         (avx2_inserti128): Likewise.
4942         (avx2_ashrvv8si): Likewise.
4943         (avx2_ashrvv4si): Likewise.
4944         (avx2_<lshift>vv8si): Likewise.
4945         (avx2_<lshift>v<mode>): Likewise.
4946         (avx2_<lshift>vv2di): Likewise.
4947         (avx2_gathersi<mode>): Likewise.
4948         (*avx2_gathersi<mode>): Likewise.
4949         (avx2_gatherdi<mode>): Likewise.
4950         (*avx2_gatherdi<mode>): Likewise.
4951         (avx2_gatherdi<mode>256): Likewise.
4952         (*avx2_gatherdi<mode>256): Likewise.
4953         (<plusminus_insn><mode>3): Use VI mode iterator.
4954         (*<plusminus_insn><mode>3): Use VI mode iterator.
4955         (<sse2_avx2>_<plusminus_insn><mode>3): Rename from
4956         sse2_<plusminus_insn><mode>3.  Use VI12_AVX2 mode iterator.
4957         (*<sse2_avx2>_<plusminus_insn><mode>3): Rename from
4958         *sse2_<plusminus_insn><mode>3.  Use VI12_AVX2 mode iterator.
4959         (mul<mode>3): Rename from mulv8hi3.  Use VI2_AVX2 mode iterator.
4960         (*mul<mode>3): Rename from *mulv8hi3.  Use VI2_AVX2 mode iterator.
4961         (<s>mul<mode>3_highpart): Rename from <s>mulv8hi3_highpart.
4962         Use VI2_AVX2 mode iterator.
4963         (*<s>mul<mode>3_highpart): Rename from *<s>mulv8hi3_highpart.
4964         Use VI2_AVX2 mode iterator.
4965         (mul<mode>3): Rename from mulv4si3.  Use VI4_AVX2 mode iterator.
4966         (*mul<mode>3): Rename from *mulv4si3.  Use VI4_AVX2 mode iterator.
4967         (*<sse4_1_avx2>_mulv2siv2di3): Rename from *sse4_1_mulv4si3.
4968         Use VI4_AVX2 mode iterator.
4969         (ashr<mode>3): Use VI24_AVX2 mode iterator.
4970         (lshr<mode>3): Use VI248_AVX2 mode iterator.
4971         (<sse2_avx2>_ashl<mode>3): Rename from sse2_ashlv1ti3.
4972         Use VIMAX_AVX2 mode iterator.
4973         (<sse2_avx2>_andnot<mode>3): Rename from sse2_andnot<mode>3.
4974         Use VI mode iterator.
4975         (*andnot<mode>3): Update for AVX2.
4976         (*<any_logic:code><mode>3): Likewise.
4977         (<sse2_avx2>_packsswb): Rename from sse2_packsswb.
4978         Use VI1_AVX mode iterator.
4979         (<sse2_avx2>_packssdw):  Rename from sse2_packssdw.
4980         Use VI2_AVX mode iterator.
4981         (<sse2_avx2>_packuswb): Rename from sse2_packsswb.
4982         Use VI1_AVX mode iterator.
4983         (<sse2_avx2>_psadbw): Rename from sse2_psadbw.
4984         Use VI8_AVX2 mode iterator.
4985         (<ssse3_avx2>_pshufb<mode>3): Rename from ssse3_pshufbv16qi3.
4986         Use VI1_AVX2 mode iterator.
4987         (<ssse3_avx2>_psign<mode>3): Rename from ssse3_psign<mode>3.
4988         Use VI124_AVX2 mode iterator.
4989         (<ssse3_avx2>_palignr<mode>): Rename from ssse3_palignrti.
4990         Use SSESCALARMODE mode iterator.
4991         (abs<mode>2): Use VI124_AVX2 mode iterator.
4992         (<sse4_1_avx2>_movntdqa): Rename from sse4_1_movntdqa.
4993         Use VI8_AVX2 mode iterator.
4994         (<sse4_1_avx2>_mpsadbw): Rename from sse4_1_mpsadbw.
4995         Use VI1_AVX2 mode iterator.
4996         (<sse4_1_avx2>_pblendvb): Rename from sse4_1_pblendvb.
4997         Use VI1_AVX2 mode iterator.
4998         (<sse4_1_avx2>_pblendw): Rename from sse4_1_pblendvb.
4999         Use VI2_AVX2 mode iterator.
5000         (<avx_avx2>_maskload<avx2modesuffix><avxmodesuffix>): Rename from
5001         avx_maskload<ssemodesuffix><avxsizesuffix>. Use V48_AVX2 mode iterator.
5002         (<avx_avx2>_maskstore<avx2modesuffix><avxmodesuffix>): Rename from
5003         avx_maskstore<ssemodesuffix><avxsizesuffix>.
5004         Use V48_AVX2 mode iterator.
5005         * doc/extend.texi: Document AVX2 built-in functions.
5006         * doc/invoke.texi: Document -mavx2.
5007
5008 2011-08-22  Matthias Klose <doko@debian.org>
5009
5010         Revert:
5011         2011-07-11  Arthur Loiret  <aloiret@debian.org>
5012                     Matthias Klose <doko@debian.org>
5013         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
5014         tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
5015         convention.
5016         * config.gcc (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
5017
5018 2011-08-22  Mikael Pettersson  <mikpe@it.uu.se>
5019
5020         PR bootstrap/50146
5021         * ira-color.c (assign_hard_reg): Move saved_nregs declaration
5022         to #ifndef HONOR_REG_ALLOC_ORDER block.
5023
5024 2011-08-21  Richard Henderson  <rth@redhat.com>
5025
5026         * rtl.h (INSN_ANNULLED_BRANCH_P): Only allow JUMP_INSN.
5027         * dwarf2cfi.c (scan_trace): Test JUMP_P before INSN_ANNULLED_BRANCH_P.
5028         * resource.c (next_insn_no_annul): Likewise.
5029         (mark_set_resources): Likewise.
5030         * reorg.c (delete_from_delay_slot): Likewise.
5031         (dbr_schedule, redundant_insn, try_merge_delay_insns): Likewise.
5032         (get_branch_condition): Test pc_rtx and LABEL_REF before dereferencing.
5033
5034 2011-08-21  Uros Bizjak  <ubizjak@gmail.com>
5035
5036         * config/i386/i386.md (any_div): Remove.
5037         (sgnprefix): Update for removal.
5038         (u): Ditto.
5039
5040 2011-08-20  Vladimir Makarov  <vmakarov@redhat.com>
5041
5042         * ira-lives.c (mark_pseudo_regno_subword_live): Use allocno class
5043         for ira_reg_class_max_nregs.  Increase pressure by 1.
5044         (mark_pseudo_regno_subword_dead): Use allocno class
5045         for ira_reg_class_max_nregs.
5046
5047 2011-08-20  Richard Henderson  <rth@redhat.com>
5048
5049         * config/c6x/eqd.c, config/c6x/eqf.c, config/c6x/ged.c,
5050         config/c6x/gef.c, config/c6x/gtd.c, config/c6x/gtf.c,
5051         config/c6x/led.c, config/c6x/lef.c, config/c6x/ltd.c,
5052         config/c6x/ltf.c: Adjust include path for soft-fp.
5053
5054 2011-08-20  H.J. Lu  <hongjiu.lu@intel.com>
5055
5056         PR other/46770
5057         * config.gcc (tm_file): Add initfini-array.h if
5058         .init_arrary/.fini_array are supported.
5059
5060         * crtstuff.c: Don't generate .ctors nor .dtors sections if
5061         USE_INITFINI_ARRAY is defined.
5062
5063         * output.h (default_elf_init_array_asm_out_constructor): New.
5064         (default_elf_fini_array_asm_out_destructor): Likewise.
5065         * varasm.c (elf_init_array_section): Likewise.
5066         (elf_fini_array_section): Likewise.
5067         (get_elf_initfini_array_priority_section): Likewise.
5068         (default_elf_init_array_asm_out_constructor): Likewise.
5069         (default_elf_fini_array_asm_out_destructor): Likewise.
5070
5071         * config/initfini-array.h: New.
5072
5073 2011-08-20  Richard Sandiford  <rdsandiford@googlemail.com>
5074
5075         * config/mips/mips.c (mips_class_max_nregs): Check that the mode is
5076         OK for ST_REGS and FP_REGS before taking those classes into account.
5077
5078 2011-08-20  Richard Sandiford  <rdsandiford@googlemail.com>
5079
5080         * config/mips/mips.c (mips_reorg_process_insns): Check for jumps
5081         before checking for annulled branches.
5082
5083 2011-08-20  Uros Bizjak  <ubizjak@gmail.com>
5084
5085         * config/i386/i386.c (ix86_binary_operator_ok): Use
5086         satisfies_constraint_L.
5087
5088 2011-08-20  Uros Bizjak  <ubizjak@gmail.com>
5089             Michael Matz  <matz@suse.de>
5090
5091         * config/i386/i386.c (ix86_expand_round_sse4): Expand as
5092         trunc (a + copysign (nextafter (0.5, 0.0), a)).
5093
5094 2011-08-20  Anatoly Sokolov  <aesok@post.ru>
5095
5096         * doc/tm.texi.in (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
5097         * doc/tm.texi: Regenerate.
5098         * targhooks.c (default_preferred_output_reload_class): Don't use
5099         PREFERRED_OUTPUT_RELOAD_CLASS macro.
5100         * system.h (PREFERRED_OUTPUT_RELOAD_CLASS): Poison.
5101
5102 2011-08-20  Jakub Jelinek  <jakub@redhat.com>
5103
5104         PR tree-optimization/48739
5105         * tree-ssa.c: Include cfgloop.h.
5106         (execute_update_addresses_taken): When updating ssa, if in loop closed
5107         SSA form, call rewrite_into_loop_closed_ssa instead of update_ssa.
5108         * Makefile.in (tree-ssa.o): Depend on $(CFGLOOP_H).
5109
5110 2011-08-19  Vladimir Makarov  <vmakarov@redhat.com>
5111
5112         PR rtl-optimization/49936
5113         * ira.c (ira_init_register_move_cost): Ignore too small subclasses
5114         for calculation of max register move costs.
5115
5116 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
5117
5118         * c-parser.c (c_parser_postfix_expression): Convert operands of
5119         __builtin_complex to their semantic types.
5120
5121 2011-08-19  H.J. Lu  <hongjiu.lu@intel.com>
5122
5123         PR middle-end/49721
5124         * explow.c (convert_memory_address_addr_space): Also permute the
5125         conversion and addition of constant for zero-extend.
5126
5127 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
5128
5129         * c-parser.c (c_parser_postfix_expression): Handle RID_BUILTIN_COMPLEX.
5130         * doc/extend.texi (__builtin_complex): Document.
5131
5132 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
5133
5134         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Handle constants
5135         beyond conversions.
5136         (convert_mult_to_widen): Convert constant inputs to the right type.
5137         (convert_plusminus_to_widen): Don't automatically reject inputs that
5138         are not an SSA_NAME.
5139         Convert constant inputs to the right type.
5140
5141 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
5142
5143         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Convert add_rhs
5144         to the correct type.
5145
5146 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
5147
5148         * tree-ssa-math-opts.c (convert_mult_to_widen): Better handle
5149         unsigned inputs of different modes.
5150         (convert_plusminus_to_widen): Likewise.
5151
5152 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
5153
5154         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Add new argument
5155         'type'.
5156         Use 'type' from caller, not inferred from 'rhs'.
5157         Don't reject non-conversion statements. Do return lhs in this case.
5158         (is_widening_mult_p): Add new argument 'type'.
5159         Use 'type' from caller, not inferred from 'stmt'.
5160         Pass type to is_widening_mult_rhs_p.
5161         (convert_mult_to_widen): Pass type to is_widening_mult_p.
5162         (convert_plusminus_to_widen): Likewise.
5163
5164 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
5165
5166         * tree-ssa-math-opts.c (is_widening_mult_p): Remove FIXME.
5167         Ensure the the larger type is the first operand.
5168
5169 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
5170
5171         * tree-ssa-math-opts.c (convert_mult_to_widen): Convert
5172         unsupported unsigned multiplies to signed.
5173         (convert_plusminus_to_widen): Likewise.
5174
5175 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
5176
5177         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Permit a single
5178         conversion statement separating multiply-and-accumulate.
5179
5180 2011-08-19  Richard Guenther  <rguenther@suse.de>
5181
5182         PR tree-optimization/50067
5183         * tree-data-ref.c (dr_analyze_indices): Simplify, strip MEM_REF
5184         offset only if we accounted for it.
5185
5186 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
5187
5188         * config/arm/arm.md (maddhidi4): Remove '*' from name.
5189         * expr.c (expand_expr_real_2): Use find_widening_optab_handler.
5190         * optabs.c (find_widening_optab_handler_and_mode): New function.
5191         (expand_widen_pattern_expr): Use find_widening_optab_handler.
5192         (expand_binop_directly): Likewise.
5193         (expand_binop): Likewise.
5194         * optabs.h (find_widening_optab_handler): New macro define.
5195         (find_widening_optab_handler_and_mode): New prototype.
5196         * tree-cfg.c (verify_gimple_assign_binary): Adjust WIDEN_MULT_EXPR
5197         type precision rules.
5198         (verify_gimple_assign_ternary): Likewise for WIDEN_MULT_PLUS_EXPR.
5199         * tree-ssa-math-opts.c (build_and_insert_cast): New function.
5200         (is_widening_mult_rhs_p): Allow widening by more than one mode.
5201         Explicitly disallow mis-matched input types.
5202         (convert_mult_to_widen): Use find_widening_optab_handler, and cast
5203         input types to fit the new handler.
5204         (convert_plusminus_to_widen): Likewise.
5205
5206 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
5207
5208         * expr.c (expand_expr_real_2): Use widening_optab_handler.
5209         * genopinit.c (optabs): Use set_widening_optab_handler for $N.
5210         (gen_insn): $N now means $a must be wider than $b, not consecutive.
5211         * optabs.c (widened_mode): New function.
5212         (expand_widen_pattern_expr): Use widening_optab_handler.
5213         (expand_binop_directly): Likewise.
5214         (expand_binop): Likewise.
5215         * optabs.h (widening_optab_handlers): New struct.
5216         (optab_d): New member, 'widening'.
5217         (widening_optab_handler): New function.
5218         (set_widening_optab_handler): New function.
5219         * tree-ssa-math-opts.c (convert_mult_to_widen): Use
5220         widening_optab_handler.
5221         (convert_plusminus_to_widen): Likewise.
5222
5223 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
5224
5225         * c-decl.c (grokdeclarator): Diagnose _Noreturn for non-C1X if
5226         pedantic.
5227         * c-parser.c (c_parser_declspecs): Include _Noreturn in syntax comment.
5228         * ginclude/stdnoreturn.h (noreturn): Don't define for C++.
5229
5230 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
5231
5232         * opth-gen.awk: Do not declare target save/restore structures and
5233         functions if IN_RTS defined.
5234
5235 2011-08-19  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
5236
5237         PR target/49437
5238         * config/arm/arm.c (arm_output_epilogue): Properly handle epilogue
5239         when stack was realigned in interrupt handler prologue.
5240
5241 2011-08-18  Joseph Myers  <joseph@codesourcery.com>
5242
5243         * c-decl.c (shadow_tag_warned): Check for _Noreturn.
5244         (quals_from_declspecs): Assert _Noreturn not present.
5245         (grokdeclarator): Handle _Noreturn.
5246         (build_null_declspecs): Initialize noreturn_p.
5247         (declspecs_add_scspec): Handle RID_NORETURN.
5248         * c-parser.c (c_token_starts_declspecs, c_parser_declspecs)
5249         (c_parser_attributes): Handle RID_NORETURN.
5250         * c-tree.h (struct c_declspecs): Add noreturn_p.
5251         * ginclude/stdnoreturn.h: New.
5252         * Makefile.in (USER_H): Add stdnoreturn.h.
5253
5254 2011-08-18  Kirill Yukhin  <kirill.yukhin@intel.com>
5255
5256         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX2_SET): New.
5257         (OPTION_MASK_ISA_AVX_UNSET): Update.
5258         (OPTION_MASK_ISA_AVX2_UNSET): New.
5259         (ix86_handle_option): Handle OPT_mavx2 case.
5260         * config/i386/cpuid.h (bit_AVX2): New.
5261         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
5262         AVX2 feature.
5263         * config/i386/i386-c.c (ix86_target_macros_internal):
5264         Conditionally define __AVX2__.
5265         * config/i386/i386.c (ix86_option_override_internal): Define PTA_AVX2.
5266         Define "core-avx2" processor alias.  Handle avx2 option.
5267         (ix86_valid_target_attribute_inner_p): Handle avx2 option.
5268         * config/i386/i386.h (TARGET_AVX2): New.
5269         * config/i386/i386.opt (mavx2): New.
5270         * doc/invoke.texi: Document -mavx2.
5271
5272 2011-08-18  Vladimir Makarov  <vmakarov@redhat.com>
5273
5274         PR rtl-optimization/49890
5275         * ira-costs.c (setup_regno_cost_classes_by_aclass): Don't exclude
5276         subclasses of class which is superset of a pressure class.
5277
5278 2011-08-18  H.J. Lu  <hongjiu.lu@intel.com>
5279             Igor Zamyatin <igor.zamyatin@intel.com>
5280
5281         * config/i386/i386-c.c (ix86_target_macros_internal): Replace int
5282         with HOST_WIDE_INT for isa_flag.
5283         (ix86_pragma_target_parse): Replace int with HOST_WIDE_INT for
5284         isa variables.
5285
5286         * config/i386/i386.c (ix86_target_string): Replace int with
5287         HOST_WIDE_INT for isa.  Use HOST_WIDE_INT_PRINT to print isa.
5288         (ix86_target_opts): Replace int with HOST_WIDE_INT on mask.
5289         (pta_flags): Removed.
5290         (PTA_XXX): Redefined as (HOST_WIDE_INT_1 << X).
5291         (pta): Use HOST_WIDE_INT on flags.
5292         (builtin_isa): Use HOST_WIDE_INT on isa.
5293         (ix86_add_new_builtins): Likewise.
5294         (def_builtin): Use HOST_WIDE_INT on mask.
5295         (def_builtin_const): Likewise.
5296         (builtin_description): Likewise.
5297
5298         * config/i386/i386.opt (ix86_isa_flags): Replace int with
5299         HOST_WIDE_INT.
5300         (ix86_isa_flags_explicit): Likewise.
5301         (x_ix86_isa_flags_explicit): Likewise.
5302
5303 2011-08-17  Vladimir Makarov  <vmakarov@redhat.com>
5304
5305         PR rtl-optimization/50107
5306         * ira-int.h (ira_hard_reg_not_in_set_p): Remove.
5307         (ira_hard_reg_in_set_p): New.
5308
5309         * ira-color.c (calculate_saved_nregs): New.
5310         (assign_hard_reg): Use it.  Set up allocated_hard_reg_p for all
5311         hard regs.
5312         (allocno_reload_assign, fast_allocation): Use
5313         ira_hard_reg_set_intersection_p instead of
5314         ira_hard_reg_not_in_set_p.
5315
5316         * ira.c (setup_reg_renumber): Use
5317         ira_hard_reg_set_intersection_p instead of
5318         ira_hard_reg_not_in_set_p.
5319         (setup_allocno_assignment_flags, calculate_allocation_cost): Use
5320         ira_hard_reg_in_set_p instead of ira_hard_reg_not_in_set_p.
5321
5322         * ira-costs.c (ira_tune_allocno_costs): Use
5323         ira_hard_reg_set_intersection_p instead of
5324         ira_hard_reg_not_in_set_p.
5325
5326 2011-08-18  H.J. Lu  <hongjiu.lu@intel.com>
5327             Igor Zamyatin <igor.zamyatin@intel.com>
5328
5329         * hwint.h (HOST_WIDE_INT_1): New.
5330
5331         * opt-functions.awk (switch_bit_fields): Initialize the
5332         host_wide_int field.
5333         (host_wide_int_var_name): New.
5334         (var_type_struct): Check and return HOST_WIDE_INT.
5335
5336         * opt-read.awk: Handle HOST_WIDE_INT for "Variable".
5337
5338         * optc-save-gen.awk: Support HOST_WIDE_INT on var_target_other.
5339
5340         * opth-gen.awk: Use HOST_WIDE_INT_1 on HOST_WIDE_INT.  Properly
5341         check masks for HOST_WIDE_INT.
5342
5343         * opts-common.c (set_option): Support HOST_WIDE_INT flag_var.
5344         (option_enabled): Likewise.
5345         (get_option_state): Likewise.
5346
5347         * opts.h (cl_option): Add cl_host_wide_int.  Change var_value
5348         to HOST_WIDE_INT.
5349
5350 2011-08-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5351             Marc Glisse  <marc.glisse@normalesup.org>
5352
5353         PR libstdc++-v3/1773
5354         * target.def (decl_mangling_context): New C++ hook.
5355         * doc/tm.texi: Regenerate.
5356         * config/sol2-cxx.c, config/sol2-stubs.c: New files.
5357         * config/sol2-protos.h: Group by source file.
5358         (solaris_cxx_decl_mangling_context): Declare.
5359         * config/sol2.h (TARGET_CXX_DECL_MANGLING_CONTEXT): Define.
5360         * config/t-sol2 (sol2-cxx.o, sol2-stubs.o): New targets.
5361         Use $<.
5362         * config.gcc (*-*-solaris2*): Add sol2-cxx.o to cxx_target_objs.
5363         Add sol2-stubs.o to extra_objs.
5364
5365 2011-08-18  Jakub Jelinek  <jakub@redhat.com>
5366
5367         PR target/50009
5368         * stor-layout.c (update_alignment_for_field): Don't ICE on
5369         packed flexible array members if ms_bitfield_layout_p.
5370
5371         PR target/50092
5372         * config/i386/i386.c (assign_386_stack_local): Call validize_mem
5373         on the result before returning it.
5374
5375         PR debug/50017
5376         * tree-vect-stmts.c (vect_finish_stmt_generation): If gsi_stmt (*gsi)
5377         is a debug stmt, use location of the first non-debug stmt after it.
5378
5379 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
5380
5381         * config/arm/arm.c (arm_rtx_costs_1): Don't modify the costs of SET.
5382         (arm_size_rtx_costs): Likewise.
5383
5384 2011-08-18  Richard Guenther  <rguenther@suse.de>
5385
5386         * tree.h (tree_int_cst_msb): Remove.
5387         * tree.c (tree_int_cst_msb): Likewise.
5388         (tree_int_cst_sign_bit): Move from ...
5389         * tree-ssa-loop-ivopts.c (tree_int_cst_sign_bit): ... here.
5390
5391 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
5392
5393         * doc/tm.texi.in (TARGET_RTX_COSTS): Add an opno paramter.
5394         * doc/tm.texi: Regenerate.
5395         * target.def (rtx_costs): Add an opno parameter.
5396         * hooks.h (hook_bool_rtx_int_int_intp_bool_false): Replace with...
5397         (hook_bool_rtx_int_int_int_intp_bool_false): ...this.
5398         * hooks.c (hook_bool_rtx_int_int_intp_bool_false): Replace with...
5399         (hook_bool_rtx_int_int_int_intp_bool_false): ...this.
5400         * cse.c (COST_IN): Add an opno parameter.
5401         (notreg_cost): Likewise.  Update call to rtx_cost.
5402         (COST, fold_rtx): Update accordingly.
5403         * dojump.c (prefer_and_bit_test): Update call to rtx_cost.
5404         * expmed.c (emit_store_flag): Likewise.
5405         * optabs.c (avoid_expensive_constant): Add an opno parameter.
5406         Update call to rtx_cost.
5407         (expand_binop_directly, expand_binop): Likewise.
5408         (expand_twoval_binop, prepare_cmp_insn): Likewise.
5409         * rtl.h (rtx_cost, get_full_rtx_cost): Add opno parameters.
5410         (set_src_cost, get_full_set_src_cost): Update accordingly.
5411         * rtlanal.c (rtx_cost): Add an opno parameter.  Update call
5412         to target hook.
5413         (get_full_rtx_cost): Add an opno paramter.  Update calls to rtx_cost.
5414         (default_adress_cost): Update calls to rtx_cost.
5415
5416         * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs)
5417         (arm_slowmul_rtx_costs): Adjust calls to rtx_cost.
5418         (arm_rtx_costs): Add an opno parameter.
5419         * config/alpha/alpha.c (alpha_rtx_costs): Add an opno parameter and
5420         adjust any recursive rtx-cost calls.
5421         * config/avr/avr.c (avr_operand_rtx_cost, avr_rtx_costs): Likewise.
5422         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
5423         * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
5424         * config/cris/cris.c (cris_rtx_costs): Likewise.
5425         * config/frv/frv.c (frv_rtx_costs): Likewise.
5426         * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
5427         * config/i386/i386.c (ix86_rtx_costs): Likewise.
5428         * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
5429         * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
5430         * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
5431         * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
5432         * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
5433         * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
5434         * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
5435         * config/mep/mep.c (mep_rtx_cost): Likewise.
5436         * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
5437         * config/mips/mips.c (mips_binary_cost): Update call to rtx_cost.
5438         (mips_zero_extend_cost): Add an opno parameter.
5439         * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
5440         * config/mn10300/mn10300.c (mn10300_address_cost): Update call
5441         to rtx_cost.
5442         (mn10300_rtx_costs): Add an opno parameter and adjust any recursive
5443         rtx-cost calls.
5444         * config/pa/pa.c (hppa_rtx_costs): Likewise.
5445         * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
5446         * config/picochip/picochip.c (picochip_rtx_costs): Likewise.
5447         * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
5448         (rs6000_debug_rtx_costs): Likewise.
5449         * config/s390/s390.c (s390_rtx_costs): Likewise.
5450         * config/score/score-protos.h (score_rtx_costs): Likewise.
5451         * config/score/score.c (score_rtx_costs): Likewise.
5452         * config/sh/sh.c (andcosts): Update call to rtx_cost.
5453         (sh_rtx_costs): Add an opno parameter.
5454         * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
5455         * config/spu/spu.c (spu_rtx_costs): Likewise.
5456         * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
5457         * config/v850/v850.c (v850_rtx_costs): Likewise.
5458         * config/vax/vax.c (vax_rtx_costs): Likewise.
5459         * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
5460
5461 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
5462
5463         * rtl.h (set_src_cost, get_full_set_src_cost): New functions.
5464         * auto-inc-dec.c (attempt_change): Use set_src_cost instead of
5465         rtx_cost.
5466         * calls.c (precompute_register_parameters): Likewise.
5467         * combine.c (expand_compound_operation, make_extraction): Likewise.
5468         (force_to_mode, distribute_and_simplify_rtx): Likewise.
5469         * dse.c (find_shift_sequence): Likewise.
5470         * expmed.c (init_expmed, expand_mult, expand_smod_pow2): Likewise.
5471         * expr.c (compress_float_constant): Likewise.
5472         * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
5473         * gcse.c (want_to_gcse_p): Likewise.
5474         * ifcvt.c (noce_try_sign_mask): Likewise.
5475         * loop-doloop.c (doloop_optimize): Likewise.
5476         * loop-invariant.c (create_new_invariant): Likewise.
5477         * optabs.c (avoid_expensive_constant): Likewise.
5478         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands)
5479         (try_replace_in_use, reload_cse_move2add): Likewise.
5480         * reload1.c (calculate_elim_costs_all_insns): Likewise.
5481         (note_reg_elim_costly): Likewise.
5482         * rtlanal.c (insn_rtx_cost): Likewise.
5483         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
5484         * stmt.c (lshift_cheap_p): Likewise.
5485         * tree-ssa-loop-ivopts.c (seq_cost, computation_cost): Likewise.
5486         * config/avr/avr.c (final_prescan_insn): Likewise.
5487         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
5488         * config/mips/mips.c (mips_binary_cost, mips_rtx_costs): Likewise.
5489
5490 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
5491
5492         * rtl.h (set_rtx_cost, get_full_set_rtx_cost): New functions.
5493         * auto-inc-dec.c (attempt_change): Use set_rtx_cost.
5494         * cfgloopanal.c (seq_cost): Likewise.
5495         * loop-invariant.c (create_new_invariant): Likewise.
5496         * postreload.c (move2add_use_add2_insn, move2add_use_add3_insn)
5497         (reload_cse_move2add): Use get_full_set_rtx_cost.
5498
5499 2011-08-18  Richard Guenther  <rguenther@suse.de>
5500
5501         * expr.c (get_inner_reference): Fix typo in last change.
5502
5503 2011-08-18  Paolo Carlini  <paolo.carlini@oracle.com>
5504             Joseph Myers  <joseph@codesourcery.com>
5505
5506         PR tree-optimization/49963
5507         * hwint.c (absu_hwi): Define.
5508         * hwint.h (absu_hwi): Declare.
5509         * fold-const.c (fold_plusminus_mult_expr): Use absu_hwi instead
5510         of abs_hwi.
5511         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
5512         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
5513
5514 2011-08-18  Richard Guenther  <rguenther@suse.de>
5515
5516         * expr.c (get_inner_reference): Sign-extend the constant
5517         twos-complement offset before doing arbitrary precision
5518         arithmetic on it.
5519         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
5520         (get_constraint_for_1): Pass the offset of a MEM_REF unchanged
5521         to get_constraint_for_ptr_offset.
5522
5523 2011-08-17  Kaz Kojima  <kkojima@gcc.gnu.org>
5524
5525         PR target/50068
5526         * config/sh/sh.c (sh_output_mi_thunk): Don't call dbr_schedule.
5527
5528 2011-08-17  Richard Guenther  <rguenther@suse.de>
5529
5530         * tree.h (convert_to_ptrofftype_loc): New function.
5531         (convert_to_ptrofftype): Define.
5532         * builtins.c (expand_builtin_bzero): Use size_type_node.
5533         (fold_builtin_bzero): Likewise.
5534         (std_gimplify_va_arg_expr): Build the BIT_AND_EXPR on the pointer.
5535         * c-typeck.c (build_unary_op): Use convert_to_ptrofftype_loc.
5536         * cgraphunit.c (thunk_adjust): Use fold_build_pointer_plus_loc.
5537         (cgraph_redirect_edge_call_stmt_to_callee): Use size_int.
5538         * expr.c (expand_expr_addr_expr_1): Use fold_build_pointer_plus.
5539         * fold-const.c (build_range_check): Negate using the original type.
5540         (fold_unary_loc): Use fold_build_pointer_plus_loc.
5541         * gimple-fold.c (gimple_adjust_this_by_delta): Use
5542         convert_to_ptrofftype.
5543         * gimplify.c (gimplify_self_mod_expr): Likewise.
5544         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Likewise.
5545         (graphite_create_new_loop_guard): Likewise.
5546         * graphite-sese-to-poly.c (my_long_long): Remove.
5547         (scop_ivs_can_be_represented): Adjust.
5548         * tree-cfg.c (verify_gimple_assign_unary): Use ptrofftype_p.
5549         * tree-chrec.c (chrec_fold_plus_1): Use fold_build_pointer_plus.
5550         * tree-loop-distribution.c (build_size_arg_loc): Use
5551         size_type_node.
5552         (generate_memset_zero): Simplify.
5553         * tree-mudflap.c: Use fold_convert, not convert.
5554         * tree-predcom.c (suitable_reference_p): Expand DR_OFFSET in
5555         its own type.
5556         (determine_offset): Likewise for DR_STEP.
5557         (valid_initializer_p): Likewise.
5558         * tree-profile.c (prepare_instrumented_value): Convert the pointer
5559         to an integer type of same size.
5560         * tree-scalar-evolution.c (interpret_rhs_expr): Do not refer
5561         to sizetype without need.
5562         * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
5563         * tree-ssa-loop-ivopts.c (find_bivs): Use convert_to_ptrofftype.
5564         * tree-ssa-loop-manip.c (create_iv): Likewise.
5565         (determine_exit_conditions): Adjust comment.
5566         * tree-ssa-pre.c (create_expression_by_pieces): Use
5567         convert_to_ptrofftype.
5568         * tree-ssa-structalias.c (get_constraint_for_1): Likewise.
5569         * varasm.c (array_size_for_constructor): Compute using double_ints.
5570
5571 2011-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5572
5573         * config/spu/spu.c (spu_emit_branch_or_set): Avoid reverse tests
5574         when generating an integer result where possible.  Short-cut
5575         comparison against 0 also for QImode.
5576
5577 2011-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5578
5579         * config/spu/spu.h (LEGITIMIZE_RELOAD_ADDRESS): New macro.
5580         * config/spu/spu-protos.h (spu_legitimize_reload_address): Add
5581         prototype.
5582         * config/spu/spu.c (spu_legitimize_reload_address): New function.
5583         (spu_legitimate_address_p): Do not check displacement if the base
5584         is an eliminable stack register.
5585
5586 2011-08-16  Anatoly Sokolov  <aesok@post.ru>
5587
5588         * config/m32c/m32c.h (PREFERRED_RELOAD_CLASS,
5589         PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
5590         * config/m32c/m32c-protos.h (m32c_preferred_reload_class,
5591         m32c_preferred_output_reload_class): Remove.
5592         * config/m32c/m32c.c (m32c_preferred_reload_class): Make static.
5593         Change rclass argument and return types to reg_class_t. Use
5594         reg_class_subset_p instead of class_sizes.
5595         (m32c_preferred_output_reload_class): Make static. Change rclass
5596         argument and return types to reg_class_t.
5597         (TARGET_PREFERRED_RELOAD_CLASS,
5598         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
5599
5600 2011-08-16  Kai Tietz  <ktietz@redhat.com>
5601
5602         * config/i386/mingw32.h (GOMP_SELF_SPEC): Add -pthread option.
5603
5604 2011-08-16  Richard GUenther  <rguenther@suse.de>
5605
5606         PR tree-optimization/50082
5607         * tree-ssa-forwprop.c (combine_cond_expr_cond): Handle overflow
5608         warnings here, instead of ...
5609         (ssa_forward_propagate_and_combine): ... here.
5610         (forward_propagate_into_comparison_1): Adjust.
5611         (forward_propagate_into_comparison): Likewise.
5612         (forward_propagate_into_gimple_cond): Likewise.
5613         (forward_propagate_into_cond): Likewise.
5614
5615 2011-08-16  Andreas Schwab  <schwab@redhat.com>
5616
5617         * ggc.h (ggc_alloc_rtvec_sized): Use ggc_alloc_zone_rtvec_def
5618         instead of ggc_alloc_zone_vec_rtvec_def.
5619
5620 2011-08-16  Richard Guenther  <rguenther@suse.de>
5621
5622         * tree.h (ptrofftype_p): New helper function.
5623         * tree-cfg.c (verify_expr): Use ptrofftype_p for POINTER_PLUS_EXPR
5624         offset verification.
5625         (verify_gimple_assign_binary): Likewise.
5626         * tree.c (build2_stat): Likewise.
5627         * tree-chrec.c (chrec_fold_plus_poly_poly): Likewise.
5628         (reset_evolution_in_loop): Likewise.
5629         * tree-chrec.h (build_polynomial_chrec): Likewise.
5630
5631 2011-08-16  Liang Wang  <lwang1@marvell.com>
5632
5633         * ggc.h (ggc_alloc_rtvec_sized): Change arguments of
5634         ggc_alloc_zone_vec_rtvec_def.
5635
5636 2011-08-16  Richard Guenther  <rguenther@suse.de>
5637
5638         * tree-vrp.c (extract_range_from_multiplicative_op_1): New
5639         helper factored out from ...
5640         (extract_range_from_binary_expr_1): ... here.  Re-structure
5641         to not glob handling too different tree codes.
5642
5643 2011-08-15  Richard Henderson  <rth@redhat.com>
5644
5645         PR middle-end/50006
5646         * explow.c (allocate_dynamic_stack_space): Move suppress_reg_args_size
5647         setting out to include allocate_stack named pattern as well.
5648         * builtins.c (expand_builtin_apply): Add ARG_SIZE 0 note.
5649         * stmt.c (expand_stack_restore): Likewise.
5650
5651 2011-08-15  Richard Guenther  <rguenther@suse.de>
5652
5653         PR middle-end/50082
5654         * fold-const.c (maybe_canonicalize_comparison_1): Properly
5655         convert the modified operand to the other operand type.
5656         (fold_comparison): Call maybe_canonicalize_comparison_1 with
5657         useless conversions stripped from comparison operands.
5658
5659 2011-08-15  Richard Guenther  <rguenther@suse.de>
5660
5661         * tree-vrp.c (value_range_nonnegative_p): Fix anti-range case.
5662         (extract_range_from_unary_expr_1): Restructure.
5663
5664 2011-08-15  Richard Guenther  <rguenther@suse.de>
5665
5666         PR tree-optimization/50058
5667         * tree-ssa-sccvn.c (vn_reference_lookup_3): Relax aggregate
5668         copy matching.
5669
5670 2011-08-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5671
5672         PR target/50022
5673         * config/arm/arm.c (output_move_double): Add 2 parameters
5674         to count the number of insns emitted and whether to emit or not.
5675         Use the flag to decide when to emit and count number of instructions
5676         that will be emitted.
5677         Handle case where output_move_double might be called for calculating
5678         lengths with an invalid constant.
5679         (arm_count_output_move_double_insns): Define.
5680         * config/arm/arm-protos.h (arm_count_output_move_double_insns): Declare.
5681         (output_move_double): Adjust prototype.
5682         * config/arm/vfp.md ("*movdi_vfp"): Adjust call to
5683         output_move_double.
5684         ("*movdi_vfp_cortexa8"): Likewise and add attribute
5685         for ce_count.
5686         * config/arm/arm.md ("*arm_movdi"): Adjust call to output_move_double.
5687         ("*movdf_soft_insn"): Likewise.
5688         * config/arm/cirrus.md ("*cirrus_arm_movdi"): Likewise.
5689         ("*cirrus_thumb2_movdi"): Likewise.
5690         ("*thumb2_cirrus_movdf_hard_insn"): Likewise.
5691         ("*cirrus_movdf_hard_insn"): Likewise.
5692         * config/arm/neon.md (*neon_mov<mode> VD): Likewise.
5693         * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Likewise.
5694         ("mov<mode>_internal VMMX"): Likewise.
5695         * config/arm/fpa.md (*movdf_fpa, *thumb2_movdf_fpa): Likewise.
5696
5697 2011-08-14  Uros Bizjak  <ubizjak@gmail.com>
5698
5699         * config/i386/i386.c (ix86_expand_round_sse4): New function.
5700         * config/i386/i386-protos.h (ix86_expand_round_sse4): New prototype.
5701         * config/i386/i386.md (round<mode>2): Use ix86_expand_round_sse4
5702         for TARGET_ROUND.
5703
5704         (rint<mode>2): Simplify TARGET_ROUND check.
5705         (floor<mode>2): Ditto.
5706         (ceil<mode>2): Ditto.
5707         (btrunc<mode>2): Ditto.
5708
5709 2011-08-14  Anatoly Sokolov  <aesok@post.ru>
5710
5711         * config/mmix/mmix.c (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Redefine
5712         as mmix_preferred_output_reload_class.
5713
5714 2011-08-14  Georg-Johann Lay  <avr@gjlay.de>
5715
5716         * PR target/49903
5717         * config/avr/avr.md (UNSPEC_IDENTITY): New c_enum.
5718         (branch_unspec): New insn.
5719         (branch): Beauty farm.
5720         * config/avr/avr.c (compare_condition): Use JUMP_P.  Test SET_SRC
5721         to be IF_THEN_ELSE.
5722         (avr_compare_pattern, avr_reorg_remove_redundant_compare):
5723         New static functions.
5724         (avr_reorg): Use them.  Use next_real_insn instead of NEXT_INSN.
5725         Use CONST_INT_P.  Beauty.
5726
5727 2011-08-12  Richard Henderson  <rth@redhat.com>
5728
5729         PR rtl-opt/49994
5730         * sched-init.h (struct deps_desc): Add sched_before_next_jump.
5731         * sched-deps.c (init_deps): Clear it.
5732         (deps_analyze_insn): Consume it.
5733         (sched_analyze_insn): Fill it.
5734
5735 2011-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5736
5737         PR target/48328
5738         * config/arm/arm.h (CASE_VECTOR_SHORTEN_MODE): Fix distance
5739         for tbh instructions.
5740
5741 2011-08-12  Diego Novillo  <dnovillo@google.com>
5742
5743         * data-streamer.h (streamer_write_zero): Rename from output_zero.
5744         (streamer_write_uhwi): Rename from lto_output_uleb128.
5745         (streamer_write_hwi): Rename from output_sleb128.
5746         (streamer_write_string): Rename from lto_output_string.
5747         (streamer_string_index): Rename from lto_string_index.
5748         (streamer_write_string_with_length): Rename from
5749         lto_output_string_with_length.
5750         (streamer_write_uhwi_stream): Rename from lto_output_uleb128_stream.
5751         (streamer_write_hwi_stream): Rename from lto_output_sleb128_stream.
5752         (streamer_read_string): Rename from lto_input_string.
5753         (streamer_read_indexed_string): Rename from input_string_internal.
5754         (streamer_read_uhwi): Rename from lto_input_uleb128.
5755         (streamer_read_hwi): Rename from lto_input_sleb128.
5756         (streamer_write_hwi_in_range): Rename from lto_output_int_in_range.
5757         (streamer_read_hwi_in_range): Rename from lto_input_int_in_range.
5758         (streamer_write_enum): Rename from lto_output_enum.
5759         (streamer_read_enum): Rename from lto_input_enum.
5760         (streamer_write_record_start): Rename from output_record_start.
5761         (streamer_read_record_start): Rename from input_record_start.
5762         (streamer_write_bitpack): Rename from lto_output_bitpack.
5763         (streamer_read_bitpack): Rename from lto_input_bitpack.
5764         (streamer_write_char_stream): Rename from lto_output_1_stream.
5765         (streamer_read_uchar): Rename from lto_input_1_unsigned.
5766         * tree-streamer.h (streamer_cache_d): Rename from lto_streamer_cache_d.
5767         (streamer_handle_as_builtin_p): Rename from lto_stream_as_builtin_p.
5768         (streamer_read_string_cst): Rename from input_string_cst.
5769         (streamer_read_chain): Rename from lto_input_chain.
5770         (streamer_alloc_tree): Rename from lto_materialize_tree.
5771         (streamer_read_tree_body): Rename from lto_input_tree_pointers.
5772         (streamer_get_pickled_tree): Rename from lto_get_pickled_tree.
5773         (streamer_get_builtin_tree): Rename from lto_get_builtin_tree.
5774         (streamer_read_integer_cst): Rename from lto_input_integer_cst.
5775         (streamer_read_tree_bitfields): Rename from tree_read_bitfields.
5776         (streamer_write_chain): Rename from lto_output_chain.
5777         (streamer_write_tree_header): Rename from lto_output_tree_header.
5778         (streamer_pack_tree_bitfields): Rename from pack_value_fields.
5779         (streamer_write_tree_body): Rename from lto_output_tree_pointers.
5780         (streamer_write_integer_cst): Rename from lto_output_integer_cst.
5781         (streamer_write_builtin): Rename from lto_output_builtin_tree.
5782         (streamer_check_handled_ts_structures): Rename from
5783         check_handled_ts_structures.
5784         (streamer_tree_cache_insert): Rename from lto_streamer_cache_insert.
5785         (streamer_tree_cache_insert_at): Rename from
5786         lto_streamer_cache_insert_at.
5787         (streamer_tree_cache_append): Rename from lto_streamer_cache_append.
5788         (streamer_tree_cache_lookup): Rename from lto_streamer_cache_lookup.
5789         (streamer_tree_cache_get): Rename from lto_streamer_cache_get.
5790         (streamer_tree_cache_create): Rename from lto_streamer_cache_create.
5791         (streamer_tree_cache_delete): Rename from lto_streamer_cache_delete.
5792         * tree-streamer-out.c (write_string_cst): Rename from output_string_cst.
5793         (write_identifier): Rename from output_identifier.
5794         (write_ts_common_tree_pointers): Rename from
5795         lto_output_ts_common_tree_pointers.
5796         (write_ts_vector_tree_pointers): Rename from
5797         lto_output_ts_vector_tree_pointers.
5798         (write_ts_complex_tree_pointers): Rename from
5799         lto_output_ts_complex_tree_pointers.
5800         (write_ts_decl_minimal_tree_pointers): Rename from
5801         lto_output_ts_decl_minimal_tree_pointers.
5802         (write_ts_decl_common_tree_pointers): Rename from
5803         lto_output_ts_decl_common_tree_pointers.
5804         (write_ts_decl_non_common_tree_pointers): Rename from
5805         lto_output_ts_decl_non_common_tree_pointers.
5806         (write_ts_decl_with_vis_tree_pointers): Rename from
5807         lto_output_ts_decl_with_vis_tree_pointers.
5808         (write_ts_field_decl_tree_pointers): Rename from
5809         lto_output_ts_field_decl_tree_pointers.
5810         (write_ts_function_decl_tree_pointers): Rename from
5811         lto_output_ts_function_decl_tree_pointers.
5812         (write_ts_type_common_tree_pointers): Rename from
5813         lto_output_ts_type_common_tree_pointers.
5814         (write_ts_type_non_common_tree_pointers): Rename from
5815         lto_output_ts_type_non_common_tree_pointers.
5816         (write_ts_list_tree_pointers): Rename from
5817         lto_output_ts_list_tree_pointers.
5818         (write_ts_vec_tree_pointers): Rename from
5819         lto_output_ts_vec_tree_pointers.
5820         (write_ts_exp_tree_pointers): Rename from
5821         lto_output_ts_exp_tree_pointers.
5822         (write_ts_block_tree_pointers): Rename from
5823         lto_output_ts_block_tree_pointers.
5824         (write_ts_binfo_tree_pointers): Rename from
5825         lto_output_ts_binfo_tree_pointers.
5826         (write_ts_constructor_tree_pointers): Rename from
5827         lto_output_ts_constructor_tree_pointers.
5828         (write_ts_target_option): Rename from lto_output_ts_target_option.
5829         (write_ts_translation_unit_decl_tree_pointers): Rename from
5830         lto_output_ts_translation_unit_decl_tree_pointers.
5831         * tree-streamer.c (streamer_tree_cache_add_to_node_array):
5832         Rename from lto_streamer_cache_add_to_node_array.
5833         (streamer_tree_cache_insert_1): Rename from lto_streamer_cache_insert_1.
5834         (record_common_node): Rename from lto_record_common_node.
5835
5836         * streamer-hooks.h (bitpack_d, lto_streamer_cache_d): Remove forward
5837         declarations.
5838         * data-streamer-in.c (lto_input_widest_uint_uleb128): Remove unused
5839         function.
5840         * data-streamer-out.c (lto_output_widest_uint_uleb128_stream): Remove
5841         unused function.
5842         * Makefile.in (lto-section-out.o): Add dependency on DATA_STREAMER_H.
5843         (ipa-reference.o): Likewise.
5844         * lto-section-out.c: Include data-streamer.h.
5845         * ipa-reference.c: Include data-streamer.h.
5846
5847 2011-08-12  Nick Clifton  <nickc@redhat.com>
5848
5849         * builtins.c (expand_builtin_memcmp): Do not use cmpstrnsi pattern.
5850         * doc/md.texi (cmpstrn): Note that the comparison stops if both
5851         fetched bytes are zero.
5852         (cmpstr): Likewise.
5853         (cmpmem): Note that the comparison does not stop if both of the
5854         fetched bytes are zero.
5855
5856 2011-08-12  Uros Bizjak  <ubizjak@gmail.com>
5857
5858         * builtins.def (BUILT_IN_ICEIL{,F,L}, BUILT_IN_IFLOOR{,F,L}
5859         BUILT_IN_IRINT{,F,L}, BUILT_IN_IROUND{,F,L}: New builtin definitions.
5860         * convert.c (convert_to_integer): Convert to BUILT_IN_ICEIL,
5861         BUILT_IN_IFLOOR, BUILT_IN_IRINT or BUILT_INT_IROUND when converting
5862         to integer_type_node.
5863         * fold-const.c (tree_call_nonnegative_warnv_p): Handle BUILT_IN_ICEIL,
5864         BUILT_IN_IFLOOR, BUILT_IN_IRINT and BUILT_INT_IROUND.
5865         * builtins.c (expand_builtin_in): Ditto.
5866         (mathfn_built_in_1): Ditto.
5867         (expand_builtin_int_roundingfn): Handle BUILT_IN_ICEIL and
5868         BUILT_IN_IFLOOR.
5869         (expand_builtin_int_roundingfn_2): Handle BUILT_IN_IRINT and
5870         BUILT_IN_IROUND.
5871         (fold_fixed_mathfn): Canonicalize BUILT_IN_ICEIL, BUILTIN_IN_IFLOOR
5872         BUILT_IN_IRINT and BUILT_IN_IROUND to BUILT_IN_LCEIL,
5873         BUILTIN_IN_LFLOOR, BUILT_IN_LRINT and BUILT_IN_LROUND on ILP32 targets.
5874
5875 2011-08-12  Richard Guenther  <rguenther@suse.de>
5876
5877         * tree-vrp.c (extract_range_from_unary_expr_1): Implement -X as 0 - X.
5878
5879 2011-08-12  Romain Geissler  <romain.geissler@gmail.com>
5880
5881         * Makefile.in (PLUGIN_HEADERS): Add C_TREE_H.
5882
5883 2011-08-12  Richard Sandiford  <rdsandiford@googlemail.com>
5884
5885         * config/arm/arm.c (get_label_padding): New function.
5886         (create_fix_barrier, arm_reorg): Use it.
5887
5888 2011-08-11  Uros Bizjak  <ubizjak@gmail.com>
5889
5890         PR target/49781
5891         * config/i386/i386.md (*lea_5_zext): New.
5892         (*lea_6_zext): Ditto.
5893         * config/i386/predicates.md (const_32bit_mask): New predicate.
5894         (lea_address_operand): Reject AND.
5895         * config/i386/i386.c (ix86_decompose_address): Allow Dimode AND with
5896         const_32bit_mask immediate.
5897         (ix86_print_operand_address): Handle AND.
5898         (memory_address_length): Ditto.
5899
5900 2011-08-11  Romain Geissler  <romain.geissler@gmail.com>
5901             Brian Hackett  <bhackett1024@gmail.com>
5902
5903         * plugin.def: Add event for finish_decl.
5904         * plugin.c (register_callback, invoke_plugin_callbacks): Same.
5905         * c-decl.c (finish_decl): Invoke callbacks on above event.
5906         * doc/plugins.texi: Document above event.
5907
5908 2011-08-11  Richard Guenther  <rguenther@suse.de>
5909
5910         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid redundant
5911         lookups, make looking through aggregate copies stronger.
5912
5913 2011-08-11  Richard Henderson  <rth@redhat.com>
5914
5915         PR bootstrap/50018
5916         * expr.c (fixup_args_size_notes): Accept and ignore normal calls.
5917
5918 2011-08-11  Richard Guenther  <rguenther@suse.de>
5919
5920         * lto-cgraph.c (input_node): Use DECL_BUILT_IN.
5921         * tree-vrp.c (stmt_interesting_for_vrp): Likewise.
5922         (vrp_visit_stmt): Likewise.
5923
5924 2011-08-11  Richard Guenther  <rguenther@suse.de>
5925
5926         PR middle-end/50040
5927         * gimplify.c (gimplify_modify_expr_complex_part): Mark the
5928         load of the other piece with TREE_NO_WARNING.
5929         * tree-flow.h (warn_uninit): Adjust prototype.
5930         * tree-ssa.c (warn_uninit): Take uninitialized SSA name,
5931         the base variable and the expression that is used separately.
5932         Properly query all TREE_NO_WARNING flags.
5933         (struct walk_data): Remove.
5934         (warn_uninitialized_var): Likewise.
5935         (warn_uninitialized_vars): Do not walk gimple pieces but simply
5936         look at all SSA uses of the statement.  Handle unused memory
5937         separately.
5938         * tree-ssa-uninit.c (warn_uninitialized_phi): Adjust.
5939
5940 2011-08-11   Kazuhiro Inaoka  <kazuhiro.inaoka.ud@renesas.com>
5941
5942         * config/rx/rx.md (movsicc): Allow register to register transfers.
5943         (*movsicc): Likewise.
5944         (*stcc): Restrict this pattern to EQ and NE compares.
5945         (*stcc_reg): New pattern.  Works for any comparison but only for
5946         register transfers.
5947
5948 2011-08-11   Diego Novillo  <dnovillo@google.com>
5949
5950         * tree-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers):
5951         Call stream_write_tree instead of output_record_start.
5952         (lto_output_ts_binfo_tree_pointers): Likewise.
5953
5954         * streamer-hooks.h (stream_write_tree): Move from tree-streamer.h.
5955         Convert it to a macro.
5956         (stream_read_tree): Likewise.
5957
5958         * lto-streamer.h (lto_stream_as_builtin_p): Move ...
5959         * tree-streamer.h (lto_stream_as_builtin_p): ... here.
5960
5961         * lto-streamer-in.c (lto_read_tree): Call lto_streamer_cache_append
5962         and tree_read_bitfields.
5963         * lto-streamer-out.c (lto_is_streamable): Move from lto-streamer.c
5964         (lto_write_tree): Call it.
5965         * lto-streamer.c (lto_is_streamable): Move to lto-streamer-out.c
5966         * streamer-hooks.h (struct streamer_hooks): Remove fields
5967         name, is_streamable and alloc_tree. Update all users.
5968         * tree-streamer-in.c (tree_read_bitfields): Factor out of ...
5969         (lto_materialize_tree): ... here.
5970         Handle CALL_EXPR codes.
5971         Remove call to lto_streamer_cache_append.
5972         * tree-streamer-out.c (lto_output_tree_header): Handle CALL_EXPR nodes.
5973         * tree-streamer.h (tree_read_bitfields): Declare.
5974
5975         * Makefile.in (TREE_STREAMER_H): Add STREAMER_HOOKS_H.
5976         (gimple-streamer-in.o): Add dependency on TREE_STREAMER_H.
5977         * tree-streamer.h (stream_read_tree): New.  Replace all calls
5978         to lto_input_tree with it.
5979         (stream_write_tree): New.  Replace all calls to lto_output_tree,
5980         lto_output_tree_ref and lto_output_tree_or_ref with it.
5981         * lto-streamer-in.c (lto_read_tree): Inline code from
5982         lto_streamer_read_tree.
5983         (lto_input_tree): Move from tree-streamer-in.c.
5984         * lto-streamer-out.c (lto_output_tree_ref): Make static.
5985         Remove handling of NULL values for EXPR.
5986         Do not handle EXPRs that are not indexable.
5987         (lto_write_tree): Move from tree-streamer-out.c.
5988         Inline lto_streamer_write_tree.
5989         (lto_output_tree): Move from tree-streamer-out.c.
5990         If REF_P is true and EXPR is indexable, call lto_output_tree_ref.
5991         * lto-streamer.c (lto_record_common_node): Move to tree-streamer.c.
5992         (lto_preload_common_nodes): Likewise.
5993         Remove assertions and adjustments for nodes
5994         main_identifier_node, ptrdiff_type_node and fileptr_type_node.
5995         (lto_streamer_hooks_init): Set streamer_hooks.write_tree to
5996         lto_output_tree and streamer_hooks.read_tree to lto_input_tree.
5997         * lto-streamer.h (lto_input_tree): Declare.
5998         (lto_output_tree_ref): Remove.
5999         * streamer-hooks.h (struct streamer_hooks): Remove fields
6000         preload_common_nodes, indexable_with_decls_p,
6001         pack_value_fields, unpack_value_fields and output_tree_header.
6002         Update all users.
6003         * tree-streamer-in.c (lto_materialize_tree): Make extern.
6004         (lto_input_tree_pointers): Likewise.
6005         (lto_read_tree): Move to lto-streamer-in.c.
6006         (lto_input_integer_cst): Make extern.
6007         (lto_get_pickled_tree): Likewise.
6008         (lto_get_builtin_tree): Likewise.
6009         (lto_input_tree): Move to lto-streamer-in.c.
6010         * tree-streamer-out.c (pack_value_fields): Make extern.
6011         (lto_output_tree_or_ref): Remove.  Replace all callers with
6012         calls to stream_write_tree.
6013         (lto_output_builtin_tree): Make extern.
6014         (lto_streamer_write_tree): Inline into lto_write_tree.
6015         (lto_output_tree_pointers): Make extern.
6016         (lto_output_tree_header): Likewise.
6017         (lto_output_integer_cst): Likewise.
6018         (lto_write_tree): Move to lto-streamer-out.c.
6019         (lto_output_tree): Likewise.
6020         * tree-streamer.c (lto_record_common_node): Move from lto-streamer.c
6021         (preload_common_nodes): Likewise.
6022         (lto_streamer_cache_create): Call it.
6023         * tree-streamer.h: Include streamer-hooks.h.
6024         (stream_write_tree): New.
6025         (stream_read_tree): New.
6026         (lto_input_tree): Remove.
6027         (lto_materialize_tree): Declare.
6028         (lto_input_tree_pointers): Declare.
6029         (lto_get_pickled_tree): Declare.
6030         (lto_get_builtin_tree): Declare.
6031         (lto_input_integer_cst): Declare.
6032         (lto_output_tree_header): Declare.
6033         (pack_value_fields): Declare.
6034         (lto_output_tree_pointers): Declare.
6035         (lto_output_integer_cst): Declare.
6036         (lto_output_builtin_tree): Declare.
6037
6038 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
6039
6040         * sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge
6041         only if producer writes to the register given by regno.
6042
6043 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
6044             Alexander Monakov  <amonakov@ispras.ru>
6045
6046         * sched-deps.c (sched_get_condition_with_rev): Rename to ...
6047         (sched_get_condition_with_rev_uncached): ... this.  Factor out
6048         condition caching logic into ...
6049         (sched_get_condition_with_rev): ... this.  Reimplement.  Do not
6050         attempt to use cache for instructions with zero luid.
6051         (sched_analyze_insn): Use INSN_CACHED_COND instead of INSN_COND.
6052         * sched-int.h (INSN_COND): Rename to INSN_CACHED_COND.
6053
6054 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
6055
6056         * sel-sched-ir.c (get_seqno_of_a_pred): Rename to
6057         get_seqno_for_a_jump.  Update the caller.
6058         (get_seqno_by_succs): New.  Use it ...
6059         (get_seqno_for_a_jump): ... here to find a seqno if looking at
6060         predecessors was not sufficient.
6061         (get_seqno_by_preds): Include head in iteration range, exclude insn.
6062
6063 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
6064
6065         * sel-sched-ir.c (invalidate_av_set): Remove the assert.
6066
6067 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
6068
6069         * sel-sched-ir.h (register_unavailable_p): Declare.
6070         * sel-sched-ir.c (register_unavailable_p): New.  Use it...
6071         (set_unavailable_target_for_expr): ... here to properly test
6072         availability of a register.
6073         (speculate_expr): Ditto.
6074         * sel-sched.c (substitute_reg_in_expr): Ditto.
6075         (av_set_could_be_blocked_by_bookkeeping_p): Ditto.
6076
6077 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
6078
6079         * sel-sched.c (verify_target_availability): Fix usage of
6080         hard_regno_nregs.
6081
6082 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
6083
6084         * sel-sched-ir.c (init_global_and_expr_for_insn): Forbid copying of
6085         recognized by cannot_copy_insn_p hook and volatile instructions.
6086
6087 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
6088
6089         * sel-sched-ir.c (merge_expr_data): Take maximum spec.
6090
6091 2011-08-11  Richard Sandiford  <richard.sandiford@linaro.org>
6092
6093         * doc/md.texi (define_bypass): Say that the instruction names can
6094         be filename-style globs.
6095         * Makefile.in (FNMATCH_H): Define.
6096         (build/genattrtab.o, build/genautomata.o): Depend on $(FNMATCH_H).
6097         * genattrtab.c: Include fnmatch.h.
6098         (bypass_list): Change field name from "insn" to "pattern".
6099         (gen_bypass_1): Update accordingly.
6100         (process_bypasses): Use fnmatch to check for matches between
6101         insn reservations and define_bypasses.
6102         * genautomata.c: Include fnmatch.h.
6103         (bypass_decl): Rename in_insn_name and out_insn_name to in_pattern
6104         and out_pattern respectively.
6105         (gen_bypass, insert_bypass): Update accordingly.
6106         (for_each_matching_insn, process_bypass_2, process_bypass_1)
6107         (process_bypass): New functions.
6108         (process_decls): Use process_bypass.  Update after field name changes.
6109
6110 2011-08-11  Georg-Johann Lay  <avr@gjlay.de>
6111
6112         PR target/49687
6113         * config/avr/avr.md (smulqi3_highpart): New insn.
6114         (umulqi3_highpart): New insn.
6115         (*subqi3.ashiftrt7): New insn.
6116         (smulhi3_highpart): New expander.
6117         (umulhi3_highpart): Nex expander.
6118         (*smulhi3_highpart_call): New insn.
6119         (*umulhi3_highpart_call): New insn.
6120         (extend_u): New code attribute.
6121         (extend_prefix): Rename code attribute to extend_su.
6122         * config/avr/avr.c (avr_rtx_costs): Report costs of highpart of
6123         widening QI/HI multiply.
6124
6125 2011-08-11  Ira Rosen  <ira.rosen@linaro.org>
6126
6127         PR tree-optimization/50039
6128         * tree-vect-patterns.c (vect_operation_fits_smaller_type): Check
6129         that DEF_STMT has a stmt_vec_info.
6130
6131 2011-08-10  Richard Guenther  <rguenther@suse.de>
6132
6133         * tree.h (can_trust_pointer_alignment): Remove.
6134         * builtins.c (can_trust_pointer_alignment): Remove.
6135
6136 2011-08-10  Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
6137
6138         * c-typeck.c (scalar_to_vector): New function. Try scalar to
6139         vector conversion.
6140         (stv_conv): New enum for scalar_to_vector return type.
6141         (build_binary_op): Adjust.
6142         * doc/extend.texi: Description of scalar to vector expansion.
6143
6144 2011-08-10  Richard Guenther  <rguenther@suse.de>
6145
6146         * tree.h (get_pointer_alignment): Remove max-align argument.
6147         (get_object_alignment): Likewise.
6148         * builtins.c (get_object_alignment_1): Adjust.
6149         (get_object_alignment): Remove max-align argument.
6150         (get_pointer_alignment): Likewise.
6151         (expand_builtin_strlen): Adjust.
6152         (expand_builtin_memcpy): Likewise.
6153         (expand_builtin_mempcpy_args): Likewise.
6154         (expand_builtin_strncpy): Likewise.
6155         (expand_builtin_memset_args): Likewise.
6156         (expand_builtin_memcmp): Likewise.
6157         (expand_builtin_strcmp): Likewise.
6158         (expand_builtin_strncmp): Likewise.
6159         (get_builtin_sync_mem): Likewise.
6160         (fold_builtin_memset): Likewise.
6161         (fold_builtin_memory_op): Likewise.
6162         (expand_builtin_memory_chk): Likewise.
6163         * emit-rtl.c (get_mem_align_offset): Likewise.
6164         (set_mem_attributes_minus_bitpos): Likewise.
6165         * expr.c (expand_assignment): Likewise.
6166         (expand_expr_real_1): Likewise.
6167         * tree-sra.c (tree_non_mode_aligned_mem_p): Likewise.
6168         * tree-ssa-forwprop.c (simplify_builtin_call): Likewise.
6169         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Likewise.
6170         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
6171         * value-prof.c (gimple_stringops_transform): Likewise.
6172
6173 2011-08-10  Paulo J. Matos  <paulo.matos@csr.com>
6174
6175         * doc/tm.texi.in (CLASS_MAX_NREGS): Fix typo.
6176         * doc/tm.texi: Regenerate.
6177
6178 2011-08-10  Georg-Johann Lay  <avr@gjlay.de>
6179
6180         PR target/29560
6181         * config/avr/avr.md (*ashlhiqi3): New insn-and-split.
6182         (*ashl<extend_prefix>qihiqi3): New insn-and-splits.
6183         (*ashl<extend_prefix>qihiqi3.mem): New insn-and-splits.
6184         Add peephole2 to map ashlhi3 to ashlqi3 if high part of
6185         shift target is unused.
6186
6187 2011-08-10  Richard Guenther  <rguenther@suse.de>
6188
6189         PR tree-optimization/49937
6190         * tree-ssa-ccp.c (get_value_from_alignment): Re-implement
6191         using get_object_alignment_1.
6192
6193 2011-08-09  Uros Bizjak  <ubizjak@gmail.com>
6194
6195         * config/i386/i386.c (ix86_emit_i387_round): New function.
6196         * config/i386/i386-protos.h (ix86_emit_i387_round): Declare.
6197         * config/i386/i386.md (round<mode>2): Use X87MODEF mode iterator.
6198         Use ix86_emit_i387_round to expand round function for i387 math.
6199         (lround<X87MODEF:mode><SWI248x:mode>2): Use X87MODEF mode iterator.
6200         Use ix86_emit_i387_round to expand {l,ll}round function for i387 math.
6201
6202 2011-08-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6203
6204         * config/sync.c: Move to ../libgcc.
6205         * Makefile.in (libgcc.mvars): Remove LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS.
6206         * config/mips/t-libgcc-mips16 (LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS):
6207         Remove.
6208
6209 2011-08-09  Anatoly Sokolov  <aesok@post.ru>
6210
6211         * config/mmix/mmix.h (REGISTER_MOVE_COST): Remove macro.
6212         * config/mmix/mmix-protos.h (mmix_register_move_cost): Remove.
6213         * config/mmix/mmix.c (mmix_register_move_cost): Make static.
6214         Change 'from' and 'to' arguments type to reg_class_t.
6215         (TARGET_REGISTER_MOVE_COST): Define.
6216
6217 2011-08-09  Vladimir Makarov  <vmakarov@redhat.com>
6218
6219         PR target/50026
6220         Revert:
6221         PR rtl-optimization/49990
6222         * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
6223         ignore classes which can not change mode.
6224         (find_costs_and_classes): Ditto.
6225
6226 2011-08-09  Richard Guenther  <rguenther@suse.de>
6227
6228         * tree-vrp.c (zero_nonzero_bits_from_vr): Also return precise
6229         information for ranges with only negative values.
6230         (extract_range_from_binary_expr_1): Adjust BIT_IOR_EXPR and
6231         BIT_AND_EXPR handling to handle ranges with negative values.
6232
6233 2011-08-09  Kirill Yukhin  <kirill.yukhin@intel.com>
6234
6235         * config/i386/i386.c: Remove traling spaces.
6236         * config/i386/sse.md: Likewise.
6237         (*fma_fmadd_<mode>): Fix insn alternative 1 mnemonic.
6238         (*fma_fmsub_<mode>): Likewise.
6239         (*fma_fnmadd_<mode>): Likewise.
6240         (*fma_fnmsub_<mode>): Likewise.
6241
6242 2011-08-09  Nick Clifton  <nickc@redhat.com>
6243
6244         * config/rx/rx.md: Disable extender peepholes at -O3.
6245
6246 2011-08-09  Uros Bizjak  <ubizjak@gmail.com>
6247
6248         PR target/49781
6249         * config/i386/i386.md (reload_noff_load): New.
6250         (reload_noff_store): Ditto.
6251         * config/i386/i386.c (ix86_secondary_reload): Use
6252         CODE_FOR_reload_noff_load and CODE_FOR_reload_noff_store to handle
6253         double-word moves from/to non-offsetable addresses instead of
6254         generating XMM temporary.
6255
6256 2011-08-09  Anatoly Sokolov  <aesok@post.ru>
6257
6258         * config/mmix/mmix.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Remove.
6259
6260 2011-08-09  Ira Rosen  <ira.rosen@linaro.org>
6261
6262         PR tree-optimization/50014
6263         * tree-vect-loop.c (vectorizable_reduction): Get def type before
6264         calling vect_get_vec_def_for_stmt_copy ().
6265
6266 2011-08-08  Vladimir Makarov  <vmakarov@redhat.com>
6267
6268         PR rtl-optimization/49990
6269         * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
6270         ignore classes which can not change mode.
6271         (find_costs_and_classes): Ditto.
6272
6273 2011-08-08  Richard Henderson  <rth@redhat.com>
6274
6275         PR middle-end/49990
6276         * config/i386/i386.c (ix86_expand_prologue): Call
6277         for SEH target gen_prologue_use instead of gen_blockage
6278         at prologue's end.
6279
6280 2011-08-08  Martin Jambor  <mjambor@suse.cz>
6281
6282         PR middle-end/49923
6283         * tree-sra.c (access_precludes_ipa_sra_p): Also check access
6284         memory alignment.
6285
6286 2011-08-08   Diego Novillo  <dnovillo@google.com>
6287
6288         * Makefile.in (LTO_STREAMER_H): Add DIAGNOSTIC_H.
6289         (DATA_STREAMER_H): New.
6290         (GIMPLE_STREAMER_H): New.
6291         (TREE_STREAMER_H): New.
6292         (STREAMER_HOOKS_H): New.
6293         (OBJS): Add data-streamer.o, data-streamer-in.o, data-streamer-out.o,
6294         gimple-streamer-in.o, gimple-streamer-out.o, streamer-hooks.o,
6295         tree-streamer.o, tree-streamer-in.o and tree-streamer-out.o.
6296         (data-streamer.o): New.
6297         (data-streamer-in.o): New.
6298         (data-streamer-out.o): New.
6299         (gimple-streamer-in.o): New.
6300         (gimple-streamer-out.o): New.
6301         (streamer-hooks.o): New.
6302         (tree-streamer.o): New.
6303         (tree-streamer-in.o): New.
6304         (tree-streamer-out.o): New.
6305         (lto-cgraph.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
6306         (lto-streamer-in.o): Add dependency on DATA_STREAMER_H,
6307         GIMPLE_STREAMER_H and TREE_STREAMER_H.
6308         (lto-streamer-out.o): Add dependency on DATA_STREAMER_H,
6309         GIMPLE_STREAMER_H and TREE_STREAMER_H.
6310         (lto-streamer.o): Add dependency on STREAMER_HOOKS_H.
6311         (ipa-prop.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
6312         (ipa-inline-analysis.o): Likewise.
6313         (ipa-pure-const.o): Likewise.
6314         * data-streamer-in.c: New.
6315         * data-streamer-out.c: New.
6316         * data-streamer.c: New.
6317         * data-streamer.h: New.
6318         * gimple-streamer-in.c: New.
6319         * gimple-streamer-out.c: New.
6320         * gimple-streamer.h: New.
6321         * ipa-inline-analysis.c: Include data-streamer.h.
6322         * ipa-prop.c: Include data-streamer.h.
6323         * ipa-pure-const.c: Include data-streamer.h.
6324         * lto-cgraph.c: Include data-streamer.h.
6325         * lto-section-in.c (lto_input_uleb128): Move to data-streamer-in.c.
6326         (lto_input_widest_uint_uleb128): Likewise.
6327         (lto_input_sleb128): Likewise.
6328         (bp_unpack_var_len_unsigned): Likewise.
6329         (bp_unpack_var_len_int): Likewise.
6330         * lto-section-out.c (lto_output_uleb128_stream): Move to
6331         data-streamer-out.c.
6332         (lto_output_widest_uint_uleb128_stream): Likewise.
6333         (lto_output_sleb128_stream): Likewise.
6334         (bp_pack_var_len_unsigned): Likewise.
6335         (bp_pack_var_len_int): Likewise.
6336         * lto-streamer-in.c: Include data-streamer.h and gimple-streamer.h.
6337         (struct string_slot): Remove.  Update all users.
6338         (lto_tag_check_set): Make extern.
6339         (lto_tag_check_range): Move to lto-streamer.h.
6340         (lto_tag_check): Likewise.
6341         (hash_string_slot_node): Remove.  Update all users.
6342         (eq_string_slot_node): Remove.  Update all users.
6343         (string_for_index): Move to data-streamer-in.c
6344         (input_string_internal): Likewise.
6345         (input_string_cst): Move to tree-streamer-in.c.
6346         (input_identifier): Likewise.
6347         (lto_input_string): Move to data-streamer-in.c
6348         (input_record_start): Move to data-streamer.h
6349         (canon_file_name): Use new definition of struct string_slot
6350         from data-streamer.h.  Set S_SLOT.LEN.
6351         (lto_input_location): Make extern.
6352         (lto_input_chain): Move to tree-streamer-in.c.
6353         (lto_init_eh): Make extern.
6354         (input_phi): Move to gimple-streamer-in.c.
6355         (input_gimple_stmt): Likewise.
6356         (input_bb): Likewise.
6357         (unpack_ts_base_value_fields): Move to tree-streamer-in.c.
6358         (unpack_ts_real_cst_value_fields): Likewise.
6359         (unpack_ts_fixed_cst_value_fields): Likewise.
6360         (unpack_ts_decl_common_value_fields): Likewise.
6361         (unpack_ts_decl_wrtl_value_fields): Likewise.
6362         (unpack_ts_decl_with_vis_value_fields): Likewise.
6363         (unpack_ts_function_decl_value_fields): Likewise.
6364         (unpack_ts_type_common_value_fields): Likewise.
6365         (unpack_ts_block_value_fields): Likewise.
6366         (unpack_ts_translation_unit_decl_value_fields): Likewise.
6367         (unpack_value_fields): Likewise.
6368         (lto_materialize_tree): Likewise.
6369         (lto_input_ts_common_tree_pointers): Likewise.
6370         (lto_input_ts_vector_tree_pointers): Likewise.
6371         (lto_input_ts_complex_tree_pointers): Likewise.
6372         (lto_input_ts_decl_minimal_tree_pointers): Likewise.
6373         (lto_input_ts_decl_common_tree_pointers): Likewise.
6374         (lto_input_ts_decl_non_common_tree_pointers): Likewise.
6375         (lto_input_ts_decl_with_vis_tree_pointers): Likewise.
6376         (lto_input_ts_field_decl_tree_pointers): Likewise.
6377         (lto_input_ts_function_decl_tree_pointers): Likewise.
6378         (lto_input_ts_type_common_tree_pointers): Likewise.
6379         (lto_input_ts_type_non_common_tree_pointers): Likewise.
6380         (lto_input_ts_list_tree_pointers): Likewise.
6381         (lto_input_ts_vec_tree_pointers): Likewise.
6382         (lto_input_ts_exp_tree_pointers): Likewise.
6383         (lto_input_ts_block_tree_pointers): Likewise.
6384         (lto_input_ts_binfo_tree_pointers): Likewise.
6385         (lto_input_ts_constructor_tree_pointers): Likewise.
6386         (lto_input_ts_target_option): Likewise.
6387         (lto_input_ts_translation_unit_decl_tree_pointers): Likewise.
6388         (lto_input_tree_pointers): Likewise.
6389         (lto_get_pickled_tree): Likewise.
6390         (lto_get_builtin_tree): Likewise.
6391         (lto_read_tree): Likewise.
6392         (lto_input_integer_cst): Likewise.
6393         (lto_input_tree): Likewise.
6394         * lto-streamer-out.c: Include data-streamer.h,
6395         gimple-streamer.h and streamer-hooks.h.
6396         (struct string_slot): Move to data-streamer.h.
6397         (hash_string_slot_node): Likewise.
6398         (eq_string_slot_node): Likewise.
6399         (lto_string_index): Move to data-streamer-out.c.
6400         (lto_output_string_with_length): Likewise.
6401         (lto_output_string): Likewise.
6402         (output_string_cst): Move to tree-streamer-out.c.
6403         (output_identifier): Likewise.
6404         (output_zero): Move to data-streamer-out.c
6405         (output_uleb128): Likewise.
6406         (output_sleb128): Likewise.
6407         (output_record_start): Move to data-streamer.h
6408         (pack_ts_base_value_fields): Move to tree-streamer-out.c.
6409         (pack_ts_real_cst_value_fields): Likewise.
6410         (pack_ts_fixed_cst_value_fields): Likewise.
6411         (pack_ts_decl_common_value_fields): Likewise.
6412         (pack_ts_decl_wrtl_value_fields): Likewise.
6413         (pack_ts_decl_with_vis_value_fields): Likewise.
6414         (pack_ts_function_decl_value_fields): Likewise.
6415         (pack_ts_type_common_value_fields): Likewise.
6416         (pack_ts_block_value_fields): Likewise.
6417         (pack_ts_translation_unit_decl_value_fields): Likewise.
6418         (pack_value_fields): Likewise.
6419         (lto_output_chain): Likewise.
6420         (lto_output_ts_common_tree_pointers): Likewise.
6421         (lto_output_ts_vector_tree_pointers): Likewise.
6422         (lto_output_ts_complex_tree_pointers): Likewise.
6423         (lto_output_ts_decl_minimal_tree_pointers): Likewise.
6424         (lto_output_ts_decl_common_tree_pointers): Likewise.
6425         (lto_output_ts_decl_non_common_tree_pointers): Likewise.
6426         (lto_output_ts_decl_with_vis_tree_pointers): Likewise.
6427         (lto_output_ts_field_decl_tree_pointers): Likewise.
6428         (lto_output_ts_function_decl_tree_pointers): Likewise.
6429         (lto_output_ts_type_common_tree_pointers): Likewise.
6430         (lto_output_ts_type_non_common_tree_pointers): Likewise.
6431         (lto_output_ts_list_tree_pointers): Likewise.
6432         (lto_output_ts_vec_tree_pointers): Likewise.
6433         (lto_output_ts_exp_tree_pointers): Likewise.
6434         (lto_output_ts_block_tree_pointers): Likewise.
6435         (lto_output_ts_binfo_tree_pointers): Likewise.
6436         (lto_output_ts_constructor_tree_pointers): Likewise.
6437         (lto_output_ts_target_option): Likewise.
6438         (lto_output_ts_translation_unit_decl_tree_pointers): Likewise.
6439         (lto_output_tree_pointers): Likewise.
6440         (lto_output_tree_header): Likewise.
6441         (lto_output_builtin_tree): Likewise.
6442         (lto_write_tree): Likewise.
6443         (lto_output_integer_cst): Likewise.
6444         (lto_output_tree): Likewise.
6445         (output_phi): Move to gimple-streamer-out.c.
6446         (output_gimple_stmt): Likewise.
6447         (output_bb): Likewise.
6448         * lto-streamer.c: Include tree-streamer.h and streamer-hooks.h.
6449         (streamer_hooks): Move to streamer-hooks.c.
6450         (check_handled_ts_structures): Move to tree-streamer.c
6451         (lto_streamer_cache_add_to_node_array): Likewise.
6452         (lto_streamer_cache_insert_1): Likewise.
6453         (lto_streamer_cache_insert): Likewise.
6454         (lto_streamer_cache_insert_at): Likewise.
6455         (lto_streamer_cache_append): Likewise.
6456         (lto_streamer_cache_lookup): Likewise.
6457         (lto_streamer_cache_get): Likewise.
6458         (lto_record_common_node): Likewise.
6459         (lto_preload_common_nodes): Likewise.
6460         (lto_streamer_cache_create): Likewise.
6461         (lto_streamer_cache_delete): Likewise.
6462         (streamer_hooks_init): Move to streamer-hooks.c.
6463         * lto-streamer.h: Include diagnostic.h
6464         (struct output_block, struct lto_input_block,
6465         struct data_in, struct bitpack_d): Remove forward declarations.
6466         (struct bitpack_d): Move to data-streamer.h.
6467         (struct lto_streamer_cache_d): Move to tree-streamer.h.
6468         (struct streamer_hooks): Move to streamer-hooks.h.
6469         (bp_pack_var_len_unsigned): Move to data-streamer.h.
6470         (bp_pack_var_len_int): Likewise.
6471         (bp_unpack_var_len_unsigned): Likewise.
6472         (bp_unpack_var_len_int): Likewise.
6473         (lto_input_location): Declare.
6474         (lto_tag_check_set): Declare.
6475         (lto_init_eh): Declare.
6476         (lto_output_tree_ref): Declare.
6477         (lto_output_location): Declare.
6478         (bitpack_create): Move to data-streamer.h.
6479         (bp_pack_value): Likewise.
6480         (lto_output_bitpack): Likewise.
6481         (lto_input_bitpack): Likewise.
6482         (bp_unpack_value): Likewise.
6483         (lto_output_1_stream): Likewise.
6484         (lto_input_1_unsigned): Likewise.
6485         (lto_output_int_in_range): Likewise.
6486         (lto_input_int_in_range): Likewise.
6487         (bp_pack_int_in_range): Likewise.
6488         (bp_unpack_int_in_range): Likewise.
6489         (lto_output_enum): Likewise.
6490         (lto_input_enum): Likewise.
6491         (bp_pack_enum): Likewise.
6492         (bp_unpack_enum): Likewise.
6493         * streamer-hooks.c: New.
6494         * streamer-hooks.h: New.
6495         * tree-streamer-in.c: New.
6496         * tree-streamer-out.c: New.
6497         * tree-streamer.c: New.
6498         * tree-streamer.h: New.
6499
6500 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6501
6502         * gthr-posix95.h: Remove.
6503         * gthr.h [_PTHREADS95]: Remove.
6504         * configure.ac (enable_threads): Remove posix95.
6505         * configure: Regenerate.
6506         * doc/install.texi (Configuration, --enable-threads): Remove posix95.
6507
6508 2011-08-08  Uros Bizjak  <ubizjak@gmail.com>
6509
6510         PR target/49781
6511         * config/i386/i386.c (ix86_decompose_address): Allow zero-extended
6512         SImode addresses.
6513         (ix86_print_operand_address): Handle zero-extended addresses.
6514         (memory_address_length): Add length of addr32 prefix for
6515         zero-extended addresses.
6516         (ix86_secondary_reload): Handle moves to/from double-word general
6517         registers from/to zero-extended addresses.
6518         * config/i386/predicates.md (lea_address_operand): Reject
6519         zero-extended operands.
6520
6521 2011-08-08  H.J. Lu  <hongjiu.lu@intel.com>
6522
6523         PR other/48007
6524         * config.gcc (libgcc_tm_file): Add i386/value-unwind.h for Linux/x86.
6525
6526         * system.h (REG_VALUE_IN_UNWIND_CONTEXT): Poisoned.
6527         (ASSUME_EXTENDED_UNWIND_CONTEXT): Likewise.
6528
6529         * unwind-dw2.c (ASSUME_EXTENDED_UNWIND_CONTEXT): New.
6530         (_Unwind_Context_Reg_Val): Likewise.
6531         (_Unwind_Get_Unwind_Word): Likewise.
6532         (_Unwind_Get_Unwind_Context_Reg_Val): Likewise.
6533         (_Unwind_Context): Use _Unwind_Context_Reg_Val on the reg field.
6534         (_Unwind_IsExtendedContext): Check ASSUME_EXTENDED_UNWIND_CONTEXT
6535         for EXTENDED_CONTEXT_BIT.
6536         (__frame_state_for): Likewise.
6537         (uw_init_context_1): Likewise.
6538         (_Unwind_GetGR): Updated.
6539         (_Unwind_SetGR): Likewise.
6540         (_Unwind_GetGRPtr): Likewise.
6541         (_Unwind_SetGRPtr): Likewise.
6542         (_Unwind_SetGRValue): Likewise.
6543         (_Unwind_GRByValue): Likewise.
6544         (uw_install_context_1): Likewise.
6545
6546         * doc/tm.texi.in: Document REG_VALUE_IN_UNWIND_CONTEXT and
6547         ASSUME_EXTENDED_UNWIND_CONTEXT.
6548         * doc/tm.texi: Regenerated.
6549
6550 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6551
6552         * Makefile.in (gengtype$(exeext)): Add $(LDFLAGS).
6553
6554 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6555
6556         * doc/invoke.texi (DEC Alpha Options, -mcpu): native support isn't
6557         Linux/GNU-specific.
6558         (DEC Alpha Options, -mtune): Likewise.
6559         (MIPS Options, -march): native is supported on IRIX.
6560
6561 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6562
6563         * config/sparc/driver-sparc.c: New file.
6564         * config/sparc/x-sparc: New file.
6565         * config.host: Use driver-sparc.o, sparc/x-sparc on sparc*-*-solaris2*.
6566         * config/sparc/sparc.opt (native): New value for enum processor_type.
6567         * config/sparc/sparc-opts.h (PROCESSOR_NATIVE): Declare.
6568         * config/sparc/sparc.c (sparc_option_override): Abort if
6569         PROCESSOR_NATIVE gets here.
6570         * config/sparc/sol2.h [__sparc__] (host_detect_local_cpu): Declare.
6571         (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS,
6572         DRIVER_SELF_SPECS): Define.
6573         * doc/invoke.texi (SPARC Options, -mcpu): Document native.
6574         (SPARC Options, -mtune): Likewise.
6575         * configure.ac (EXTRA_GCC_LIBS): Check for libkstat.
6576         Substitute result.
6577         * configure: Regenerate.
6578         * Makefile.in (EXTRA_GCC_LIBS): Set.
6579         (xgcc$(exeext)): Add $(EXTRA_GCC_LIBS).
6580         (cpp$(exeext)): Likewise.
6581
6582 2011-08-08  Richard Guenther  <rguenther@suse.de>
6583
6584         * tree-vrp.c (extract_range_from_unary_expr_1): New function,
6585         split out from ...
6586         (extract_range_from_unary_expr): ... here.  Handle BIT_NOT_EXPR
6587         by composition.
6588
6589 2011-08-08  Mikael Pettersson  <mikpe@it.uu.se>
6590
6591         PR tree-optimization/50005
6592         * ipa-inline-analysis (remap_predicate): Add cast to
6593         silence signed/unsigned comparison warning.
6594
6595 2011-08-08  Richard Sandiford  <richard.sandiford@linaro.org>
6596
6597         * modulo-sched.c (get_sched_window): Use a table for the debug output.
6598         Print the current ii.
6599         (sms_schedule_by_order): Reduce whitespace in dump line.
6600
6601 2011-08-08  Richard Sandiford  <richard.sandiford@linaro.org>
6602
6603         * modulo-sched.c (get_sched_window): Use just one loop for predecessors
6604         and one loop for successors.  Fix upper bound of memory range.
6605
6606 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
6607
6608         PR target/50001
6609         * config/alpha/alpha.c (alpha_instantiate_decls): New function.
6610         (TARGET_INSTANTIATE_DECLS): New define.
6611
6612 2011-08-06  Paolo Bonzini  <bonzini@gnu.org>
6613             Mikael Morin   <mikael.morin@sfr.fr>
6614
6615         * Makefile.in (INCLUDES_FOR_TARGET): New.
6616         (LIBGCC2_CFLAGS): Use it.
6617         (CRTSTUFF_CFLAGS): Use it instead of INCLUDES.
6618
6619 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
6620
6621         * config/i386/i386.c (ix86_compute_frame_layout): Simplify
6622         frame->save_regs_using_mov calculation.
6623
6624 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
6625
6626         * config/i386/i386.md (ssemodesuffix): Remove V8SI mode.
6627         * config/i386/sse.md (castmode): New mode attribute.
6628         (avx_<castmode><avxsizesuffix>_<castmode>): Rename from
6629         avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>.
6630
6631 2011-08-05  Jan Hubicka  <jh@suse.cz>
6632
6633         PR middle-end/49494
6634         * ipa-inline-analysis.c (remap_predicate): Add bounds check.
6635
6636 2011-08-05  Jan Hubicka  <jh@suse.cz>
6637
6638         PR middle-end/49500
6639         * tree-emultls.c (new_emutls_decl):Add alias_of parameter;
6640         handle aliases.
6641         (create_emultls_var):New function.
6642         (ipa_lower_emutls): Handle aliases correctly.
6643
6644 2011-08-05  Jan Hubicka  <jh@suse.cz>
6645
6646         PR middle-end/49735
6647         * ipa-inline.c (recursive_inlining): Look through aliases.
6648
6649 2011-08-05  Jason Merrill  <jason@redhat.com>
6650
6651         * config/i386/i386.c (setup_incoming_varargs_ms_64): Move
6652         declarations to beginning of function.
6653
6654 2011-08-05  Bernd Schmidt  <bernds@codesourcery.com>
6655
6656         PR rtl-optimization/49900
6657         * sched-ebb.c (add_deps_for_risky_insns): Also add dependencies to
6658         ensure basic blocks stay in the same order.
6659
6660 2011-08-05  Aldy Hernandez  <aldyh@redhat.com>
6661
6662         * config/s390/s390.c (s390_expand_cs_hqi): Add new arguments to
6663         store_bit_field.
6664         (s390_expand_atomic): Same.
6665
6666 2011-08-05  Richard Henderson  <rth@redhat.com>
6667
6668         PR rtl-opt/49977
6669         * dwarf2cfi.c (scan_insn_after): Split out of ...
6670         (scan_trace): ... here.  Correctly place notes wrt sequences.
6671
6672 2011-08-05  Kaz Kojima  <kkojima@gcc.gnu.org>
6673             Richard Henderson  <rth@redhat.com>
6674
6675         PR rtl-opt/49982
6676         * expr.c (fixup_args_size_notes): Look through no-op moves.
6677
6678 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
6679
6680         * config/i386/i386.md (*push<mode>2): Use "o" constraint instead
6681         of "m" for operand 0.  Add type and mode attribute.
6682         (*pushxf_nointeger"): Use "<" constraint for operand 0.
6683         (*pushdf_rex64): New pattern, split out of *pushdf.  Use "m"
6684         constraint instead of "o" for opreand 1.
6685         (*pushdf): Disable for TARGET_64BIT.  Correct mode attribute.
6686         (*movdi_internal_rex64): Use "!o" constraint instead of "!m" for
6687         operand 0, alternative 4.
6688         (*movdf_internal_rex64): Ditto for operand 0, alernative 6.
6689
6690 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
6691
6692         * config/i386/predicates.md (lea_address_operand): Rename from
6693         no_seg_address_operand.
6694         * config/i386/i386.md (*lea_1): Update operand 1 predicate for rename.
6695         (*lea_1_zext): Ditto.
6696         (*lea_2): Ditto.
6697         (*lea_2_zext): Ditto.
6698
6699 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
6700
6701         * config/i386/i386.c (ix86_print_operand_address): Handle SUBREGs of
6702         parts.base and parts.index.
6703         * config/i386/predicates.md (aligned_operand): Ditto.
6704         (cmpxchg8b_pic_memory_operand): Ditto.
6705
6706 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6707
6708         * config/soft-fp: Move to ../libgcc.
6709         * Makefile.in (SFP_MACHINE): Remove.
6710         (libgcc-support): Remove $(SFP_MACHINE) dependency.
6711         * config/arm/sfp-machine.h: Move to ../libgcc/config/arm.
6712         * config/arm/t-arm-softfp: Move to
6713         ../libgcc/config/arm/t-softfp.
6714         * config/c6x/sfp-machine.h: Move to ../libgcc/config/c6x.
6715         * config/c6x/t-c6x-softfp: Remove.
6716         * config/i386/sfp-machine.h: Move to ../libgcc/config/i386.
6717         * config/i386/t-fprules-softfp: Move to
6718         ../libgcc/config/t-softfp-tf.
6719         * config/ia64/sfp-machine.h: Move to ../libgcc/config/ia64.
6720         * config/ia64/t-fprules-softfp: Remove.
6721         * config/lm32/sfp-machine.h: Move to ../libgcc/config/lm32.
6722         * config/lm32/t-fprules-softfp: Remove.
6723         * config/moxie/sfp-machine.h: Remove.
6724         * config/moxie/t-moxie-softfp: Remove.
6725         * config/rs6000/darwin-ldouble-format: Move to
6726         ../libgcc/config/rs6000/ibm-ldouble-format.
6727         * config/rs6000/darwin-ldouble.c: Move to
6728         ../libgcc/config/rs6000/ibm-ldouble.c
6729         * config/rs6000/libgcc-ppc-glibc.ver: Move to ../libgcc/config/rs6000.
6730         * config/rs6000/libgcc-ppc64.ver: Likewise.
6731         * config/rs6000/sfp-machine.h: Likewise.
6732         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Remove
6733         $(srcdir)/config/rs6000/libgcc-ppc64.ver.
6734         (LIB2FUNCS_EXTRA): Remove.
6735         (TARGET_LIBGCC2_CFLAGS): Remove.
6736         * config/rs6000/t-aix52: Likewise
6737         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
6738         $(srcdir)/config/rs6000/darwin-ldouble.c.
6739         (SHLIB_MAPFILES): Remove.
6740         * config/rs6000/t-darwin64 (LIB2FUNCS_EXTRA): Remove
6741         $(srcdir)/config/rs6000/darwin-ldouble.c.
6742         * config/rs6000/t-fprules-softfp: Move to
6743         ../libgcc/config/t-softfp-sfdf.
6744         * config/rs6000/t-freebsd: Move to ../libgcc/config/rs6000.
6745         * config/rs6000/t-linux64 (softfp_wrap_start, softfp_wrap_end): Remove.
6746         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Remove
6747         $(srcdir)/config/rs6000/darwin-ldouble.c.
6748         * config/score/sfp-machine.h: Move to ../libgcc/config/score.
6749         * config/score/t-score-softfp: Remove.
6750         * config.gcc (arm*-*-linux*): Remove arm/t-arm-softfp,
6751         soft-fp/t-softfp from tmake_file.
6752         (arm*-*-uclinux*): Likewise.
6753         (arm*-*-ecos-elf): Likewise.
6754         (arm*-*-eabi*, arm*-*-symbianelf*): Likewise.
6755         (arm*-*-rtems*): Likewise.
6756         (arm*-*-elf): Likewise.
6757         (moxie-*-elf): Remove moxie/t-moxie-softfp, soft-fp/t-softfp from
6758         tmake_file.
6759         (moxie-*-uclinux*): Likewise.
6760         (moxie-*-rtems*): Likewise.
6761         (lm32-*-elf*): Remove lm32/t-fprules-softfp, soft-fp/t-softfp from
6762         tmake_file.
6763         (lm32-*-rtems*): Likewise.
6764         (lm32-*-uclinux*): Likewise.
6765         (powerpc-*-freebsd*): Remove rs6000/t-freebsd,
6766         rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
6767         (powerpc-*-linux*, powerpc64-*-linux*): Remove
6768         rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
6769         (score-*-elf): Remove score/t-score-softfp, soft-fp/t-softfp from
6770         tmake_file.
6771         (tic6x-*-elf): Remove c6x/t-c6x-softfp, soft-fp/t-softfp from
6772         tmake_file.
6773         (tic6x-*-uclinux): Likewise.
6774         (i[34567]86-*-darwin*, x86_64-*-darwin*): Remove i386/t-fprules-softfp,
6775         soft-fp/t-softfp from tmake_file.
6776         (i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu)
6777         (x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Likewise.
6778         (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Likewise.
6779         (i[34567]86-*-cygwin*, i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
6780         (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Likewise.
6781
6782 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6783
6784         * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS, TPBIT_FUNCS): Remove.
6785         (libgcc-support): Remove $(FPBIT), $(DPBIT), $(TPBIT) dependencies.
6786         (libgcc.mvars): Remove FPBIT, FPBIT_FUNCS, DPBIT, DPBIT_FUNCS,
6787         TPBIT, TPBIT_FUNCS.
6788         * config/fp-bit.c, config/fp-bit.h: Move to ../libgcc.
6789         * config/arm/t-strongarm-elf (FPBIT, DPBIT, dp-bit.c, fp-bit.c):
6790         Remove.
6791         * config/arm/t-vxworks: Likewise.
6792         * config/arm/t-wince-pe: Likewise.
6793         * config/avr/t-avr (fp-bit.c, FPBIT): Remove.
6794         * config/bfin/t-bfin (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
6795         * config/bfin/t-bfin-elf: Likewise.
6796         * config/bfin/t-bfin-linux: Likewise.
6797         * config/bfin/t-bfin-uclinux: Likewise.
6798         * config/cris/t-cris (FPBIT, DPBIT, dp-bit.c, tmplibgcc_fp_bit.c):
6799         Remove.
6800         * config/fr30/t-fr30: Likewise.
6801         * config/frv/t-frv: Likewise.
6802         * config/h8300/t-h8300 (FPBIT, fp-bit.c): Remove.
6803         * config/iq2000/t-iq2000 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
6804         * config/m32c/t-m32c: Likewise.
6805         * config/m32r/t-linux: (LIB2FUNCS_EXTRA, fp-bit.c, dp-bit.c): Remove.
6806         * config/m32r/t-m32r (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
6807         * config/mcore/t-mcore: Likewise.
6808         * config/mep/t-mep: Likewise.
6809         * config/microblaze/t-microblaze: Likewise.
6810         * config/mips/t-linux64 (TPBIT, tp-bit.c): Remove.
6811         * config/mips/t-mips (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
6812         * config/mips/t-sdemtk (FPBIT, DPBIT): Remove.
6813         * config/mips/t-sr71k (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
6814         * config/mn10300/t-linux: Remove.
6815         * config/mn10300/t-mn10300 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
6816         * config/pdp11/t-pdp11: Likewise.
6817         * config/picochip/t-picochip (FPBIT, fp-bit.c): Remove.
6818         * config/rs6000/ppc64-fp.c: Move to ../libgcc/config/rs6000.
6819         * config/rs6000/t-aix43 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
6820         (LIB2FUNCS_EXTRA): Remove $(srcdir)/config/rs6000/ppc64-fp.c.
6821         * config/rs6000/t-aix52: Likewise.
6822         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
6823         $(srcdir)/config/rs6000/ppc64-fp.c.
6824         * config/rs6000/t-fprules-fpbit: Remove.
6825         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Remove.
6826         * config/rs6000/t-lynx (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
6827         * config/sh/t-netbsd (FPBIT, DPBIT): Remove.
6828         * config/sh/t-sh (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
6829         * config/sparc/t-elf: Likewise.
6830         * config/sparc/t-leon: Likewise.
6831         * config/sparc/t-leon3: Likewise.
6832         * config/spu/t-spu-elf: Likewise.
6833         (DPBIT_FUNCS): Remove.
6834         * config/stormy16/t-stormy16 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
6835         * config/v850/t-v850: Likewise.
6836         * config.gcc (avr-*-rtems*): Add avr/avr-lib.h to libgcc_tm_file.
6837         (avr-*-*): Likewise.
6838         (h8300-*-rtems*): Set libgcc_tm_file.
6839         (h8300-*-elf*): Likewise.
6840         (powerpc-*-eabisimaltivec*): Remove rs6000/t-fprules-fpbit from
6841         tmake_file.
6842         (powerpc-*-eabisim*): Likewise.
6843         (powerpc-*-elf*): Likewise.
6844         (powerpc-*-eabialtivec*): Likewise.
6845         (powerpc-xilinx-eabi*): Likewise.
6846         (powerpc-*-eabi*): Likewise.
6847         (powerpc-*-rtems*): Likewise.
6848         (powerpc-wrs-vxworks, powerpc-wrs-vxworksae): Likewise.
6849         (powerpcle-*-elf*): Likewise.
6850         (powerpcle-*-eabisim*): Likewise.
6851         (powerpcle-*-eabi*): Likewise.
6852         (rx-*-elf*): Add rx/rx-lib.h to libgcc_tm_file.
6853         (am33_2.0-*-linux*): Remove mn10300/t-linux from tmake_file.
6854         * doc/fragments.texi (Target Fragment, Floating Point Emulation):
6855         Remove.
6856
6857 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6858
6859         * Makefile.in (UNWIND_H): Remove.
6860         (LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): Move to
6861         ../libgcc/Makefile.in.
6862         (LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL): Likewise.
6863         (LIBUNWINDDEP): Remove.
6864         (libgcc-support): Remove LIB2ADDEH, $(srcdir)/emutls.c dependencies.
6865         (libgcc.mvars): Remove LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED,
6866         LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL.
6867         (stmp-int-hdrs): Remove $(UNWIND_H) dependency.
6868         Don't copy $(UNWIND_H).
6869         * config.gcc (ia64*-*-linux*): Remove with_system_libunwind handling.
6870         * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Remove.
6871         * aclocal.m4: Regenerate.
6872         * configure: Regenerate.
6873         * emutls.c, unwind-c.c, unwind-compat.c, unwind-compat.h,
6874         unwind-dw2-fde-compat.c, unwind-dw2-fde-glibc.c, unwind-dw2-fde.c,
6875         unwind-dw2-fde.h, unwind-dw2.c, unwind-dw2.h, unwind-generic.h,
6876         unwind-pe.h, unwind-sjlj.c, unwind.inc: Move to ../libgcc.
6877         * unwind-dw2-fde-darwin.c: Move to ../libgcc/config.
6878         * config/arm/libunwind.S, config/arm/pr-support.c,
6879         config/arm/unwind-arm.c, config/arm/unwind-arm.h: Move to
6880         ../libgcc/config/arm.
6881         * config/arm/t-bpabi (UNWIND_H, LIB2ADDEH): Remove.
6882         * config/arm/t-symbian (UNWIND_H, LIB2ADDEH): Remove.
6883         * config/frv/t-frv ($(T)frvbegin$(objext)): Use
6884         $(srcdir)/../libgcc to refer to unwind-dw2-fde.h.
6885         ($(T)frvend$(objext)): Likewise.
6886         * config/ia64/t-glibc (LIB2ADDEH): Remove.
6887         * config/ia64/t-glibc-libunwind: Move to ../libgcc/config/ia64.
6888         * config/ia64/fde-glibc.c, config/ia64/fde-vms.c,
6889         config/ia64/unwind-ia64.c, config/ia64/unwind-ia64.h: Move to
6890         ../libgcc/config/ia64.
6891         * config/ia64/t-hpux (LIB2ADDEH): Remove.
6892         * config/ia64/t-ia64 (LIB2ADDEH): Remove.
6893         * config/ia64/t-vms (LIB2ADDEH): Remove.
6894         * config/ia64/vms.h (UNW_IVMS_MODE,
6895         MD_UNW_COMPATIBLE_PERSONALITY_P): Remove.
6896         * config/picochip/t-picochip (LIB2ADDEH): Remove.
6897         * config/rs6000/aix.h (R_LR, MD_FROB_UPDATE_CONTEXT): Remove.
6898         * config/rs6000/t-darwin (LIB2ADDEH): Remove.
6899         * config/rs6000/darwin-fallback.c: Move to ../libgcc/config/rs6000.
6900         * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): Use
6901         $(srcdir)/../libgcc to refer to unwinder sources.
6902         * config/spu/t-spu-elf (LIB2ADDEH): Remove.
6903         * config/t-darwin (LIB2ADDEH): Remove.
6904         * config/t-freebsd (LIB2ADDEH): Remove.
6905         * config/t-libunwind (LIB2ADDEH, LIB2ADDEHSTATIC): Remove.
6906         * config/t-libunwind-elf: Move to ../libgcc/config.
6907         * config/t-linux (LIB2ADDEH): Remove.
6908         * config/t-sol2 (LIB2ADDEH): Remove.
6909         * config/xtensa/t-xtensa (LIB2ADDEH): Remove.
6910         * system.h (MD_FROB_UPDATE_CONTEXT): Poison.
6911
6912 2011-08-05  H.J. Lu  <hongjiu.lu@intel.com>
6913
6914         * config/i386/i386.c (processor_alias_table): Add core-avx-i.
6915
6916         * doc/invoke.texi: Document core-avx-i.
6917
6918 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6919
6920         * tsystem.h (CONST_CAST2, CONST_CAST): Define.
6921
6922 2011-08-05  Ira Rosen  <ira.rosen@linaro.org>
6923
6924         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use the
6925         result of multiple results reduction when extracting the final
6926         value using scalar code.
6927
6928 2011-08-05  Richard Guenther  <rguenther@suse.de>
6929
6930         PR tree-optimization/49984
6931         * tree-vrp.c (extract_range_from_binary_expr_1): Handle BIT_XOR_EXPR.
6932
6933 2011-08-05  Richard Guenther  <rguenther@suse.de>
6934
6935         * tree-vrp.c (zero_nonzero_bits_from_vr): Make sure to always
6936         return true for constant integer ranges.
6937         (extract_range_from_binary_expr_1): Simplify BIT_AND_EXPR and
6938         BIT_IOR_EXPR handling.
6939
6940 2011-08-04  Kai Tietz  <ktietz@redhat.com>
6941
6942         * config/i386/i386.c (setup_incoming_varargs_ms_64): Set
6943         ix86_varargs_gpr_size and ix86_varargs_fpr_size to zero.
6944
6945 2011-08-04  Ira Rosen  <ira.rosen@linaro.org>
6946
6947         * tree-vectorizer.h (struct _stmt_vec_info): Add new field for
6948         pattern def statement, and its access macro.
6949         (NUM_PATTERNS): Set to 5.
6950         * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
6951         pattern def statement.
6952         (vect_transform_loop): Likewise.
6953         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add new
6954         function vect_recog_over_widening_pattern ().
6955         (vect_operation_fits_smaller_type): New function.
6956         (vect_recog_over_widening_pattern, vect_mark_pattern_stmts):
6957         Likewise.
6958         (vect_pattern_recog_1): Move the code that marks pattern
6959         statements to vect_mark_pattern_stmts (), and call it.  Update
6960         documentation.
6961         * tree-vect-stmts.c (vect_supportable_shift): New function.
6962         (vect_analyze_stmt): Handle pattern def statement.
6963         (new_stmt_vec_info): Initialize pattern def statement.
6964
6965 2011-08-04  Richard Henderson  <rth@redhat.com>
6966
6967         PR target/49964
6968         * config/i386/i386.c (ix86_expand_call): Don't create nested
6969         PARALLELs for TARGET_VZEROUPPER.
6970         (ix86_split_call_vzeroupper): Fix extraction of the original call.
6971         * config/i386/i386.md (*call_rex64_ms_sysv_vzeroupper): Don't
6972         recognize nested PARALLELs.
6973         (*call_pop_vzeroupper, *sibcall_pop_vzeroupper,
6974         *call_value_rex64_ms_sysv_vzeroupper, *call_value_pop_vzeroupper,
6975         *sibcall_value_pop_vzeroupper): Likewise.
6976
6977 2011-08-04  Richard Henderson  <rth@redhat.com>
6978
6979         PR middle-end/49968
6980         * calls.c (expand_call): Use fixup_args_size_notes for
6981         emit_stack_restore.
6982         * expr.c (fixup_args_size_notes): Allow STACK_POINTER_REGNUM sets
6983         in non-standard modes.
6984
6985 2011-08-04  Jakub Jelinek  <jakub@redhat.com>
6986
6987         * gcc.c (self_spec): New variable.
6988         (static_specs): Add self_spec.
6989         (main): Call do_self_spec on "self_spec" specs after reading
6990         user specs files.  Move compare_debug handling right after that.
6991
6992 2011-08-04  Richard Guenther  <rguenther@suse.de>
6993
6994         * tree-vrp.c (vrp_expr_computes_nonnegative): Remove.
6995         (value_range_nonnegative_p): New function.
6996         (ssa_name_nonnegative_p): Use it.
6997         (value_range_constant_singleton): New function.
6998         (op_with_constant_singleton_value_range): Use it.
6999         (extract_range_from_binary_expr_1): New function, split out from ...
7000         (extract_range_from_binary_expr): ... this.  Remove fallback
7001         constant folding done here.
7002
7003 2011-08-04  Richard Guenther  <rguenther@suse.de>
7004
7005         PR tree-optimization/49806
7006         * tree-vrp.c (op_with_boolean_value_range_p): New function.
7007         (simplify_truth_ops_using_ranges): Simplify.  Allow inserting
7008         a new statement for a final conversion to bool.
7009
7010 2011-08-04  Romain Geissler  <romain.geissler@gmail.com>
7011
7012         * gengtype-state.c: Include "bconfig.h" if
7013         GENERATOR_FILE is defined, "config.h" otherwise.
7014         * gengtype.c: Likewise.
7015         * gengtype-lex.l: Likewise.
7016         * gengtype-parse.c: Likewise.
7017         * Makefile.in (gengtype-lex.o-warn): New variable.
7018         (plugin_resourcesdir): Likewise.
7019         (plugin_bindir): Likewise.
7020         (plugin_includedir): Use $(plugin_resourcesdir) as prefix base.
7021         (MOSTLYCLEANFILES): Add gengtype$(exeext).
7022         (native): Depend on gengtype$(exeext) is $enable_plugin
7023         is set to "yes".
7024         (gtype.state): Depend on s-gtype. Use temporary file.
7025         (gengtype-lex.o): New rule.
7026         (gengtype-parse.o): Likewise.
7027         (gengtype-state.o): Likewise.
7028         (gengtype$(exeext)): Likewise.
7029         (install-gengtype): Likewise.
7030         (gengtype.o): Likewise.
7031         (build/gengtype.o): Depend on version.h.
7032         (build/gengtype-state): Depend on double-int.h, version.h,
7033         $(HASHTAB_H), $(OBSTACK_H), $(XREGEX_H) and build/errors.o.
7034         (install-plugin): Depend on install-gengtype.
7035
7036 2011-08-04  Jakub Jelinek  <jakub@redhat.com>
7037
7038         PR middle-end/49905
7039         * tree.h (init_attributes): New prototype.
7040         * attribs.c (init_attributes): No longer static.
7041
7042 2011-08-04  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
7043
7044         * config/arm/arm.c (arm_set_fixed_optab_libfunc): Constify
7045         maybe_suffix.
7046
7047 2011-08-03   David Li  <davidxl@google.com>
7048
7049         * tree-optimize.c (execute_fixup_cfg): Fix up entry
7050         outgoing edge counts after inlining.
7051
7052 2011-08-03   David Li  <davidxl@google.com>
7053
7054         * profile.c (compute_branch_probabilities): Compute
7055         function frequency after profile annotation.
7056
7057 2011-08-04  Alan Modra  <amodra@gmail.com>
7058
7059         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Simplify
7060         use_backchain_to_restore_sp initialisation.
7061         (rs6000_legitimate_offset_address_p): Simplify offset test.
7062
7063 2011-08-03  Richard Henderson  <rth@redhat.com>
7064
7065         * config/spu/spu.md: Use define_c_enum instead of define_constants.
7066         (UNSPECV_BLOCKAGE, UNSPECV_LNOP, UNSPECV_SYNC): Rename from UNSPEC_*.
7067         (UNSPECV_NOP): New.
7068
7069 2011-08-03  Richard Henderson  <rth@redhat.com>
7070
7071         PR target/34888
7072         * config/avr/avr.md: New splitter for REG_ARGS_SIZE 0.
7073
7074 2011-08-03  Jakub Jelinek  <jakub@redhat.com>
7075
7076         PR tree-optimization/49948
7077         * gimple.c (walk_stmt_load_store_addr_ops): Walk CONSTRUCTOR elements.
7078
7079 2011-08-03  Anatoly Sokolov  <aesok@post.ru>
7080
7081         * config/m32c/m32c.c (class_sizes): Remove.
7082         (reduce_class): Change arguments and return type to reg_class_t.
7083         Change type cc var to HARD_REG_SET. Change type best var to
7084         reg_class_t. Change type best_size var to unsigned int. Remove
7085         initialization class_sizes var. Use reg_class_size array instead
7086         of class_sizes. Use reg_class_contents array instead
7087         of class_contents.
7088
7089 2011-08-03  Richard Guenther  <rguenther@suse.de>
7090
7091         PR middle-end/49958
7092         * fold-const.c (fold_binary_loc): Only associate
7093         (+ (+ (* a b) c) (* d e)) as (+ (+ (* a b) (* d e)) c) if
7094         overflow wraps.
7095
7096 2011-08-03  Alan Modra  <amodra@gmail.com>
7097
7098         PR rtl-optimization/49941
7099         * jump.c (mark_jump_label): Comment.
7100         (mark_jump_label_1): Set JUMP_LABEL for return jumps.
7101         * emit-rtl.c (copy_rtx_if_shared_1, copy_insn_1): Leave RETURN shared.
7102         (mark_used_flags): Don't mark RETURN.
7103
7104 2011-08-03  Richard Guenther  <rguenther@suse.de>
7105
7106         PR tree-optimization/49938
7107         * tree-scalar-evolution.c (interpret_loop_phi): Gracefully
7108         deal with a POLYNOMIAL_CHREC.
7109
7110 2011-08-03  Revital Eres  <revital.eres@linaro.org>
7111
7112         * modulo-sched.c (calculate_stage_count,
7113         calculate_must_precede_follow, get_sched_window,
7114         try_scheduling_node_in_cycle, remove_node_from_ps): Add
7115         declaration.
7116         (update_node_sched_params, set_must_precede_follow, optimize_sc):
7117         New functions.
7118         (reset_sched_times): Call update_node_sched_params.
7119         (sms_schedule): Call optimize_sc.
7120         (get_sched_window): Change function arguments.
7121         (sms_schedule_by_order): Update call to get_sched_window.
7122         Call set_must_precede_follow.
7123         (calculate_stage_count): Add function argument.
7124
7125 2011-08-02  Richard Henderson  <rth@redhat.com>
7126
7127         PR target/49864
7128         PR target/49879
7129         * reg-notes.def (REG_ARGS_SIZE): New.
7130         * calls.c (emit_call_1): Emit REG_ARGS_SIZE for call_pop.
7131         (expand_call): Add REG_ARGS_SIZE to emit_stack_restore.
7132         * cfgcleanup.c (old_insns_match_p): Don't allow cross-jumping to
7133         different stack levels.
7134         * combine-stack-adj.c (adjust_frame_related_expr): Remove.
7135         (maybe_move_args_size_note): New.
7136         (combine_stack_adjustments_for_block): Use it.
7137         * combine.c (distribute_notes): Place REG_ARGS_SIZE.
7138         * dwarf2cfi.c (dw_cfi_row_struct): Remove args_size member.
7139         (dw_trace_info): Add beg_true_args_size, end_true_args_size,
7140         beg_delay_args_size, end_delay_args_size, eh_head, args_size_undefined.
7141         (cur_cfa): New.
7142         (queued_args_size): Remove.
7143         (add_cfi_args_size): Assert size is non-negative.
7144         (stack_adjust_offset, dwarf2out_args_size): Remove.
7145         (dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust): Remove.
7146         (notice_args_size, notice_eh_throw): New.
7147         (dwarf2out_frame_debug_def_cfa): Use cur_cfa.
7148         (dwarf2out_frame_debug_adjust_cfa): Likewise.
7149         (dwarf2out_frame_debug_cfa_offset): Likewise.
7150         (dwarf2out_frame_debug_expr): Likewise.  Don't stack_adjust_offset.
7151         (dwarf2out_frame_debug): Don't handle non-frame-related-p insns.
7152         (change_cfi_row): Don't emit args_size.
7153         (maybe_record_trace_start_abnormal): Split out from ...
7154         (maybe_record_trace_start): Here.  Set args_size_undefined.
7155         (create_trace_edges): Update to match.
7156         (scan_trace): Handle REG_ARGS_SIZE.
7157         (connect_traces): Connect args_size between EH insns.
7158         * emit-rtl.c (try_split): Handle REG_ARGS_SIZE.
7159         * explow.c (suppress_reg_args_size): New.
7160         (adjust_stack_1): Split out from ...
7161         (adjust_stack): ... here.
7162         (anti_adjust_stack): Use it.
7163         (allocate_dynamic_stack_space): Suppress REG_ARGS_SIZE.
7164         * expr.c (mem_autoinc_base): New.
7165         (fixup_args_size_notes): New.
7166         (emit_single_push_insn_1): Rename from emit_single_push_insn.
7167         (emit_single_push_insn): New.  Generate REG_ARGS_SIZE.
7168         * recog.c (peep2_attempt): Handle REG_ARGS_SIZE.
7169         * reload1.c (reload_as_needed): Likewise.
7170         * rtl.h (fixup_args_size_notes): Declare.
7171
7172 2011-08-02  Paolo Carlini  <paolo.carlini@oracle.com>
7173
7174         PR bootstrap/49914
7175         * fold-const.c (fold_plusminus_mult_expr): Use abs_hwi instead
7176         of abs.
7177         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
7178         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
7179
7180 2011-08-02  Richard Henderson  <rth@redhat.com>
7181
7182         * config/h8300/h8300.c (push, pop): Return the insn.
7183         (h8300_swap_into_er6): Generate correct unwind info.
7184         (h8300_swap_out_of_er6): Likewise.
7185         * dwarf2cfi.c (def_cfa_1): Clear cfa_cfi if we no longer have a
7186         complex cfa expression.
7187         (dwarf2out_frame_debug_def_cfa): Allow (plus (mem) (const_int)) too.
7188
7189 2011-08-02  H.J. Lu  <hongjiu.lu@intel.com>
7190
7191         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
7192
7193 2011-08-02  Richard Henderson  <rth@redhat.com>
7194
7195         PR target/49878
7196         * config/h8300/h8300.c (h8300_move_ok): New.
7197         * config/h8300/h8300-protos.h: Declare it.
7198         * config/h8300/h8300.md (P): New mode iterator.
7199         (*movqi_h8300, *movqi_h8300hs, movqi): Use h8300_move_ok.
7200         (*movqi_h8sx, *movhi_h8300, *movhi_h8300hs, movhi): Likewise.
7201         (movsi, *movsi_h8300, *movsi_h8300hs): Likewise.
7202         (*pushqi1_h8300): Rename from pushqi1_h8300; use PRE_MODIFY.
7203         (*pushqi1_h8300hs_<P>): Macroize from pushqi1_h8300hs_advanced
7204         and pushqi1_h8300hs_normal; use PRE_MODIFY and
7205         register_no_sp_elim_operand.
7206         (*pushhi1_h8300hs_<P>): Similarly.
7207         (pushqi1, pushhi1, pushhi1_h8300): Remove.
7208         * config/h8300/predicates.md (register_no_sp_elim_operand): New.
7209
7210 2011-08-02  Richard Henderson  <rth@redhat.com>
7211
7212         PR target/49881
7213         * config/avr/avr.md (push<MPUSH>1): Don't constrain the operand.
7214
7215 2011-08-02  Jakub Jelinek  <jakub@redhat.com>
7216
7217         * c-parser.c (enum c_parser_prec): New enum, moved from within
7218         c_parser_binary_expression.
7219         (c_parser_binary_expression): Add PREC argument.  Stop parsing
7220         if operator has lower or equal precedence than PREC.
7221         (c_parser_conditional_expression, c_parser_omp_for_loop): Adjust
7222         callers.
7223         (c_parser_omp_atomic): Handle parsing OpenMP 3.1 atomics.
7224         Adjust c_finish_omp_atomic caller.
7225         (c_parser_omp_taskyield): New function.
7226         (c_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
7227         (c_parser_omp_clause_name): Handle final and mergeable clauses.
7228         (c_parser_omp_clause_final, c_parser_omp_clause_mergeable): New
7229         functions.
7230         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
7231         and PRAGMA_OMP_CLAUSE_MERGEABLE.
7232         (OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
7233         (c_parser_omp_clause_reduction): Handle min and max.
7234         * c-typeck.c (c_finish_omp_clauses): Don't complain about
7235         const qualified predetermined vars in firstprivate clause.
7236         andle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
7237         Handle MIN_EXPR and MAX_EXPR.
7238         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FINAL
7239         and OMP_CLAUSE_MERGEABLE.
7240         (dump_generic_node): Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD
7241         and OMP_ATOMIC_CAPTURE_NEW.
7242         * tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FINAL and
7243         OMP_CLAUSE_MERGEABLE.
7244         (omp_clause_code_name): Likewise.
7245         (walk_tree_1): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
7246         * tree.h (enum omp_clause_code): Add OMP_CLAUSE_FINAL
7247         and OMP_CLAUSE_MERGEABLE.
7248         (OMP_CLAUSE_FINAL_EXPR): Define.
7249         * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FINAL and
7250         OMP_CLAUSE_MERGEABLE.
7251         (expand_task_call): Likewise.
7252         (expand_omp_atomic_load, expand_omp_atomic_store): New functions.
7253         (expand_omp_atomic_fetch_op): Handle cases where old or new
7254         value is needed afterwards.
7255         (expand_omp_atomic): Call expand_omp_atomic_load resp.
7256         expand_omp_atomic_store.
7257         * gimplify.c (gimplify_omp_atomic, gimplify_expr): Handle
7258         OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and OMP_ATOMIC_CAPTURE_NEW.
7259         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
7260         OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
7261         * tree-nested.c (convert_nonlocal_omp_clauses,
7262         convert_local_omp_clauses): Likewise.
7263         * tree.def (OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD,
7264         OMP_ATOMIC_CAPTURE_NEW): New.
7265         * gimple.h (GF_OMP_ATOMIC_NEED_VALUE): New.
7266         (gimple_omp_atomic_need_value_p, gimple_omp_atomic_set_need_value):
7267         New inlines.
7268         * omp-builtins.def (BUILT_IN_GOMP_TASKYIELD): New builtin.
7269         * doc/generic.texi: Mention OMP_CLAUSE_COLLAPSE,
7270         OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
7271
7272 2011-08-02  Kai Tietz  <ktietz@redhat.com>
7273
7274         * gimple.c (canonicalize_cond_expr_cond): Handle cast from
7275         boolean-type.
7276         (ssa_forward_propagate_and_combine): Interprete result of
7277         forward_propagate_comparison.
7278         * gcc/gimple-fold.c (fold_gimple_assign): Add canonicalization for
7279         boolean-typed operands for comparisons.
7280
7281 2011-08-02  Georg-Johann Lay  <avr@gjlay.de>
7282
7283         * config/avr/libgcc.S: Gather related function in the
7284         same input section.
7285         (__mulqihi3, __mulqihi3, __divmodqi4, __divmodhi4, __udivmodsi4,
7286         __divmodsi4): Use XCALL/XJMP instead of rcall/rjmp for external
7287         references.
7288         (__udivmodqi4, __divmodqi4, __udivmodhi4, __divmodhi4,
7289         __udivmodsi4, __divmodsi4, __prologue_saves__,
7290         __epilogue_restores__, _exit, __tablejump2__, __tablejump__,
7291         __do_copy_data, __do_clear_bss, __do_global_ctors,
7292         __do_global_dtors, __tablejump_elpm__): Enclose in DEFUN/ENDF.
7293
7294 2011-08-02  Uros Bizjak  <ubizjak@gmail.com>
7295
7296         PR target/47766
7297         * doc/md.texi (stack_protect_set): The pattern moves ptr_mode value.
7298         (stack_protect_test): The pattern compares ptr_mode value.
7299
7300 2011-08-02  Alan Modra  <amodra@gmail.com>
7301
7302         * config/rs6000/rs6000.c (rs6000_emit_prologue): Add REG_CFA_RESTORE
7303         note for save_LR_around_toc_setup sequence.
7304
7305 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
7306
7307         * config/i386/lzcntintrin.h (__lzcnt64): Replace long with long long.
7308
7309 2011-08-01  Sebastian Pop  <sebastian.pop@amd.com>
7310             Joseph Myers  <joseph@codesourcery.com>
7311
7312         * Makefile.in (hwint.o): Depend on DIAGNOSTIC_CORE_H.
7313         * hwint.c: Include diagnostic-core.h.
7314         (abs_hwi): New.
7315         (gcd): Moved here...
7316         (pos_mul_hwi): New.
7317         (mul_hwi): New.
7318         (least_common_multiple): Moved here...
7319         * hwint.h (gcd): ... from here.
7320         (least_common_multiple): ... from here.
7321         (HOST_WIDE_INT_MIN): New.
7322         (HOST_WIDE_INT_MAX): New.
7323         (abs_hwi): Declared.
7324         (gcd): Declared.
7325         (pos_mul_hwi): Declared.
7326         (mul_hwi): Declared.
7327         (least_common_multiple): Declared.
7328         * omega.c (check_pos_mul): Removed.
7329         (check_mul): Removed.
7330         (omega_solve_geq): Use pos_mul_hwi instead of check_pos_mul and
7331         mul_hwi instead of check_mul.
7332
7333 2011-08-01  Richard Henderson  <rth@redhat.com>
7334
7335         PR target/49881
7336         * config/avr/avr.h (PUSH_ROUNDING): New.
7337         * config/avr/avr.md (pushqi1): Rename from *pushqi.
7338         (*pushhi, *pushsi, *pushsf): Remove.
7339         (MPUSH): New mode iterator.
7340         (push<MPUSH>1): New expander.
7341
7342 2011-08-01  Anatoly Sokolov  <aesok@post.ru>
7343
7344         * config/mmix/mmix.h (PREFERRED_RELOAD_CLASS,
7345         PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
7346         * config/mmix/mmix-protos.h (mmix_preferred_reload_class,
7347         mmix_preferred_output_reload_class): Remove.
7348         * config/mmix/mmix.c (mmix_preferred_reload_class,
7349         mmix_preferred_output_reload_class): Make static. Change rclass
7350         argument and return type to reg_class_t.
7351         (TARGET_PREFERRED_RELOAD_CLASS,
7352         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
7353
7354 2011-08-01  Joern Rennecke  <joern.rennecke@embecosm.com>
7355
7356         * mode-switching.c (optimize_mode_switching): Fix bug in MODE_AFTER
7357         handling.
7358
7359 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
7360
7361         PR target/47766
7362         * config/i386/i386.md (PTR): New.
7363         (stack_protect_set: Check TARGET_LP64 instead of TARGET_64BIT.
7364         (stack_protect_test): Likewise.
7365         (stack_protect_set_<mode>): Replace ":P" with ":PTR".
7366         (stack_tls_protect_set_<mode>): Likewise.
7367         (stack_tls_protect_test_<mode>): Likewise.
7368
7369 2011-08-01  Uros Bizjak  <ubizjak@gmail.com>
7370
7371         PR target/49927
7372         * config/i386/i386.c (ix86_address_subreg_operand): New.
7373         (ix86_decompose_address): Use ix86_address_subreg_operand.
7374         (ix86_legitimate_address_p): Do not assert that subregs satisfy
7375         register_no_elim_operand in DImode.
7376
7377 2011-08-01  Ira Rosen  <ira.rosen@linaro.org>
7378
7379         PR tree-optimization/49926
7380         * tree-vect-loop.c (vect_is_slp_reduction): Check that a statement
7381         in a chain doesn't have uses both inside and outside the loop.
7382
7383 2011-08-01  Georg-Johann Lay  <avr@gjlay.de>
7384
7385         * config/avr/avr.h (mcu_type_s): Add errata_skip field.
7386         * config/avr/avr-devices.c (avr_mcu_types): Use it.
7387         * config/avr/avr-mcus.def (AVR_MCU): Use it.
7388         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it to builtin
7389         define __AVR_ERRATA_SKIP__ and __AVR_ERRATA_SKIP_JMP_CALL__.
7390         * config/avr/libgcc.S (__mulshisi3, __ffshi2, __fmulsu_exit):
7391         Use __AVR_ERRATA_SKIP_JMP_CALL__ instead of __AVR_HAVE_JMP_CALL__
7392         to detect if XJMP must not be skipped.
7393
7394 2011-08-02  Alan Modra  <amodra@gmail.com>
7395
7396         * config/rs6000/rs6000-protos.h (rs6000_save_toc_in_prologue_p):
7397         Delete.
7398         * config/rs6000/rs6000.c (rs6000_save_toc_in_prologue_p): Make static.
7399         (rs6000_emit_prologue): Don't prematurely return when
7400         TARGET_SINGLE_PIC_BASE.  Don't emit eh_frame info in
7401         save_toc_in_prologue case.
7402         (rs6000_call_indirect_aix): Only disallow save_toc_in_prologue for
7403         calls_alloca.
7404
7405 2011-08-01  Georg-Johann Lay  <avr@gjlay.de>
7406
7407         * config/avr/avr-devices.c: Delete SVN property svn:executable.
7408         * config/avr/predicates.md: Ditto.
7409         * config/avr/driver-avr.c: Ditto.
7410         * config/avr/genopt.sh: Set SVN property svn:executable to *.
7411
7412 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
7413
7414         * calls.c (emit_library_call_value_1): Declare size only if
7415         BLOCK_REG_PADDING is defined.
7416
7417 2011-08-01  Kirill Yukhin  <kirill.yukhin@intel.com>
7418
7419         PR target/49547
7420         * config.gcc (i[34567]86-*-*): Replace abmintrin.h with lzcntintrin.h.
7421         (x86_64-*-*): Likewise.
7422         * config/i386/i386.opt (mlzcnt): New.
7423         * config/i386/abmintrin.h: File removed.
7424         (__lzcnt_u16, __lzcnt, __lzcnt_u64): Moved to ...
7425         * config/i386/lzcntintrin.h: ... here.  New file.
7426         (__lzcnt): Rename to ...
7427         (__lzcnt32): ... this.
7428         * config/i386/bmiintrin.h (head): Update copyright year.
7429         (__lzcnt_u16): Removed.
7430         (__lzcnt_u32): Likewise.
7431         (__lzcnt_u64): Likewise.
7432         * config/i386/x86intrin.h: Include lzcntintrin.h when __LZCNT__
7433         is defined, remove abmintrin.h.
7434         * config/i386/cpuid.h (bit_LZCNT): New.
7435         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
7436         LZCNT feature.
7437         * config/i386/i386-c.c (ix86_target_macros_internal): Define
7438         __LZCNT__ if needed.
7439         * config/i386/i386.c (ix86_target_string): New option -mlzcnt.
7440         (ix86_option_override_internal): Handle LZCNT option.
7441         (ix86_valid_target_attribute_inner_p): Likewise.
7442         (struct builtin_description bdesc_args) <IX86_BUILTIN_CLZS>: Update.
7443         * config/i386/i386.h (TARGET_LZCNT): New.
7444         (CLZ_DEFINED_VALUE_AT_ZERO): Update.
7445         * config/i386/i386.md (clz<mode>2): Update insn constraint.
7446         (clz<mode>2_lzcnt): Likewise.
7447         * doc/invoke.texi: Mention -mlzcnt option.
7448         * doc/extend.texi: Likewise.
7449
7450 2011-08-01  Julian Brown  <julian@codesourcery.com>
7451
7452         * configure.ac (fixed-point): Add ARM support.
7453         * configure: Regenerate.
7454         * config/arm/arm.c (arm_fixed_mode_set): New struct.
7455         (arm_set_fixed_optab_libfunc): New.
7456         (arm_set_fixed_conv_libfunc): New.
7457         (arm_init_libfuncs): Initialise fixed-point helper libfuncs with
7458         ARM-specific names.
7459         (aapcs_libcall_value): Return sub-word-size fixed-point libcall
7460         return values in SImode.
7461         (arm_return_in_msb): Return fixed-point types in the msb.
7462         (arm_pad_reg_upwards, arm_pad_arg_upwards): Pad fixed-point types
7463         upwards.
7464         (arm_scalar_mode_supported_p): Support fixed-point modes.
7465         (arm_vector_mode_supported_p): Support vector fixed-point modes.
7466         * config/arm/arm.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE)
7467         (LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE)
7468         (SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE)
7469         (LONG_LONG_ACCUM_TYPE_SIZE, MAX_FIXED_MODE_SIZE): Define.
7470         * config/arm/iterators.md (FIXED, ADDSUB, UQADDSUB, QADDSUB, QMUL):
7471         New mode iterators.
7472         (qaddsub_suf): New mode attribute.
7473         * config/arm/arm-modes.def (FRACT, UFRACT, ACCUM, UACCUM): Declare
7474         vector modes.
7475         * config/arm/predicates.md (sat_shift_operator): New predicate.
7476         * config/arm/arm-fixed.md: New.
7477         * config/arm/arm.md: Include arm-fixed.md.
7478         * config/arm/t-arm (MD_INCLUDES): Add arm-fixed.md.
7479
7480 2011-08-01  Julian Brown  <julian@codesourcery.com>
7481
7482         * calls.c (emit_library_call_value_1): Support padding for libcall
7483         arguments and return values.
7484         * config/arm/arm.c (arm_pad_arg_upward): Pad half-float values
7485         downwards in big-endian mode.
7486
7487 2011-08-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7488
7489         PR debug/49887
7490         * config/sol2.c (solaris_code_end): Rename to solaris_file_end.
7491         * config/sol2-protos.h: Likewise.
7492         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Don't call
7493         solaris_code_end.
7494         * config/i386/sol2.h [!USE_GAS] (TARGET_ASM_FILE_END): Redefine.
7495         * config/sparc/sparc.c (sparc_file_end) [TARGET_SOLARIS]: Call
7496         solaris_file_end.
7497         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Remove.
7498
7499 2011-08-01  Julian Brown  <julian@codesourcery.com>
7500
7501         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Support FIXED_CST.
7502
7503 2011-08-01  Julian Brown  <julian@codesourcery.com>
7504
7505         * final.c (output_addr_const): Print fixed-point constants as
7506         decimal not hex.
7507
7508 2011-08-01  Richard Guenther  <rguenther@suse.de>
7509
7510         * stor-layout.c (initialize_sizetypes): Properly sign-extend
7511         bitsiztype TYPE_MAX_VALUE.
7512
7513 2011-08-01  Julian Brown  <julian@codesourcery.com>
7514
7515         * optabs.c (prepare_cmp_insn): Use correct biasing for fixed-point
7516         comparison helpers.
7517
7518 2011-07-31  Richard Henderson  <rth@redhat.com>
7519
7520         * config/h8300/crti.asm: Add flags to .section directive.
7521         * config/h8300/crtn.asm: Likewise.
7522
7523 2011-07-31  Richard Henderson  <rth@redhat.com>
7524
7525         * stor-layout.c (initialize_sizetypes): Handle unsigned short.
7526         * tree.c (build_common_tree_nodes): Likewise.
7527
7528 2011-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
7529
7530         PR target/49880
7531         * config/sh/sh.md (udivsi3_i1): Enable for TARGET_DIVIDE_CALL_DIV1.
7532         (divsi3_i1): Likewise.
7533
7534 2011-07-31  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7535
7536         PR tree-optimization/49749
7537         * tree-ssa-reassoc.c (get_rank): New forward declaration.
7538         (PHI_LOOP_BIAS): New macro.
7539         (phi_rank): New function.
7540         (loop_carried_phi): Likewise.
7541         (propagate_rank): Likewise.
7542         (get_rank): Add calls to phi_rank and propagate_rank.
7543
7544 2011-07-31  H.J. Lu  <hongjiu.lu@intel.com>
7545
7546         * config/i386/x86-64.h (SIZE_TYPE): Check TARGET_LP64 instead
7547         of TARGET_64BIT.
7548         (PTRDIFF_TYPE): Likewise.
7549
7550 2011-07-31  Uros Bizjak  <ubizjak@gmail.com>
7551
7552         PR target/49920
7553         * config/i386/i386.md (strset): Do not expand strset_singleop
7554         when %eax or $edi are fixed.
7555         (*strsetdi_rex_1): Disable when %eax or %edi are fixed.
7556         (*strsetsi_1): Ditto.
7557         (*strsethi_1): Ditto.
7558         (*strsetqi_1): Ditto.
7559         (*rep_stosdi_rex64): Disable when %eax, %ecx or %edi are fixed.
7560         (*rep_stossi): Ditto.
7561         (*rep_stosqi): Ditto.
7562         (*strlenqi_1): Ditto.
7563         (cmpstrnsi): Also fail when %ecx is fixed.
7564         (*cmpstrnqi_nz_1): Disable when %ecx, %esi or %edi are fixed.
7565         (*cmpstrnqi_1): Ditto.
7566         (*strmovdi_rex_1): Disable when %esi or %edi are fixed.
7567         (*strmovsi_1): Ditto.
7568         (*strmovhi_1): Ditto.
7569         (*strmovqi_1): Ditto.
7570         (*rep_movdi_rex64): Disable when %ecx, %esi or %edi are fixed.
7571         (*rep_movsi): Ditto.
7572         (*rep_movqi): Ditto.
7573
7574 2011-07-31  Mikael Pettersson  <mikpe@it.uu.se>
7575
7576         PR target/47908
7577         * config/m68k/m68k.c (m68k_override_options_after_change): New function.
7578         Disable instruction scheduling for non-ColdFire targets.
7579         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
7580
7581 2011-07-31  Revital Eres  <revital.eres@linaro.org>
7582
7583         * ddg.c (create_ddg_dep_from_intra_loop_link): Remove the creation
7584         of anti-dep edge from a branch.
7585         (add_cross_iteration_register_deps): Create anti-dep edge from
7586         a branch.
7587
7588 2011-07-31  Revital Eres  <revital.eres@linaro.org>
7589
7590         * modulo-sched.c: Change comment.
7591         (reset_sched_times): Fix print message.
7592         (print_partial_schedule): Add print info.
7593
7594 2011-07-31  Tom de Vries  <tom@codesourcery.com>
7595
7596         PR middle-end/43513
7597         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Use max of
7598         get_object_alignment and TYPE_ALIGN.
7599
7600 2011-07-30  Tom de Vries  <tom@codesourcery.com>
7601
7602         PR middle-end/43513
7603         * tree-ssa-dce.c (ref_may_be_aliased): Add assert.
7604         (propagate_necessity): Handle WITH_SIZE_EXPR call arg.
7605
7606 2011-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7607
7608         * config/mips/driver-native.c [__sgi__]: Include <invent.h>,
7609         <sys/sbd.h>.
7610         (cpu_types): New array.
7611         (cputype): New function.
7612         (host_detect_local_cpu): Only define buf, f if !__sgi__.
7613         Use scaninvent instead of /proc/cpuinfo if __sgi__.
7614         * config.host: Also use driver-native.o, mips/x-native on
7615         mips-sgi-irix*.
7616         * config/mips/iris6.h [__mips__] (host_detect_local_cpu): Declare.
7617         (EXTRA_SPEC_FUNCTIONS, MARCH_MTUNE_NATIVE_SPECS): Define.
7618         (DRIVER_SELF_SPECS): Add MARCH_MTUNE_NATIVE_SPECS.
7619
7620 2011-07-29  Jakub Jelinek  <jakub@redhat.com>
7621
7622         PR middle-end/49897
7623         PR middle-end/49898
7624         * omp-low.c (use_pointer_for_field): If disallowing copy-in/out
7625         in nested parallel and outer is a gimple_reg, mark it as addressable
7626         and set its bit in task_shared_vars bitmap too.
7627
7628 2011-07-29  Uros Bizjak  <ubizjak@gmail.com>
7629
7630         * config/i386/predicates.md (tp_or_register_operand): Remove predicate.
7631
7632 2011-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7633
7634         * config/alpha/driver-alpha.c (IMPLVER_EV4_FAMILY,
7635         IMPLVER_EV5_FAMILY, IMPLVER_EV6_FAMILY, IMPLVER_EV7_FAMILY): Define.
7636         (AMASK_BWX, AMASK_FIX, AMASK_CIX, AMASK_MVI, AMASK_PRECISE,
7637         AMASK_LOCKPFTCHOK): Define.
7638         (host_detect_local_cpu): Remove buf, f, cpu_names.
7639         Define cpu_types, implver, amask.
7640         Use __builtin_alpha_implver, __builtin_alpha_amask to determine
7641         native CPU.
7642         * config.host: Also use driver-alpha.o, alpha/x-alpha on
7643         alpha*-dec-osf*.
7644         * config/alpha/osf5.h [__alpha__ || __alpha]
7645         (host_detect_local_cpu): Declare.
7646         (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS)
7647         (DRIVER_SELF_SPECS): Define.
7648
7649 2011-07-29  Uros Bizjak  <ubizjak@gmail.com>
7650
7651         PR target/47715
7652         * config/i386/i386.md (*load_tp_x32): New.
7653         (*load_tp_x32_zext): Ditto.
7654         (*add_tp_x32): Ditto.
7655         (*add_tp_x32_zext): Ditto.
7656         (*load_tp_<mode>): Disable for TARGET_X32 targets.
7657         (*add_tp_<mode>): Ditto.
7658         * config/i386/i386.c (get_thread_pointer): Load thread pointer in
7659         ptr_mode and convert to Pmode if needed.
7660
7661 2011-07-29  Georg-Johann Lay  <avr@gjlay.de>
7662
7663         PR target/49687
7664         * config/avr/avr.md (mulsi3, *mulsi3, mulu<mode>si3,
7665         muls<mode>si3, mulohisi3, mulhisi3, umulhisi3, usmulhisi3,
7666         *<any_extend:extend_prefix><any_extend2:extend_prefix>mul<QIHI:mode><QIHI2:mode>si3):
7667         Add X to register footprint: Clobber r26/r27.
7668
7669 2011-07-29  Richard Guenther  <rguenther@suse.de>
7670
7671         * builtins.c (fold_builtin_signbit): Build the comparison
7672         with a proper type.
7673
7674 2011-07-29  Richard Guenther  <rguenther@suse.de>
7675
7676         PR tree-optimization/49893
7677         * tree-predcom.c (suitable_reference_p): Volatile references
7678         are not suitable.
7679
7680 2011-07-29  Georg-Johann Lay  <avr@gjlay.de>
7681
7682         PR target/49313
7683         * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
7684         (__ctzsi2): Result for 0 may be undefined.
7685         (__ctzhi2): Result for 0 may be undefined.
7686         (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
7687         (__popcountsi2): Ditto. And don't clobber r26.
7688         (__popcountdi2): Ditto. And don't clobber r27.
7689         * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
7690         (parityhi2): New expand.
7691         (paritysi2): New expand.
7692         (popcounthi2): New expand.
7693         (popcountsi2): New expand.
7694         (clzhi2): New expand.
7695         (clzsi2): New expand.
7696         (ctzhi2): New expand.
7697         (ctzsi2): New expand.
7698         (ffshi2): New expand.
7699         (ffssi2): New expand.
7700         (copysignsf3): New insn.
7701         (bswapsi2): New expand.
7702         (*parityhi2.libgcc): New insn.
7703         (*parityqihi2.libgcc): New insn.
7704         (*paritysihi2.libgcc): New insn.
7705         (*popcounthi2.libgcc): New insn.
7706         (*popcountsi2.libgcc): New insn.
7707         (*popcountqi2.libgcc): New insn.
7708         (*popcountqihi2.libgcc): New insn-and-split.
7709         (*clzhi2.libgcc): New insn.
7710         (*clzsihi2.libgcc): New insn.
7711         (*ctzhi2.libgcc): New insn.
7712         (*ctzsihi2.libgcc): New insn.
7713         (*ffshi2.libgcc): New insn.
7714         (*ffssihi2.libgcc): New insn.
7715         (*bswapsi2.libgcc): New insn.
7716
7717 2011-07-29  Richard Guenther  <rguenther@suse.de>
7718
7719         * tree-vrp.c (get_value_range): Only set parameter default
7720         definitions to varying, leave others at undefined.
7721         (extract_range_from_binary_expr): Fix undefined handling.
7722         (vrp_visit_phi_node): Handle merged undefined state.
7723
7724 2011-07-29  Wei Guozhi  <carrot@google.com>
7725
7726         PR rtl-optimization/49799
7727         * combine.c (make_compound_operation): Check if the bit field is valid
7728         before change it to bit field extraction.
7729
7730 2011-07-29  Bernd Schmidt  <bernds@codesourcery.com>
7731
7732         PR rtl-optimization/49891
7733         * cfgrtl.c (force_nonfallthru_and_redirect): Set JUMP_LABEL for
7734         newly created returnjumps.
7735
7736 2011-07-28  DJ Delorie  <dj@redhat.com>
7737
7738         * expr.c (expand_expr_addr_expr_1): Detect a user request for a
7739         local frame in a naked function, and produce a suitable error for
7740         that specific case.
7741
7742         * config/m32c/m32c.c (m32c_secondary_reload_class): Allow PSI
7743         registers to be reloaded in HI classes when the target is HI.
7744
7745 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
7746
7747         * graphite-clast-to-gimple.c: Replace v1, v2, lb, ub with
7748         bound_one, bound_two.
7749
7750 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
7751
7752         PR middle-end/48648
7753         * graphite-clast-to-gimple.c (clast_get_body_of_loop): Handle
7754         CLAST assignments.
7755         (translate_clast): Same.
7756         (translate_clast_assignment): New.
7757
7758 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
7759
7760         PR tree-optimization/49876
7761         * sese.c (rename_uses): Do not return false on gloog_error: set
7762         the new_expr to integer_zero_node and continue code generation.
7763         (graphite_copy_stmts_from_block): Remove early exit on gloog_error.
7764
7765 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
7766
7767         PR debug/49846
7768         * var-tracking.c (prepare_call_arguments): For non-MODE_INT stack
7769         arguments also check if they aren't initialized with a MODE_INT
7770         mode of the same size.
7771
7772 2011-07-28  Aldy Hernandez  <aldyh@redhat.com>
7773
7774         * expr.c (get_bit_range): Handle *MEM_REF's.
7775
7776 2011-07-28  Bernd Schmidt  <bernds@codesourcery.com>
7777
7778         * rtlanal.c (tablejump_p): False for returns.
7779         * reorg.c (first_active_target_insn): New static function.
7780         (find_end_label): Set JUMP_LABEL for a new returnjump.
7781         (optimize_skip, get_jump_flags, rare_destination,
7782         mostly_true_jump, get_branch_condition,
7783         steal_delay_list_from_target, own_thread_p,
7784         fill_simple_delay_slots, follow_jumps, fill_slots_from_thread,
7785         fill_eager_delay_slots, relax_delay_slots, make_return_insns,
7786         dbr_schedule): Adjust to handle ret_rtx in JUMP_LABELs.
7787         * jump.c (delete_related_insns): Likewise.
7788         (jump_to_label_p): New function.
7789         (redirect_target): New static function.
7790         (redirect_exp_1): Use it.  Adjust to handle ret_rtx in JUMP_LABELS.
7791         (redirect_jump_1): Assert that the new label is nonnull.
7792         (redirect_jump): Likewise.
7793         (redirect_jump_2): Check for ANY_RETURN_P rather than NULL labels.
7794         * ifcvt.c (find_if_case_1): Take care when redirecting jumps to the
7795         exit block.
7796         (dead_or_predicable): Change NEW_DEST arg to DEST_EDGE.  All callers
7797         changed.  Ensure that the right label is passed to redirect_jump.
7798         * function.c (emit_return_into_block,
7799         thread_prologue_and_epilogue_insns): Ensure new returnjumps have
7800         ret_rtx in their JUMP_LABEL.
7801         * print-rtl.c (print_rtx): Handle ret_rtx in a JUMP_LABEL.
7802         * emit-rtl.c (skip_consecutive_labels): Allow the caller to
7803         pass ret_rtx as label.
7804         * cfglayout.c (fixup_reorder_chain): Use
7805         force_nonfallthru_and_redirect rather than force_nonfallthru.
7806         (duplicate_insn_chain): Copy JUMP_LABELs for returns.
7807         * rtl.h (ANY_RETURN_P): New macro.
7808         (jump_to_label_p): Declare.
7809         * resource.c (find_dead_or_set_registers): Handle ret_rtx in
7810         JUMP_LABELs.
7811         (mark_target_live_regs): Likewise.
7812         * basic-block.h (force_nonfallthru_and_redirect): Declare.
7813         * cfgrtl.c (force_nonfallthru_and_redirect): No longer static.
7814         * config/alpha/alpha.c (alpha_tablejump_addr_vec,
7815         alpha_tablejump_best_label): Remove functions.
7816         * config/alpha/alpha-protos.c (alpha_tablejump_addr_vec,
7817         alpha_tablejump_best_label): Remove declarations.
7818         * config/sh/sh.c (barrier_align, split_branches): Adjust for
7819         ret_rtx in JUMP_LABELs.
7820         * config/arm/arm.c (is_jump_table): Likewise.
7821
7822 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
7823
7824         * config/i386/predicates.md (pic_32bit_opreand): Do not define as
7825         special predicate.  Remove explicit mode checks.
7826
7827 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
7828
7829         * dwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize
7830         DW_AT_data_member_location containing just DW_OP_plus_uconst.
7831
7832         PR debug/49871
7833         * dwarf2out.c (size_of_die, value_format, output_die): Use
7834         DW_FORM_udata instead of DW_FORM_data[48] for
7835         dw_val_class_unsigned_const DW_AT_data_member_location for DWARF 3.
7836
7837 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
7838
7839         * config/i386/i386.md (*tls_global_dynamic_64): Update
7840         length attribute.
7841
7842 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
7843
7844         PR target/47715
7845         * config/i386/i386.md (*tls_global_dynamic_64): Remove mode from
7846         tls_symbolic_operand check.  Update code sequence for TARGET_X32.
7847         (tls_global_dynamic_64): Remove mode from tls_symbolic_operand check.
7848         (tls_dynamic_gnu2_64): Ditto.
7849         (*tls_dynamic_gnu2_lea_64): Ditto.
7850         (*tls_dynamic_gnu2_call_64): Ditto.
7851         (*tls_dynamic_gnu2_combine_64): Ditto.
7852
7853 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
7854
7855         * config.gcc: Set need_64bit_hwint to yes for x86 targets.
7856
7857 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
7858
7859         PR target/47364
7860         * config/i386/i386.md (strlen<mode>): Replace SWI48x with P.
7861
7862 2011-07-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
7863
7864         * config/arm/vfp.md ("*movdf_vfp"): Handle the VFP constraints
7865         before the core constraints. Adjust attributes.
7866         ("*thumb2_movdf_vfp"): Likewise.
7867
7868 2011-07-28  Kai Tietz  <ktietz@redhat.com>
7869
7870         * tree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case.
7871         (simplify_truth_ops_using_ranges): Likewise.
7872         (build_assert_expr_for): Likewise.
7873         (build_assert_expr_for_1): Remove TRUTH_NOT_EXPR case
7874         and handle BIT_NOT_EXPR for truth-operation.
7875
7876 2011-07-28  Georg-Johann Lay  <avr@gjlay.de>
7877
7878         PR target/49313
7879         Undo r176835 from trunk
7880         2011-07-27  Georg-Johann Lay
7881
7882 2011-07-28  Georg-Johann Lay  <avr@gjlay.de>
7883
7884         PR target/49687
7885         * config/avr/t-avr (LIB1ASMFUNCS): Remove _xmulhisi3_exit.
7886         Add _muluhisi3, _mulshisi3, _usmulhisi3.
7887         * config/avr/libgcc.S (__mulsi3): Rewrite.
7888         (__mulhisi3): Rewrite.
7889         (__umulhisi3): Rewrite.
7890         (__usmulhisi3): New.
7891         (__muluhisi3): New.
7892         (__mulshisi3): New.
7893         (__mulohisi3): New.
7894         (__mulqi3, __mulqihi3, __umulqihi3, __mulhi3): Use DEFUN/ENDF to
7895         declare.
7896         * config/avr/predicates.md (pseudo_register_operand): Rewrite.
7897         (pseudo_register_or_const_int_operand): New.
7898         (combine_pseudo_register_operand): New.
7899         (u16_operand): New.
7900         (s16_operand): New.
7901         (o16_operand): New.
7902         * config/avr/avr.c (avr_rtx_costs): Handle costs for mult:SI.
7903         * config/avr/avr.md (QIHI, QIHI2): New mode iterators.
7904         (any_extend, any_extend2): New code iterators.
7905         (extend_prefix): New code attribute.
7906         (mulsi3): Rewrite. Turn insn to expander.
7907         (mulhisi3): Ditto.
7908         (umulhisi3): Ditto.
7909         (usmulhisi3): New expander.
7910         (*mulsi3): New insn-and-split.
7911         (mulu<mode>si3): New insn-and-split.
7912         (muls<mode>si3): New insn-and-split.
7913         (mulohisi3): New insn-and-split.
7914         (*uumulqihisi3, *uumulhiqisi3, *uumulhihisi3, *uumulqiqisi3,
7915         *usmulqihisi3, *usmulhiqisi3, *usmulhihisi3, *usmulqiqisi3,
7916         *sumulqihisi3, *sumulhiqisi3, *sumulhihisi3, *sumulqiqisi3,
7917         *ssmulqihisi3, *ssmulhiqisi3, *ssmulhihisi3, *ssmulqiqisi3): New
7918         insn-and-split.
7919         (*mulsi3_call): Rewrite.
7920         (*mulhisi3_call): Rewrite.
7921         (*umulhisi3_call): Rewrite.
7922         (*usmulhisi3_call): New insn.
7923         (*muluhisi3_call): New insn.
7924         (*mulshisi3_call): New insn.
7925         (*mulohisi3_call): New insn.
7926         (extendqihi2): Use combine_pseudo_register_operand as predicate
7927         for operand 1.
7928         (extendqisi2): Ditto.
7929         (zero_extendqihi2): Ditto.
7930         (zero_extendqisi2): Ditto.
7931         (zero_extendhisi2): Ditto.
7932         (extendhisi2): Ditto. Don't early-clobber operand 0.
7933
7934 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
7935
7936         * config/i386/i386.c (add->lea splitter): Add SWI mode to PLUS RTX.
7937
7938 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
7939
7940         PR tree-optimization/49471
7941         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned
7942         iv only when the largest type is unsigned.  Do not call
7943         lang_hooks.types.type_for_size.
7944
7945 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
7946
7947         PR middle-end/45450
7948         * graphite-poly.c (apply_poly_transforms): Disable legality check
7949         after an openscop read.
7950
7951 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
7952
7953         PR middle-end/47691
7954         * graphite-clast-to-gimple.c (translate_clast_user): Update use of
7955         copy_bb_and_scalar_dependences.
7956         * sese.c (rename_uses): Do not call gcc_assert.  Set gloog_error.
7957         (graphite_copy_stmts_from_block): Update call to rename_uses.
7958         (copy_bb_and_scalar_dependences): Update call to
7959         graphite_copy_stmts_from_block.
7960         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
7961
7962 2011-07-27  Georg-Johann Lay  <avr@gjlay.de>
7963
7964         PR target/49313
7965         * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
7966         (__ctzsi2): Result for 0 may be undefined.
7967         (__ctzhi2): Result for 0 may be undefined.
7968         (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
7969         (__popcountsi2): Ditto. And don't clobber r26.
7970         (__popcountdi2): Ditto. And don't clobber r27.
7971         * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
7972         (parityhi2): New expand.
7973         (paritysi2): New expand.
7974         (popcounthi2): New expand.
7975         (popcountsi2): New expand.
7976         (clzhi2): New expand.
7977         (clzsi2): New expand.
7978         (ctzhi2): New expand.
7979         (ctzsi2): New expand.
7980         (ffshi2): New expand.
7981         (ffssi2): New expand.
7982         (copysignsf3): New insn.
7983         (bswapsi2): New expand.
7984         (*parityhi2.libgcc): New insn.
7985         (*parityqihi2.libgcc): New insn.
7986         (*paritysihi2.libgcc): New insn.
7987         (*popcounthi2.libgcc): New insn.
7988         (*popcountsi2.libgcc): New insn.
7989         (*popcountqi2.libgcc): New insn.
7990         (*popcountqihi2.libgcc): New insn-and-split.
7991         (*clzhi2.libgcc): New insn.
7992         (*clzsihi2.libgcc): New insn.
7993         (*ctzhi2.libgcc): New insn.
7994         (*ctzsihi2.libgcc): New insn.
7995         (*ffshi2.libgcc): New insn.
7996         (*ffssihi2.libgcc): New insn.
7997         (*bswapsi2.libgcc): New insn.
7998
7999 2011-07-27  Uros Bizjak  <ubizjak@gmail.com>
8000
8001         * config/i386/i386.c (ix86_expand_move): Do not explicitly check
8002         the mode of symbolic_opreand RTXes.
8003
8004 2011-07-27  Uros Bizjak  <ubizjak@gmail.com>
8005
8006         * config/i386/predicates.md (x86_64_movabs_operand): Return false
8007         for pic_32bit_operand RTXes.
8008         * config/i386/i386.c (ix86_expand_move): Check x86_64_movabs_operand
8009         in DImode.
8010
8011 2011-07-27  Kai Tietz  <ktietz@redhat.com>
8012
8013         * config/i386/i386.c (ix86_option_override_internal): Allow -mabi
8014         for 32-bit, too.
8015         (ix86_handle_abi_attribute): Allow function attributes
8016         ms_abi/sysv_abi in 32-bit mode, too.
8017         * doc/extend.texi: Adjust attribute documentation.
8018
8019         * gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR
8020         expression handling.
8021         (and_var_with_comparison_1): Likewise.
8022
8023 2011-07-27  Aldy Hernandez  <aldyh@redhat.com>
8024
8025         * params.h (ALLOW_STORE_DATA_RACES): New.
8026         * params.def (PARAM_ALLOW_STORE_DATA_RACES): New.
8027         * Makefile.in (expr.o): Depend on PARAMS_H.
8028         * machmode.h (get_best_mode): Add argument.
8029         * fold-const.c (optimize_bit_field_compare): Add argument to
8030         get_best_mode.
8031         (fold_truthop): Same.
8032         * ifcvt.c (noce_emit_move_insn): Add argument to store_bit_field.
8033         * expr.c (emit_group_store): Same.
8034         (copy_blkmode_from_reg): Same.
8035         (write_complex_part): Same.
8036         (optimize_bitfield_assignment_op): Add argument.
8037         Add argument to get_best_mode.
8038         (get_bit_range): New.
8039         (expand_assignment): Calculate maxbits and pass it down accordingly.
8040         (store_field): New argument.
8041         (expand_expr_real_2): New argument to store_field.  Include params.h.
8042         * expr.h (store_bit_field): New argument.
8043         * stor-layout.c (get_best_mode): Restrict mode expansion by taking
8044         into account maxbits.
8045         * calls.c (store_unaligned_arguments_into_pseudos): New argument
8046         to store_bit_field.
8047         * expmed.c (store_bit_field_1): New argument.  Use it.
8048         (store_bit_field): Same.
8049         (store_fixed_bit_field): Same.
8050         (store_split_bit_field): Same.
8051         (extract_bit_field_1): Pass new argument to get_best_mode.
8052         (extract_bit_field): Same.
8053         * stmt.c (store_bit_field): Pass new argument to store_bit_field.
8054         * doc/invoke.texi: Document parameter allow-store-data-races.
8055
8056 2011-07-27  Jakub Jelinek  <jakub@redhat.com>
8057
8058         * dwarf2out.c (gen_producer_string): Ignore also -fverbose-asm option.
8059
8060 2011-07-27  Kai Tietz  <ktietz@redhat.com>
8061
8062         * tree-vrp.c (extract_range_from_binary_expr): Remove
8063         TRUTH-binary cases and add new bitwise-cases.
8064         (extract_range_from_assignment): Likewise.
8065         (register_edge_assert_for_1): Likeiwise.
8066         (register_edge_assert_for): Likewise.
8067         (simplify_truth_ops_using_ranges): Likewise.
8068         (simplify_stmt_using_ranges): Likewise.
8069
8070 2011-07-26  H.J. Lu  <hongjiu.lu@intel.com>
8071
8072         PR target/47372
8073         * config/i386/i386.c (ix86_delegitimize_address): Call
8074         simplify_gen_subreg for PIC with mode of x only if modes of
8075         x and orig_x are different.
8076
8077 2011-07-26  Jakub Jelinek  <jakub@redhat.com>
8078
8079         * dwarf2out.c (output_macinfo_op): Ensure fd->filename points
8080         to GC allocated copy of the string.
8081         (dwarf2out_finish): Emit .debug_macinfo or .debug_macro sections
8082         before .debug_line, not after it.
8083
8084 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
8085
8086         PR middle-end/47046
8087         * tree-chrec.h (evolution_function_is_affine_p): Recursively call
8088         evolution_function_is_affine_p on CHREC_RIGHT.
8089
8090 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
8091
8092         * tree-data-ref.c (max_stmt_executions_tree): Do not call
8093         lang_hooks.types.type_for_size.
8094
8095 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
8096
8097         PR middle-end/47653
8098         * graphite-scop-detection.c (graphite_can_represent_loop): Discard
8099         loops using wrapping semantics.
8100
8101 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
8102
8103         PR middle-end/48805
8104         * tree-scalar-evolution.c (instantiate_scev_r): Return
8105         chrec_dont_know for ADDR_EXPR.
8106
8107 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
8108             H.J. Lu  <hongjiu.lu@intel.com>
8109
8110         PR target/47369
8111         PR target/49853
8112         * config/i386/i386.c (ix86_expand_move): Call convert_to_mode
8113         if legitimize_tls_address returned operand in wrong mode. Allow
8114         SImode and DImode symbolic operand for PIC.  Call convert_to_mode
8115         if legitimize_pic_address returned operand in wrong mode.
8116
8117 2011-07-26  Martin Jambor  <mjambor@suse.cz>
8118
8119         * tree-sra.c (tree_non_mode_aligned_mem_p): Strip conversions and
8120         return false for invariants.
8121
8122 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
8123
8124         * config/i386/i386.md (add->lea splitter): Implement using SWI
8125         mode iterator.  Change operand 2 predicate to <nonmemory_operand>.
8126         (add->lea zext splitter): Change operand 2 predicate to
8127         x86_64_nonmemory_operand.
8128
8129 2011-07-26  Richard Guenther  <rguenther@suse.de>
8130
8131         * predict.c (maybe_hot_frequency_p): Make sure a zero entry-block
8132         frequency makes everything hot.
8133
8134 2011-07-26  Richard Guenther  <rguenther@suse.de>
8135
8136         PR tree-optimization/49840
8137         * tree-vrp.c (range_fits_type_p): Properly handle full
8138         double-int precision.
8139
8140 2011-07-26  Martin Jambor  <mjambor@suse.cz>
8141
8142         PR bootstrap/49786
8143         * ipa-cp.c (update_profiling_info): Avoid overflow when updating
8144         counts.
8145         (update_specialized_profile): Likewise.
8146
8147 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
8148             H.J. Lu  <hongjiu.lu@intel.com>
8149
8150         PR target/47381
8151         PR target/49832
8152         PR target/49833
8153         * config/i386/i386.md (i): Change SImode attribute to "e".
8154         (g): Change SImode attribute to "rme".
8155         (di): Change SImode attribute to "nF".
8156         (general_operand): Change SImode attribute to x86_64_general_operand.
8157         (general_szext_operand): Change SImode attribute to
8158         x86_64_szext_general_operand.
8159         (immediate_operand): Change SImode attribute to
8160         x86_64_immediate_operand.
8161         (nonmemory_operand): Change SImode attribute to
8162         x86_64_nonmemory_operand.
8163         (*movdi_internal_rex64): Remove mode from pic_32bit_operand check.
8164         (*movsi_internal): Ditto.  Use "e" constraint in alternative 2.
8165         (*lea_1): Use SWI48 mode iterator.
8166         (*lea_1_zext): New insn pattern.
8167         (testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2.
8168         (*bt<mode>): Ditto.
8169         (*add<mode>1): Use x86_64_general_operand predicate for operand 2.
8170         Update operand constraints.
8171         (addsi_1_zext): Ditto.
8172         (*add<mode>2): Ditto.
8173         (*addsi_3_zext): Ditto.
8174         (*subsi_1_zext): Ditto.
8175         (*subsi_2_zext): Ditto.
8176         (*subsi_3_zext): Ditto.
8177         (*addsi3_carry_zext): Ditto.
8178         (*<plusminus_insn>si3_zext_cc_overflow): Ditto.
8179         (*mulsi3_1_zext): Ditto.
8180         (*andsi_1): Ditto.
8181         (*andsi_1_zext): Ditto.
8182         (*andsi_2_zext): Ditto.
8183         (*<any_or:code>si_1_zext): Ditto.
8184         (*<any_or:code>si_2_zext): Ditto.
8185         (*test<mode>_1): Use <general_operand> predicate for operand 1.
8186         (*and<mode>_2): Ditto.
8187         (mov<mode>cc): Use  <general_operand> predicate for operands 1 and 2.
8188         (add->lea splitter): Check operand modes in insn constraint.  Extend
8189         operands less than SImode wide to SImode.
8190         (add->lea zext splitter): Do not extend input operands to DImode.
8191         (*lea_general_1): Handle only QImode and HImode operands.
8192         (*lea_general_2): Ditto.
8193         (*lea_general_3): Ditto.
8194         (*lea_general_1_zext): Remove.
8195         (*lea_general_2_zext): Ditto.
8196         (*lea_general_3_zext): Ditto.
8197         (*lea_general_4): Check operand modes in insn constraint.  Extend
8198         operands less than SImode wide to SImode.
8199         (ashift->lea splitter): Ditto.
8200         * config/i386/i386.c (ix86_print_operand_address): Print address
8201         registers with 'q' modifier on 64bit targets.
8202         * config/i386/predicates.md (pic_32bit_opreand): Define as special
8203         predicate.  Reject non-SI and non-DI modes.
8204
8205 2011-07-25  Andrew Pinski  <apinski@cavium.com>
8206
8207         PR tree-opt/49671
8208         * tree-inline.c (remap_gimple_op_r): Copy TREE_THIS_VOLATILE and
8209         TREE_THIS_NOTRAP into the inner most MEM_REF.
8210         Always copy TREE_THIS_VOLATILE.
8211         * tree-sra.c (ptr_parm_has_direct_uses): Check that the lhs, rhs and
8212         arguments are not volatile references.
8213
8214 2011-07-25  Richard Henderson  <rth@redhat.com>
8215
8216         * insn-notes.def (NOTE_INSN_CFA_RESTORE_STATE): Remove.
8217         * final.c (final_scan_insn): Don't test for it.
8218         (rest_of_clean_state): Likewise.
8219
8220 2011-07-25  Richard Henderson  <rth@redhat.com>
8221
8222         PR debug/49841
8223         * config/rs6000/rs6000.c (rs6000_frame_related): Return the insn.
8224         (emit_frame_save): Likewise.
8225         (rs6000_emit_prologue): Move the FRAME_RELATED_EXPR from the save
8226         insn onto a dummy blockage insn after the join label.
8227
8228 2011-07-25  Richard Henderson  <rth@redhat.com>
8229
8230         * dwarf2cfi.c (dw_trace_info): Add ID member.
8231         (get_trace_index): Remove.  Change users to use ID member.
8232         (before_next_cfi_note): New.
8233         (connect_traces): Remove unreachable traces before the main loop.
8234         Look across one trace and generate remember/restore_state if needed.
8235
8236 2011-07-25  Richard Henderson  <rth@redhat.com>
8237
8238         * dwarf2cfi.c (dump_cfi_row, debug_cfi_row): New.
8239
8240 2011-07-25  Joern Rennecke  <joern.rennecke@embecosm.com>
8241
8242         * genattr.c (write_upcase, gen_attr <enum definition writing>):
8243         Move to ...
8244         * genattr-common.c ... here.
8245         (main): Call gen_attr.
8246         * optc-gen.awk: Make generated program include insn-attr-common.h .
8247         * Makefile.in (oprions.o): Depend on insn-attr-common.h
8248
8249 2011-07-25  Anatoly Sokolov  <aesok@post.ru>
8250
8251         * config/m32c/m32c.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
8252         PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
8253         * config/m32c/m32c-protos.h (m32c_print_operand_punct_valid_p,
8254         m32c_print_operand, m32c_print_operand_address): Remove.
8255         * config/m32c/m32c.c (m32c_print_operand_punct_valid_p): Make static.
8256         Change return type to bool. Change argument type to bool.
8257         (m32c_print_operand, m32c_print_operand_address): Make static.
8258         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
8259         TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
8260
8261 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8262
8263         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
8264         attributes): Document mmap.
8265
8266 2011-07-25  Anatoly Sokolov  <aesok@post.ru>
8267
8268         * config/mmix/mmix.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
8269         PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
8270         * config/mmix/mmix-protos.h (mmix_print_operand_punct_valid_p,
8271         mmix_print_operand, mmix_print_operand_address): Remove.
8272         * config/mmix/mmix.c (mmix_print_operand_punct_valid_p): Make static.
8273         Change return type to bool. Change argument type to bool.
8274         (mmix_print_operand, mmix_print_operand_address): Make static.
8275         (mmix_intval, mmix_output_condition): Change 'x' argument type
8276         to const_rtx.
8277         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
8278         TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
8279
8280 2011-07-25  Georg-Johann Lay  <avr@gjlay.de>
8281
8282         PR target/39386
8283         * config/avr/avr.c (out_shift_with_cnt): Use tmp_reg as
8284         shift counter for x << x and x >> x shifts.
8285
8286 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8287
8288         PR target/47124
8289         * config.gcc: Reject *-*-solaris2 configuration.
8290
8291 2011-07-25  Richard Sandiford  <richard.sandiford@linaro.org>
8292
8293         PR tree-optimization/49809
8294         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Use
8295         gimple_get_lhs instead of gimple_assign_lhs.
8296
8297 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8298
8299         * system.h [__cplusplus]: Wrap C function declarations in extern "C".
8300
8301 2011-07-25  Richard Guenther  <rguenther@suse.de>
8302
8303         PR tree-optimization/49822
8304         * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
8305         more.  Make sure to preserve stmts with side-effects.  Properly
8306         handle virtual defs, follow a longer def chain.
8307
8308 2011-07-22  Romain Geissler  <romain.geissler@gmail.com>
8309
8310         PR plugins/45348
8311         PR plugins/48425
8312         PR plugins/46577
8313         * Makefile.in: Do not flatten c-family directory when installing
8314         plugin headers.
8315
8316 2011-07-25  Eric Botcazou  <ebotcazou@adacore.com>
8317
8318         * ipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of
8319         original nodes if we are dealing with virtual clones.
8320
8321 2011-07-25  Bernd Schmidt  <bernds@codesourcery.com>
8322
8323         * common/config/c6x/c6x-common.c: New file.
8324
8325 2011-07-25  Roman Zhuykov  <zhroma@ispras.ru>
8326
8327         * tree-flow.h (tree_ssa_loop_version): Remove unused declaration.
8328
8329 2011-07-25  Richard Guenther  <rguenther@suse.de>
8330
8331         PR tree-optimization/49715
8332         * tree-vrp.c: Include expr.h and optabs.h.
8333         (range_fits_type_): New function.
8334         (simplify_float_conversion_using_ranges): Likewise.
8335         (simplify_stmt_using_ranges): Call it.
8336         * Makefile.in (tree-vrp.o): Add $(EXPR_H) and $(OPTABS_H) dependencies.
8337         * optabs.c (can_float_p): Export.
8338         * optabs.h (can_float_p): Declare.
8339
8340 2011-07-25  Richard Guenther  <rguenther@suse.de>
8341
8342         * tree-vrp.c (num_vr_values, values_propagated): New global vars.
8343         (get_value_range): For out-of-range SSA names or names created
8344         after propagation return a read-only varying range.
8345         (dump_all_value_ranges): Adjust.
8346         (vrp_initialize): Likewise.
8347         (vrp_finalize): Likewise.
8348
8349 2011-07-24  Richard Henderson  <rth@redhat.com>
8350
8351         PR debug/49831
8352         * dwarf2cfi.c (connect_traces): Allow unvisited traces.  Skip
8353         them entirely.
8354
8355 2011-07-24  Richard Henderson  <rth@redhat.com>
8356
8357         PR debug/49825
8358         * dwarf2cfi.c (dwarf2out_stack_adjust): Move A_O_A test earlier.
8359         (dwarf2out_notice_stack_adjust): Use args_size from call_insn.
8360
8361 2011-07-24  Richard Henderson  <rth@redhat.com>
8362
8363         PR debug/49827
8364         * dwarf2cfi.c (create_trace_edges): Handle sequences properly.
8365
8366 2011-07-24  Richard Henderson  <rth@redhat.com>
8367
8368         * dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter.
8369         Zero args_size for abnormal edges.  Adjust all callers.
8370
8371 2011-07-24  Richard Henderson  <rth@redhat.com>
8372
8373         PR debug/49825
8374         * dwarf2cfi.c (cfi_row_equal_p): Don't compare args_size.
8375
8376 2011-07-24  H.J. Lu  <hongjiu.lu@intel.com>
8377
8378         PR bootstrap/49835
8379         * collect2.c (demangle_flag): Removed.
8380
8381 2011-07-24  Sandra Loosemore  <sandra@codesourcery.com>
8382
8383         * configure.ac (demangler_in_ld): Default to yes.
8384         * configure: Regenerated.
8385         * collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't
8386         mess with COLLECT_NO_DEMANGLE, and just pass --demangle and
8387         --no-demangle options straight through to ld.  When
8388         HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a
8389         way that has the intended effect on Windows.
8390
8391 2011-07-23  Richard Henderson  <rth@redhat.com>
8392
8393         * dwarf2cfi.c: Include basic-block.h.
8394         (dw_label_info): Remove.
8395         (trace_work_list, trace_index): New.
8396         (remember_row, emit_cfa_remember): Remove.
8397         (dw_trace_info_hash, dw_trace_info_eq): New.
8398         (get_trace_index, get_trace_info): New.
8399         (save_point_p): New.
8400         (free_cfi_row): Remove.
8401         (add_cfi): Do not emit DW_CFA_remember_state.
8402         (cfa_row_equal_p): New.
8403         (barrier_args_size): Remove.
8404         (compute_barrier_args_size_1, compute_barrier_args_size): Remove.
8405         (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size.
8406         (maybe_record_trace_start, create_trace_edges, scan_trace): New.
8407         (dwarf2out_cfi_begin_epilogue): Remove.
8408         (dwarf2out_frame_debug_restore_state): Remove.
8409         (connect_traces, create_pseudo_cfg): New.
8410         (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces.
8411         * Makefile.in (dwarf2cfi.o): Update.
8412
8413 2011-07-23  Richard Henderson  <rth@redhat.com>
8414
8415         * dwarf2cfi.c (dw_trace_info): New.
8416         (dw_label_info): New.
8417         (cie_return_save): New.
8418         (cur_trace): New.
8419         (queued_args_size): Rename from args_size.  Update all users.
8420         (cfa_store, cfa_temp, regs_saved_in_regs): Remove.
8421         (def_cfa_1): Use cur_trace instead of cfa_*.
8422         (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise.
8423         (clobbers_queued_reg_save, reg_saved_in): Likewise.
8424         (dwarf2out_frame_debug_expr): Likewise.
8425         (create_cie_data): Split out from ...
8426         (execute_dwarf2_frame): ... here.  Initialize cur_trace.
8427
8428 2011-07-23  Richard Henderson  <rth@redhat.com>
8429
8430         * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc.
8431         Update all users to match.
8432         (execute_dwarf2_frame): Free reg_saved_in_data.
8433
8434 2011-07-23  Richard Henderson  <rth@redhat.com>
8435
8436         * dwarf2cfi.c (queued_reg_save): Reorder for packing.  Don't GTY.
8437         (queued_reg_saves): Don't GTY.  Change to a VEC.
8438         (queue_reg_save): Update to match.
8439         (dwarf2out_flush_queued_reg_saves): Likewise.
8440         (clobbers_queued_reg_save): Likewise.
8441         (reg_saved_in): Likewise.
8442         (execute_dwarf2_frame): Free queued_reg_saves.
8443
8444 2011-07-23  Richard Henderson  <rth@redhat.com>
8445
8446         * dwarf2cfi.c (dw_cfi_row_ref): Remove.  Update all users.
8447
8448 2011-07-23  Richard Henderson  <rth@redhat.com>
8449
8450         * dwarf2cfi.c (add_cfi_args_size): Split out from...
8451         (dwarf2out_args_size): ... here.
8452         (add_cfi_restore): Split out from ...
8453         (dwarf2out_frame_debug_cfa_restore): ... here.
8454         (def_cfa_0): Split out from ...
8455         (def_cfa_1): ... here.
8456         (cfi_oprnd_equal_p, cfi_equal_p): New.
8457         (change_cfi_row): New.
8458         (add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index.
8459         (create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note.
8460         (output_cfis): Remove.
8461         * dwarf2out.c (output_fde): Simplify output_cfi loop.
8462         (dwarf2out_switch_text_section): Don't call output_cfis.
8463         (dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New.
8464         * dwarf2out.h: Update decls.
8465         (enum dw_val_class): Add dw_val_class_none.
8466
8467 2011-07-23  Richard Henderson  <rth@redhat.com>
8468
8469         * dwarf2cfi.c (update_row_reg_save): New.
8470         (dwarf2out_frame_debug_cfa_expression): Use it.
8471         (dwarf2out_frame_debug_cfa_restore): Likewise.
8472         (reg_save): Likewise.  Do not emit DW_CFA_same_value.
8473
8474 2011-07-23  Richard Henderson  <rth@redhat.com>
8475
8476         * dwarf2cfi.c (add_cfi_insn): Rename from cfi_insn.  Update all users.
8477
8478 2011-07-23  Richard Henderson  <rth@redhat.com>
8479
8480         * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New.
8481         (cie_cfi_row): New.
8482         (new_cfi_row, copy_cfi_row, free_cfi_row): New.
8483         (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove.
8484         (cur_row, remember_row): New.
8485         (def_cfa_1): Use cur_row instead of the old_* variables.
8486         (dwarf2out_frame_debug_restore_state): Similarly.
8487         (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise.
8488         (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa.
8489         (dwarf2out_frame_debug_adjust_cfa): Likewise.
8490         (dwarf2out_frame_debug_cfa_offset): Likewise.
8491         (dwarf2out_frame_debug_expr): Likewise.
8492         (execute_dwarf2_frame): Set up cur_row.
8493         * dwarf2out.h (struct cfa_loc): Mark for GTY.
8494
8495 2011-07-23  Richard Henderson  <rth@redhat.com>
8496
8497         * basic-block.h (EDGE_PRESERVE): New.
8498         (EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it.
8499         * bb-reorder.c: Include except.h.
8500         (fix_up_crossing_landing_pad): New.
8501         (find_rarely_executed_basic_blocks_and_crossing_edges): Place
8502         landing pads in the right partition.  Duplicate as necessary.
8503         (partition_hot_cold_basic_blocks): Fix up DF info after
8504         duplicating landing pads.
8505         * cfg.c (dump_edge_info): Add crossing and preserve to bitnames.
8506         * cfgrtl.c (rtl_verify_flow_info_1): Validate that EDGE_CROSSING
8507         is set properly.  Validate that EH edges are not CROSSING.
8508         * except.c (expand_dw2_landing_pad_for_region): Split out from ...
8509         (dw2_build_landing_pads): ... here.
8510         (convert_to_eh_region_ranges): Remove code to fixup crossing
8511         landing pads.
8512         * except.h (expand_dw2_landing_pad_for_region): Declare.
8513         * tree-cfg.c (gimple_can_merge_blocks_p): Don't merge PRESERVE edges.
8514
8515 2011-07-23  Richard Earnshaw  <rearnsha@arm.com>
8516
8517         PR target/49816
8518         * arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure.
8519
8520 2011-07-22  Jason Merrill  <jason@redhat.com>
8521
8522         * doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing.
8523
8524 2011-07-22  Richard Henderson  <rth@redhat.com>
8525
8526         * bb-reorder.c (gate_handle_partition_blocks): Honor optimize.
8527
8528 2011-07-22  Richard Henderson  <rth@redhat.com>
8529
8530         * jump.c (maybe_propagate_label_ref): Split out of...
8531         (mark_all_labels): ... here.  Do not attempt label_ref
8532         propagation while in cfglayout mode.
8533
8534 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
8535
8536         * dwarf2out.c (struct macinfo_struct): Change code to unsigned char.
8537         (DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define.
8538         (dwarf_attr_name): Handle DW_AT_GNU_macros.
8539         (dwarf2out_define): If the vector is empty and
8540         lineno is 0, emit a dummy entry first.
8541         (dwarf2out_undef): Likewise.  Remove redundant semicolon.
8542         (htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op,
8543         optimize_macinfo_range): New functions.
8544         (output_macinfo): Use them.  If !dwarf_strict and .debug_str is
8545         mergeable, optimize longer strings using
8546         DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP,
8547         optimize longer sequences of define/undef ops from headers
8548         using DW_MACRO_GNU_transparent_include.  For !dwarf_strict
8549         emit a section headers.
8550         (dwarf2out_init): For !dwarf_strict set debug_macinfo_section
8551         and macinfo_section_label to DEBUG_MACRO_SECTION
8552         resp. DEBUG_MACRO_SECTION_LABEL.
8553         (dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros
8554         instead of DW_AT_macro_info.
8555
8556         PR other/32998
8557         * common.opt (grecord-gcc-switches, gno-record-gcc-switches): New
8558         options.
8559         * dwarf2out.c: Include opts.h.
8560         (dchar_p): New typedef.  Define heap VEC for it.
8561         (producer_string): New variable.
8562         (gen_producer_string): New function.
8563         (gen_compile_unit_die): Use it.
8564         (dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer if needed.
8565         * Makefile.in (dwarf2out.o): Depend on $(OPTS_H).
8566         * doc/invoke.texi: Document -grecord-gcc-switches and
8567         -gno-record-gcc-switches, add a -grecord-gcc-switches reference
8568         to -frecord-gcc-switches description.
8569
8570 2011-07-22  Jason Merrill  <jason@redhat.com>
8571
8572         PR c++/30112
8573         * c-decl.c (c_linkage_bindings): Define.
8574
8575 2011-07-22  Eric Botcazou  <ebotcazou@adacore.com>
8576
8577         PR debug/49815
8578         * var-tracking.c (vt_finalize): Always free windowed_parm_regs.
8579
8580 2011-07-22  H.J. Lu  <hongjiu.lu@intel.com>
8581
8582         * config/i386/i386.c (ix86_option_override_internal): Disallow
8583         MS ABI in x32 mode.
8584         (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi
8585         only for TARGET_LP64.
8586         (ix86_handle_abi_attribute): Check TARGET_LP64 instead of TARGET_64BIT.
8587
8588 2011-07-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
8589
8590         * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to
8591         avoid warnings when GCC is built with a C++ compiler.
8592
8593 2011-07-22  Martin Jambor  <mjambor@suse.cz>
8594
8595         PR lto/49796
8596         * cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false
8597         if decl node is in another partition, call cgraph_get_node only once.
8598
8599 2011-07-22  Uros Bizjak  <ubizjak@gmail.com>
8600
8601         * config.gcc (x86_64-*-linux*): Set
8602         default_gnu_indirect_function to yes.
8603
8604 2011-07-22  Richard Guenther  <rguenther@suse.de>
8605
8606         PR tree-optimization/45819
8607         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
8608         preserve volatile and notrap flags.
8609
8610 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8611             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8612
8613         PR bootstrap/49794
8614         * configure.ac: Test AM_ICONV with CXX.
8615         * configure: Regenerate.
8616         * config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST.
8617
8618 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8619
8620         PR bootstrap/49797
8621         * graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing.
8622         (set_cloog_options): Use it.
8623
8624 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
8625
8626         PR c++/49756
8627         * gcc.c (main): Call stack_limit_increase (64MB).
8628         * toplev.c (toplev_main): Likewise.
8629
8630 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
8631
8632         * config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg
8633         instead of force_reg.
8634
8635 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
8636
8637         * config/i386/i386.c (ix86_expand_move): Convert to Pmode if
8638         needed and use force_reg after convert.
8639         (ix86_expand_call): Likewise.
8640         (ix86_expand_special_args_builtin): Likewise.
8641         (ix86_expand_builtin): Likewise.
8642
8643 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
8644
8645         PR middle-end/47654
8646         PR middle-end/49649
8647         * graphite-clast-to-gimple.c (type_for_clast_term): Pass v1 and v2
8648         in parameter.  Initialize v1 and v2 based on the values returned
8649         by clast_name_to_lb_ub.
8650         (type_for_clast_red): Pass v1 and v2 in parameter, and set their
8651         values.
8652         (type_for_clast_bin): Same.
8653         (type_for_clast_expr): Same.
8654         (type_for_clast_eq): Update calls to type_for_clast_expr.
8655         (type_for_clast_for): Same.
8656         (build_iv_mapping): Same.
8657         * graphite-ppl.h (value_min): New.
8658
8659 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
8660
8661         * graphite-clast-to-gimple.c (type_for_interval): Generate signed
8662         types whenever possible.
8663
8664 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
8665
8666         * graphite-clast-to-gimple.c (struct clast_name_index): Add lb
8667         and ub fields.
8668         (new_clast_name_index): Add lb and ub parameters.
8669         (free_clast_name_index): New.
8670         (clast_name_to_lb_ub): New.
8671         (save_clast_name_index): Add lb and ub parameters.
8672         (compute_bounds_for_param): New.
8673         (type_for_level): Removed.
8674         (type_for_clast_for): Removed level parameter.  Do not call
8675         type_for_level.
8676         (graphite_create_new_loop): Store the lb and ub for the clast_name
8677         of the iterator of the loop that has been generated.
8678         (graphite_create_new_loop_guard): Remove parameter level.
8679         (create_params_index): Store the lb and ub of each parameter.
8680         (gloog): Use free_clast_name_index.  Pass to create_params_index
8681         the current scop.
8682
8683 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
8684
8685         * graphite-clast-to-gimple.c (max_signed_precision_type): Removed.
8686         (max_precision_type): Inline max_signed_precision_type.
8687         (type_for_clast_red): Use max_precision_type.
8688         (type_for_clast_bin): Same.
8689         (type_for_clast_for): Same.
8690
8691 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
8692
8693         * graphite-clast-to-gimple.c (gcc_type_for_interval): Renamed
8694         type_for_interval.
8695         (gcc_type_for_value): Renamed type_for_value.
8696         (gcc_type_for_clast_term): Renamed type_for_clast_term.
8697         (gcc_type_for_clast_expr): Renamed type_for_clast_expr.
8698         (gcc_type_for_clast_red): Renamed type_for_clast_red.
8699         (gcc_type_for_clast_bin): Renamed type_for_clast_bin.
8700         (gcc_type_for_clast_eq): Renamed type_for_clast_eq.
8701         (graphite_translate_clast_equation): Update calls.
8702         (compute_type_for_level): Renamed type_for_level.
8703         (gcc_type_for_iv_of_clast_loop): Renamed type_for_clast_for.
8704         (build_iv_mapping): Update calls.
8705         (graphite_create_new_loop_guard): Same.
8706
8707 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
8708
8709         * graphite-clast-to-gimple.c (clast_get_body_of_loop): Add fixme
8710         comment.
8711
8712 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
8713
8714         * graphite-clast-to-gimple.c (struct ivs_params): New.
8715         (clast_name_to_gcc): Use ivs_params to pass around parameters.
8716         (clast_to_gcc_expression): Same.
8717         (clast_to_gcc_expression_red): Same.
8718         (gcc_type_for_clast_term): Same.
8719         (gcc_type_for_clast_expr): Same.
8720         (gcc_type_for_clast_red): Same.
8721         (gcc_type_for_clast_bin): Same.
8722         (gcc_type_for_clast_eq): Same.
8723         (graphite_translate_clast_equation): Same.
8724         (graphite_create_guard_cond_expr): Same.
8725         (graphite_create_new_guard): Same.
8726         (graphite_create_new_loop): Same.
8727         (build_iv_mapping): Same.
8728         (translate_clast_user): Same.
8729         (graphite_create_new_loop_guard): Same.
8730         (translate_clast): Same.
8731         (translate_clast_for_loop): Same.
8732         (translate_clast_for): Same.
8733         (translate_clast_guard): Same.
8734         (initialize_cloog_names): Fix typo.
8735         (gloog): Initialize an ivs_params struct, pass it to translate_clast.
8736
8737 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
8738
8739         * graphite-clast-to-gimple.c (struct clast_name_index): Add level.
8740         (new_clast_name_index): Add level parameter.
8741         (clast_name_to_level): New.
8742         (save_clast_name_index): Add level parameter.
8743         (newivs_to_depth_to_newiv): Removed.
8744         (clast_name_to_gcc): Inlined newivs_to_depth_to_newiv.
8745         (graphite_create_new_loop): Add level parameter.  Pass level to
8746         save_clast_name_index.
8747         (translate_clast_for_loop): Pass level to graphite_create_new_loop.
8748         (create_params_index): Pass level to save_clast_name_index.
8749
8750 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
8751
8752         * graphite-clast-to-gimple.c (graphite_create_new_loop): Do not
8753         recompute type, lb, and ub.  Get them from...
8754         (graphite_create_new_loop_guard): ...here.  Pass in parameter
8755         pointers to type, lb, and ub.
8756         (translate_clast_for_loop): Update function calls.
8757         (translate_clast_for): Same.
8758
8759 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
8760
8761         * graphite-clast-to-gimple.c (compute_bounds_for_level): Call
8762         psct_dynamic_dim.
8763         (translate_clast_for_loop): Pass loop level to dependency_in_loop_p.
8764         (gcc_type_for_iv_of_clast_loop): Update use of level.
8765         (gloog): Start counting nesting level from 0.
8766         * graphite-clast-to-gimple.h (get_scattering_level): Removed.
8767         * graphite-dependences.c (graphite_carried_dependence_level_k): Call
8768         psct_dynamic_dim on level.
8769
8770 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
8771
8772         * config/i386/i386.c (ix86_legitimize_address): Convert to
8773         Pmode if needed.
8774
8775 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
8776
8777         * config/i386/i386.c (function_value_64): Always return pointers
8778         in Pmode.
8779         (ix86_promote_function_mode): New.
8780         (TARGET_PROMOTE_FUNCTION_MODE): Likewise.
8781
8782 2011-07-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8783
8784         PR tree-optimization/49749
8785         * tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and
8786         remove no-longer-used maxrank variable.
8787
8788 2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
8789
8790         * config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs.
8791
8792 2011-07-21  Jason Merrill  <jason@redhat.com>
8793
8794         * system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New.
8795         * recog.h (struct insn_data_d): Check it instead of
8796         HAVE_DESIGNATED_INITIALIZERS.
8797         * genoutput.c (output_insn_data): Likewise.
8798
8799 2011-07-21  Richard Guenther  <rguenther@suse.de>
8800
8801         PR tree-optimization/49770
8802         * tree-ssa-sccvn.c (valueize_refs_1): Return whether we
8803         valueized any operand.  Renamed from ...
8804         (valueize_refs): ... this.  New wrapper around valueize_refs_1.
8805         (valueize_shared_reference_ops_from_ref): Return whether we
8806         valueized any operand.
8807         (vn_reference_lookup): Only when we valueized any operand
8808         use the valueized reference for alias analysis.  Do not preserve
8809         the original reference tree in this case.
8810
8811 2011-07-21  Uros Bizjak  <ubizjak@gmail.com>
8812
8813         * config/i386/i386.c (ix86_decompose_address): Reject all but
8814         register operands and subregs of DImode hard registers in index.
8815
8816 2011-07-21  Kai Tietz  <ktietz@redhat.com>
8817
8818         * fold-const.c (fold_unary_loc): Preserve indirect
8819         comparison cast to none-boolean type.
8820         * tree-ssa.c (useless_type_conversion_p): Preserve cast
8821         from/to boolean-type.
8822         * gimplify.c (gimple_boolify): Handle boolification of comparisons.
8823         (gimplify_expr): Boolifiy non aggregate-typed comparisons.
8824         * tree-cfg.c (verify_gimple_comparison): Check result
8825         type of comparison expression.
8826         * tree-ssa-forwprop.c (forward_propagate_comparison): Adjust test
8827         of condition result and disallow type-cast sinking into comparison.
8828
8829 2011-07-21  Richard Guenther  <rguenther@suse.de>
8830
8831         * tree-ssa-forwprop.c (combine_conversions): Return whether
8832         we have to run cfg-cleanup.  Properly remove dead stmts.
8833         (ssa_forward_propagate_and_combine): Adjust.
8834
8835 2011-07-21  Richard Sandiford  <richard.sandiford@linaro.org>
8836
8837         * regcprop.c (maybe_mode_change): Check HARD_REGNO_MODE_OK.
8838
8839 2011-07-21  Kai Tietz  <ktietz@redhat.com>
8840
8841         * tree-ssa-propagate.c (substitute_and_fold): Use
8842         do_dce flag to deside, if BB's statements are scanned
8843         in last to first, or first to last order.
8844
8845 2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
8846
8847         * config/avr/avr.c (avr_rtx_costs): Set cost of CONST, LABEL_REF to 0.
8848
8849 2011-07-20  H.J. Lu  <hongjiu.lu@intel.com>
8850             Uros Bizjak  <ubizjak@gmail.com>
8851             Richard Henderson  <rth@redhat.com>
8852
8853         * config/i386/constraints.md (w): New.
8854
8855         * config/i386/i386.c (ix86_output_addr_vec_elt): Check
8856         TARGET_LP64 instead of TARGET_64BIT for ASM_QUAD.
8857
8858         * config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64
8859         instead of TARGET_64BIT.
8860
8861         * config/i386/i386.md (indirect_jump): Replace
8862         nonimmediate_operand with indirect_branch_operand.
8863         (*indirect_jump): Likewise.  Replace constraint "m" with "w".
8864         (tablejump): Replace nonimmediate_operand with indirect_branch_operand.
8865         Convert operand 0 to Pmode for x32 if not PIC.
8866         (*tablejump_1): Replace nonimmediate_operand with
8867         indirect_branch_operand.  Replace constraint "m" with "w".
8868         (*call_vzeroupper): Replace constraint "m" with "w".
8869         (*call): Likewise.
8870         (*call_rex64_ms_sysv_vzeroupper): Likewise.
8871         (*call_rex64_ms_sysv): Likewise.
8872         (*call_value_vzeroupper): Likewise.
8873         (*call_value): Likewise.
8874         (*call_value_rex64_ms_sysv_vzeroupper): Likewise.
8875         (*call_value_rex64_ms_sysv): Likewise.
8876         (set_got_offset_rex64): Check TARGET_LP64 instead of TARGET_64BIT.
8877
8878         * config/i386/predicates.md (indirect_branch_operand): New.
8879         (call_insn_operand): Support x32.
8880
8881 2011-07-20  Michael Eager  <eager@eagercon.com>
8882
8883         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Default to 12.
8884
8885 2011-07-20  Richard Henderson  <rth@redhat.com>
8886
8887         * cfg.c (dump_bb_info): Dump basic_block->flags.
8888         * cfgrtl.c (print_rtl_with_bb): Use dump_bb_info.
8889
8890 2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
8891
8892         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
8893         of DImode hard registers in index.
8894         (ix86_legitimate_address_p): Allow subregs of base and index to span
8895         more than a word.  Assert that subregs of base and index satisfy
8896         register_no_elim_operand predicates.  Reject addresses where
8897         base and index have different modes.
8898
8899 2011-07-20  Robert Millan  <rmh@gnu.org>
8900
8901         * config.gcc (mips*-*-linux*): Remove redundant tm_file entry.
8902
8903 2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8904
8905         * bb-reorder.c (fix_crossing_conditional_branches): Fix crash by
8906         removing now-unnecessary assignment.
8907
8908 2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8909
8910         * emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting
8911         memory address space to the type's address space.
8912
8913 2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
8914
8915         PR target/36467
8916         PR target/49687
8917         * config/avr/avr.md (mulhi3): Use register_or_s9_operand for operand2
8918         and expand appropriately if there is a CONST_INT in operand2.
8919         (usmulqihi3): New insn.
8920         (*sumulqihi3): New insn.
8921         (*osmulqihi3): New insn.
8922         (*oumulqihi3): New insn.
8923         (*muluqihi3.uconst): New insn_and_split.
8924         (*muluqihi3.sconst): New insn_and_split.
8925         (*mulsqihi3.sconst): New insn_and_split.
8926         (*mulsqihi3.uconst): New insn_and_split.
8927         (*mulsqihi3.oconst): New insn_and_split.
8928         (*ashifthi3.signx.const): New insn_and_split.
8929         (*ashifthi3.signx.const7): New insn_and_split.
8930         (*ashifthi3.zerox.const): New insn_and_split.
8931         (mulsqihi3): New insn.
8932         (muluqihi3): New insn.
8933         (muloqihi3): New insn.
8934         * config/avr/predicates.md (const_2_to_7_operand): New.
8935         (const_2_to_6_operand): New.
8936         (u8_operand): New.
8937         (s8_operand): New.
8938         (o8_operand): New.
8939         (s9_operand): New.
8940         (register_or_s9_operand): New.
8941
8942 2011-07-20  Kai Tietz  <ktietz@redhat.com>
8943
8944         * builtins.c (fold_builtin_expect): See through the cast
8945         from truthvalue_type_node to long.
8946
8947 2011-07-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
8948
8949         * config/rs6000/vsx.md (vsx_fma*): Use 4 argument fma instructions
8950         where we can use them from the standard and altivec instruction
8951         sets, instead of always using the 3 operand VSX forms that require
8952         the destination to overlap one of the inputs.
8953         (vsx_fms*): Ditto.
8954         (vsx_fnma*): Ditto.
8955         (vsx_fnms*): Ditto.
8956
8957         * config/rs6000/rs6000.md (fmadf4_fpr): Set fp_type fp_maddsub_d
8958         for DF types.
8959         (fmsdf4_fpr): Ditto.
8960         (nfmadf4_fpr): Ditto.
8961         (nfmsdf4_fpr): Ditto.
8962
8963 2011-07-20  Sandra Loosemore  <sandra@codesourcery.com>
8964
8965         * genrecog.c (make_insn_sequence): Correct position numbering
8966         when filtering out match_scratch and match_dup.
8967
8968 2011-07-20  Richard Guenther  <rguenther@suse.de>
8969
8970         * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
8971         against already removed statements.
8972         (forward_propagate_into_comparison): Remove dead defining stmts.
8973         (forward_propagate_into_gimple_cond): Likewise.
8974         (forward_propagate_into_cond): Simplify.
8975         (ssa_forward_propagate_and_combine): Handle changed cfg from
8976         forward_propagate_into_comparison.
8977         * tree-ssa-phiopt.c (conditional_replacement): Use proper
8978         locations for newly built statements.
8979
8980 2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
8981
8982         * config/avr/avr.c (avr_rtx_costs): Set cost of SYMBOL_REF to 0.
8983
8984 2011-07-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8985
8986         * config/s390/s390.c (s390_class_max_nregs): Fix return type.
8987         * config/s390/s390-protos.h (s390_class_max_nregs): Likewise.
8988
8989 2011-07-20  Richard Guenther  <rguenther@suse.de>
8990
8991         PR middle-end/18908
8992         * tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision.
8993         * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus
8994         ADDR_EXPR folding.  Canonicalize X ^ ~0 as ~X.
8995
8996 2011-07-20  Vladimir Makarov  <vmakarov@redhat.com>
8997
8998         * config/frv/frv.c (frv_register_move_cost): Define explicitly
8999         costs for subclasses of GR_REGS.
9000
9001 2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
9002
9003         PR target/49780
9004         * config/i386/predicates.md (no_seg_addres_operand): No more special.
9005         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
9006         of DImode hard registers in base.
9007         (ix86_legitimate_address_p): Allow SImode and DImode base and index
9008         registers.
9009
9010 2011-07-20  Richard Guenther  <rguenther@suse.de>
9011
9012         * tree-ssa-structalias.c (new_var_info): Allocate oldsolution lazily.
9013         (unify_nodes): Deal with that.
9014         (solve_graph): Likewise.
9015
9016 2011-07-20  Chung-Lin Tang  <cltang@codesourcery.com>
9017
9018         * config/arm/arm.c (arm_canonicalize_comparison): Add case to
9019         canonicalize left operand from ZERO_EXTEND to AND.
9020
9021 2011-07-20  Anatoly Sokolov  <aesok@post.ru>
9022
9023         * target.def (class_max_nregs): New hook.
9024         * doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document.
9025         * doc/tm.texi: Regenerate.
9026         * targhooks.c (default_class_max_nregs): New function.
9027         * targhooks.h (default_class_max_nregs): Declare.
9028         * ira.h (target_ira): Change type x_ira_reg_class_max_nregs and
9029         x_ira_reg_class_min_nregs arrays to unsigned char.
9030         * ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target
9031         hook instead of CLASS_MAX_NREGS macro.
9032         * reginfo.c (restore_register_info): Ditto.
9033         * ira-conflicts.c (process_regs_for_copy): Use
9034         ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
9035         Change type rclass and aclass vars to reg_class_t.
9036         * ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs
9037         array instead of CLASS_MAX_NREGS macro. Change type rclass var to
9038         reg_class_t.
9039         * reload.c (combine_reloads, find_reloads, find_reloads_address_1):
9040         Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
9041
9042         * config/i386/i386.h (CLASS_MAX_NREGS): Remove.
9043         * config/i386/i386.c (ix86_class_max_nregs): New function.
9044         (ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook
9045         instead of CLASS_MAX_NREGS macro.
9046         (TARGET_CLASS_MAX_NREGS): Define.
9047         * config/avr/avr.h (CLASS_MAX_NREGS): Remove.
9048         * config/avr/avr-protos.h (class_max_nregs): Remove declaration.
9049         * config/avr/avr.c (class_max_nregs): Remove function.
9050         * config/alpha/alpha.h (CLASS_MAX_NREGS): Remove.
9051         * config/spu/spu.h (CLASS_MAX_NREGS): Remove.
9052         * config/mep/mep.h (CLASS_MAX_NREGS): Remove.
9053         * config/m32r/m32r.h (CLASS_MAX_NREGS): Remove.
9054         * config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove.
9055         * config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove.
9056         * config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove.
9057         * config/lm32/lm32.h (CLASS_MAX_NREGS): Remove.
9058         * config/moxie/moxie.h (CLASS_MAX_NREGS): Remove.
9059         * config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove.
9060         * config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove.
9061         * config/score/score.h (CLASS_MAX_NREGS): Remove.
9062         * config/vax/vax.h (CLASS_MAX_NREGS): Remove.
9063         * config/h8300/h8300.h (CLASS_MAX_NREGS): Remove.
9064         * config/v850/v850.h (CLASS_MAX_NREGS): Remove.
9065
9066 2011-07-19  Eric Botcazou  <ebotcazou@adacore.com>
9067
9068         * cif-code.def (OVERWRITABLE): Fix typo and move around.
9069         (TARGET_OPTIMIZATION_MISMATCH): Delete.
9070         (EH_PERSONALITY): Fix typo.
9071         (NON_CALL_EXCEPTIONS): Fix message.
9072         (OPTIMIZATION_MISMATCH): Adjust message.
9073         * ipa-inline.c (can_inline_edge_p): Use CIF_OPTIMIZATION_MISMATCH.
9074
9075 2011-07-19  Ian Lance Taylor  <iant@google.com>
9076
9077         * doc/install.texi (Configuration): Document
9078         --enable-build-poststage1-with-cxx.
9079
9080 2011-07-19  Robert Millan  <rmh@gnu.org>
9081
9082         * config/mips/gnu-user.h: Copy from linux.h.  Update comments.
9083         (GLIBC_DYNAMIC_LINKER): Remove.
9084
9085         * config/mips/gnu-user64.h: Copy from linux64.h.  Update comments.
9086         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
9087         (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
9088         (BIONIC_DYNAMIC_LINKERN32, GNU_USER_DYNAMIC_LINKERN32): Remove.
9089         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32,
9090         GNU_USER_DYNAMIC_LINKER64 and GNU_USER_LINK_EMULATIONN32.
9091
9092         * config/mips/linux.h: Remove everything except for ...
9093         (GLIBC_DYNAMIC_LINKER): ... this macro.
9094
9095         * config/mips/linux64.h: Remove everything except for ...
9096         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
9097         (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
9098         (BIONIC_DYNAMIC_LINKERN32): ... these macros.
9099         (GNU_USER_LINK_EMULATION32, GNU_USER_LINK_EMULATION64)
9100         (GNU_USER_LINK_EMULATIONN32): New macros.
9101
9102         * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux* | mips-*-linux*):
9103         Use the new headers.
9104
9105 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
9106
9107         * rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs.
9108         Add offset_known_p and size_known_p fields.
9109         (MEM_OFFSET_KNOWN_P): Update accordingly.
9110         (MEM_OFFSET, MEM_SIZE_KNOWN_P, MEM_SIZE): Likewise.
9111         * emit-rtl.c (mem_attrs_htab_hash): Update after mem_attrs changes.
9112         (mem_attrs_eq_p, set_mem_attributes_minus_bitpos, set_mem_offset)
9113         (clear_mem_offset, set_mem_size, clear_mem_size, change_address)
9114         (adjust_address_1, widen_memory_access, set_mem_attrs_for_spill)
9115         (init_emit_regs): Likewise.
9116
9117 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
9118
9119         * doc/rtl.texi (MEM_OFFSET_KNOWN_P): Document.
9120         (MEM_OFFSET): Change from returning an rtx to returning a
9121         HOST_WIDE_INT.
9122         * rtl.h (MEM_OFFSET_KNOWN_P): New macro.
9123         (MEM_OFFSET): Return a HOST_WIDE_INT rather than an rtx.
9124         * emit-rtl.h (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
9125         (clear_mem_offset): Declare.
9126         * alias.c (ao_ref_from_mem): Adjust uses of MEM_OFFSET, using
9127         MEM_OFFSET_KNOWN_P to test whether the offset is known, and
9128         MEM_OFFSET to get a HOST_WIDE_INT offset.
9129         (nonoverlapping_memrefs_p): Likewise.  Adjust calls to...
9130         (adjust_offset_for_component_ref): Take a bool "known_p"
9131         parameter and a HOST_WIDE_INT "offset" parameter.
9132         * builtins.c (get_memory_rtx): As for ao_ref_from_mem.
9133         Adjust calls to set_mem_offset, passing a HOST_WIDE_INT rather
9134         than an rtx.  Use clear_mem_offset to clear the offset.
9135         * cfgcleanup.c (merge_memattrs): Likewise.
9136         * dwarf2out.c (tls_mem_loc_descriptor): Likewise.
9137         * function.c (assign_parm_find_stack_rtl): Likewise.
9138         (assign_parm_setup_stack): Likewise.
9139         * print-rtl.c (print_rtx): Likewise.
9140         * reload.c (find_reloads_subreg_address): Likewise.
9141         * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
9142         * var-tracking.c (INT_MEM_OFFSET): Likewise.
9143         * emit-rtl.c (set_reg_attrs_from_value): Likewise.
9144         (get_mem_align_offset): Likewise.
9145         (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
9146         (clear_mem_offset): New function.
9147         * config/mips/mips.c (r10k_safe_mem_expr_p): Take a HOST_WIDE_INT
9148         offset rather than an rtx.  Assume both the expressio and offset
9149         are available.
9150         (r10k_needs_protection_p_1): Update accordingly, checking the
9151         expression and offset availability here instead.
9152
9153 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
9154
9155         * doc/rtl.texi (MEM_SIZE_KNOWN_P): Document.
9156         (MEM_SIZE): Change from returning an rtx to returning a HOST_WIDE_INT.
9157         * rtl.h (MEM_SIZE_KNOWN_P): New macro.
9158         (MEM_SIZE): Return a HOST_WIDE_INT rather than an rtx.
9159         * emit-rtl.h (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
9160         (clear_mem_size): Declare.
9161         * emit-rtl.c (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
9162         (clear_mem_size): New function.
9163         * alias.c (ao_ref_from_mem): Adjust uses of MEM_SIZE, using
9164         MEM_SIZE_KNOWN_P to test whether the size is known, and MEM_SIZE
9165         to get a HOST_WIDE_INT size.  Adjust calls to set_mem_size,
9166         passing a HOST_WIDE_INT rather than an rtx.  Use clear_mem_size
9167         to clear the size.
9168         (nonoverlapping_memrefs_p): Likewise.
9169         * builtins.c (get_memory_rtx, expand_builtin_memcmp): Likewise.
9170         (expand_builtin_init_trampoline): Likewise.
9171         * calls.c (compute_argument_addresses): Likewise.
9172         * cfgcleanup.c (merge_memattrs): Likewise.
9173         * dce.c (find_call_stack_args): Likewise.
9174         * dse.c (record_store, scan_insn): Likewise.
9175         * dwarf2out.c (dw_sra_loc_expr): Likewise.
9176         * expr.c (emit_block_move_hints): Likewise.
9177         * function.c (assign_parm_find_stack_rtl): Likewise.
9178         * print-rtl.c (print_rtx): Likewise.
9179         * reload.c (find_reloads_subreg_address): Likewise.
9180         * rtlanal.c (may_trap_p_1): Likewise.
9181         * var-tracking.c (track_expr_p): Likewise.
9182         * varasm.c (assemble_trampoline_template): Likewise.
9183         * config/arm/arm.c (arm_print_operand): Likewise.
9184         * config/h8300/h8300.c (h8sx_emit_movmd): Likewise.
9185         * config/i386/i386.c (expand_movmem_via_rep_mov): Likewise.
9186         (expand_setmem_via_rep_stos, expand_constant_movmem_prologue)
9187         (expand_constant_setmem_prologue): Likewise.
9188         * config/mips/mips.c (mips_get_unaligned_mem): Likewise.
9189         * config/rs6000/rs6000.c (expand_block_move): Likewise.
9190         (adjacent_mem_locations): Likewise.
9191         * config/s390/s390.c (s390_expand_setmem): Likewise.
9192         (s390_expand_insv): Likewise.
9193         * config/s390/s390.md (*extzv<mode>, *extv<mode>): Likewise.
9194         (*extendqi<mode>2_short_displ): Likewise.
9195         * config/sh/sh.c (expand_block_move): Likewise.
9196         * config/sh/sh.md (extv, extzv): Likewise.
9197
9198 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
9199
9200         * emit-rtl.c (mem_attrs_eq_p): New function, split out from...
9201         (mem_attrs_htab_eq): ...here.
9202         (find_mem_attrs): Replace with...
9203         (set_mem_attrs): ...this function.  Take a mem_attrs structure
9204         rather than individual fields.
9205         (set_mem_attributes_minus_bitpos, set_mem_alias_set)
9206         (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
9207         (set_mem_size, change_address, adjust_address_1, offset_address)
9208         (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
9209         Update accordingly.
9210
9211 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
9212
9213         * rtl.h (MEM_ALIAS_SET, MEM_EXPR, MEM_OFFSET, MEM_ADDR_SPACE)
9214         (MEM_SIZE, MEM_ALIGN): Redefine in terms of get_mem_attrs.
9215         Provide a dummy definition of MEM_ADDR_SPACE for generators.
9216         (target_rtl): Add x_mode_mem_attrs.
9217         (mode_mem_attrs): New macro.
9218         (get_mem_attrs): New function.
9219         * emit-rtl.c (get_mem_attrs): Rename to...
9220         (find_mem_attrs): ...this.
9221         (set_mem_attributes_minus_bitpos, set_mem_alias_set)
9222         (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
9223         (set_mem_size, change_address, adjust_address_1, offset_address)
9224         (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
9225         Update accordingly.
9226         (init_emit_regs): Initialize mode_mem_attrs.
9227
9228 2011-07-19  Richard Guenther  <rguenther@suse.de>
9229
9230         * tree-ssa-forwprop.c (lookup_logical_inverted_value): Remove
9231         TRUTH_*_EXPR handling.
9232         * tree-ssa-operands.c (get_expr_operands): Likewise.
9233         * tree-ssa-pre.c (fully_constant_expression): Likewise.
9234         * tree-ssa-uninit.c (use_pred_not_overlap_with_undef_path_pre):
9235         Likewise.
9236         (is_and_or_or): Likewise.
9237         (is_norm_cond_subset_of): Likewise.
9238
9239 2011-07-19  Richard Guenther  <rguenther@suse.de>
9240
9241         * tree.h (fold_build_pointer_plus_loc): New helper function.
9242         (fold_build_pointer_plus_hwi_loc): Likewise.
9243         (fold_build_pointer_plus): Define.
9244         (fold_build_pointer_plus_hwi): Likewise.
9245         * builtins.c (std_gimplify_va_arg_expr): Use fold_build_pointer_plus.
9246         (fold_builtin_memory_op): Likewise.
9247         (fold_builtin_stpcpy): Likewise.
9248         (fold_builtin_memchr): Likewise.
9249         (fold_builtin_strstr): Likewise.
9250         (fold_builtin_strchr): Likewise.
9251         (fold_builtin_strrchr): Likewise.
9252         (fold_builtin_strpbrk): Likewise.
9253         (fold_builtin_strcat): Likewise.
9254         (expand_builtin_memory_chk): Likewise.
9255         (fold_builtin_memory_chk): Likewise.
9256         * c-typeck.c (build_unary_op): Likewise.
9257         * cgraphunit.c (thunk_adjust): Likewise.
9258         * fold-const.c (build_range_check): Likewise.
9259         (fold_binary_loc): Likewise.
9260         * omp-low.c (extract_omp_for_data): Likewise.
9261         (expand_omp_for_generic): Likewise.
9262         (expand_omp_for_static_nochunk): Likewise.
9263         (expand_omp_for_static_chunk): Likewise.
9264         * tree-affine.c (add_elt_to_tree): Likewise.
9265         * tree-data-ref.c (split_constant_offset_1): Likewise.
9266         * tree-loop-distribution.c (generate_memset_zero): Likewise.
9267         * tree-mudflap.c (mf_xform_derefs_1): Likewise.
9268         * tree-predcom.c (ref_at_iteration): Likewise.
9269         * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
9270         (add_to_parts): Likewise.
9271         (create_mem_ref): Likewise.
9272         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
9273         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Likewise.
9274         (number_of_iterations_le): Likewise.
9275         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise.
9276         * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
9277         (vect_create_addr_base_for_vector_ref): Likewise.
9278         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Likewise.
9279         (vect_create_cond_for_alias_checks): Likewise.
9280         * tree-vrp.c (extract_range_from_assert): Likewise.
9281         * config/alpha/alpha.c (alpha_va_start): Likewise.
9282         (alpha_gimplify_va_arg_1): Likewise.
9283         * config/i386/i386.c (ix86_va_start): Likewise.
9284         (ix86_gimplify_va_arg): Likewise.
9285         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
9286         * config/mep/mep.c (mep_expand_va_start): Likewise.
9287         (mep_gimplify_va_arg_expr): Likewise.
9288         * config/mips/mips.c (mips_va_start): Likewise.
9289         (mips_gimplify_va_arg_expr): Likewise.
9290         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
9291         * config/rs6000/rs6000.c (rs6000_va_start): Likewise.
9292         (rs6000_gimplify_va_arg): Likewise.
9293         * config/s390/s390.c (s390_va_start): Likewise.
9294         (s390_gimplify_va_arg): Likewise.
9295         * config/sh/sh.c (sh_va_start): Likewise.
9296         (sh_gimplify_va_arg_expr): Likewise.
9297         * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
9298         * config/spu/spu.c (spu_va_start): Likewise.
9299         (spu_gimplify_va_arg_expr): Likewise.
9300         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
9301         Likewise.
9302         (xstormy16_gimplify_va_arg_expr): Likewise.
9303         * config/xtensa/xtensa.c (xtensa_va_start): Likewise.
9304         (xtensa_gimplify_va_arg_expr): Likewise.
9305
9306 2011-07-19  Richard Guenther  <rguenther@suse.de>
9307
9308         * expr.c (expand_expr_real_2): Remove TRUTH_*_EXPR handling.
9309         (expand_expr_real_1): Remove TRUTH_*IF_EXPR and STATEMENT_LIST
9310         handling.
9311
9312         PR middle-end/18908
9313         * expr.c (expand_expr_real_2): Do not unnecessarily truncate the
9314         result of BIT_*_EXPR to bitfield precision.
9315
9316 2011-07-19  Richard Sandiford  <richard.sandiford@linaro.org>
9317
9318         PR tree-optimization/49742
9319         * tree-data-ref.c (get_references_in_stmt): Treat the lhs of a call
9320         as a potential write.
9321
9322 2011-07-19  Richard Guenther  <rguenther@suse.de>
9323
9324         * Makefile.in (tree-ssa-forwprop.o): Depend on gimple-pretty-print.h.
9325         * tree-ssa-forwprop.c: Include gimple-pretty-print.h.
9326         (forward_propagate_comparison): Simplify, remove obsolete code.
9327
9328 2011-07-19  Richard Guenther  <rguenther@suse.de>
9329
9330         * gimplify.c (gimplify_expr): Gimplify TRUTH_NOT_EXPR as
9331         BIT_XOR_EXPR, same as the RTL expander does.
9332         * tree-cfg.c (verify_expr): Disallow TRUTH_NOT_EXPR in the gimple IL.
9333         (verify_gimple_assign_unary): Likewise.
9334         * tree-ssa-propagate.c (valid_gimple_rhs_p): Disallow TRUTH_*_EXPR.
9335         * tree-ssa-forwprop.c (forward_propagate_comparison): Handle
9336         BIT_NOT_EXPR and BIT_XOR_EXPR instead of TRUTH_NOT_EXPR.
9337
9338 2011-07-19  Jakub Jelinek  <jakub@redhat.com>
9339
9340         PR tree-optimization/49768
9341         * gimple-fold.c (fold_nonarray_ctor_reference): Return NULL
9342         if offset is smaller than bitoffset, but offset+size is bigger
9343         than bitoffset.
9344
9345 2011-07-19  Ira Rosen  <ira.rosen@linaro.org>
9346
9347         PR tree-optimization/49771
9348         * tree-vect-loop-manip.c (vect_vfa_segment_size): In case of
9349         zero step, set segment length to the size of the data-ref's type.
9350
9351 2011-07-18  Martin Jambor  <mjambor@suse.cz>
9352
9353         * ipa-prop.h: Include alloc-pool.h, all sorts of updates to general
9354         comments.
9355         (ipcp_values_pool): Declare.
9356         (ipcp_sources_pool): Likewise.
9357         (ipcp_lattice): Changed to forward declaration.
9358         (ipa_param_descriptor): Removed fields ipcp_lattice, types and
9359         cannot_devirtualize.
9360         (ipa_node_params): New fields descriptors, lattices, known_vals,
9361         clone_for_all_contexts and node dead, removed fields params and
9362         count_scale.
9363         (ipa_set_param_count): Removed.
9364         (ipa_get_param_count): Made to work with descriptors vector.
9365         (ipa_get_param): Updated.
9366         (ipa_param_cannot_devirtualize_p): Removed.
9367         (ipa_param_types_vec_empty): Likewise.
9368         (ipa_set_param_used): New function.
9369         (ipa_get_param_used): Updated to use descriptors vector.
9370         (ipa_func_list): Removed.
9371         (ipa_init_func_list): Removed declaration.
9372         (ipa_push_func_to_list_1): Likewise.
9373         (ipa_pop_func_from_list): Likewise.
9374         (ipa_push_func_to_list): Removed.
9375         (ipa_lattice_from_jfunc): Remove declaration.
9376         (ipa_get_jf_pass_through_result): Declare.
9377         (ipa_get_jf_ancestor_result): Likewise.
9378         (ipa_value_from_jfunc): Likewise.
9379         (ipa_get_lattice): Update.
9380         (ipa_lat_is_single_const): New function.
9381         * ipa-prop.c (ipa_push_func_to_list_1): Removed.
9382         (ipa_init_func_list): Likewise.
9383         (ipa_pop_func_from_list): Likewise.
9384         (ipa_get_param_decl_index): Fix coding style.
9385         (count_formal_params): Removed.
9386         (count_formal_params_1): Renamed to count_formal_params.
9387         (ipa_populate_param_decls): Update to use descriptors vector.
9388         (ipa_initialize_node_params): Likewise.
9389         (visit_ref_for_mod_analysis): Use ipa_set_param_used.
9390         (ipa_analyze_params_uses): Likewise.
9391         (ipa_free_node_params_substructures): Likewise and free also lattices
9392         and known values.
9393         (duplicate_array): Removed.
9394         (ipa_edge_duplication_hook): Add the new edge to the list of edge
9395         clones.
9396         (ipa_node_duplication_hook): Update to use new lattices.
9397         (ipa_free_all_structures_after_ipa_cp): Free alloc pools.
9398         (ipa_free_all_structures_after_iinln): Likewise.
9399         (ipa_write_node_info): Update to use new lattices.
9400         (ipa_read_node_info): Likewise.
9401         (ipa_get_jf_pass_through_result): New function.
9402         (ipa_get_jf_ancestor_result): Likewise.
9403         (ipa_value_from_jfunc): Likewise.
9404         (ipa_cst_from_jfunc): Reimplemented using ipa_value_from_jfunc.
9405         * ipa-cp.c: Reimplemented.
9406         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): Removed.
9407         (PARAM_IPA_CP_VALUE_LIST_SIZE): New parameter.
9408         (PARAM_IPA_CP_EVAL_THRESHOLD): Likewise.
9409         * Makefile.in (IPA_PROP_H): Added alloc-pool.h to dependencies.
9410         * doc/invoke.texi (devirt-type-list-size): Removed description.
9411         (ipa-cp-value-list-size): Added description.
9412
9413 2011-07-18  Richard Henderson  <rth@redhat.com>
9414
9415         * bb-reorder.c (fix_crossing_conditional_branches): Emit all insns
9416         before calling create_basic_block.
9417
9418 2011-07-18  Jakub Jelinek  <jakub@redhat.com>
9419
9420         PR middle-end/49675
9421         * tree.c (build_common_builtin_nodes): Register
9422         __builtin_return_address, __cyg_profile_func_enter
9423         and __cyg_profile_func_exit.
9424
9425 2011-07-18  Richard Henderson  <rth@redhat.com>
9426
9427         * bb-reorder.c (emit_barrier_after_bb): Split out of ...
9428         (add_labels_and_missing_jumps): ... here.
9429         (fix_up_fall_thru_edges, fix_crossing_conditional_branches): Use it.
9430
9431 2011-07-18  Uros Bizjak  <ubizjak@gmail.com>
9432
9433         PR target/47744
9434         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
9435         of DImode hard registers in PLUS address chains.
9436
9437 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9438
9439         PR bootstrap/49769
9440         * config.gcc (alpha*-*-linux*): Add crtfastmath.o to extra_parts.
9441         (alpha*-*-freebsd*): Likewise.
9442         (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
9443         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
9444         i[34567]86-*-kopensolaris*-gnu): Add crtprec32.o, crtprec64.o,
9445         crtprec80.o, crtfastmath.o to extra_parts for all targets.
9446         (ia64*-*-elf*): Remove extra_parts.
9447         (sparc-*-linux*): Add crtfastmath.o to extra_parts.
9448         (sparc64-*-linux*): Likewise.
9449         (sparc64-*-freebsd*): Likewise.
9450
9451         Revert:
9452         * config.gcc (ia64*-*-freebsd*): Remove crtfastmath.o from extra_parts.
9453         (ia64*-*-linux*): Likewise.
9454         (mips64*-*-linux*): Likewise.
9455         (mips*-*-linux*): Likewise.
9456
9457 2011-07-18  David Edelsohn  <dje.gcc@gmail.com>
9458
9459         * doc/install.texi (Specific, *-ibm-aix*): AIX assembler bug.
9460
9461 2011-07-18  Richard Guenther  <rguenther@suse.de>
9462
9463         * gimplify.c (gimplify_expr): Use input_location, not saved_location
9464         when building new trees.
9465
9466 2011-07-18  Richard Guenther  <rguenther@suse.de>
9467
9468         * expr.c (expand_expr_real_2): Properly truncate the BIT_NOT_EXPR
9469         expansion result to bitfield precision if required.
9470
9471 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9472
9473         * config.gcc (i[3456x]86-*-netware*): Remove.
9474
9475         * gthr-nks.h: Remove.
9476         * configure.ac (enable_threads): Remove nks.
9477         * configure: Regenerate.
9478
9479         * config/i386/i386.c (ix86_encode_section_info): Remove netware
9480         reference.
9481         * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): Remove
9482         <netware.h> reference.
9483
9484         * config/i386/netware-libgcc.c,
9485         gcc/config/i386/netware-libgcc.def,
9486         gcc/config/i386/netware-libgcc.exp, gcc/config/i386/netware.c,
9487         gcc/config/i386/netware.h, gcc/config/i386/netware.opt,
9488         gcc/config/i386/nwld.c, gcc/config/i386/nwld.h,
9489         gcc/config/i386/t-netware, gcc/config/i386/t-nwld: Remove
9490
9491         * doc/extend.texi (Function Attributes,
9492         callee_pop_aggregate_return): Remove i?86-netware reference.
9493         * doc/install.texi (Configuration, --enable-threads): Remove nks.
9494
9495 2011-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9496
9497         PR target/49746
9498         Revert:
9499         2010-12-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9500
9501         * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean
9502         patterns.
9503
9504 2011-07-17  Eric Botcazou  <ebotcazou@adacore.com>
9505
9506         PR middle-end/49732
9507         * tree.c (walk_tree_1) <DECL_EXPR>: Do not walk a pointed-to type.
9508
9509 2011-07-16  Matthias Klose  <doko@ubuntu.com>
9510
9511         * doc/install.texi: Document --enable-static-libjava.
9512
9513 2011-07-15  Richard Henderson  <rth@redhat.com>
9514
9515         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
9516         Replace all three arguments by returning a VEC of edges.
9517         (add_labels_and_missing_jumps): Accept a VEC of edges, not bare
9518         pointers and counts.
9519         (fix_edges_for_rarely_executed_code): Merge ...
9520         (rest_of_handle_partition_blocks): ... into...
9521         (partition_hot_cold_basic_blocks): ... here.  Return todo items if
9522         any work was performed.
9523         (pass_partition_blocks): Clear todo_flags_finish.
9524
9525 2011-07-15  Paolo Carlini  <paolo.carlini@oracle.com>
9526             Jakub Jelinek  <jakub@redhat.com>
9527             Jonathan Wakely  <jwakely.gcc@gmail.com>
9528
9529         PR libstdc++/49745
9530         * gthr-posix.h: Do not include <unistd.h> unconditionally; use
9531         _GTHREADS_USE_MUTEX_TIMEDLOCK instead of _POSIX_TIMEOUTS.
9532
9533 2011-07-15  Jason Merrill  <jason@redhat.com>
9534
9535         PR testsuite/49741
9536         * Makefile.in ($(lang_checks_parallelized)): Allow --extra_opts
9537         rather than --tool_opts.
9538
9539 2011-07-15  Basile Starynkevitch  <basile@starynkevitch.net>
9540
9541         * doc/plugins.texi (Building GCC plugins): gengtype needs its
9542         corresponding gtype.state.
9543
9544 2011-07-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9545
9546         PR target/49723
9547         * config/pa/pa.md (casesi): Use gen_int_mode instead of GEN_INT.
9548
9549 2011-07-15  Eric Botcazou  <ebotcazou@adacore.com>
9550
9551         PR target/48220
9552         * doc/md.texi (Standard Names): Document window_save.
9553         * cfgexpand.c (expand_debug_parm_decl): New function extracted from
9554         expand_debug_expr and expand_debug_source_expr.  If the target has
9555         a window_save instruction, adjust the ENTRY_VALUE_EXP.
9556         (expand_debug_expr) <SSA_NAME>: Call expand_debug_parm_decl if the
9557         SSA_NAME_VAR is a parameter.
9558         (expand_debug_source_expr) <PARM_DECL>: Call expand_debug_parm_decl.
9559         * var-tracking.c (parm_reg_t): New type and associated vector type.
9560         (windowed_parm_regs): New variable.
9561         (adjust_insn): If the target has a window_save instruction and this
9562         is the instruction, make its effect on parameter registers explicit.
9563         (next_non_note_insn_var_location): New function.
9564         (emit_notes_in_bb): Use it instead of NEXT_INSN throughout.
9565         (vt_add_function_parameter): If the target has a window_save insn,
9566         adjust the incoming RTL and record that in windowed_parm_regs.
9567         (vt_finalize): Free windowed_parm_regs.
9568
9569 2011-07-15  Bernd Schmidt  <bernds@codesourcery.com>
9570
9571         * doc/invoke.texi (C6X Options): New section.
9572         * doc/md.texi (TI C6X family): New section.
9573         * config.gcc: Handle tic6x, in particular tic6x-*-elf and
9574         tic6x-*-uclinux.
9575         * longlong.h (add_ssaaaa, __umulsidi3, umul_ppmm,
9576         count_leading_zeros, count_trailing_zeros, UMUL_TIME, UDIV_TIME):
9577         Provide C6X definitions.
9578         * config/c6x/c6x.md: New file.
9579         * config/c6x/constraints.md: New file.
9580         * config/c6x/predicates.md: New file.
9581         * config/c6x/c6x-sched.md.in: New file.
9582         * config/c6x/c6x-sched.md: New file.
9583         * config/c6x/gensched.sh: New file.
9584         * config/c6x/c6x-mult.md.in: New file.
9585         * config/c6x/genmult.sh: New file.
9586         * config/c6x/c6x-mult.md: New file.
9587         * config/c6x/sync.md: New file.
9588         * config/c6x/c6x-protos.h: New file.
9589         * config/c6x/sfp-machine.h: New file.
9590         * config/c6x/c6x.c: New file.
9591         * config/c6x/c6x.h: New file.
9592         * config/c6x/crti.s: New file.
9593         * config/c6x/crtn.s: New file.
9594         * config/c6x/lib1funcs.asm: New file.
9595         * config/c6x/c6x-modes.def: New file.
9596         * config/c6x/genopt.sh: New file.
9597         * config/c6x/c6x.opt: New file.
9598         * config/c6x/c6x-tables.opt: New file.
9599         * config/c6x/c6x-opts.h: New file.
9600         * config/c6x/c6x-isas.def: New file.
9601         * config/c6x/elf.h: New file.
9602         * config/c6x/elf-common.h: New file.
9603         * config/c6x/uclinux-elf.h: New file.
9604         * config/c6x/t-c6x: New file.
9605         * config/c6x/t-c6x-elf: New file.
9606         * config/c6x/t-c6x-uclinux: New file.
9607         * config/c6x/t-c6x-softfp: New file.
9608         * config/c6x/gtd.c: New file.
9609         * config/c6x/gtf.c: New file.
9610         * config/c6x/ltd.c: New file.
9611         * config/c6x/ltf.c: New file.
9612         * config/c6x/ged.c: New file.
9613         * config/c6x/gef.c: New file.
9614         * config/c6x/led.c: New file.
9615         * config/c6x/lef.c: New file.
9616         * config/c6x/eqd.c: New file.
9617         * config/c6x/eqf.c: New file.
9618         * config/c6x/libgcc-c6xeabi.ver: New file.
9619
9620         Revert
9621         2003-07-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
9622         PR rtl-optimization/11320
9623         * sched-int.h (struct deps) [reg_conditional_sets]: New field.
9624         (struct sched_info) [compute_jump_reg_dependencies]: New prototype.
9625         * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to
9626         current_sched_info->compute_jump_reg_dependencies. Record which
9627         registers are used and which registers are set by the jump.
9628         Clear deps->reg_conditional_sets after a barrier.
9629         Set deps->reg_conditional_sets if the insn is a COND_EXEC.
9630         Clear deps->reg_conditional_sets if the insn is not a COND_EXEC.
9631         (init_deps): Initialize reg_conditional_sets.
9632         (free_deps): Clear reg_conditional_sets.
9633         * sched-ebb.c (compute_jump_reg_dependencies): New prototype.
9634         Mark registers live on entry of the fallthrough block and conditionally
9635         set as set by the jump. Mark registers live on entry of non-fallthrough
9636         blocks as used by the jump.
9637         * sched-rgn.c (compute_jump_reg_dependencies): New prototype.
9638         Mark new parameters as unused.
9639
9640 2011-07-14  Andrew Pinski  <pinskia@gmail.com>
9641
9642         PR tree-opt/49309
9643         * tree-mudflap.c (mf_xform_derefs_1 <case MEM_REF>):
9644         Use fold_build2_loc instead of build2.
9645         Use the correct type for the new tree.
9646
9647 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
9648
9649         PR rtl-optimization/11320
9650         * config/ia64/ia64.md (load_symptr_low): Show a MEM.
9651         * config/ia64/ia64.c (ia64_expand_load_address): Generate it.
9652
9653 2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
9654
9655         PR target/49487
9656         * config/avr/avr.md (rotl<mode>3): Generate SCRATCH instead
9657         of REG.
9658         (*rotw<mode>): Use const_int_operand for operand2.
9659         Use match_scatch for operand3.
9660         (*rotb<mode>): Ditto
9661         * config/avr/avr.c (avr_rotate_bytes): Treat SCRATCH.
9662
9663 2011-07-14  Richard Guenther  <rguenther@suse.de>
9664
9665         PR tree-optimization/49651
9666         * tree-ssa-structalias.c (get_constraint_for_1): Properly
9667         handle dereferences with subvariables.
9668
9669 2011-07-14  Richard Guenther  <rguenther@suse.de>
9670
9671         * gimple-fold.c (fold_gimple_assign): Remove operand swapping.
9672         (fold_stmt_1): Do it here directly on gimple and as a first thing.
9673
9674 2011-07-14  Richard Guenther  <rguenther@suse.de>
9675
9676         * fold-const.c (fold_binary_loc): Convert the !bool_var result,
9677         not bool_var when folding bool_var != 1 or bool_var == 0.
9678
9679 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
9680
9681         * haifa-sched.c (schedule_insns): Remove outdated comment.
9682         (schedule_block): When computing a known value for TODO_SPEC,
9683         just set it rather than using logical operations.
9684         (try_ready): Likewise.  Use a local variable rather than a
9685         pointer to TODO_SPEC.  Reorder an if statement to move the
9686         easy case to the then block.
9687         * sched-deps.c (dep_spec_p): New static function.
9688         (update_dep): Use it to decide whether to call
9689         change_spec_dep_to_hard.
9690         (get_back_and_forw_lists): Use it.
9691         (sd_resolve_dep): Likewise.
9692         (init_dep): If !USE_DEPS_LIST, use zero to initialize status.
9693         (haifa_note_mem_dep): Likewise.
9694         (check_dep): Likewise.
9695         (sd_add_dep): Also clear SPECULATIVE bits if not DO_SPECULATION.
9696         (sched_free_deps): Free in two passes.
9697
9698 2011-07-14  Richard Sandiford  <richard.sandiford@linaro.org>
9699
9700         PR middle-end/49736
9701         * expr.c (all_zeros_p): Undo bogus part of last change.
9702
9703 2011-07-14  Matthias Klose <doko@ubuntu.com>
9704
9705         * doc/extend.texi (optimize attribute): Fix typo.
9706
9707 2011-07-14  Richard Guenther  <rguenther@suse.de>
9708
9709         * gimplify.c (gimplify_expr): Only do required conversions.
9710
9711 2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
9712
9713         PR target/43746
9714         * config/avr/elf.h (TARGET_ASM_SELECT_SECTION): Remove,
9715         i.e. use default_elf_select_section.
9716         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Remove.
9717         (READONLY_DATA_SECTION_ASM_OP): Remove.
9718         (TARGET_ASM_NAMED_SECTION): Move from here...
9719         * config/avr/avr.c: ...to here.
9720         (avr_asm_init_sections): Set unnamed callback of readonly_data_section.
9721         (avr_asm_named_section): Make static.
9722
9723 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9724
9725         PR bootstrap/49739
9726         * config.gcc (extra_parts): Add crtprec32.o crtprec64.o crtprec80.o
9727         and crtfastmath.o for Linux/x86.
9728
9729 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
9730
9731         * haifa-sched.c: Include "hashtab.h"
9732         (sched_no_dce): New global variable.
9733         (INSN_EXACT_TICK, INSN_TICK_ESTIMATE, FEEDS_BACKTRACK_INSN,
9734         SHADOW_P): New macros.
9735         (last_clock_var, cycle_issued_insns): Move declarations.
9736         (must_backtrack): New static variable.
9737         (struct delay_pair): New structure.
9738         (delay_htab, delay_htab_i2): New static variables.
9739         (delay_hash_i1, delay_hash_i2, delay_i1_eq, delay_i2_eq,
9740         record_delay_slot_pair, pair_delay, add_delay_dependencies): New
9741         functions.
9742         (dep_cost_1): If delay pairs exist, try to look up the insns and
9743         use the correct pair delay if we find them.
9744         (rank-for_schedule): Tweak priority for insns that must be scheduled
9745         soon to avoid backtracking.
9746         (queue_insn): Detect conditions which force backtracking.
9747         (ready_add): Likewise.
9748         (struct sched_block_state): Add member shadows_only_p.
9749         (struct haifa_save_data): New structure.
9750         (backtrack_queue): New static variable.
9751         (mark_backtrack_feeds, copy_insn_list, save_backtrack_point,
9752         unschedule_insns_until, restore_last_backtrack_point,
9753         free_topmost_backtrack_point, free_backtrack_queue,
9754         estimate_insn_tick, estimate_shadow_tick): New functions.
9755         (prune_ready_list): New arg shadows_only_p.  All callers changed.
9756         If true, remove everything that isn't SHADOW_P.  Look up delay
9757         pairs and estimate ticks to avoid scheduling the first insn too early.
9758         (verify_shadows): New function.
9759         (schedule_block): Add machinery to enable backtracking.
9760         (sched_init): Take sched_no_dce into account when setting
9761         DF_LR_RUN_DCE.
9762         (free_delay_pairs): New function.
9763         (init_h_i_d): Initialize INSN_EXACT_TICK.
9764         * Makefile.in (haifa-sched.o): Add $(HASHTAB_H).
9765         * sched-deps.c (sd_unresolve_dep): New function.
9766         * sched-int. (struct haifa_sched_info): New fields save_state
9767         and restore_state.
9768         (struct _haifa_insn_data): New fields exact_tick, tick_estimate,
9769         feeds_backtrack_insn and shadow_p.
9770         (DO_BACKTRACKING): New value in enum SCHED_FLAGS.
9771         (sched_no_dce): Declare variable.
9772         (record_delay_slot_pair, free_delay_pairs, add_delay_dependencies,
9773         sd_unresolve_dep): Declare functions.
9774         * modulo-sched.c (sms_sched_info): Clear the two new fields.
9775         * sched-rgn.c (rgn_const_sched_info): Likewise.
9776         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
9777         * sched-ebb.c (save_ebb_state, restore_ebb_state): New functions.
9778         (ebb_sched_info): Add them for the two new fields.
9779         (add_deps_for_risky_insns): Call add_delay_dependencies.
9780
9781 2011-07-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
9782
9783         * config/rs6000/rs6000.opt (-mpointers-to-nested-functions):
9784         Rename -mr11.
9785         * config/rs6000/rs6000.c (rs6000_trampoline_init): Ditto.
9786         (rs6000_call_indirect_aix): Ditto.
9787         * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Ditto.
9788         (call_indirect_aix<ptrsize>_internal): Ditto.
9789         (call_indirect_aix<ptrsize>_nor11): Ditto.
9790         (call_indirect_aix<ptrsize>_internal2): Ditto.
9791         (call_value_indirect_aix<ptrsize>): Ditto.
9792         (call_value_indirect_aix<ptrsize>_internal): Ditto.
9793         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
9794         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
9795         * doc/invoke.texi (RS/6000 and PowerPC Options): Ditto.
9796
9797 2011-07-13  Jason Merrill  <jason@redhat.com>
9798
9799         * Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts.
9800
9801 2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9802
9803         * config/spu/spu.c (spu_init_libfuncs): Install __clrsbdi2.
9804         * config/spu/spu.md ("clrsb<mode>2"): New expander.
9805
9806 2011-07-13  Thomas Schwinge  <thomas@schwinge.name>
9807
9808         * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Use AS_ECHO instead of echo.
9809         * configure: Regenerate.
9810
9811 2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9812
9813         * config/spu/spu.c (TARGET_ASM_FILE_START): Do not define.
9814         (asm_file_start): Remove.
9815         (spu_machine_dependent_reorg): Call compute_bb_for_insn and
9816         free_bb_for_insn around code that modifies insns before
9817         restarting df analysis.
9818
9819 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9820
9821         PR target/49541
9822         * config/sol2.h (LIB_SPEC): Simplify.  Move LIB_THREAD_LDFLAGS_SPEC ...
9823         (LINK_SPEC): ... here.
9824
9825 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
9826
9827         * haifa-sched.c (struct sched_block_state): New.
9828         (schedule_block): Move some local variables into such a structure.
9829
9830 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9831
9832         * config/i386/crtprec.c: Move to ../libgcc/config/i386.
9833         * config/i386/t-crtpc: Remove.
9834         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
9835         * config.gcc (i[34567]86-*-darwin*): Remove i386/t-crtpc from
9836         tmake_file.
9837         (x86_64-*-darwin*): Likewise.
9838         (i[34567]86-*-linux*): Likewise.
9839         (x86_64-*-linux*): Likewise.
9840
9841         * config/i386/sol2.h (ENDFILE_SPEC): Redefine.
9842         Handle -mpc32, -mpc64, -mpc80.
9843
9844 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9845
9846         * config/alpha/crtfastmath.c: Move to ../libgcc/config/alpha.
9847         * config/alpha/t-crtfm: Remove.
9848         * config/i386/crtfastmath.c: Move to ../libgcc/config/i386.
9849         * config/i386/t-crtfm: Remove.
9850         * config/ia64/crtfastmath.c: Move to ../libgcc/config/ia64.
9851         * config/mips/crtfastmath.c: Move to ../libgcc/config/mips.
9852         * config/sparc/crtfastmath.c: Move to ../libgcc/config/sparc.
9853         * config/sparc/t-crtfm: Remove.
9854
9855         * config.gcc (alpha*-*-linux*): Remove alpha/t-crtfm from tmake_file.
9856         (alpha*-*-freebsd*): Likewise.
9857         (i[34567]86-*-darwin*): Remove i386/t-crtfm from tmake_file.
9858         (x86_64-*-darwin*): Likewise.
9859         (i[34567]86-*-linux*): Likewise.
9860         (x86_64-*-linux*): Likewise.
9861         (x86_64-*-mingw*): Likewise.
9862         (ia64*-*-elf*): Remove crtfastmath.o from extra_parts.
9863         (ia64*-*-freebsd*): Likewise.
9864         (ia64*-*-linux*): Likewise.
9865         (mips64*-*-linux*): Likewise.
9866         (mips*-*-linux*): Likewise.
9867         (sparc-*-linux*): Remove sparc/t-crtfm from tmake_file.
9868         (sparc64-*-linux*): Likewise.
9869         (sparc64-*-freebsd*): Likewise.
9870
9871 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9872
9873         * config/darwin-crt2.c: Move to ../libgcc/config/rs6000.
9874         * config/darwin-crt3.c: Move to ../libgcc/config.
9875         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
9876         ($(T)crt3$(objext)): Remove.
9877         * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Remove.
9878         ($(T)crt2$(objext)): Remove.
9879         * config.gcc (powerpc-*-darwin*): Remove extra_parts.
9880         (powerpc64-*-darwin*): Likewise.
9881
9882 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
9883
9884         * config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode != Pmode.
9885
9886         * config/i386/i386.md (*addsi_1_zext): Renamed to ...
9887         (addsi_1_zext): This.
9888
9889 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
9890
9891         * doc/tm.texi.in (TARGET_ASM_MERGEABLE_RODATA_PREFIX): Add hook.
9892         * doc/tm.texi: Regenerate.
9893         * target.def (mergeable_rodata_prefix): New defhookpod.
9894         * varasm.c (mergeable_string_section, mergeable_constant_section):
9895         Use it. Allocate name with alloca.
9896
9897 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
9898
9899         * doc/invoke.texi (x86): Remove -mfused-madd and add -mfma.
9900
9901 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
9902
9903         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Tighten
9904         overlap check.
9905
9906 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
9907
9908         * tree.h (categorize_ctor_elements): Remove comment.  Fix long line.
9909         (count_type_elements): Delete.
9910         (complete_ctor_at_level_p): Declare.
9911         * expr.c (flexible_array_member_p): New function, split out from...
9912         (count_type_elements): ...here.  Make static.  Replace allow_flexarr
9913         parameter with for_ctor_p.  When for_ctor_p is true, return the
9914         number of elements that should appear in the top-level constructor,
9915         otherwise return an estimate of the number of scalars.
9916         (categorize_ctor_elements): Replace p_must_clear with p_complete.
9917         (categorize_ctor_elements_1): Likewise.  Use complete_ctor_at_level_p.
9918         (complete_ctor_at_level_p): New function, borrowing union logic
9919         from old categorize_ctor_elements_1.
9920         (mostly_zeros_p): Return true if the constructor is not complete.
9921         (all_zeros_p): Update call to categorize_ctor_elements.
9922         * gimplify.c (gimplify_init_constructor): Update call to
9923         categorize_ctor_elements.  Don't call count_type_elements.
9924         Unconditionally prevent clearing for variable-sized types,
9925         otherwise rely on categorize_ctor_elements to detect
9926         incomplete initializers.
9927
9928 2011-07-13  Richard Guenther  <rguenther@suse.de>
9929
9930         * tree-vrp.c (simplify_conversion_using_ranges): Make sure
9931         the final type is integral.
9932
9933 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
9934
9935         * sched-int.h (struct _dep): Add member cost.
9936         (DEP_COST, UNKNOWN_DEP_COST): New macros.
9937         * sched-deps.c (init_dep_1): Initialize DEP_COST.
9938         * haifa-sched.c (dep_cost_1): Use and set DEP_COST.
9939         (sched_change_pattern): Reset it for dependent insns.
9940
9941 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9942
9943         * Makefile.in (CRT0STUFF_T_CFLAGS): Remove.
9944         ($(T)crt0.o, $(T)mcrt0.o, s-crt0): Remove.
9945         * config/i386/netware-crt0.c: Move to ../libgcc/config/i386.
9946         * config/i386/t-nwld (CRTSTUFF_T_CFLAGS, CRT0STUFF_T_CFLAGS): Remove.
9947         (CRT0_S, MCRT0_S): Remove.
9948         ($(T)libgcc.def, $(T)libc.def, $(T)libcpre.def, $(T)posixpre.def):
9949         Remove.
9950         (s-crt0): Remove.
9951         * config.gcc (i[3456x]86-*-netware*): Remove extra_parts.
9952
9953 2011-07-12  Eric Botcazou  <ebotcazou@adacore.com>
9954
9955         * cse.c (insert_with_costs): Put semi-colon after empty loop body
9956         on the next line.
9957         * emit-rtl.c (push_to_sequence): Likewise.
9958         * haifa-sched.c (max_issue): Likewise.
9959         * matrix-reorg.c (add_allocation_site): Likewise.
9960         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
9961         * reload.c (alternative_allows_const_pool_ref): Likewise.
9962         * sched-rgn.c (rgn_add_block): Likewise.
9963         (rgn_fix_recovery_cfg): Likewise.
9964         * tree.c (attribute_list_contained): Likewise.
9965
9966 2011-07-12  Uros Bizjak  <ubizjak@gmail.com>
9967
9968         * config/i386/i386.c: Tidy processor feature bitmasks.
9969         (m_P4_NOCONA): New.
9970
9971 2011-07-12  Andrew Pinski  <pinskia@gmail.com>
9972
9973         PR rtl-opt/49474
9974         * cprop.c (find_implicit_sets): Correct the condition.
9975
9976 2011-07-12  Richard Henderson  <rth@redhat.com>
9977
9978         PR target/49713
9979         * dwarf2out.h (dwarf_frame_regnum): Remove.
9980         * dwarf2out.c (based_loc_descr): Revert last change.  Initialize regno
9981         earlier from DWARF_FRAME_REGNUM.  Never use dbx_reg_number.
9982         * dwarf2cfi.c (dw_stack_pointer_regnum, dw_frame_pointer_regnum): New.
9983         (execute_dwarf2_frame): Initialize them.
9984         (DW_STACK_POINTER_REGNUM, DW_FRAME_POINTER_REGNUM): Remove; replace
9985         users of the macros with the variables.
9986         (expand_builtin_dwarf_sp_column): Revert last change.
9987         (expand_builtin_init_dwarf_reg_sizes): Likewise.  Compute the
9988         result of DWARF_FRAME_REGNUM into a local variable.
9989
9990 2011-07-12  Richard Henderson  <rth@redhat.com>
9991
9992         PR target/49714
9993         * config/i386/i386.c (x86_output_mi_thunk): Use
9994         machopic_indirect_call_target instead of machopic_indirection_name
9995         directly.
9996
9997 2011-07-12  Laurent GUERBY  <laurent@guerby.net>
9998             Eric Botcazou  <ebotcazou@adacore.com>
9999
10000         * prefix.h: Wrap up in extern "C" block.
10001
10002 2011-07-12  Harsha Jagasia  <harsha.jagasia@amd.com>
10003
10004         AMD bdver2 Enablement
10005         * config.gcc (i[34567]86-*-linux* | ...): Add bdver2.
10006         (case ${target}): Add bdver2.
10007         * config/i386/driver-i386.c (host_detect_local_cpu): Let
10008         -march=native recognize bdver2 processors.
10009         * config/i386/i386-c.c (ix86_target_macros_internal): Add
10010         bdver2 def_and_undef
10011         * config/i386/i386.c (struct processor_costs bdver2_cost): New
10012         bdver2 cost table.
10013         (m_BDVER2): New definition.
10014         (m_AMD_MULTIPLE): Includes m_BDVER2.
10015         (initial_ix86_tune_features): Add bdver2 tuning.
10016         (processor_target_table): Add bdver2 entry.
10017         (static const char *const cpu_names): Add bdver2 entry.
10018         (ix86_option_override_internal): Add bdver2 instruction sets.
10019         (ix86_issue_rate): Add bdver2.
10020         (ix86_adjust_cost): Add bdver2.
10021         (has_dispatch): Add bdver2.
10022         * config/i386/i386.h (TARGET_BDVER2): New definition.
10023         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver2.
10024         (enum processor_type): Add PROCESSOR_BDVER2.
10025         * config/i386/i386.md (define_attr "cpu"): Add bdver2.
10026         * config/i386/i386.opt ( mdispatch-scheduler): Add bdver2 to
10027         description.
10028
10029 2011-07-12  Richard Henderson  <rth@redhat.com>
10030
10031         PR target/49714
10032         * config/i386/i386.c (x86_output_mi_thunk): Fix mode for
10033         destination address in memory on some paths.
10034
10035 2011-07-12  Bernd Schmidt  <bernds@codesourcery.com>
10036
10037         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Mention
10038         TARGET_FUNCTION_ARG_ROUND_BOUNDARY.
10039         (TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Add hook.
10040         * function.c (locate_and_pad_parm): Take it into account.
10041         * target.def (function_arg_round_boundary): New hook.
10042         * targhooks.c (default_function_arg_round_boundary): New function.
10043         * targhooks.h (default_function_arg_round_boundary): Declare.
10044         * doc/tm.texi: Regenerate.
10045
10046 2011-07-12  Richard Guenther  <rguenther@suse.de>
10047
10048         * tree-ssa-copyrename.c (rename_ssa_copies): Zero statistics.
10049         Do not perform no-op changes.
10050
10051 2011-07-12  Richard Sandiford  <richard.sandiford@linaro.org>
10052
10053         * config/arm/predicates.md (neon_struct_operand): Make a normal
10054         predicate.
10055         (neon_struct_or_register_operand): New predicate.
10056         * config/arm/neon.md (movmisalign<mode>): Replace predicates
10057         with neon_struct_or_register_operand.
10058         (*movmisalign<mode>_neon_store, *movmisalign<mode>_neon_load): Use
10059         neon_struct_operand instead of memory_operand.
10060
10061 2011-07-12  Martin Jambor  <mjambor@suse.cz>
10062
10063         * cgraph.h (cgraph_get_node_or_alias): Removed declaration.
10064         * cgraph.c (cgraph_get_node_or_alias): Removed.
10065         (change_decl_assembler_name): Changed all calls to
10066         cgraph_get_node_or_alias to a call to cgraph_get_node.
10067         (cgraph_make_decl_local): Likewise.
10068         * lto-symtab.c (lto_symtab_resolve_symbols): Likewise.
10069         * varasm.c (default_binds_local_p_1): Likewise.
10070         (decl_binds_to_current_def_p): Likewise.
10071
10072 2011-07-12  Jakub Jelinek  <jakub@redhat.com>
10073
10074         PR tree-optimization/49712
10075         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF.
10076
10077 2011-07-11  Bernd Schmidt  <bernds@codesourcery.com>
10078
10079         * genautomata.c (add_arc): Return void.  All callers changed.
10080         (make_automaton): Remove dead code.
10081
10082 2011-07-11  Richard Henderson  <rth@redhat.com>
10083
10084         * dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New.
10085         (DW_FRAME_POINTER_REGNUM): New.
10086         (expand_builtin_init_dwarf_reg_sizes): Use unsigned for rnum.
10087         (def_cfa_1): Do not convert reg to DWARF_FRAME_REGNUM here.
10088         (dwf_regno): New.
10089         (dwarf2out_flush_queued_reg_saves, dwarf2out_frame_debug_def_cfa,
10090         dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_register,
10091         dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_expr):
10092         Use it.
10093         * dwarf2out.c (based_loc_descr): Use dwarf_frame_regnum.
10094         * dwarf2out.h (dwarf_frame_regnum): New.
10095         (struct cfa_loc): Document the domain of the reg member.
10096
10097 2011-07-11  Uros Bizjak  <ubizjak@gmail.com>
10098
10099         * config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr.
10100         Use offset everywhere.  Always assert that offset <= TRAMPOLINE_SIZE.
10101
10102 2011-07-11  Jakub Jelinek  <jakub@redhat.com>
10103
10104         PR debug/49676
10105         * dwarf2out.c (int_shift_loc_descriptor): New function.
10106         (int_loc_descriptor): If shorter, emit i as
10107         (i >> shift), shift, DW_OP_shl for suitable shift value.
10108         Similarly, try to optimize large negative values using
10109         DW_OP_neg of a positive value if shorter.
10110         (size_of_int_shift_loc_descriptor): New function.
10111         (size_of_int_loc_descriptor): Adjust to match int_loc_descriptor
10112         changes.
10113         (mem_loc_descriptor) <case CONST_INT>: Emit zero-extended constants
10114         that fit into DWARF2_ADDR_SIZE bytes as int_loc_descriptor +
10115         DW_OP_GNU_convert instead of DW_OP_GNU_const_type if the former
10116         is shorter.
10117         (resolve_addr_in_expr): Optimize DW_OP_plus_uconst with a large
10118         addend as added DW_OP_plus if it is shorter.
10119
10120 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10121
10122         * config/i386/sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define.
10123         (DTORS_SECTION_ASM_OP): Define.
10124
10125 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10126
10127         * config/dfp-bit.c, config/dfp-bit.h: Move to ../libgcc.
10128         * config/t-dfprules: Move to ../libgcc/config.
10129         * config.gcc (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
10130         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
10131         i[34567]86-*-kopensolaris*-gnu): Remove t-dfprules from tmake_file.
10132         (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
10133         Likewise.
10134         (i[34567]86-*-cygwin*): Likewise.
10135         (i[34567]86-*-mingw*,  x86_64-*-mingw*): Likewise.
10136         (powerpc-*-linux*, powerpc64-*-linux*): Likewise.
10137         * Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): Remove.
10138         (libgcc.mvars): Remove DFP_ENABLE, DFP_CFLAGS, D32PBIT_FUNCS,
10139         D64PBIT_FUNCS, D128PBIT_FUNCS.
10140
10141 2011-07-11  Richard Guenther  <rguenther@suse.de>
10142
10143         * tree-vrp.c (simplify_conversion_using_ranges): Manually
10144         translate the source value-range through the conversion chain.
10145
10146 2011-07-11  Richard Sandiford  <richard.sandiford@linaro.org>
10147
10148         * expr.c (expand_expr_real_1): Use expand_insn for movmisalign.
10149
10150 2011-07-11  Arthur Loiret  <aloiret@debian.org>
10151
10152         * config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build
10153         a bi-arch compiler defaulting to 31-bit. In this case:
10154         (tmake_file): Add s390/t-linux64.
10155         * doc/install.texi: Add s390-linux to the list of targets supporting
10156         --enable-targets=all.
10157
10158 2011-07-11  Arthur Loiret  <aloiret@debian.org>
10159             Matthias Klose <doko@debian.org>
10160
10161         * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build
10162         a tri-arch compiler defaulting to 32-bit (ABI o32). In this case:
10163         (tm_file): Add mips/linux64.h.
10164         (tmake_file): Add mips/t-linux64.
10165         (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
10166         * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT
10167         instead of hardcoded mabi=n32.
10168         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
10169         tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
10170         convention.
10171
10172 2011-07-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10173
10174         * passes.c (init_optimization_passes): Add invariant motion pass
10175         after induction variable optimization.
10176
10177 2011-07-11  Georg-Johann Lay  <avr@gjlay.de>
10178
10179         PR target/39633
10180         * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only
10181         offsets 1..5 set cc0 in a usable way.
10182
10183 2011-07-11  Romain Geissler  <romain.geissler@gmail.com>
10184
10185         * tree.h (call_expr_arg): Remove.
10186         (call_expr_argp): Likewise.
10187
10188 2011-07-11  Eric Botcazou  <ebotcazou@adacore.com>
10189
10190         * config/sparc/sparc.md (save_register_window_1): Rename to...
10191         (window_save): ...this.
10192         * config/sparc/sparc.c (emit_save_register_window): Rename to...
10193         (emit_window_save): ...this.
10194         (sparc_expand_prologue): Adjust to above renaming.
10195
10196 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
10197
10198         * config/i386/i386.c (ix86_trampoline_init): Use movl instead
10199         of movabs for x32.
10200
10201 2011-07-10  Richard Henderson  <rth@redhat.com>
10202
10203         * config/i386/i386.c (x86_output_mi_thunk): Generate rtl and
10204         run final, instead of emitting text directly.
10205
10206 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
10207
10208         * config/i386/i386.c (ix86_option_override_internal): Turn on
10209         OPTION_MASK_ISA_64BIT for TARGET_X32.  Only allow small and
10210         small PIC models for TARGET_X32.
10211
10212 2011-07-10  Hans-Peter Nilsson  <hp@axis.com>
10213
10214         PR target/49684
10215         * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Don't include
10216         $(LIBGCC2_CFLAGS).
10217
10218         PR bootstrap/49680
10219         * config/cris/cris.c (cris_asm_output_case_end): Robustify against
10220         stray notes and debug insns by using prev_nonnote_nondebug_insn
10221         instead of PREV_INSN.
10222
10223 2011-07-09  Richard Henderson  <rth@redhat.com>
10224
10225         * defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE,
10226         DWARF_TYPE_SIGNATURE_SIZE): Move from ...
10227         * dwarf2out.c: ... here.
10228         (output_all_cfis): Remove.
10229         (dwarf2out_switch_text_section): Use output_cfis directly.
10230         (size_of_locs): Export.
10231         (output_loc_sequence, output_loc_sequence_raw): Export.
10232         (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi,
10233         output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc,
10234         output_cfa_loc_raw): Move to ...
10235         * dwarfcfi.c: ... here.
10236         * dwarf2out.h: Update decls.
10237
10238 2011-07-09  Richard Henderson  <rth@redhat.com>
10239
10240         * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN,
10241         DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ...
10242         * dwarf2cfi.c: ... here.
10243         (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove.
10244         (DWARF_ROUND, DWARF_CIE_ID): Remove.
10245         * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove.
10246         (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove.
10247         (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove.
10248
10249 2011-07-09  Richard Henderson  <rth@redhat.com>
10250
10251         * dwarf2cfi.c (cie_return_save): New.
10252         (queue_reg_save): Use compare_reg_or_pc.
10253         (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column.
10254         (dwarf2out_frame_debug_expr): Likewise.
10255         (dwarf2out_frame_debug_cfa_register): Record saved reg for pc too.
10256         (initial_return_save): Likewise.
10257         (execute_dwarf2_frame): Save and restore initial return save from
10258         the cie to the fde.
10259         * config/mips/mips.c (mips_frame_set): Remove special case for
10260         DWARF_FRAME_RETURN_COLUMN.
10261
10262 2011-07-09  Richard Henderson  <rth@redhat.com>
10263
10264         * dwarf2cfi.c (lookup_cfa): Remove.
10265         (execute_dwarf2_frame): Assert queues are empty on entry.
10266         Setup initial cfa directly, not via lookup_cfa.
10267         Don't clear args_size state here.
10268
10269 2011-07-09  Richard Henderson  <rth@redhat.com>
10270
10271         * dwarf2cfi.c (add_cfi_vec): New.
10272         (add_cfi): Rename from add_fde_cfi.  Add the element to add_cfi_vec.
10273         (def_cfa_1, reg_save): Remove for_cie argument.  Update all callers.
10274         (execute_dwarf2_frame): Set add_cfi_vec.
10275
10276 2011-07-09  Richard Henderson  <rth@redhat.com>
10277
10278         * defaults.h (ASM_COMMENT_START): Move here...
10279         * dwarf2asm.c: ... from here.
10280         * dwarf2out.c, final.c, vmsdbgout.c: Remove duplicates.
10281         * toplev.c: Remove ifndef tests of ASM_COMMENT_START.
10282         * varasm.c: Likewise.
10283
10284 2011-07-09  Richard Henderson  <rth@redhat.com>
10285
10286         PR debug/49686
10287         * dwarf2cfi.c (dwarf2out_frame_debug): Don't set cfi_insn here...
10288         (create_cfi_notes): ... do it here instead.
10289
10290 2011-07-09  Jakub Jelinek  <jakub@redhat.com>
10291
10292         PR debug/49676
10293         * dwarf2out.c (size_of_int_loc_descriptor): New function.
10294         (address_of_int_loc_descriptor): Use it.
10295         (scompare_loc_descriptor): Optimize EQ/NE comparison with constant.
10296
10297 2011-07-09  Richard Henderson  <rth@redhat.com>
10298
10299         * config/pdp11/pdp11.md (define_c_enum "unspecv"): New.
10300         (prologue, epilogue): New.
10301         (return, *rts): New.
10302         (blockage, setd, seti): New.
10303         * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
10304         (TARGET_ASM_FUNCTION_EPILOGUE): Remove.
10305         (pdp11_saved_regno): New.
10306         (pdp11_expand_prologue): Rename from pdp11_output_function_prologue;
10307         generate rtl instead of text.
10308         (pdp11_expand_epilogue): Similarly from pdp11_output_function_epilogue.
10309         (pdp11_sp_frame_offset): Export.  Use pdp11_saved_regno.
10310         * config/pdp11/pdp11-protos.h: Update.
10311
10312 2011-07-09  Richard Henderson  <rth@redhat.com>
10313
10314         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
10315         try to insert an rtl prologue here.
10316         (rs6000_output_function_epilogue): Similarly.
10317         * config/rs6000/rs6000.md (prologue): Emit a barrier to
10318         satisfy !TARGET_SCHED_PROLOG.
10319         (epilogue, sibcall_epilogue): Likewise.
10320
10321 2011-07-09  Eric Botcazou  <ebotcazou@adacore.com>
10322
10323         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Move around.
10324         (FP_REG_P): Delete.
10325         (IN_OR_GLOBAL_P): Likewise.
10326
10327 2011-07-08  Jason Merrill  <jason@redhat.com>
10328
10329         PR c++/45437
10330         * gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in
10331         compound assignment.
10332
10333         * cgraph.c (cgraph_add_to_same_comdat_group): New.
10334         * cgraph.h: Declare it.
10335         * ipa.c (function_and_variable_visibility): Make sure thunks
10336         have the right visibility.
10337
10338 2011-07-08  Richard Henderson  <rth@redhat.com>
10339
10340         PR bootstrap/49680
10341         * dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after
10342         any tablejump vector.
10343
10344         PR bootstrap/49680
10345         * dwarf2cfi.c (create_cfi_notes): Flush queued saves at the
10346         end of the prologue.
10347
10348 2011-07-08  Jakub Jelinek  <jakub@redhat.com>
10349
10350         PR target/49621
10351         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use
10352         CONST0_RTX (dest_mode) instead of const0_rtx as second operand of NE.
10353         * config/rs6000/vector.md (vector_select_<mode>,
10354         vector_select_<mode>_uns): Change second operand of NE to
10355         CONST0_RTX (<MODE>mode) instead of const0_rtx.
10356         * config/rs6000/altivec.md (*altivec_vsel<mode>,
10357         *altivec_vsel<mode>_uns): Expect second operand of NE to be
10358         zero_constant of the corresponding vector mode.
10359         * config/rs6000/vsx.md (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns):
10360         Likewise.
10361
10362 2011-07-08  Sebastian Pop  <sebastian.pop@amd.com>
10363
10364         * graphite-dependences.c (build_alias_set_powerset): Remove
10365         continue from loop, add one more assert.
10366
10367 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
10368
10369         PR target/46779
10370         * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
10371         In particular, allow 8-bit values in r28 and r29.
10372         (avr_hard_regno_scratch_ok): Disallow any register that might be
10373         part of the frame pointer.
10374         (avr_hard_regno_rename_ok): Same.
10375         (avr_legitimate_address_p): Don't allow SUBREGs.
10376
10377 2011-07-08  Julian Brown  <julian@codesourcery.com>
10378
10379         * config/arm/neon.md (vec_shr_<mode>, vec_shl_<mode>): Disable in
10380         big-endian mode.
10381         (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_smin_<mode>)
10382         (reduc_smax_<mode>, reduc_umin_<mode>, reduc_umax_<mode>)
10383         (neon_vec_unpack<US>_lo_<mode>, neon_vec_unpack<US>_hi_<mode>)
10384         (vec_unpack<US>_hi_<mode>, vec_unpack<US>_lo_<mode>)
10385         (neon_vec_<US>mult_lo_<mode>, vec_widen_<US>mult_lo_<mode>)
10386         (neon_vec_<US>mult_hi_<mode>, vec_widen_<US>mult_hi_<mode>)
10387         (vec_pack_trunc_<mode>, neon_vec_pack_trunc_<mode>): Disable for Q
10388         registers in big-endian mode.
10389
10390 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
10391
10392         * genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined
10393         in terms of another.
10394         (write_attr_value): Write a cast if necessary.
10395
10396         * defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default.
10397         * doc/tm.texi.in (WORDS_BIG_ENDIAN): Mention REG_WORDS_BIG_ENDIAN.
10398         (REG_WORDS_BIG_ENDIAN): Document.
10399         * doc/tm.texi: Regenerate.
10400         * reload.c (operands_match_p): Take it into account.
10401         (reload_adjust_reg_for_mode): Likewise.
10402         * rtlanal.c (subreg_get_info): Likewise.
10403
10404 2011-07-08  Richard Guenther  <rguenther@suse.de>
10405
10406         * fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index
10407         folding.
10408
10409 2011-07-08  Kai Tietz  <ktietz@redhat.com>
10410
10411         * fold-const.c (fold_truth_andor): Factored out truth_andor
10412         label from fold_binary as function.
10413         (fold_binary_loc): Replace truth_andor lable
10414         by function fold_truth_andor.
10415
10416 2011-07-08  Kirill Yukhin  <kirill.yukhin@intel.com>
10417
10418         PR middle-end/49519
10419         * calls.c (mem_overlaps_already_clobbered_arg_p): Additional
10420         check if address is stored in register. If so - give up.
10421         (check_sibcall_argument_overlap_1): Do not perform check of
10422         overlapping when it is call to address.
10423
10424 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
10425
10426         * config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead
10427         of magic '31'.
10428
10429 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
10430
10431         * optabs.c (expand_binop): Use GET_MODE_PRECISION instead of
10432         GET_MODE_BITSIZE where appropriate.
10433         (widen_leading, expand_parity, expand_ctz, expand_ffs,
10434         expand_unop, expand_abs_nojump, expand_one_cmpl_abs_nojump,
10435         expand_float, expand_fix): Likewise.
10436         * expr.c (convert_move, convert_modes, expand_expr_real_2,
10437         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
10438         * stor-layout.c (get_mode_bounds): Likewise.
10439         * cfgexpand.c (convert_debug_memory_address, expand_debug_expr):
10440         Likewise.
10441         * convert.c (convert_to_integer): Likewise.
10442         * expmed.c (expand_shift_1): Likewise.
10443
10444         * rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against
10445         a bitsize.
10446
10447         * optabs.c (expand_binop): Tighten conditions for doubleword
10448         expansions.
10449         (widen_bswap): Assert that mode bitsize and precision are the same.
10450         * stor-layout.c (get_best_mode): Skip modes that have lower
10451         precision than bitsize.
10452         * recog.c (simplify_while_replacing): Assert that bitsize and
10453         precision are the same.
10454
10455 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10456
10457         * Makefile.in (LIBGCOV): Remove.
10458         (libgcc.mvars): Remove LIBGCOV.
10459         * libgov.c: Move to ../libgcc.
10460
10461 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10462
10463         * config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc.
10464
10465 2011-07-08  Martin Jambor  <mjambor@suse.cz>
10466
10467         * tree-sra.c (analyze_all_variable_accesses): Dump that a struture
10468         is too big for total scalarization.
10469
10470 2011-07-07  Richard Henderson  <rth@redhat.com>
10471
10472         * config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef.
10473         (DBX_DEBUGGING_INFO): Undef.
10474
10475 2011-07-07  Richard Henderson  <rth@redhat.com>
10476
10477         * dwarf2out.c (output_cfi_directive): Export.  Add FILE parameter.
10478         Handle some opcodes specially for debugging.
10479         * print-rtl.c: Include dwarf2out.h
10480         (print_rtx): Handle NOTE_INSN_CFI.
10481         * Makefile.in (print-rtl.o): Update.
10482
10483 2011-07-07  Richard Henderson  <rth@redhat.com>
10484
10485         * tree-pass.h (pass_dwarf2_frame): Declare.
10486         * passes.c (init_optimization_passes): Add it.
10487         * dwarf2cfi.c (dwarf2out_frame_debug): Make static.
10488         (create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue;
10489         make static, do not call add_cfis_to_fde.
10490         (dwarf2out_frame_debug_init, dwarf2cfi_function_init,
10491         dwarf2out_frame_init): Merge into...
10492         (execute_dwarf2_frame): ... here.  New function.
10493         (dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean.  Change
10494         saved_do_cfi_asm to a tri-state variable.
10495         (gate_dwarf2_frame, pass_dwarf2_frame): New.
10496         * dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde
10497         if it has yet to be done.  Don't call dwarf2cfi_function_init.
10498         * dwarf2out.h, debug.h: Update decls.
10499         * final.c (final_start_function): Don't call
10500         dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue.
10501         * lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init.
10502         * toplev.c (lang_dependent_init): Likewise.
10503
10504 2011-07-07  Richard Henderson  <rth@redhat.com>
10505
10506         * dwarf2out.c (fde_table, fde_table_allocated, fde_table_in_use,
10507         FDE_TABLE_INCREMENT): Replace with...
10508         (fde_vec): ... this, a new vector.
10509         (current_fde): Remove.  Replace all users with cfun->fde.
10510         (output_call_frame_info): Use FOR_EACH_VEC_ELT over fde_vec.
10511         (size_of_aranges, dwarf2out_finish): Likewise.
10512         (dwarf2out_alloc_current_fde): Break out from ...
10513         (dwarf2out_begin_prologue): ... here.
10514         (dwarf2out_frame_init): Remove.
10515         * dwarf2cfi.c: Update all users of current_fde.
10516         (dwarf2out_frame_init): Rename from dwarf2cfi_frame_init.
10517         * dwarf2out.h: Update decls.
10518         (dw_fde_node): Add fde_index member.
10519         * function.h (struct function): Add fde member.
10520
10521 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
10522             Richard Henderson  <rth@redhat.com>
10523
10524         * dwarf2cfi.c (add_cfi): Remove.
10525         (dwarf2out_cfi_label): Remove force argument.  Only generate the
10526         label name.
10527         (add_fde_cfi): Simplify the different code paths.
10528         (add_cie_cfi): New.
10529         (old_cfa, old_cfa_remember): New.
10530         (def_cfa_1, reg_save): Remove label, add for_cie parameter.
10531         (last_reg_save_label): Remove.
10532         (dwarf2out_args_size, dwarf2out_stack_adjust, queue_reg_save,
10533         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
10534         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
10535         dwarf2out_frame_debug_cfa_expression,
10536         dwarf2out_frame_debug_cfa_restore,
10537         dwarf2out_frame_debug_cfa_window_save,
10538         dwarf2out_frame_debug_expr): Remove label parameter.
10539         (cfi_label_required_p, add_cfis_to_fde): New.
10540         (dwarf2out_frame_debug_after_prologue): New.
10541         (dwarf2cfi_frame_init): Initialize old_cfa.
10542         (dwarf2out_frame_debug_restore_state): Likewise.
10543         * dwarf2out.c (dwarf2out_emit_cfi): Only do output for cfi_asm.
10544         (dwarf2out_switch_text_section): Don't clear dw_fde_current_label here.
10545         * final.c (final_start_function): Call
10546         dwarf2out_frame_debug_after_prologue.
10547
10548 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
10549             Richard Henderson  <rth@redhat.com>
10550
10551         * dwarf2cfi.c (cfi_insn): New.
10552         (dwarf2out_cfi_label): Don't emit cfi label here.
10553         (add_fde_cfi): Create a NOTE_INSN_CFI.
10554         (dwarf2out_frame_debug): Setup cfi_insn.
10555         (dwarf2out_frame_debug_init): Loop over insns creating CFI notes.
10556         (dwarf2out_cfi_begin_epilogue): Make static.
10557         (dwarf2out_frame_debug_restore_state): Make static.
10558         * dwarf2out.c (output_cfi_directive): Make static.
10559         (dwarf2out_emit_cfi): New.
10560         * dwarf2out.h: Update.
10561         * final.c (final): Remove CFI notes.
10562         (final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue,
10563         dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug.
10564         Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL.
10565         * insn-notes.def (NOTE_INSN_CFI): New.
10566         (NOTE_INSN_CFI_LABEL): New.
10567         * rtl.h (union rtunion_def): Add rt_cfi member.
10568         (XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New.
10569
10570 2011-07-07  Richard Henderson  <rth@redhat.com>
10571
10572         * dwarf2cfi.c: New file.
10573         * Makefile.in (OBJS): Add it.
10574         (GTFILES): Add dwarf2cfi.c and dwarf2out.h.
10575         * gengtype.c (open_base_files): Include dwarf2out.h.
10576         * coretypes.h (enum var_init_status): Move from ...
10577         * rtl.h: ... here.
10578         * dwarf2out.c (saved_do_cfi_asm, dwarf2out_do_frame,
10579         dwarf2out_do_cfi_asm, cie_cfi_vec, dwarf2out_cfi_label_num,
10580         expand_builtin_dwarf_sp_column, init_return_column_size,
10581         expand_builtin_init_dwarf_reg_sizes, new_cfi, add_cfi,
10582         dwarf2out_cfi_label, emit_cfa_remember, any_cfis_emitted, add_fde_cfi,
10583         lookup_cfa_1, lookup_cfa, cfa, cfa_store, cfa_remember, args_size,
10584         old_args_size, cfa_equal_p, def_cfa_1, reg_save, initial_return_save,
10585         stack_adjust_offset, barrier_args_size, compute_barrier_args_size_1,
10586         compute_barrier_args_size, dwarf2out_args_size,
10587         dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust,
10588         queued_reg_saves, reg_saved_in_data, regs_saved_in_regs,
10589         compare_reg_or_pc, record_reg_saved_in_reg, last_reg_save_label,
10590         queue_reg_save, dwarf2out_flush_queued_reg_saves,
10591         clobbers_queued_reg_save, reg_saved_in, cfa_temp,
10592         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
10593         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
10594         dwarf2out_frame_debug_cfa_expression,
10595         dwarf2out_frame_debug_cfa_restore,
10596         dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr,
10597         dwarf2out_frame_debug, dwarf2out_frame_debug_init,
10598         dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state,
10599         get_cfa_from_loc_descr): Move to dwarf2cfi.c.
10600         (dw_cfi_ref, dw_fde_ref, dw_cfi_oprnd_ref, enum dw_cfi_oprnd_type,
10601         dw_cfi_oprnd, dw_cfi_node, cfi_vec, dw_cfa_location, dw_fde_node,
10602         dw_val_ref, dw_die_ref, const_dw_die_ref, dw_loc_descr_ref,
10603         dw_loc_list_ref, enum dw_val_class, dw_vec_const, dw_val_node,
10604         dw_loc_descr_node): Move to dwarf2out.h.
10605         (current_fde, output_cfi_directive, build_cfa_loc, get_address_mode,
10606         mem_loc_descriptor): Export.
10607         (build_cfa_aligned_loc): Export.  Take CFA as a parameter.
10608         (dwarf2out_frame_init): Extract CIE generation code to
10609         dwarf2cfi_frame_init.
10610
10611 2011-07-07  Eric Botcazou  <ebotcazou@adacore.com>
10612
10613         PR target/49660
10614         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add
10615         MASK_V8PLUS, remove commented out flag and reorder.
10616
10617 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
10618
10619         PR c/49644
10620         * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
10621         one non-complex and one complex argument, call c_save_expr on both
10622         operands.
10623
10624 2011-07-07  Martin Jambor  <mjambor@suse.cz>
10625
10626         PR middle-end/49495
10627         * cgraphunit.c (verify_edge_corresponds_to_fndecl): New function.
10628         (verify_cgraph_node): Some functinality moved to
10629         verify_edge_corresponds_to_fndecl, call it.
10630
10631 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
10632
10633         * config.gcc (*local*): Remove.
10634         * doc/install-old.texi: Don't mention local configurations.
10635
10636 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
10637
10638         PR debug/49522
10639         * df-problems.c (dead_debug_reset): Remove dead_debug_uses
10640         referencing debug insns that have been reset.
10641         (dead_debug_insert_before): Don't assert reg is non-NULL,
10642         instead return immediately if it is NULL.
10643
10644 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
10645
10646         * config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa: Remove.
10647
10648 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
10649
10650         * hw-doloop.c: New file.
10651         * hw-doloop.h: New file.
10652         * Makefile.in (OBJS): Add hw-doloop.o.
10653         (hw-doloop.o): New rule.
10654         ($(obj_out_file)): Add hw-doloop.h dependency.
10655         * config/bfin/bfin.c: Include "hw-doloop.h".
10656         (loop_info, DEF_VEC_P for loop_info, loop_info_d): Remove.
10657         (bfin_dump_loops, bfin_bb_in_loop, bfin_scan_loop): Remove.
10658         (hwloop_optimize): Renamed from bfin_optimize_loop.  Argument
10659         type changed to hwloop_info.  Return bool, true if the loop was
10660         successfully optimized.  Remove code that was moved to
10661         hw-doloop.c, and adjust other parts.
10662         (hwloop_fail): New static function, containing parts that used
10663         to be in bfin_optimize_loop.
10664         (bfin_discover_loop, bfin_discover_loops, free_loops,
10665         bfin_reorder_loops): Remove.
10666         (hwloop_pattern_reg): New static function.
10667         (bfin_doloop_hooks): New variable.
10668         (bfin_reorg_loops): Remove most code, call reorg_loops.
10669         * config/bfin/bfin.md (doloop_end splitter): Also enable if
10670         loop counter is a memory_operand.
10671
10672 2011-07-07  H.J. Lu  <hongjiu.lu@intel.com>
10673
10674         * config.gcc: Support --with-multilib-list for x86 Linux targets.
10675
10676         * configure.ac: Mention x86-64 for --with-multilib-list.
10677         * configure: Regenerated.
10678
10679         * config/i386/gnu-user64.h (SPEC_64): Support x32.
10680         (SPEC_32): Likewise.
10681         (ASM_SPEC): Likewise.
10682         (LINK_SPEC): Likewise.
10683         (TARGET_THREAD_SSP_OFFSET): Likewise.
10684         (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise.
10685         (SPEC_X32): New.
10686
10687         * config/i386/i386.h (TARGET_X32): New.
10688         (TARGET_LP64): New.
10689         (LONG_TYPE_SIZE): Likewise.
10690         (POINTER_SIZE): Likewise.
10691         (POINTERS_EXTEND_UNSIGNED): Likewise.
10692         (OPT_ARCH64): Support x32.
10693         (OPT_ARCH32): Likewise.
10694
10695         * config/i386/i386.opt (mx32): New.
10696
10697         * config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New.
10698         (GLIBC_DYNAMIC_LINKERX32): Likewise.
10699         * config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise.
10700         (GLIBC_DYNAMIC_LINKERX32): Likewise.
10701
10702         * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New.
10703         (BIONIC_DYNAMIC_LINKERX32): Likewise.
10704         (GNU_USER_DYNAMIC_LINKERX32): Likewise.
10705
10706         * config/i386/t-linux64: Support TM_MULTILIB_CONFIG.
10707
10708         * doc/install.texi: Document --with-multilib-list for Linux/x86-64.
10709
10710         * doc/invoke.texi: Document -mx32.
10711
10712 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
10713
10714         * doc/invoke.texi (mwords-little-endian): Deprecate.
10715         * config/arm/arm.opt (mwords-little-endian): Likewise.
10716         * config/arm/arm.c (arm_option_override): Warn about the deprecation
10717         of -mwords-little-endian.
10718
10719 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
10720
10721         * reload1.c (choose_reload_regs): Use mode sizes to check whether
10722         an old reload register completely defines the required value.
10723
10724 2011-07-07  Richard Guenther  <rguenther@suse.de>
10725
10726         * fold-const.c (fold_unary_loc): Do not strip sign-changes
10727         for NEGATE_EXPR.
10728
10729 2011-07-07  Richard Guenther  <rguenther@suse.de>
10730
10731         * tree-vrp.c (simplify_conversion_using_ranges): New function.
10732         (simplify_stmt_using_ranges): Call it.
10733
10734 2011-07-07  Kai Tietz  <ktietz@redhat.com>
10735
10736         * tree-ssa-forwprop.c (truth_valued_ssa_name): New function.
10737         (lookup_logical_inverted_value): Likewise.
10738         (simplify_bitwise_binary_1): Likewise.
10739         (simplify_bitwise_binary): Use simplify_bitwise_binary_1.
10740
10741 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
10742
10743         * gcc.c (%[Spec]): Don't document.
10744         (struct spec_list): Update comment.
10745         (do_spec_1): Don't handle %[Spec].
10746         * doc/invoke.texi (%[@var{name}]): Remove documentation of spec.
10747
10748 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
10749
10750         * common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't
10751         default based on TARGET_ASM_NAMED_SECTION.
10752         * common/common-target.def (have_named_sections): Default to true.
10753         * common/config/default-common.c: Don't include tm.h.
10754         * common/config/picochip/picochip-common.c
10755         (TARGET_HAVE_NAMED_SECTIONS): Don't define.
10756         * common/config/m32c/m32c-common.c: Remove.
10757         * config.gcc (m32c*-*-*): Set target_has_targetm_common=no.
10758         * config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
10759         * config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
10760         * config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
10761         * config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
10762         * config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
10763         * config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
10764
10765 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
10766
10767         PR middle-end/49640
10768         * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF operands
10769         and last COMPONENT_REF operand call gimplify_expr on it if non-NULL.
10770
10771 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10772
10773         PR libmudflap/49550
10774         * gcc.c (MFWRAP_SPEC): Also wrap mmap64.
10775
10776 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10777
10778         PR target/39150
10779         * configure.ac (gcc_cv_as_hidden): Also accept
10780         x86_64-*-solaris2.1[0-9]*.
10781         (gcc_cv_as_cfi_directive): Likewise.
10782         (gcc_cv_as_comdat_group_group): Likewise.
10783         (set_have_as_tls): Likewise.
10784         * configure: Regenerate.
10785         * config.gcc (i[34567]86-*-solaris2*): Also handle
10786         x86_64-*-solaris2.1[0-9]*.
10787         * config.host (i[34567]86-*-solaris2*): Likewise.
10788         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
10789         * config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine.
10790         [USE_GLD] (ARCH_DEFAULT_EMULATION): Define.
10791         (TARGET_LD_EMULATION): Use it.
10792         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define.
10793         (SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default.
10794         * config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define.
10795         (ASM_CPU64_DEFAULT_SPEC): Define.
10796         (ASM_CPU_SPEC): Use %(asm_cpu_default).
10797         (ASM_SPEC): Redefine.
10798         (DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT.
10799         * config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce.
10800         * doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*): Document.
10801         (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]*
10802         configuration.
10803         (Specific, x86_64-*-solaris2.1[0-9]*): Document.
10804
10805 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10806
10807         * config/sol2.h (ASM_SPEC): Split into ...
10808         (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this.
10809         * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE.
10810         * config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine.
10811         (ASM_SPEC): Use ASM_SPEC_BASE.
10812         * config/sparc/sol2.h (ASM_SPEC): Redefine.
10813
10814 2011-07-07  Georg-Johann Lay  <avr@gjlay.de>
10815
10816         * config/avr/avr.md (*reload_insi): Change predicate #1 to
10817         const_int_operand.  Ditto for peep2 producing this insn.
10818         Add argument to output_reload_insisf call.
10819         (*movsi,*movsf): Add argument to output_movsisf call.
10820         (*reload_insf): New insn and new peep2 to produce it.
10821         * config/avr/avr-protos.h (output_movsisf): Change prototype.
10822         (output_reload_insisf): Change prototype.
10823         * config/avr/avr.c (avr_asm_len): New function.
10824         (output_reload_insisf): Rewrite.
10825         (output_movsisf): Change prototype.  output_reload_insisf for
10826         all CONST_INT and CONST_DOUBLE.  ALlow moving 0.0f to memory.
10827         (adjust_insn_length): Add argument to output_movsisf and
10828         output_reload_insisf call.
10829
10830 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
10831
10832         * emit-rtl.c (paradoxical_subreg_p): New function.
10833         * rtl.h (paradoxical_subreg_p): Declare.
10834         * combine.c (set_nonzero_bits_and_sign_copies, get_last_value,
10835         apply_distributive_law, simplify_comparison, simplify_set): Use it.
10836         * cse.c (record_jump_cond, cse_insn): Likewise.
10837         * expr.c (force_operand): Likewise.
10838         * rtlanal.c (num_sign_bit_copies1): Likewise.
10839         * reload1.c (eliminate_regs_1, strip_paradoxical_subreg): Likewise.
10840         * reload.c (push_secondary_reload, find_reloads_toplev): Likewise.
10841         (push_reload): Use precision to check for paradoxical subregs.
10842         * expmed.c (extract_bit_field_1): Likewise.
10843
10844         * machmode.h (HWI_COMPUTABLE_MODE_P): New macro.
10845         * combine.c (set_nonzero_bits_and_sign_copies): Use it.
10846         (find_split-point, combine_simplify_rtx, simplify_if_then_else,
10847         simplify_set, simplify_logical, expand_compound_operation,
10848         make_extraction, force_to_mode, if_then_else_cond, extended_count,
10849         try_widen_shift_mode, simplify_shift_const_1, simplify_comparison,
10850         record_value_for_reg): Likewise.
10851         * expmed.c (expand_widening_mult, expand_mult_highpart): Likewise.
10852         * simplify-rtx. c (simplify_unary_operation_1,
10853         simplify_binary_operation_1, simplify_const_relational_operation):
10854         Likewise.
10855
10856         * explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION
10857         instead of GET_MODE_BITSIZE where appropriate.
10858         * rtlanal.c (subreg_lsb_1, subreg_get_info, nonzero_bits1,
10859         num_sign_bit_copies1, canonicalize_condition, low_bitmask_len,
10860         init_num_sign_bit_copies_in_rep): Likewise.
10861         * cse.c (fold_rtx, cse_insn): Likewise.
10862         * loop-doloop.c (doloop_modify, doloop_optimize): Likewise.
10863         * simplify-rtx.c (simplify_unary_operation_1,
10864         simplify_const_unary_operation, simplify_binary_operation_1,
10865         simplify_const_binary_operation, simplify_ternary_operation,
10866         simplify_const_relational_operation, simplify_subreg): Likewise.
10867         * combine.c (try_combine, find_split_point, combine_simplify_rtx,
10868         simplify_if_then_else, simplify_set, expand_compound_operation,
10869         expand_field_assignment, make_extraction, if_then_else_cond,
10870         make_compound_operation, force_to_mode, make_field_assignment,
10871         reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine,
10872         extended_count, try_widen_shift_mode, simplify_shift_const_1,
10873         simplify_comparison, record_promoted_value, simplify_compare_const,
10874         record_dead_and_set_regs_1): Likewise.
10875
10876         Revert:
10877         * simplify-rtx.c (simplify_const_binary_operation): Use the
10878         shift_truncation_mask hook instead of performing modulo by width.
10879         Compare against mode precision, not bitsize.
10880         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
10881         Use shift_truncation_mask instead of constructing the value manually.
10882
10883 2011-07-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
10884
10885         * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): New
10886         declaration.
10887         (rs6000_save_toc_in_prologue_p): Ditto.
10888
10889         * config/rs6000/rs6000.opt (-mr11): New switch to disable loading
10890         up the static chain (r11) during indirect function calls.
10891         (-msave-toc-indirect): New undocumented debug switch.
10892
10893         * config/rs6000/rs6000.c (struct machine_function): Add
10894         save_toc_in_prologue field to note whether the prologue needs to
10895         save the TOC value in the reserved stack location.
10896         (rs6000_emit_prologue): Use TOC_REGNUM instead of 2.  If we need
10897         to save the TOC in the prologue, do so.
10898         (rs6000_trampoline_init): Don't allow creating AIX style
10899         trampolines if -mno-r11 is in effect.
10900         (rs6000_call_indirect_aix): New function to create AIX style
10901         indirect calls, adding support for -mno-r11 to suppress loading
10902         the static chain, and saving the TOC in the prologue instead of
10903         the call body.
10904         (rs6000_save_toc_in_prologue_p): Return true if we are saving the
10905         TOC in the prologue.
10906
10907         * config/rs6000/rs6000.md (STACK_POINTER_REGNUM): Add more fixed
10908         register numbers.
10909         (TOC_REGNUM): Ditto.
10910         (STATIC_CHAIN_REGNUM): Ditto.
10911         (ARG_POINTER_REGNUM): Ditto.
10912         (SFP_REGNO): Delete, unused.
10913         (TOC_SAVE_OFFSET_32BIT): Add constants for AIX TOC save and
10914         function descriptor offsets.
10915         (TOC_SAVE_OFFSET_64BIT): Ditto.
10916         (AIX_FUNC_DESC_TOC_32BIT): Ditto.
10917         (AIX_FUNC_DESC_TOC_64BIT): Ditto.
10918         (AIX_FUNC_DESC_SC_32BIT): Ditto.
10919         (AIX_FUNC_DESC_SC_64BIT): Ditto.
10920         (ptrload): New mode attribute for the appropriate load of a pointer.
10921         (call_indirect_aix32): Delete, rewrite AIX indirect function calls.
10922         (call_indirect_aix64): Ditto.
10923         (call_value_indirect_aix32): Ditto.
10924         (call_value_indirect_aix64): Ditto.
10925         (call_indirect_nonlocal_aix32_internal): Ditto.
10926         (call_indirect_nonlocal_aix32): Ditto.
10927         (call_indirect_nonlocal_aix64_internal): Ditto.
10928         (call_indirect_nonlocal_aix64): Ditto.
10929         (call): Rewrite AIX indirect function calls.  Add support for
10930         eliminating the static chain, and for moving the save of the TOC
10931         to the function prologue.
10932         (call_value): Ditto.
10933         (call_indirect_aix<ptrsize>): Ditto.
10934         (call_indirect_aix<ptrsize>_internal): Ditto.
10935         (call_indirect_aix<ptrsize>_internal2): Ditto.
10936         (call_indirect_aix<ptrsize>_nor11): Ditto.
10937         (call_value_indirect_aix<ptrsize>): Ditto.
10938         (call_value_indirect_aix<ptrsize>_internal): Ditto.
10939         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
10940         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
10941         (call_nonlocal_aix32): Relocate in the rs6000.md file.
10942         (call_nonlocal_aix64): Ditto.
10943
10944         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mr11 and
10945         -mno-r11 documentation.
10946
10947 2011-07-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
10948
10949         PR other/49658
10950         * doc/extend.texi (Compound Literals): Fix typo.
10951
10952 2011-07-06  James Greenhalgh  <james.greenhalgh@arm.com>
10953
10954         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add __ARM_FEATURE_DSP.
10955
10956 2011-07-06  Basile Starynkevitch  <basile@starynkevitch.net>
10957
10958         * configure.ac (plugin-version.h): Generate
10959         GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR,
10960         GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer
10961         macros.
10962
10963         * configure: Regenerate.
10964
10965         * doc/plugins.texi (Building GCC plugins): Mention
10966         GCCPLUGIN_VERSION ... constant macros in plugin-version.h.
10967
10968 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
10969
10970         * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro.
10971         * combine.c (make_extraction, gen_lowpart_or_truncate,
10972         apply_distributive_law, simplify_comparison,
10973         reg_truncated_to_mode, record_truncated_value): Use it.
10974         * cse.c (notreg_cost): Likewise.
10975         * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
10976         * expr.c (convert_move, convert_modes): Likewise.
10977         * optabs.c (expand_binop, expand_unop): Likewise.
10978         * postreload.c (move2add_last_label): Likewise.
10979         * regmove.c (optimize_reg_copy_3): Likewise.
10980         * rtlhooks.c (gen_lowpart_general): Likewise.
10981         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
10982
10983 2011-07-06  Joseph Myers  <joseph@codesourcery.com>
10984
10985         * config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define.
10986
10987 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
10988
10989         * cse.c (find_comparison_args): Use val_mode_signbit_set_p.
10990         * simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION.
10991         (val_mode_signbit_p, val_mode_signbit_set_p): New functions.
10992         (simplify_const_unary_operation, simplify_binary_operation_1,
10993         simplify_const_binary_operation, simplify_const_relational_operation):
10994         Use them.  Use GET_MODE_MASK for masking and sign-extensions.
10995         * combine.c (set_nonzero_bits_and_sign_copies, simplify_set,
10996         combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine,
10997         simplify_shift_const_1, simplify_comparison): Likewise.
10998         * expr.c (convert_modes): Likewise.
10999         * rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise.
11000         * expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag): Likewise.
11001         * rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare.
11002
11003         * simplify-rtx.c (simplify_ternary_operation): Remove dead code.
11004
11005 2011-07-06  Richard Guenther  <rguenther@suse.de>
11006
11007         PR tree-optimization/49645
11008         * c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global
11009         register variables.
11010         * tree-ssa-sccvn.c (vn_reference_op_eq): Disregard differences
11011         in type qualification here ...
11012         (copy_reference_ops_from_ref): ... not here.
11013         (vn_reference_lookup_3): ... or here.
11014         (copy_reference_ops_from_ref): Record decl bases as MEM[&decl].
11015         (vn_reference_lookup): Do the lookup with a valueized ao-ref.
11016
11017 2011-07-06  Ian Lance Taylor  <iant@google.com>
11018
11019         * doc/install.texi (Configuration): It's
11020         --enable-gnu-indirect-function, not --enable-indirect-function.
11021
11022 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
11023
11024         * simplify-rtx.c (simplify_const_binary_operation): Use the
11025         shift_truncation_mask hook instead of performing modulo by width.
11026         Compare against mode precision, not bitsize.
11027         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
11028         Use shift_truncation_mask instead of constructing the value manually.
11029
11030 2011-07-06  H.J. Lu  <hongjiu.lu@intel.com>
11031
11032         PR middle-end/47383
11033         * tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for
11034         address computation and convert to address_mode if needed.
11035
11036 2011-07-06  Richard Guenther  <rguenther@suse.de>
11037
11038         * tree.c (build_common_tree_nodes_2): Merge with
11039         build_common_tree_nodes.
11040         * tree.h (build_common_tree_nodes): Adjust prototype.
11041         (build_common_tree_nodes_2): Remove.
11042         * doc/tm.texi.in (lang_hooks.builtin_function): Adjust.
11043         * doc/tm.texi (lang_hooks.builtin_function): Regenerate.
11044
11045 2011-07-05  Jakub Jelinek  <jakub@redhat.com>
11046
11047         PR tree-optimization/49618
11048         * tree-eh.c (tree_could_trap_p) <case CALL_EXPR>: For DECL_WEAK
11049         t recurse on the decl.
11050         <case FUNCTION_DECL, case VAR_DECL>: For DECL_WEAK decls
11051         return true if expr isn't known to be defined in current
11052         TU or some other LTO partition.
11053
11054 2011-07-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
11055
11056         * params.def (PARAM_CASE_VALUES_THRESHOLD): New parameter to
11057         override CASE_VALUES_THRESHOLD.
11058
11059         * stmt.c (toplevel): Include params.h.
11060         (case_values_threshold): Use the --param case-values-threshold
11061         value if non-zero, otherwise use machine dependent value.
11062         (expand_case): Use case_values_threshold.
11063
11064         * Makefile.in (stmt.o): Add $(PARAMS_H) dependency.
11065
11066         * doc/invoke.texi (--param case-values-threshold): Document.
11067
11068 2011-07-05  Richard Henderson  <rth@redhat.com>
11069
11070         * dwarf2out.c (dwarf2out_cfi_label): Make static.
11071         (dwarf2out_flush_queued_reg_saves): Make static.
11072         (dwarf2out_reg_save): Remove.
11073         (dwarf2out_return_save): Remove.
11074         (dwarf2out_return_reg): Remove.
11075         (dwarf2out_reg_save_reg): Remove.
11076         (dwarf2out_def_cfa): Merge into ...
11077         (dwarf2out_frame_init): ... here.
11078         * dwarf2out.h, tree.h: Remove declarations as necessary.
11079
11080 2011-07-05  Richard Henderson  <rth@redhat.com>
11081
11082         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): Remove.
11083         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
11084         (ia64_expand_epilogue): Emit an empty FRAME_RELATED_EXPR for
11085         the alloc insn.
11086
11087         * config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove.
11088         (IA64_CHANGE_CFA_IN_EPILOGUE): Remove.
11089         (process_epilogue): Don't call dwarf2out_def_cfa.
11090
11091         * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to
11092         indicate the return address save.
11093         (process_cfa_register): Likewise.
11094
11095         * config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove.
11096         (process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it.
11097
11098         * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER
11099         for ar.pfs save at alloc insn.
11100
11101 2011-07-05  Richard Henderson  <rth@redhat.com>
11102
11103         * config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove.
11104         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
11105         (arm_expand_prologue): Use REG_CFA_REGISTER to mark the
11106         stack pointer save.
11107         (arm_unwind_emit_set): Don't recognize UNSPEC_STACK_ALIGN.
11108         (arm_unwind_emit): Walk REG_NOTES for unwinding notes.  Emit
11109         proper unwind info for a REG_CFA_REGISTER save of stack pointer.
11110         * config/arm/arm.md (UNSPEC_STACK_ALIGN): Remove.
11111
11112 2011-07-05  Richard Henderson  <rth@redhat.com>
11113
11114         * config/vax/vax.md (define_c_enum unspecv): New.  Define the
11115         VUNSPEC_* constants here instead of via define_constants.
11116         (VUNSPEC_PEM): New constant.
11117         (procedure_entry_mask): New insn.
11118         (prologue): New expander.
11119         * config/vax/vax.c (vax_add_reg_cfa_offset): New.
11120         (vax_expand_prologue): Rename from vax_output_function_prologue;
11121         emit rtl instead of text.
11122         (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
11123         (print_operand): Add 'x' prefix.
11124
11125 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
11126
11127         PR middle-end/47715
11128         * calls.c (precompute_register_parameters): Promote the function
11129         argument before checking non-legitimate constant.
11130
11131 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
11132
11133         PR tree-optimization/47654
11134         * graphite-blocking.c (pbb_strip_mine_time_depth): Do not return bool.
11135         (lst_do_strip_mine_loop): Return an int.
11136         (lst_do_strip_mine): Same.
11137         (scop_do_strip_mine): Same.
11138         (scop_do_block): Loop blocking should strip-mine at least two loops.
11139         * graphite-interchange.c (lst_interchange_select_outer): Return an int.
11140         (scop_do_interchange): Same.
11141         * graphite-poly.h (scop_do_interchange): Update declaration.
11142         (scop_do_strip_mine): Same.
11143
11144 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
11145
11146         * graphite-clast-to-gimple.c (precision_for_value): Removed.
11147         (precision_for_interval): Removed.
11148         (gcc_type_for_interval): Use mpz_sizeinbase.
11149
11150 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
11151
11152         * graphite-ppl.h (value_max): Correct computation of max.
11153
11154 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
11155
11156         * graphite-clast-to-gimple.c (clast_name_to_index): Add missing space.
11157
11158 2011-07-05  Richard Guenther  <rguenther@suse.de>
11159
11160         * c-decl.c (c_init_decl_processing): Defer building common
11161         tree nodes to c_common_nodes_and_builtins.
11162
11163 2011-07-05  Razya Ladelsky  <razya@il.ibm.com>
11164
11165         PR tree-optimization/49580
11166         * tree-cfg.c (gimple_duplicate_sese_tail): Remove handling of
11167         the loop's number of iterations.
11168         * tree-parloops.c (transform_to_exit_first_loop): Add the
11169         handling of the loop's number of iterations before the call
11170         to gimple_duplicate_sese_tail.
11171         Insert the stmt caclculating the new rhs of the loop's
11172         condition stmt to the preheader instead of iters_bb.
11173
11174 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
11175
11176         PR rtl-optimization/47449
11177         * fwprop.c (forward_propagate_subreg): Don't propagate hard
11178         register nor zero/sign extended hard register.
11179
11180 2011-07-05  Richard Guenther  <rguenther@suse.de>
11181
11182         PR tree-optimization/49518
11183         PR tree-optimization/49628
11184         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Skip
11185         irrelevant and invariant data-references.
11186         (vect_analyze_data_ref_access): For invariant loads clear the
11187         group association.
11188
11189 2011-07-04  Jakub Jelinek  <jakub@redhat.com>
11190
11191         PR rtl-optimization/49619
11192         * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification
11193         pass VOIDmode as op0_mode to recursive call, and return temp even
11194         when different from tor, just if it is not IOR of the original
11195         PLUS arguments.
11196
11197         PR rtl-optimization/49472
11198         * simplify-rtx.c (simplify_unary_operation_1) <case NEG>: When
11199         negating MULT, negate the second operand instead of first.
11200         (simplify_binary_operation_1) <case MULT>: If one operand is
11201         a NEG and the other is MULT, don't attempt to optimize by negation
11202         of the MULT operand if it only moves the NEG operation around.
11203
11204         PR debug/49602
11205         * tree-into-ssa.c (rewrite_debug_stmt_uses): Disregard
11206         get_current_def return value if it can't be trusted to be
11207         the current value of the variable in the current bb.
11208
11209 2011-07-04  Uros Bizjak  <ubizjak@gmail.com>
11210
11211         PR target/49600
11212         * config/i386/i386.md (SSE2 int->float split): Push operand 1 in
11213         general register to memory for !TARGET_INTER_UNIT_MOVES.
11214
11215 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
11216
11217         PR target/44643
11218         * config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY
11219         instead of TREE_READONLY.
11220
11221 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
11222
11223         * doc/extend.texi (AVR Built-in Functions): Update documentation
11224         of __builtin_avr_fmul*.
11225         * config/avr/avr.c (avr_init_builtins): Don't depend on AVR_HAVE_MUL.
11226         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Ditto.
11227         * config/avr/avr.md (fmul): Rename to fmul_insn.
11228         (fmuls): Rename to fmuls_insn.
11229         (fmulsu): Rename to fmulsu_insn.
11230         (fmul,fmuls,fmulsu): New expander.
11231         (*fmul.call,*fmuls.call,*fmulsu.call): New Insn.
11232         * config/avr/t-avr (LIB1ASMFUNCS): Add _fmul, _fmuls, _fmulsu.
11233         * config/avr/libgcc.S (__fmul): New function.
11234         (__fmuls): New function.
11235         (__fmulsu,__fmulsu_exit): New function.
11236
11237 2011-07-04  Richard Guenther  <rguenther@suse.de>
11238
11239         PR tree-optimization/49615
11240         * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix
11241         basic-block index check.
11242
11243 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
11244
11245         * longlong.h (count_leading_zeros, count_trailing_zeros,
11246         COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16
11247         resp. 64.
11248
11249 2011-07-03  Ira Rosen  <ira.rosen@linaro.org>
11250
11251         PR tree-optimization/49610
11252         * tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has
11253         a basic block.
11254
11255 2011-07-02  Eric Botcazou  <ebotcazou@adacore.com>
11256             Olivier Hainque  <hainque@adacore.com>
11257             Nicolas Setton  <setton@adacore.com>
11258
11259         * tree.h (TYPE_ARTIFICIAL): New flag.
11260         * dwarf2out.c (modified_type_die): Add a DW_AT_artificial attribute to
11261         the DIE of the type if it is artificial.
11262         (gen_array_type_die): Likewise.
11263         (gen_enumeration_type_die): Likewise.
11264         (gen_struct_or_union_type_die): Likewise.
11265         * lto-streamer-in.c (unpack_ts_base_value_fields): Use TYPE_ARTIFICIAL.
11266         * lto-streamer-out.c (pack_ts_base_value_fields): Likewise.
11267
11268 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
11269
11270         * tree-object-size.c (pass_through_call): Handle
11271         BUILT_IN_ASSUME_ALIGNED.
11272
11273 2011-07-01  Martin Jambor  <mjambor@suse.cz>
11274
11275         * tree-sra.c (tree_non_mode_aligned_mem_p): Also ignore MEM_REFs.
11276
11277 2011-07-01  H.J. Lu  <hongjiu.lu@intel.com>
11278
11279         PR middle-end/48016
11280         * explow.c (update_nonlocal_goto_save_area): Use proper mode
11281         for stack save area.
11282         * function.c (expand_function_start): Likewise.
11283
11284 2011-07-01  Richard Guenther  <rguenther@suse.de>
11285
11286         PR middle-end/49596
11287         * cgraph.h (varpool_all_refs_explicit_p): Not analyzed nodes
11288         may have unknown refs.
11289
11290 2011-07-01  Kai Tietz  <ktietz@redhat.com>
11291
11292         * tree-ssa-forwprop.c (simplify_bitwise_binary): Fix typo.
11293
11294 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11295
11296         * config.gcc: Obsolete alpha*-dec-osf5.1, mips-sgi-irix6.5.
11297         * doc/install.texi (Specific, alpha*-dec-osf5.1): Document it.
11298         (Specific, mips-sgi-irix6): Likewise.
11299
11300 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11301
11302         PR libmudflap/49549
11303         * doc/sourcebuild.texi (Effective-Target Keywords): Document gld.
11304
11305 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
11306
11307         * tree-pretty-print.c (dump_generic_code) <case CONSTRUCTOR>: Print
11308         [idx]= and [idx1 ... idx2]= before initializers if needed for
11309         array initializers.
11310
11311 2011-07-01  Chen Liqin  <liqin.gcc@gmail.com>
11312
11313         * config.gcc (score-*-elf): Remove score7.o.
11314         * config/score/t-score-elf: Likewise.
11315         * config/score/score.c: Merge score7 to score.c and
11316         remove forwarding functions.
11317         * config/score/score7.c: Deleted.
11318         * config/score/score7.h: Deleted.
11319
11320 2011-07-01  Richard Guenther  <rguenther@suse.de>
11321
11322         PR tree-optimization/49603
11323         * tree-vect-stmts.c (vectorizable_load): Remove unnecessary assert.
11324
11325 2011-06-30  Martin Jambor  <mjambor@suse.cz>
11326
11327         * tree-sra.c (struct access): Rename total_scalarization to
11328         grp_total_scalarization
11329         (completely_scalarize_var): New function.
11330         (sort_and_splice_var_accesses): Set total_scalarization in the
11331         representative access.
11332         (analyze_access_subtree): Propagate total scalarization accross the
11333         tree, no holes in totally scalarized trees, simplify coverage
11334         computation.
11335         (analyze_all_variable_accesses): Call completely_scalarize_var instead
11336         of completely_scalarize_record.
11337
11338 2011-06-30  Richard Henderson  <rth@redhat.com>
11339
11340         * config/i386/i386.h (X86_TUNE_DEEP_BRANCH_PREDICTION): Remove.
11341         (TARGET_DEEP_BRANCH_PREDICTION): Remove.
11342         * config/i386/i386.c: Don't include dwarf2out.h.
11343         (initial_ix86_tune_features): Remove X86_TUNE_DEEP_BRANCH_PREDICTION.
11344         (output_set_got): Don't test TARGET_DEEP_BRANCH_PREDICTION, delete
11345         all code dead thereafter.  Don't do dwarf2out_flush_queued_reg_saves.
11346         (ix86_expand_prologue): Set REG_CFA_FLUSH_QUEUE on set_got insn.
11347         (machopic_output_stub): Don't test TARGET_DEEP_BRANCH_PREDICTION.
11348
11349 2011-06-30  Richard Henderson  <rth@redhat.com>
11350
11351         * reg-notes.def (REG_CFA_FLUSH_QUEUE): New.
11352         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
11353         * final.c (final_scan_insn): Look for it, and invoke
11354         dwarf2out_frame_debug before the insn if found.
11355
11356 2011-06-30  Richard Henderson  <rth@redhat.com>
11357
11358         * dwarf2out.c (dwarf2out_frame_debug_cfa_offset): Allow PC_RTX
11359         as a source, and interpret that as DWARF_FRAME_RETURN_COLUMN.
11360
11361 2011-06-30  Richard Henderson  <rth@redhat.com>
11362
11363         * dwarf2out.c (struct reg_saved_in_data): Provide a typedef.
11364         Define a vector of this type.
11365         (regs_saved_in_regs): Use a VEC.
11366         (num_regs_saved_in_regs): Remove.
11367         (compare_reg_or_pc): New.
11368         (record_reg_saved_in_reg): Split out from...
11369         (dwarf2out_flush_queued_reg_saves): ... here.
11370         (clobbers_queued_reg_save): Update for VEC.
11371         (reg_saved_in): Likewise.
11372         (dwarf2out_frame_debug_init): Likewise.
11373         (dwarf2out_reg_save_reg): Use record_reg_saved_in_reg.
11374         (dwarf2out_frame_debug_cfa_register): Likewise.
11375
11376 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
11377
11378         PR tree-optimization/49572
11379         * tree-ssa-dom.c (initialize_hash_element) <GIMPLE_SINGLE_RHS>: Use the
11380         type of the RHS instead of that of the LHS for the expression type.
11381
11382 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
11383
11384         * df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro
11385         unconditionally.
11386
11387 2011-06-30  Richard Guenther  <rguenther@suse.de>
11388
11389         * opts.c (finish_options): Do not disable IPA-PTA during ltrans.
11390         * tree-ssa-structalias.c (create_variable_info_for): Do not
11391         add initial constraints for non-var-decls.  Properly handle
11392         globals in other ltrans partitions.
11393         (intra_create_variable_infos): Manually create constraints for
11394         the fake no-alias parameter.
11395         (ipa_pta_execute): Dump the cgraph, handle ltrans partitions properly
11396         and assert there are no clones.
11397
11398 2011-06-30  Richard Guenther  <rguenther@suse.de>
11399
11400         PR tree-optimization/46787
11401         * tree-data-ref.c (dr_address_invariant_p): Remove.
11402         (find_data_references_in_stmt): Invariant accesses are ok now.
11403         * tree-vect-stmts.c (vectorizable_load): Handle invariant loads.
11404         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
11405         invariant loads.
11406
11407 2011-06-30  Martin Jambor  <mjambor@suse.cz>
11408
11409         PR tree-optimization/49094
11410         * tree-sra.c (tree_non_mode_aligned_mem_p): New function.
11411         (build_accesses_from_assign): Use it.
11412
11413 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
11414
11415         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
11416         handling of BUILT_IN_ASSUME_ALIGNED.
11417
11418         PR debug/49364
11419         * dwarf2out.c (output_abbrev_section): Don't return early
11420         if abbrev_die_table_in_use is 1.
11421         (dwarf2out_finish): Instead don't call output_abbrev_section
11422         nor emit abbrev_section_label in that case.
11423
11424 2011-06-30  Nick Clifton  <nickc@redhat.com>
11425
11426         * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling
11427         for the V850E.
11428
11429 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
11430
11431         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
11432         handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK.
11433
11434 2011-06-30  Ira Rosen  <ira.rosen@linaro.org>
11435
11436         * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
11437         both pattern and original statements if necessary.
11438         (vect_transform_loop): Likewise.
11439         * tree-vect-patterns.c (vect_pattern_recog): Update documentation.
11440         * tree-vect-stmts.c (vect_mark_relevant): Add new argument.
11441         Mark the pattern statement only if the original statement doesn't
11442         have its own uses.
11443         (process_use): Call vect_mark_relevant with additional parameter.
11444         (vect_mark_stmts_to_be_vectorized): Likewise.
11445         (vect_get_vec_def_for_operand): Use vectorized pattern statement.
11446         (vect_analyze_stmt): Handle both pattern and original statements
11447         if necessary.
11448         (vect_transform_stmt): Don't store vectorized pattern statement
11449         in the original statement.
11450         (vect_is_simple_use_1): Use related pattern statement only if the
11451         original statement is irrelevant.
11452         * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
11453
11454 2011-06-29  Changpeng Fang  <changpeng.fang@amd.com>
11455
11456         * config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask
11457         option.
11458         * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL
11459         entry.
11460         (TARGET_AVX128_OPTIMAL): New definition.
11461         * config/i386/i386.c (initial_ix86_tune_features): Initialize
11462         X86_TUNE_AVX128_OPTIMAL entry.
11463         (ix86_option_override_internal): Enable the generation
11464         of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set.
11465         (ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128.
11466         (ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128.
11467
11468 2011-06-29  Eric Botcazou  <ebotcazou@adacore.com>
11469
11470         PR tree-optimization/49539
11471         * tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA
11472         names by means of stmt_references_abnormal_ssa_name.
11473         (associate_plusminus): Call can_propagate_from before propagating
11474         from definition statements.
11475         (ssa_forward_propagate_and_combine): Remove superfluous newline.
11476
11477 2011-06-29  Richard Guenther  <rguenther@suse.de>
11478
11479         * doc/invoke.texi: Document -scev dump modifier.
11480         * tree-pass.h (TDF_SCEV): New dump flag.
11481         * tree-dump.c (dump_option_value_in): Add scev.
11482         * tree-chrec.c: Replace all TDF_DETAILS checks with TDF_SCEV.
11483         * tree-scalar-evolution.c: Likewise.
11484
11485 2011-06-29  Nathan Sidwell  <nathan@codesourcery.com>
11486
11487         * config/arm/unwind-arm.c (enum __cxa_type_match_result): New.
11488         (cxa_type_match): Correct declaration.
11489         (__gnu_unwind_pr_common): Reconstruct additional indirection
11490         when __cxa_type_match returns succeeded_with_ptr_to_base.
11491
11492 2011-06-29  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11493
11494         PR rtl-optimization/49114
11495         * reload.c (struct replacement): Remove SUBREG_LOC member.
11496         (push_reload): Do not set it.
11497         (push_replacement): Likewise.
11498         (subst_reload): Remove dead code.
11499         (copy_replacements): Remove assertion.
11500         (copy_replacements_1): Do not handle SUBREG_LOC.
11501         (move_replacements): Likewise.
11502         (find_replacement): Remove dead code.  Use reload_adjust_reg_for_mode.
11503         Detect subregs via recursive descent instead of via SUBREG_LOC.
11504
11505 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
11506
11507         * config/avr/avr.c (avr_encode_section_info): Dispatch to
11508         default_encode_section_info.
11509
11510 2011-06-29  Richard Sandiford  <richard.sandiford@linaro.org>
11511
11512         PR tree-optimization/49545
11513         * builtins.c (get_object_alignment_1): Update function comment.
11514         Do not use DECL_ALIGN for functions, but test
11515         TARGET_PTRMEMFUNC_VBIT_LOCATION instead.
11516         * fold-const.c (get_pointer_modulus_and_residue): Don't check
11517         for functions here.
11518         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
11519
11520 2011-06-29  Jakub Jelinek  <jakub@redhat.com>
11521
11522         PR debug/49567
11523         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up for
11524         non-MODE_INT modes instead of asserting the mode has MODE_INT class.
11525
11526 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
11527
11528         PR target/34734
11529         * config/avr/avr.c (avr_handle_progmem_attribute): Move warning
11530         about uninitialized data attributed 'progmem' from here...
11531         (avr_encode_section_info): ...to this new function.
11532         (TARGET_ENCODE_SECTION_INFO): New define.
11533         (avr_section_type_flags): For data in ".progmem.data", remove
11534         section flag SECTION_WRITE.
11535
11536 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
11537
11538         * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3,
11539         _xmulhisi3_exit.
11540         * config/avr/libgcc.S (_xmulhisi3_exit): New Function.
11541         (__mulhisi3): Optimize if have MUL*.  Use XJMP instead of rjmp.
11542         (__umulhisi3): Ditto.
11543         * config/avr/avr.md (mulhisi3): New insn expender.
11544         (umulhisi3): New insn expender.
11545         (*mulhisi3_call): New insn.
11546         (*umulhisi3_call): New insn.
11547
11548 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
11549
11550         * Makefile.in (LIBGCC2_CFLAGS): Remove -D__GCC_FLOAT_NOT_NEEDED.
11551
11552 2011-06-28  Richard Henderson  <rth@redhat.com>
11553
11554         * config/arm/arm.c (thumb_pop): Rename from thumb_pushpop.  Delete
11555         all code and arguments that handled pushes.  Update all callers.
11556
11557 2011-06-28  Richard Henderson  <rth@redhat.com>
11558
11559         * config/arm/arm.c (arm_output_function_prologue): Don't call
11560         thumb1_output_function_prologue.
11561         (arm_expand_prologue): Avoid dead store.
11562         (number_of_first_bit_set): Use ctz_hwi.
11563         (thumb1_emit_multi_reg_push): New.
11564         (thumb1_expand_prologue): Merge thumb1_output_function_prologue
11565         to emit the entire prologue as rtl.
11566         (thumb1_output_interwork): Split out from
11567         thumb1_output_function_prologue.
11568         (thumb1_output_function_prologue): Remove.
11569         (arm_attr_length_push_multi): Handle thumb1.
11570         * config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New.
11571         (prologue_thumb1_interwork): New.
11572         (*push_multi): Allow thumb1; use push_mult_memory_operand.
11573         * config/arm/predicates.md (push_mult_memory_operand): New.
11574
11575 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
11576
11577         * config/sparc/sync.md (*stbar): Delete.
11578         (*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8.
11579
11580 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
11581
11582         * tree-ssa-dom.c (initialize_hash_element): Fix oversight.
11583
11584 2011-06-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11585
11586         * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove.
11587         (TARGET_64BIT_DEFAULT): Define.
11588         * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front
11589         of tm_file.
11590         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define.
11591
11592 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
11593
11594         * common.opt (in_lto_p): New Variable entry.
11595         * flags.h (in_lto_p): Move to common.opt.
11596         * gcc.c: Include params.h.
11597         (set_option_handlers): Also use common_handle_option and
11598         target_handle_option.
11599         (main): Call global_init_params, finish_params and init_options_struct.
11600         * opts.c (debug_type_names): Move from toplev.c.
11601         (print_filtered_help): Access quiet_flag through opts pointer.
11602         (common_handle_option): Return early in the driver for some options.
11603         Access in_lto_p, dwarf_version and warn_maybe_uninitialized through
11604         opts pointer.
11605         * toplev.c (in_lto_p): Move to common.opt.
11606         (debug_type_names): Move to opts.c.
11607         * Makefile.in (OBJS): Remove opts.o.
11608         (OBJS-libcommon-target): Add opts.o.
11609         (gcc.o): Update dependencies.
11610
11611 2011-06-28  Kai Tietz  <ktietz@redhat.com>
11612
11613         * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve type sinking.
11614
11615 2011-06-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
11616
11617         * config/arm/vfp.md ("*divsf3_vfp"): Replace '+' constraint modifier
11618         with '=' constraint modifier.
11619         (*divdf3_vfp): Likewise.
11620         ("*mulsf3_vfp"): Likewise.
11621         ("*muldf3_vfp"): Likewise.
11622         ("*mulsf3negsf_vfp"): Likewise.
11623         ("*muldf3negdf_vfp"): Likewise.
11624
11625 2011-06-28  Nick Clifton  <nickc@redhat.com>
11626
11627         * config/mn10300/mn10300.h (LINK_SPEC): Do not use linker
11628         relaxation when performing an incremental link.
11629
11630 2011-06-28  Kai Tietz  <ktietz@redhat.com>
11631
11632         * tree-ssa-math-opts.c (execute_optimize_bswap): Search
11633         within BB from last to first.
11634
11635 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
11636
11637         * genattr-common.c: New.  Based on genattr.c.
11638         * Makefile.in (INSN_ATTR_H): Include insn-attr-common.h.
11639         (MOSTLYCLEANFILES): Add insn-attr-common.h.
11640         (opts.o): Update dependencies.
11641         (.PRECIOUS): Add insn-attr-common.h.
11642         (simple_rtl_generated_h): Add insn-attr-common.h.
11643         (build/genattr-common.o): New.
11644         (genprogrtl): Add attr-common.
11645         * genattr.c (main): Include insn-attr-common.h.  Don't generate
11646         definitions of DELAY_SLOTS or INSN_SCHEDULING.
11647         * opts.c: Include insn-attr-common.h instead of rtl.h and insn-attr.h.
11648
11649 2011-06-28  Georg-Johann Lay  <avr@gjlay.de>
11650
11651         * config.gcc (tm_file): Add elfos.h and avr/elf.h for
11652         avr-*-* and avr-*-rtems* targets.
11653
11654         * config/avr/elf.h: New file.
11655         (ASM_OUTPUT_BEFORE_CASE_LABEL): Define.
11656         (TARGET_ASM_SELECT_SECTION): Define.
11657         (INIT_SECTION_ASM_OP): Undefine.
11658         (FINI_SECTION_ASM_OP): Undefine.
11659         (READONLY_DATA_SECTION_ASM_OP): Undefine.
11660         (PCC_BITFIELD_TYPE_MATTERS): Undefine.
11661         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine.
11662         * config/avr/avr.h:
11663         (PREFERRED_DEBUGGING_TYPE): Move to elf.h.
11664         (TARGET_ASM_NAMED_SECTION): Move to elf.h.
11665         (MAX_OFILE_ALIGNMENT): Move to elf.h.
11666         (STRING_LIMIT): Move to elf.h.
11667         (ASM_DECLARE_FUNCTION_NAME): Move to elf.h.
11668         (ASM_DECLARE_OBJECT_NAME): Remove.
11669         (ESCAPES): Remove.
11670         (ASM_OUTPUT_SKIP): Remove.
11671         (DWARF2_DEBUGGING_INFO): Remove.
11672         (OBJECT_FORMAT_ELF): Remove.
11673         (USER_LABEL_PREFIX): Remove.
11674         (ASM_OUTPUT_EXTERNAL): Remove.
11675         (ASM_OUTPUT_ASCII): Remove.
11676         (TYPE_ASM_OP): Remove.
11677         (SIZE_ASM_OP): Remove.
11678         (WEAK_ASM_OP): Remove.
11679         (STRING_ASM_OP): Remove.
11680         (SET_ASM_OP): Remove.
11681         (ASM_WEAKEN_LABEL): Remove.
11682         (TYPE_OPERAND_FMT): Remove.
11683         (ASM_DECLARE_FUNCTION_SIZE): Remove.
11684         (ASM_FINISH_DECLARE_OBJECT): Remove.
11685         (NO_DOLLAR_IN_LABEL): Remove.
11686         (ASM_GENERATE_INTERNAL_LABEL): Remove.
11687         (ASM_OUTPUT_CASE_LABEL): Remove.
11688         * config/avr/avr.c (avr_asm_output_aligned_decl_common): Use
11689         ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON.
11690         (gas_output_ascii): Remove.
11691         (gas_output_limited_string): Remove.
11692         (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
11693         * config/avr/avr-protos.h
11694         (gas_output_ascii): Remove prototye.
11695         (gas_output_limited_string): Remove prototype.
11696
11697 2011-06-27  Richard Earnshaw  <rearnsha@arm.com>
11698
11699         PR target/48637
11700         * arm.c (arm_print_operand): Allow sym+offset.  Don't abort on invalid
11701         asm operands.
11702
11703 2011-06-27  Jan Hubicka  <jh@suse.cz>
11704
11705         * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of
11706         node instead of references in node.
11707
11708 2011-06-27  Richard Henderson  <rth@redhat.com>
11709
11710         * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition.
11711         * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins
11712         inside ifdef.
11713
11714 2011-06-27  Jakub Jelinek  <jakub@redhat.com>
11715
11716         * c-decl.c (union lang_tree_node): Use it in chain_next expression.
11717
11718         * builtin-types.def (BT_FN_PTR_CONST_PTR_SIZE_VAR): New.
11719         * builtins.def (BUILT_IN_ASSUME_ALIGNED): New builtin.
11720         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
11721         find_func_clobbers): Handle BUILT_IN_ASSUME_ALIGNED.
11722         * tree-ssa-ccp.c (bit_value_assume_aligned): New function.
11723         (evaluate_stmt, execute_fold_all_builtins): Handle
11724         BUILT_IN_ASSUME_ALIGNED.
11725         * tree-ssa-dce.c (propagate_necessity): Likewise.
11726         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
11727         call_may_clobber_ref_p_1): Likewise.
11728         * builtins.c (is_simple_builtin, expand_builtin): Likewise.
11729         (expand_builtin_assume_aligned): New function.
11730         * doc/extend.texi (__builtin_assume_aligned): Document.
11731
11732         PR debug/49544
11733         * cselib.c (promote_debug_loc): If cselib_preserve_constants
11734         and l has two DEBUG_INSN owned locs instead of just one, adjust
11735         the second location's setting_insn too.
11736
11737 2011-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11738
11739         PR libmudflap/38738
11740         * config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define.
11741
11742 2011-06-27  Nick Clifton  <nickc@redhat.com>
11743
11744         * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to convert
11745         bit position of highest bit set into a count of the high zero bits.
11746
11747 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
11748
11749         * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types.
11750
11751 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
11752
11753         PR lto/48492
11754         * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list
11755         to a NULL parent.
11756
11757 2011-06-27  Richard Guenther  <rguenther@suse.de>
11758
11759         PR tree-optimization/49394
11760         * passes.c (execute_one_pass): Restore current_pass after
11761         applying IPA transforms.
11762
11763 2011-06-27  Kai Tietz  <ktietz@redhat.com>
11764
11765         * tree-ssa-math-opts.c (do_shift_rotate): Zero bits
11766         out of type precision after operation.
11767         (find_bswap): Take for limit value the integer auto-promotion
11768         into account.
11769
11770 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
11771
11772         * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the
11773         forward scan as well.
11774
11775 2011-06-27  Tristan Gingold  <gingold@adacore.com>
11776
11777         PR target/44241
11778         * config/vms/vms-protos.h: New file.
11779         * config/vms/vms-crtlmap.map: New file.
11780         * config/vms/vms.c: New file.
11781         * config/vms/make-crtlmap.awk: New file.
11782         * config/vms/vms-crtl.h: File removed.
11783         * config/vms/vms-crtl-64.h: File removed.
11784         * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets.
11785         * config/alpha/vms64.h: Do not include vms-crtl-64.h
11786         * config/alpha/alpha.c (alpha_init_builtins): Remove code to
11787         clear some builtins on VMS.  Calls vms_patch_builtins.
11788         (avms_asm_output_external): Remove.
11789         * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove.
11790         (struct crtl_name_spec): Remove
11791         (DO_CTRL_NAMES): Remove.
11792         * config/ia64/vms.h (struct crtl_name_spec): Remove
11793         (DO_CTRL_NAMES): Remove.
11794         * config/ia64/ia64.c (alpha_init_builtins): Remove code to
11795         clear some builtins on VMS.  Calls vms_patch_builtins.
11796         (ia64_asm_output_external): Remove DO_CRTL_NAME.
11797         * config/ia64/vms64.h: Do not include vms-crtl-64.h
11798         * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, tm_p_file.
11799
11800 2011-06-27  Tristan Gingold  <gingold@adacore.com>
11801
11802         * config/alpha/alpha.c (alpha_end_function): Always generate .end
11803         directive on VMS.
11804
11805 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
11806
11807         * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if
11808         the function receives nonlocal gotos.
11809
11810 2011-06-27  Richard Guenther  <rguenther@suse.de>
11811
11812         PR tree-optimization/49536
11813         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
11814         For non-scalar inner types use a scalar type according to
11815         the scalar inner mode.
11816
11817 2011-06-27  Richard Guenther  <rguenther@suse.de>
11818
11819         PR tree-optimization/49365
11820         * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9.
11821
11822 2011-06-27  Richard Guenther  <rguenther@suse.de>
11823
11824         PR tree-optimization/49169
11825         * fold-const.c (get_pointer_modulus_and_residue): Don't rely on
11826         the alignment of function decls.
11827
11828 2011-06-26  Iain Sandoe  <iains@gcc.gnu.org>
11829
11830         PR target/47997
11831         * config/darwin.c (darwin_mergeable_string_section): Place string
11832         constants in '.cstring' rather than '.const' when CF/NSStrings are
11833         active.
11834
11835 2011-06-26  Eric Botcazou  <ebotcazou@adacore.com>
11836
11837         * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment.
11838         (emit_save_register_window): Likewise.
11839         (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables.
11840         (sparc_flat_expand_prologue): Add comment.  Always emit blockage.
11841         Swap back %o7/%i7 in register naming.
11842
11843 2011-06-25  Iain Sandoe  <iains@gcc.gnu.org>
11844
11845         PR driver/49371
11846         * config/darwin.c (darwin_override_options): Improve warning when
11847         mdynamic-no-pic is given together with fPIC/fpic, also warn when it
11848         is given with fpie/fPIE.
11849         * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC.
11850         * config/darwin9.h (PIE_SPEC): New.
11851
11852 2011-06-25  Basile Starynkevitch  <basile@starynkevitch.net>
11853
11854         * timevar.c (timevar_print): Increase width for display of timevar
11855         name.
11856
11857 2011-06-24  Jakub Jelinek  <jakub@redhat.com>
11858
11859         PR c++/46400
11860         * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
11861         instead of TYPE_CHAIN for chain_next for types.
11862
11863 2011-06-24  Richard Henderson  <rth@redhat.com>
11864
11865         * config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove.
11866         (create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove.
11867         * config/sparc/sparc.c (gen_create_flat_frame_1): Remove.
11868         (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove.
11869         (sparc_flat_expand_prologue): Emit individual instructions
11870         instead of one of the above.
11871
11872 2011-06-24  Easwaran Raman  <eraman@google.com>
11873
11874         PR rtl-optimization/49429
11875         PR target/49454
11876         * expr.c (emit_block_move_hints):  Mark MEM_EXPR(x) and
11877         MEM_EXPR(y) addressable if emit_block_move_via_libcall is
11878         used to copy y into x.
11879         * calls.c (initialize_argument_information): Mark
11880         an argument addressable if it is passed by invisible reference.
11881         (emit_library_call_value_1): Mark  MEM_EXPR (val) addressable
11882         if it is passed by reference.
11883
11884 2011-06-24  H.J. Lu  <hongjiu.lu@intel.com>
11885
11886         PR rtl-optimization/49504
11887         * rtlanal.c (nonzero_bits1): Properly handle addition or
11888         subtraction of a pointer in Pmode if pointers extend unsigned.
11889         (num_sign_bit_copies1): Likewise.
11890
11891 2011-06-24  Martin Jambor  <mjambor@suse.cz>
11892
11893         PR tree-optimizations/49516
11894         * tree-sra.c (sra_modify_assign): Choose the safe path for
11895         aggregate copies if we also did scalar replacements.
11896
11897 2011-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
11898
11899         PR target/49335
11900         * config/arm/predicates.md (add_operator): New.
11901         * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage in Thumb2.
11902
11903 2011-06-24  Andi Kleen  <ak@linux.intel.com>
11904
11905         * tree-sra.c (type_internals_preclude_sra_p): Add msg
11906         parameter. Split up ifs and report reason in *msg.
11907         (reject): Add.
11908         (find_var_candiate): Add msg variable.
11909         Split up ifs and report reason to reject.
11910         (find_param_candidates): Add msg variable.
11911         Pass msg to type_internals_preclude_sra_p.
11912
11913 2011-06-23  Jeff Law  <law@redhat.com>
11914
11915         PR middle-end/48770
11916         * reload.h (reload): Change to return a bool.
11917         * ira.c (ira): If requested by reload, run a fast DCE pass after
11918         reload has completed.  Fix comment typo.
11919         * reload1.c (need_dce): New file scoped static.
11920         (reload): Set reload_completed here.  Return whether or not a DCE
11921         pass after reload is needed.
11922         (delete_dead_insn): Set need_dce as needed.
11923
11924         PR middle-end/49465
11925         * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition
11926         to detect threading through joiner block.  If there was already
11927         an edge to the new target, then do not change the PHI nodes.
11928
11929 2011-06-23  Jakub Jelinek  <jakub@redhat.com>
11930
11931         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
11932         get_pointer_alignment to see if base isn't sufficiently aligned.
11933
11934 2011-06-23  Jan Hubicka  <jh@suse.cz>
11935
11936         PR tree-optimize/49373
11937         * tree-pass.h (all_late_ipa_passes): Declare.
11938         * cgraphunit.c (init_lowered_empty_function): Fix properties.
11939         (cgraph_optimize): Execute late passes; remove unreachable funcions
11940         after materialization.
11941         * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or
11942         LTOing.
11943         * passes.c (all_late_ipa_passes): Declare.
11944         (dump_passes, register_pass): Handle late ipa passes.
11945         (init_optimization_passes): Move ipa_pta to late passes; schedule
11946         fixup_cfg at beggining of all_passes.
11947         (apply_ipa_transforms): New function.
11948         (execute_one_pass): When doing simple ipa pass, apply all transforms.
11949
11950 2011-06-23  Joseph Myers  <joseph@codesourcery.com>
11951
11952         * params.c: Include common/common-target.h.  Don't include tm.h.
11953         (lang_independent_params): Move from toplev.c.
11954         (global_init_params): New.
11955         * params.h (global_init_params): Declare.
11956         * target.def (default_params): Move to common-target.def.
11957         * toplev.c (lang_independent_options): Remove.
11958         (lang_independent_params): Move to params.c.
11959         (general_init): Use global_init_params.
11960         * common/common-target.def (option_default_params): Move from
11961         target.def.
11962         * common/config/ia64/ia64-common.c: Include params.h.
11963         (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
11964         from ia64.c.
11965         * common/config/rs6000/rs6000-common.c: Include params.h.
11966         (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
11967         from rs6000.c.
11968         * common/config/sh/sh-common.c: Include params.h.
11969         (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
11970         from sh.c.
11971         * common/config/spu/spu-common.c: Include params.h.
11972         (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
11973         from spu.c.
11974         * config/ia64/ia64.c (ia64_option_default_params,
11975         TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c.
11976         * config/rs6000/rs6000.c (rs6000_option_default_params,
11977         TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c.
11978         * config/sh/sh.c (sh_option_default_params,
11979         TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c.
11980         * config/spu/spu.c (spu_option_default_params,
11981         TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c.
11982         * Makefile.in (OBJS): Remove params.o.
11983         (OBJS-libcommon-target): Add params.o.
11984         (params.o, $(common_out_object_file)): Update dependencies.
11985         * doc/tm.texi: Regenerate.
11986
11987 2011-06-23  Alan Modra  <amodra@gmail.com>
11988
11989         PR bootstrap/49383
11990         * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
11991         invocation for 2011-06-09 changes.
11992
11993 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
11994
11995         PR libgomp/49490
11996         * omp-low.c (expand_omp_for_static_nochunk): Only
11997         use n ceil/ nthreads size for the first n % nthreads threads in the
11998         team instead of all threads except for the last few ones which
11999         get less work or none at all.
12000
12001         PR debug/49496
12002         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
12003         uses.
12004
12005 2011-06-22  Richard Guenther  <rguenther@suse.de>
12006
12007         PR tree-optimization/49493
12008         * tree-ssa-structalias.c (get_constraint_for_ssa_var):
12009         Refer to the alias target of variables.
12010         (associate_varinfo_to_alias_1): Remove.
12011         (ipa_pta_execute): Do not associate aliases with anything.
12012         * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors.
12013         (cgraph_function_node): Likewise.
12014         (cgraph_function_or_thunk_node): Likewise.
12015         (varpool_variable_node): Likewise.
12016
12017 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
12018
12019         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect typo.
12020         * config.gcc (arm*-*-linux*): Default to gnu tls.
12021         (arm*-*-*): Add --with-tls option.
12022         (all_defaults): Add 'tls'.
12023
12024 2011-06-22  Richard Henderson  <rth@redhat.com>
12025
12026         * reg-notes.def (REG_CFA_WINDOW_SAVE): New.
12027         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
12028         (dwarf2out_frame_debug_cfa_window_save): Rename from
12029         dwarf2out_window_save; make static.
12030         * tree.h (dwarf2out_window_save): Don't declare.
12031
12032         * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove.
12033         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
12034         (emit_save_register_window): Rename from gen_save_register_window;
12035         emit the insn and add REG_CFA_* notes.
12036         (sparc_expand_prologue): Update to match.
12037         * config/sparc/sparc.md (save_register_window_1): Simplify from
12038         save_register_window<P:mode>.
12039
12040 2011-06-22  H.J. Lu  <hongjiu.lu@intel.com>
12041
12042         PR target/49497
12043         * config/i386/i386.md (*lea_general_2): Always allow SImode.
12044         (*lea_general_2_zext): Likewise.
12045         (imul to lea peepholes): Use const359_operand and check
12046         TARGET_PARTIAL_REG_STALL.
12047
12048         * config/i386/predicates.md (const359_operand): New.
12049
12050 2011-06-22  Michael Matz  <matz@suse.de>
12051
12052         * cgraphunit.c (assemble_thunk): Use correct return type.
12053
12054 2011-06-22  Dmitry Plotnikov  <dplotnikov@ispras.ru>
12055             Dmitry Melnik  <dm@ispras.ru>
12056
12057         * config/arm/arm.c (neon_immediate_valid_for_shift): New function.
12058         (neon_output_shift_immediate): Ditto.
12059         * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New
12060         prototype.
12061         (neon_output_shift_immediate): Ditto.
12062         * config/arm/neon.md (vashl<mode>3): Modified constraint.
12063         (vashr<mode>3_imm): New insn pattern.
12064         (vlshr<mode>3_imm): Ditto.
12065         (vashr<mode>3): Modified constraint.
12066         (vlshr<mode>3): Ditto.
12067         * config/arm/predicates.md (imm_for_neon_lshift_operand): New
12068         predicate.
12069         (imm_for_neon_rshift_operand): Ditto.
12070         (imm_lshift_or_reg_neon): Ditto.
12071         (imm_rshift_or_reg_neon): Ditto.
12072
12073         * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.
12074
12075 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
12076
12077         * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for
12078         builtin calls even if likelyvalue is not CONSTANT.
12079         Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC.
12080         Return get_value_for_expr of first operand
12081         for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}.
12082         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
12083         BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like
12084         their non-checking counterparts.
12085         (call_may_clobber_ref_p_1): Likewise.
12086         (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK
12087         like their non-checking counterparts.
12088         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
12089         Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK
12090         like their non-checking counterparts.
12091         (find_func_clobbers): Likewise.
12092         * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK
12093         like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC.
12094
12095         * dwarf2out.c (size_of_loc_descr, output_loc_operands,
12096         mark_base_types, hash_loc_operands, compare_loc_operands): Allow
12097         DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead
12098         of base type reference as argument.
12099         (resolve_addr_in_expr): Likewise.  Fix keep computation.
12100         (convert_descriptor_to_signed): Renamed to...
12101         (convert_descriptor_to_mode): ... this.  For wider types convert to
12102         unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to untyped.
12103         (typed_binop): New function.
12104         (scompare_loc_descriptor, ucompare_loc_descriptor,
12105         minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes
12106         default to unsigned type instead of signed.
12107
12108         PR debug/47858
12109         * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
12110         (gimple_build_debug_source_bind_stat): New prototype.
12111         (gimple_build_debug_source_bind): Define.
12112         (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
12113         gimple_debug_source_bind_get_value,
12114         gimple_debug_source_bind_get_value_ptr,
12115         gimple_debug_source_bind_set_var,
12116         gimple_debug_source_bind_set_value): New inlines.
12117         * gimple.c (gimple_build_debug_source_bind_stat): New function.
12118         * gimple-pretty-print.c (dump_gimple_debug): Handle
12119         GIMPLE_DEBUG_SOURCE_BIND.
12120         * sese.c (rename_uses): Handle gimple_debug_source_bind_p.
12121         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
12122         * tree-parloops.c (eliminate_local_variables,
12123         separate_decls_in_region): Likewise.
12124         (separate_decls_in_region_debug): Renamed from
12125         separate_decls_in_region_debug_bind.  Handle
12126         gimple_debug_source_bind_p.
12127         * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
12128         prototypes.
12129         (DECL_HAS_DEBUG_ARGS_P): Define.
12130         (struct tree_function_decl): Add has_debug_args_flag field.
12131         * tree.c (debug_args_for_decl): New variable.
12132         (decl_debug_args_lookup, decl_debug_args_insert): New functions.
12133         * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
12134         (rewrite_debug_stmt_uses): New function.
12135         (rewrite_stmt): Use it to rewrite debug stmt uses.
12136         * rtl.def (DEBUG_PARAMETER_REF): New.
12137         * rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
12138         * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
12139         DEBUG_PARAMETER_REF.
12140         * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
12141         * print-rtl.c (print_rtx): Likewise.
12142         * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
12143         SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
12144         debug stmts in the first bb.
12145         * tree-inline.c (remap_ssa_name): If remapping default def
12146         of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
12147         a source bind debug stmt.
12148         (remap_gimple_stmt): Handle gimple_debug_source_bind_p.
12149         (maybe_move_debug_stmts_to_successors): Likewise.
12150         (copy_debug_stmt): Likewise.  Avoid shadowing a variable.
12151         (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
12152         debug args vector from old_decl to new_decl.
12153         * ipa-prop.c (ipa_modify_call_arguments): For optimized away
12154         or modified parameters, add debug bind stmts before call
12155         setting DEBUG_EXPR_DECL which is remembered in debug args vector.
12156         * cfgexpand.c (expand_call_stmt): Call expand_debug_expr
12157         on DECL_DEBUG_EXPRs from debug args vector.
12158         (expand_debug_source_expr): New function.
12159         (expand_debug_locations): Use it for source bind insns.
12160         (expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
12161         * var-tracking.c (prepare_call_arguments): Add debug args
12162         to call_arguments if any.
12163         * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
12164         output_loc_operands, output_loc_operands_raw, resolve_addr_in_expr,
12165         compare_loc_operands): Handle DW_OP_GNU_parameter_ref.
12166         (get_ref_die_offset, parameter_ref_descriptor): New functions.
12167         (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
12168         (gen_subprogram_die): Handle parameters identified by
12169         DEBUG_PARAMETER_REF.
12170
12171 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
12172
12173         * doc/invoke.texi (ARM Options): Document -mtls-dialect option.
12174         * doc/install.texi (Configuration): Document --with-tls.
12175         * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ.
12176         (arm_call_tls_get_addr): Clean up. Assert not tls descriptor.
12177         (arm_tls_descseq_addr): New.
12178         (legitimize_tls_address): Add tlsdesc support.
12179         (arm_cannot_copy_insn_p): Check for tlscall.
12180         (arm_emit_tls_decoration): Likewise.
12181         * config/arm/arm.h (TARGET_GNU2_TLS): New.
12182         (OPTION_DEFAULT_SPECS): Add with-tls support.
12183         * config/arm/arm.md (R1_REGNUM): Define.
12184         (tlscall): New.
12185         * config/arm/arm.opt (tls_type): New enumeration type and values.
12186         (mtls-dialect): New switch.
12187         * config/arm/arm-opts.h (enum tls_type): New.
12188
12189 2011-06-21  Nicola Pero  <nicola.pero@meta-innovation.com>
12190
12191         * attribs.c (register_attribute): Added assert to check that all
12192         attribute specs are registered with a name that is not empty and
12193         does not start with '_'.
12194         (decl_attributes): Avoid the lookup of the "naked" attribute spec
12195         if the function has no attributes.
12196         * tree.c (is_attribute_with_length_p): Removed.
12197         (is_attribute_p): Removed.
12198         (private_is_attribute_p): New.
12199         (private_lookup_attribute): New.
12200         (lookup_attribute): Removed.
12201         (lookup_ident_attribute): New.
12202         (remove_attribute): Require the first argument to be in the form
12203         'text', not '__text__'.  Updated asserts.
12204         (merge_attributes): Use lookup_ident_attributes instead of
12205         lookup_attribute.
12206         (merge_dllimport_decl_attributes): Use remove_attribute.
12207         (attribute_list_contained): Likewise.
12208         (attribute_list_equal): Immediately return 1 if the arguments are
12209         identical pointers.
12210         * tree.h (is_attribute_p): Made inline.  Return a 'bool', not an
12211         'int'.  Require the first argument to be in the form 'text', not
12212         '__text__'.  Require the second argument to be an identifier.
12213         (lookup_attribute): Made inline.  Require the first argument to be
12214         in the form 'text', not '__text__'.
12215         (private_is_attribute_p, private_lookup_attribute): New.
12216         Updated comments.
12217
12218 2011-06-21  Andrew MacLeod  <amacleod@redhat.com>
12219
12220         * builtins.c: Add sync_ or SYNC__ to builtin names.
12221         * sync-builtins.def: Add sync_ or SYNC__ to builtin names.
12222         * omp-low.c: Add sync_ or SYNC__ to builtin names.
12223
12224 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
12225
12226         PR target/33049
12227         * config/avr/avr.md (extzv): New expander.
12228         (*extzv): New insn.
12229         (*extzv.qihi1, *extzv.qihi2): New insn-and-split.
12230         * config/avr/constraints.md (C04): New constraint.
12231         * doc/md.texi (Machine Constraints): Document it.
12232
12233 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
12234
12235         PR middle-end/49489
12236         * builtins.c (expand_builtin_unop): Call expand_unop with 0 as
12237         unsignedp argument instead of 1 for clrsb_optab.
12238         (fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT
12239         and < 2 * HOST_BITS_PER_WIDE_INT.  Optimize BUILT_IN_CLRSB*.
12240         (fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*.
12241         * optabs.c (widen_leading): Call widen_operand and expand_unop
12242         with 0 as unsignedp argument instead of 1 for clrsb_optab.
12243         (expand_unop): Subtract difference of mode sizes also for clrsb_optab.
12244
12245 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
12246
12247         * config/avr/avr.md (*jcindirect_jump): Fix build warning.
12248
12249 2011-06-21  Bernd Schmidt  <bernds@codesourcery.com>
12250
12251         * gensupport.c (add_define_attr): New static function.
12252         (is_predicable): Allow multi-alternative lists for the "predicable"
12253         attribute.
12254         (modify_attr_enabled_ce, alter_attrs_for_insn): New static functions.
12255         (process_one_cond_exec): Call alter_attrs_for_insn.
12256         * doc/md.texi (Defining Attributes): Mention some standard names.
12257         (Conditional Execution): Update documentation for "predicable".
12258
12259         * doc/extend.texi (__builtin_clrsb, __builtin_clrsbl,
12260         __builtin_clrsbll): Document.
12261         * doc/rtl.texi (clrsb): New entry.
12262         * optabs.c (widen_leading): Renamed from widen_clz.  New argument
12263         UNOPTAB.  All callers changed.  Use UNOPTAB instead of clz_optab.
12264         (expand_unop): Handle clrsb_optab.
12265         (init_optabs): Initialize it.
12266         * optabs.h (enum optab_index): New entry OTI_clrsb.
12267         (clrsb_optab): Define.
12268         * genopinit.c (optabs): Add an entry for it.
12269         * builtins.c (expand_builtin): Handle clrsb builtin functions.
12270         * builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL,
12271         BUILT_IN_CLRSBLL): New.
12272         * rtl.def (CLRSB): New code.
12273         * dwarf2out.c (mem_loc_descriptor): Handle it.
12274         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
12275         Use op_mode rather than mode when optimizing ffs, clz, ctz, parity
12276         and popcount.
12277         * libgcc2.c (__clrsbSI2, __clrsbDI2): New functions.
12278         * libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare.
12279         (__ctzDI2): Move declaration.
12280         * config/bfin/bfin.md (clrsbsi2): New expander.
12281         (signbitssi2): Use the CLRSB rtx.
12282         (clrsbhi2): Renamed from signbitshi2.  Use the CLRSB rtx.
12283         * config/bfin/bfin.c (bdesc_1arg): Changed accordingly.
12284
12285 2011-06-21  Richard Guenther  <rguenther@suse.de>
12286
12287         * ipa-inline-transform.c (inline_transform): Fix previous change.
12288
12289 2011-06-21  Ira Rosen  <ira.rosen@linaro.org>
12290
12291         PR tree-optimization/49478
12292         * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
12293         with constant operand.
12294
12295 2011-06-21  Richard Guenther  <rguenther@suse.de>
12296
12297         * ipa-inline-transform.c (inline_transform): Fix typo.
12298
12299 2011-06-21  Richard Guenther  <rguenther@suse.de>
12300
12301         PR tree-optimization/49483
12302         * tree-vect-stmts.c (vectorizable_assignment): Also handle
12303         VIEW_CONVERT_EXPR conversions.
12304
12305 2011-06-21  Joseph Myers  <joseph@codesourcery.com>
12306
12307         * config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
12308         * config/avr/avr-tables.opt: New file (generated).
12309         * config.gcc (avr-*-*): Use avr/avr-tables.opt.
12310         * config/avr/avr-devices.c (avr_mcu_types): Move contents to
12311         avr-mcus.def.
12312         * config/avr/avr.c (avr_help, TARGET_HELP): Remove.
12313         (avr_option_override): Don't process -mmcu= argument here.  Set
12314         avr_current_device using avr_mcu_index.
12315         (avr_file_start): Use avr_current_device->name instead of avr_mcu_name.
12316         * config/avr/avr.opt (mmcu=): Use Enum.
12317         * config/avr/t-avr (avr-devices.o): Update dependencies.
12318         ($(srcdir)/config/avr/avr-tables.opt): New.
12319         * target.def (help): Remove.
12320         * doc/tm.texi.in (TARGET_HELP): Remove.
12321         * doc/tm.texi: Regenerate.
12322         * opts.c: Don't include target.h.
12323         (common_handle_option): Don't call targetm.help.
12324         * system.h (TARGET_HELP): Poison.
12325         * Makefile.in (opts.o): Update dependencies.
12326
12327 2011-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12328
12329         * config/usegld.h: New file.
12330         * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove.
12331         (CPP_SUBTARGET_SPEC): Remove -compat-bsd support.
12332         (LIB_SPEC): Likewise.  Search /lib.
12333         (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support.
12334         (RDYNAMIC_SPEC): Handle GNU ld.
12335         [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC):
12336         Define.
12337         (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld.
12338         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define.
12339         [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine.
12340         (STACK_CHECK_STATIC_BUILTIN): Define.
12341         * config/sol2.opt (compat-bsd): Remove.
12342         * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef.
12343         * config/sol2-bi.h: New file.
12344         * config/sol2-gld.h: Remove.
12345         * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS.
12346         (NO_DBX_BNSYM_ENSYM): Remove.
12347         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
12348         (STACK_CHECK_STATIC_BUILTIN): Remove.
12349         Test USE_GLD instead of TARGET_GNU_LD.
12350         * config/i386/sol2-10.h: Rename to ...
12351         * config/i386/sol2-bi.h .. this.
12352         (SUBTARGET_EXTRA_SPECS): Redefine.
12353         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove.
12354         (MULTILIB_DEFAULTS): Remove.
12355         (DEFAULT_ARCH32_P): Define.
12356         (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove.
12357         (ARCH64_SUBDIR): Define.
12358         Test USE_GLD instead of TARGET_GNU_LD.
12359         (I386_EMULATION): Rename to ...
12360         (ARCH32_EMULATION): ... this.
12361         (X86_64_EMULATION): Rename to ...
12362         (ARCH64_EMULATION): ... this.
12363         (TARGET_LD_EMULATION): Remove.
12364         (LINK_ARCH_SPEC): Remove.
12365         * config/i386/sol2-gas.h: Remove.
12366         * config/i386/t-sol2-10: Rename to ...
12367         * config/i386/t-sol2-64: ... this.
12368         * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine.
12369         (AS_SPARC64_FLAG): Define.
12370         (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine.
12371         (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine
12372         depending on TARGET_CPU_DEFAULT.
12373         (CPP_CPU_SPEC): Redefine.
12374         (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P.
12375         (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine.
12376         (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine.
12377         (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC,
12378         ASM_ARCH_DEFAULT_SPEC): Redefine.
12379         (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
12380         LINK_ARCH_DEFAULT_SPEC.
12381         [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define.
12382         [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine.
12383         (ARCH64_SUBDIR): Define.
12384         (LINK_ARCH64_SPEC): Redefine.
12385         (CC1_SPEC): Redefine.
12386         (OPTION_DEFAULT_SPECS): Redefine.
12387         (MULTILIB_DEFAULTS): Define.
12388         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine.
12389         [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine.
12390         [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef.
12391         (NO_DBX_BNSYM_ENSYM): Remove.
12392         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
12393         (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS.
12394         (TARGET_ASM_NAMED_SECTION): Likewise.
12395         (STACK_CHECK_STATIC_BUILTIN): Remove.
12396         * config/sparc/sol2-bi.h: Remove.
12397         * config/sparc/sol2-gas-bi.h: Remove.
12398         * config/sparc/sol2-gas.h: Remove.
12399         * config/sparc/sol2-gld-bi.h: Remove.
12400         * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move
12401         common parts ...
12402         (*-*-solaris2*): ... here.
12403
12404 2011-06-21  Christian Bruel  <christian.bruel@st.com>
12405
12406         PR other/43564
12407         * ipa-inline.c (can_inline_edge_p): Check
12408         !DECL_DISREGARD_INLINE_LIMITS.
12409
12410 2011-06-21  Christian Bruel  <christian.bruel@st.com>
12411
12412         PR middle-end/49139
12413         * cgraphunit.c (process_function_and_variable_attributes): warn when
12414         always_inline functions that are not inline.
12415         * ipa-inline-transform.c (inline_transform): Always call
12416         optimize_inline.
12417         * tree-inline.c (tree_inlinable_function_p): Use error instead
12418         of sorry.
12419         (expand_call_inline): Likewise.
12420
12421 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
12422
12423         * Makefile.in (dg_target_exps): Set.
12424         (check_gcc_parallelize): Parallelize gcc testing into 10 jobs
12425         instead of 7, try to divide it more evenly.
12426
12427 2011-06-20  Changpeng Fang  <changpeng.fang@amd.com>
12428
12429         PR target/49089
12430         * config/i386/i386.c (avx256_split_unaligned_load): New definition.
12431         (avx256_split_unaligned_store): New definition.
12432         (ix86_option_override_internal): Enable avx256 unaligned load/store
12433         splitting only when avx256_split_unaligned_load/store is set.
12434
12435 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
12436
12437         * regrename.c (scan_rtx_reg): Handle the case where we write to an
12438         open chain in a smaller mode without failing the entire block.
12439
12440 2011-06-21  Alan Modra  <amodra@gmail.com>
12441
12442         * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
12443         CONST high part large-toc address.
12444         (rs6000_tls_referenced_p): Make static.
12445         * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.
12446
12447 2011-06-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
12448
12449         PR target/49385
12450         * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
12451         one of the operands is a register.
12452
12453 2011-06-20  Kai Tietz  <ktietz@redhat.com>
12454
12455         * fold-const.c (fold_binary_loc): Add missing folding for truth-not
12456         operations in combination with binary and.
12457
12458 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
12459
12460         * regrename.c (do_replace): Don't update notes.
12461
12462 2011-06-20  Alan Modra  <amodra@gmail.com>
12463
12464         * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
12465         of toc-relative address in CONST.
12466         (rs6000_delegitimize_address): Recognize changed address.
12467         (rs6000_legitimize_reload_address): Likewise.
12468         (rs6000_emit_move): Don't force these constants to memory.
12469         * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
12470         toc-relative address in CONST.
12471         (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
12472         (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
12473
12474 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
12475
12476         * longlong.h (count_leading_zeros): Use long long builtin for x86-64.
12477         (count_trailing_zeros): Likewise.
12478
12479 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
12480
12481         PR other/49325
12482         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
12483         .init_array can be used with .ctors on targets.
12484         * configure: Regenerated.
12485
12486 2011-06-18  Eric Botcazou  <ebotcazou@adacore.com>
12487
12488         * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
12489         if the element type is volatile.
12490
12491 2011-06-18  Jan Hubicka  <jh@suse.cz>
12492
12493         * lto-symtab.c (lto_varpool_replace_node): Remove code handling
12494         extra name aliases.
12495         (lto_symtab_resolve_can_prevail_p): Likewise.
12496         (lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
12497         * cgraphbuild.c (record_reference): Remove extra body alias code.
12498         (mark_load): Likewise.
12499         (mark_store): Likewise.
12500         * cgraph.h (varpool_node): Remove extra_name filed;
12501         add alias_of and extraname_alias.
12502         (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
12503         (varpool_alias_aliased_node): New inline function.
12504         (varpool_variable_node): New function.
12505         * cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
12506         * ipa-ref.c (ipa_record_reference): Allow aliases on variables.
12507         * lto-cgraph.c (lto_output_varpool_node): Update streaming.
12508         (input_varpool_node): Likewise.
12509         * lto-streamer-out.c (produce_symtab): Remove extra name aliases.
12510         (varpool_externally_visible_p): Remove extra body alias code.
12511         (function_and_variable_visibility): Likewise.
12512         * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
12513         (ipa_pta_execute): Use it.
12514         * varpool.c (varpool_remove_node): Remove extra name alias code.
12515         (varpool_mark_needed_node): Likewise.
12516         (varpool_analyze_pending_decls): Analyze aliases.
12517         (assemble_aliases): New functoin.
12518         (varpool_assemble_decl): Use it.
12519         (varpool_create_variable_alias): New function.
12520         (varpool_extra_name_alias): Rewrite.
12521         (varpool_for_node_and_aliases): New function.
12522
12523 2011-06-18  Jakub Jelinek  <jakub@redhat.com>
12524
12525         PR target/49411
12526         * config/i386/i386.c (ix86_expand_multi_arg_builtins): If
12527         last_arg_constant and last argument doesn't match its predicate,
12528         for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
12529         if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
12530         (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
12531         spelling of error message.
12532         * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
12533         vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
12534         const_0_to_255_operand instead of const_int_operand.
12535
12536         Revert:
12537         2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
12538
12539         * config/i386/sse.md (blendbits): Remove mode attribute.
12540         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
12541         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
12542         Check integer value of operand 3 in insn constraint.
12543
12544 2011-06-17  Hans-Peter Nilsson  <hp@axis.com>
12545
12546         PR rtl-optimization/48542
12547         * reload.c (find_equiv_reg): Stop looking when finding a
12548         setjmp-type call.
12549         * reload1.c (reload_as_needed): Invalidate all reload
12550         registers when crossing a setjmp-type call.
12551
12552 2011-06-16  Jeff Law  <law@redhat.com>
12553
12554         * tree-ssa-threadupdate.c (struct redirection_data): New field
12555         intermediate_edge.
12556         (THREAD_TARGET2): Define.
12557         (redirection_data_eq): Also check that the intermediate edge is equal.
12558         (lookup_redirection_data): Drop useless argument.  Extract the
12559         outgoing_edge and intermediate edge from E.  Callers updated.
12560         (copy_phi_args, update_destination_phis): New functions.
12561         (fix_duplicate_block_edges): Likewise.
12562         (create_edge_and_update_destination_phis): Duplicate all the edges
12563         hung off e->aux.  Use copy_phi_args.
12564         (create_duplicates): Use fix_duplicate_block_edges.
12565         (fixup_template_block): Likewise.
12566         (redirect_edges): If necessary, redirect the joiner block's incoming
12567         edge to the duplicate of the joiner block.
12568         (thread_block): Don't muck up loops when threading through a joiner
12569         block.
12570         (thread_through_loop_header): Handle threading through a joiner block.
12571         (mark_threaded_blocks, register_jump_thread): Likewise.
12572         * tree-flow.h (register_jump_thread): Add new argument.  Callers
12573         updated.
12574         * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
12575         (thread_across_edge): Handle threading through a joiner block.
12576
12577 2011-06-16  Martin Jambor  <mjambor@suse.cz>
12578
12579         PR tree-optimization/49343
12580         * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
12581         calculate offset, provide 2nd operand for the new COMPONENT_REF.
12582
12583 2011-06-16  Iain Sandoe  <iains@gcc.gnu.org>
12584
12585         * config/darwin-protos.h (machopic_select_rtx_section): Move to
12586         inside RTX_CODE ifdef.
12587
12588 2011-06-16  Tom de Vries  <tom@codesourcery.com>
12589
12590         PR target/45098
12591         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
12592         Disallow NULL pointer for pointer arithmetic.
12593
12594 2011-06-16  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
12595
12596         PR target/49398
12597         Revert.
12598         2011-06-10  Wei Guozhi  <carrot@google.com>
12599
12600         PR target/45335
12601         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
12602         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
12603         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
12604         related peephole2.
12605         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
12606         related peephole2.
12607         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
12608         (arm_legitimate_ldrd_p): New prototype.
12609         (arm_output_ldrd): New prototype.
12610         * config/arm/arm.c (arm_check_ldrd_operands): New function.
12611         (arm_legitimate_ldrd_p): New function.
12612         (arm_output_ldrd): New function.
12613
12614 2011-06-16  Joern Rennecke  <joern.rennecke@embecosm.com>
12615
12616         PR middle-end/46500
12617         * doc/tm.texi.in: Update Copyright date.
12618         * doc/tm.texi: Regenerate.
12619         * targhooks.c (default_setup_incoming_varargs): Replace
12620         CUMULATIVE_ARGS* argument type with cumulative_args_t.
12621         (default_pretend_outgoing_varargs_named): Likewise.
12622         (hook_pass_by_reference_must_pass_in_stack): Likewise.
12623         (hook_callee_copies_named): Likewise.
12624         (default_function_arg_advance): Likewise.
12625         (default_function_arg): Likewise.
12626         (default_function_incoming_arg): Likewise.
12627         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
12628         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
12629         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
12630         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
12631         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
12632         * targhooks.h (default_setup_incoming_varargs): Likewise.
12633         (default_pretend_outgoing_varargs_named): Likewise.
12634         (hook_pass_by_reference_must_pass_in_stack): Likewise.
12635         (hook_callee_copies_named): Likewise.
12636         (default_function_arg_advance): Likewise.
12637         (default_function_arg): Likewise.
12638         (default_function_incoming_arg): Likewise.
12639         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
12640         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
12641         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
12642         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
12643         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
12644         * target.def (pass_by_reference): Likewise.
12645         (setup_incoming_varargs, strict_argument_naming): Likewise.
12646         (pretend_outgoing_varargs_named, callee_copies): Likewise.
12647         (arg_partial_bytes, function_arg_advance, function_arg): Likewise.
12648         (function_incoming_arg): Likewise.
12649         * target.h: Don't include "tm.h" .
12650         (cumulative_args_t): New typedef.
12651         [GCC_TM_H] (get_cumulative_args): New static inline function.
12652         [GCC_TM_H] (pack_cumulative_args): Likewise.
12653         * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
12654         argument type with cumulative_args_t.
12655         (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
12656         (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
12657         * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
12658         (frv_arg_partial_bytes, frv_function_arg): Likewise.
12659         (frv_function_incoming_arg, frv_function_arg_advance): Likewise.
12660         (frv_function_arg_1): Likewise.
12661         * config/s390/s390.c (s390_pass_by_reference): Likewise.
12662         (s390_function_arg_advance, s390_function_arg): Likewise.
12663         * config/m32c/m32c.c (m32c_function_arg): Likewise.
12664         (m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
12665         (m32c_strict_argument_naming): Likewise.
12666         * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
12667         (spu_function_arg_advance): Likewise.
12668         (spu_setup_incoming_varargs): Likewise.  Make static.
12669         * config/spu/spu-protos.h (spu_setup_incoming_varargs):
12670         Remove prototype.
12671         * config/sparc/sparc.c (sparc_strict_argument_naming): Replace
12672         CUMULATIVE_ARGS* argument type with cumulative_args_t.
12673         (sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
12674         (sparc_function_arg, sparc_function_incoming_arg): Likewise.
12675         (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
12676         * config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
12677         (mep_pass_by_reference, mep_function_arg): Likewise.
12678         (mep_function_arg_advance): Likewise.
12679         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
12680         (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
12681         (m32r_function_arg, m32r_function_arg_advance): Likewise.
12682         * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
12683         * config/i386/i386.c (ix86_function_arg_advance): Likewise.
12684         (ix86_function_arg, ix86_pass_by_reference): Likewise.
12685         (ix86_setup_incoming_varargs): Likewise.
12686         * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
12687         (sh_strict_argument_naming): Likewise.
12688         (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
12689         (sh_callee_copies, sh_arg_partial_bytes): Likewise.
12690         (sh_function_arg_advance, sh_function_arg): Likewise.
12691         * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
12692         (pdp11_function_arg_advance): Likewise.
12693         * config/microblaze/microblaze.c (microblaze_function_arg_advance):
12694         Likewise.
12695         (microblaze_function_arg, function_arg_partial_bytes): Likewise.
12696         * config/avr/avr.c (avr_function_arg): Likewise.
12697         (avr_function_arg_advance): Likewise.
12698         * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
12699         (xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
12700         (xtensa_function_arg_1): Likewise.
12701         * config/stormy16/stormy16.c (xstormy16_function_arg_advance):
12702         Likewise.
12703         (xstormy16_function_arg): Likewise.
12704         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
12705         (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
12706         (fr30_function_arg_advance): Likewise.
12707         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
12708         (lm32_function_arg, lm32_function_arg_advance): Likewise.
12709         * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
12710         (moxie_function_arg, moxie_function_arg_advance): Likewise.
12711         (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
12712         * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
12713         (cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
12714         (cris_function_arg, cris_function_incoming_arg): Likewise.
12715         (cris_function_arg_advance, cris_function_arg_1): Likewise.
12716         * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
12717         (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
12718         (iq2000_function_arg, iq2000_function_arg_advance): Likewise.
12719         * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
12720         (mn10300_function_arg, mn10300_function_arg_advance): Likewise.
12721         (mn10300_arg_partial_bytes): Likewise.
12722         * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
12723         (ia64_arg_partial_bytes, ia64_function_arg): Likewise.
12724         (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
12725         (ia64_function_arg_1): Likewise.
12726         * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
12727         (m68k_function_arg): Likewise.
12728         * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
12729         (rs6000_function_arg, setup_incoming_varargs): Likewise.
12730         (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
12731         * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
12732         (picochip_function_arg, picochip_incoming_function_arg): Likewise.
12733         (picochip_arg_advance): Likewise.
12734         * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
12735         (mcore_arg_partial_bytes, mcore_function_arg): Likewise.
12736         (mcore_function_arg_advance): Likewise.
12737         * config/score/score.c (score_pass_by_reference): Likewise.
12738         (score_function_arg_advance): Likewise.
12739         (score_arg_partial_bytes): Likewise.  Make static.
12740         * config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
12741         * config/arm/arm.c (arm_arg_partial_bytes): Replace
12742         CUMULATIVE_ARGS* argument type with cumulative_args_t.
12743         (arm_function_arg, arm_function_arg_advance): Likewise.
12744         (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
12745         * config/pa/pa.c (pa_pass_by_reference): Likewise.
12746         (pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
12747         (pa_function_arg): Likewise.
12748         * config/mips/mips.c (mips_strict_argument_naming): Likewise.
12749         (mips_function_arg, mips_function_arg_advance): Likewise.
12750         (mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
12751         (mips_callee_copies, mips_setup_incoming_varargs): Likewise.
12752         * config/vax/vax.c (vax_function_arg): Likewise.
12753         (vax_function_arg_advance): Likewise.
12754         * config/h8300/h8300.c (h8300_function_arg): Likewise.
12755         (h8300_function_arg_advance): Likewise.
12756         * config/v850/v850.c (v850_pass_by_reference): Likewise.
12757         (v850_strict_argument_naming, v850_function_arg): Likewise.
12758         (v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
12759         (v850_setup_incoming_varargs): Likewise.
12760         * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
12761         (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
12762         (mmix_function_arg, mmix_pass_by_reference): Likewise.
12763         (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
12764         with const void *.
12765         * config/bfin/bfin.c (setup_incoming_varargs): Replace
12766         CUMULATIVE_ARGS* argument type with cumulative_args_t.
12767         (bfin_function_arg_advance, bfin_function_arg): Likewise.
12768         (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
12769         * calls.c (emit_call_1): Change type of args_so_far to
12770         cumulative_args_t.  Changed all callers.
12771         (initialize_argument_information): Likewise.
12772         (expand_call, emit_library_call_value_1): Use pack_cumulative_args.
12773         * dse.c (get_call_args): Likewise.
12774         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
12775         * function.c (pass_by_reference, reference_callee_copied): Likewise.
12776         (struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
12777         New member args_so_far_v.  Changed all users.
12778         * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
12779         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
12780         * config/mips/mips.c (mips_output_args_xfer): Likewise.
12781         * config/s390/s390.c (s390_call_saved_register_used): Likewise.
12782         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
12783         * config/microblaze/microblaze.c (microblaze_expand_prologue):
12784         Likewise.
12785         * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
12786         m32r_pass_by_reference.
12787
12788 2011-06-16  Ira Rosen  <ira.rosen@linaro.org>
12789
12790         * tree-vectorizer.h (vect_recog_func_ptr): Change the first
12791         argument to be a VEC of statements.
12792         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove the
12793         assert that pattern statements have to have their vector type set.
12794         * tree-vect-patterns.c (vect_recog_widen_sum_pattern):
12795         Change the first argument to be a VEC of statements.  Update
12796         documentation.
12797         (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
12798         (vect_handle_widen_mult_by_const): New function.
12799         (vect_recog_widen_mult_pattern):  Change the first argument to be a
12800         VEC of statements.  Update documentation.  Check that the constant is
12801         INTEGER_CST.  Support multiplication by a constant that fits an
12802         intermediate type - call vect_handle_widen_mult_by_const.
12803         (vect_pattern_recog_1): Update vect_recog_func_ptr and its
12804         call.  Handle additional pattern statements if necessary.
12805
12806 2011-06-16  Nick Clifton  <nickc@redhat.com>
12807
12808         PR target/49427
12809         * config.gcc: Set cpu_type to v850 for any V850 architecture.
12810         (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
12811         md_file, extra_modes, out_file and extra_options are these are all
12812         deduced from cpu_type.
12813
12814 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
12815
12816         * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
12817         truncation mask to 63.
12818
12819 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
12820
12821         PR target/49313
12822         PR target/29524
12823         * longlong.h: Add AVR support:
12824         (count_leading_zeros): New macro.
12825         (count_trailing_zeros): New macro.
12826         (COUNT_LEADING_ZEROS_0): New macro.
12827         * config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2,
12828         _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2,
12829         _parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
12830         _bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3.
12831         (LIB2FUNCS_EXCLUDE): Add _clz.
12832         * config/avr/libgcc.S (XCALL): Move up in file.
12833         (XJMP): New C Macro.
12834         (DEFUN): New asm macro.
12835         (ENDF): New asm macro.
12836         (__ffssi2): New function.
12837         (__ffshi2): New function.
12838         (__loop_ffsqi2): New function.
12839         (__ctzsi2): New function.
12840         (__ctzhi2): New function.
12841         (__clzdi2): New function.
12842         (__clzsi2): New function.
12843         (__clzhi2): New function.
12844         (__paritydi2): New function.
12845         (__paritysi2): New function.
12846         (__parityhi2): New function.
12847         (__parityqi2): New function.
12848         (__popcounthi2): New function.
12849         (__popcountsi2): New function.
12850         (__popcountdi2): New function.
12851         (__popcountqi2): New function.
12852         (__bswapsi2): New function.
12853         (__bswapdi2): New function.
12854         (__ashldi3): New function.
12855         (__ashrdi3): New function.
12856         (__lshrdi3): New function.
12857         Fix suspicous lines.
12858
12859 2011-06-16  Richard Guenther  <rguenther@suse.de>
12860
12861         * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
12862         the same as x != 0.
12863         * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0
12864         to (bool) X & 1.
12865         * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
12866         equality compares against zero for the lower bit.
12867
12868 2011-06-16  Jakub Jelinek  <jakub@redhat.com>
12869
12870         PR tree-optimization/49419
12871         * tree-vrp.c (execute_vrp): Call init_range_assertions
12872         before estimate_numbers_of_iterations, call
12873         free_number_of_iterations_estimates before calling
12874         remove_range_assertions.
12875
12876 2011-06-16  Revital Eres  <revital.eres@linaro.org>
12877
12878         * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
12879         (struct partial_schedule): Add rows_length field.
12880         (verify_partial_schedule): Check rows_length.
12881         (ps_insert_empty_row): Handle rows_length.
12882         (create_partial_schedule): Likewise.
12883         (free_partial_schedule): Likewise.
12884         (reset_partial_schedule): Likewise.
12885         (create_ps_insn): Remove rest_count argument.
12886         (remove_node_from_ps): Update rows_length.
12887         (add_node_to_ps): Update rows_length and call create_ps_insn
12888         without passing row_rest_count.
12889         (rotate_partial_schedule): Update rows_length.
12890
12891 2011-06-16  Revital Eres  <revital.eres@linaro.org>
12892
12893         * ddg.c (add_intra_loop_mem_dep): New function.
12894         (build_intra_loop_deps): Call it.
12895
12896 2011-06-13  Jeff Law  <law@redhat.com>
12897
12898         * df-problems.c (df_lr_local_compute): Manually CSE
12899         PIC_OFFSET_TABLE_REGNUM.
12900         * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
12901         (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
12902
12903 2011-06-13  Jan Hubicka  <jh@suse.cz>
12904
12905         * cgraphunit.c (handle_alias_pairs): New function.
12906         (cgraph_finalize_compilation_unit): Use it.
12907         * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
12908         as externally visible.
12909
12910 2011-06-15  Richard Guenther  <rguenther@suse.de>
12911
12912         * expr.c (expand_expr_real_2): Reduce all integral types to
12913         bitfield precision.
12914         (expand_expr_real_1): Likewise.
12915
12916 2011-06-15  Martin Jambor  <mjambor@suse.cz>
12917
12918         PR tree-optimization/48613
12919         * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
12920         ipa_node_params_vector is NULL.
12921
12922 2011-06-15  Jakub Jelinek  <jakub@redhat.com>
12923
12924         PR debug/49382
12925         * dwarf2out.c (dw_loc_list_node): Add force field.
12926         (add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming
12927         location in the list, even if it is modified before first real insn.
12928         (output_loc_list): Emit empty ranges with force flag set.
12929         (dw_loc_list): If first range of a PARM_DECL is empty, set force flag.
12930
12931 2011-06-15  Alexander Monakov  <amonakov@ispras.ru>
12932
12933         PR target/49349
12934         * sel-sched.c (find_place_for_bookkeeping): Add new parameter
12935         (fence_to_rewind).  Use it to notice when bookkeeping will be placed
12936         above a fence.  Update comments.
12937         (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
12938         placed just above it.  Do not allow NULL place_to_insert.
12939
12940 2011-06-15  Ira Rosen  <ira.rosen@linaro.org>
12941
12942         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
12943         (slpeel_tree_peel_loop_to_edge): Don't call
12944         remove_dead_stmts_from_loop.
12945         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
12946         remove irrelevant pattern statements.  For irrelevant statements
12947         check if it is the last statement of a detected pattern, use
12948         corresponding pattern statement instead.
12949         (destroy_loop_vec_info): No need to remove pattern statements,
12950         only free stmt_vec_info.
12951         (vect_transform_loop): For irrelevant statements check if it is
12952         the last statement of a detected pattern, use corresponding
12953         pattern statement instead.
12954         * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
12955         pattern statements.  Set basic block for the new statement.
12956         (vect_pattern_recog): Update documentation.
12957         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
12958         operands of pattern statements.
12959         (vectorizable_call): Fix printing.  In case of a pattern statement
12960         use the lhs of the original statement when creating a dummy
12961         statement to replace the original call.
12962         (vect_analyze_stmt): For irrelevant statements check if it is
12963         the last statement of a detected pattern, use corresponding
12964         pattern statement instead.
12965         * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
12966         statements use gsi of the original statement.
12967
12968 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
12969
12970         * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
12971         common/common-target-def.h.
12972         * target.def (default_target_flags, handle_option,
12973         supports_split_stack, optimization_table, init_struct,
12974         except_unwind_info, unwind_tables_default, have_named_sections):
12975         Move to common/common-target.def.
12976         * target.h (enum opt_levels, struct default_options): Move to
12977         common/common-target.h.
12978         * targhooks.c (default_except_unwind_info,
12979         dwarf2_except_unwind_info, sjlj_except_unwind_info,
12980         default_target_handle_option, empty_optimization_table): Move to
12981         common/common-targhooks.c.
12982         * targhooks.h (default_except_unwind_info,
12983         dwarf2_except_unwind_info, sjlj_except_unwind_info,
12984         default_target_handle_option, empty_optimization_table): Move to
12985         common/common-targhooks.h.
12986         * common/common-target-def.h: Include common/common-targhooks.h.
12987         (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
12988         defined.
12989         * common/common-target.def (handle_option, option_init_struct,
12990         option_optimization_table, default_target_flags,
12991         except_unwind_info, supports_split_stack, unwind_tables_default,
12992         have_named_sections): Move from target.def.
12993         (HOOK_PREFIX): Undefine at end of file.
12994         * common/common-target.h: Include input.h.
12995         (enum opt_levels, struct default_options): Move from target.h.
12996         * common/common-targhooks.c, common/common-targhooks.h: New.
12997         * config.gcc (target_has_targetm_common): Default to yes.
12998         (moxie*): Set target_has_targetm_common=no.
12999         (hppa*-*-*): Don't set target_has_targetm_common=yes.
13000         * doc/tm.texi: Regenerate.
13001         * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
13002         (C_TARGET_DEF_H): Add common/common-targhooks.h.
13003         (GCC_OBJS): Remove vec.o.
13004         (OBJS): Remove hooks.o and vec.o.
13005         (OBJS-libcommon-target): Add vec.o, hooks.o and
13006         common/common-targhooks.o.
13007         (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
13008         tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
13009         expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
13010         cfglayout.o, $(out_object_file), $(common_out_object_file)):
13011         Update dependencies.
13012         (common/common-targhooks.o): New.
13013         * common/config/default-common.c: Include tm.h.  Add FIXME comment.
13014         * common/config/pa/pa-common.c: Include more headers.  Take
13015         copyright dates from pa.c.
13016         (pa_option_optimization_table, pa_handle_option,
13017         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
13018         TARGET_HANDLE_OPTION): Move from pa.c.
13019         * common/config/alpha/alpha-common.c,
13020         common/config/arm/arm-common.c, common/config/avr/avr-common.c,
13021         common/config/bfin/bfin-common.c,
13022         common/config/cris/cris-common.c,
13023         common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
13024         common/config/h8300/h8300-common.c,
13025         common/config/i386/i386-common.c,
13026         common/config/ia64/ia64-common.c,
13027         common/config/iq2000/iq2000-common.c,
13028         common/config/lm32/lm32-common.c,
13029         common/config/m32c/m32c-common.c,
13030         common/config/m32r/m32r-common.c,
13031         common/config/m68k/m68k-common.c,
13032         common/config/mcore/mcore-common.c,
13033         common/config/mep/mep-common.c,
13034         common/config/microblaze/microblaze-common.c,
13035         common/config/mips/mips-common.c,
13036         common/config/mmix/mmix-common.c,
13037         common/config/mn10300/mn10300-common.c,
13038         common/config/pdp11/pdp11-common.c,
13039         common/config/picochip/picochip-common.c,
13040         common/config/rs6000/rs6000-common.c,
13041         common/config/rx/rx-common.c, common/config/s390/s390-common.c,
13042         common/config/score/score-common.c, common/config/sh/sh-common.c,
13043         common/config/sparc/sparc-common.c,
13044         common/config/spu/spu-common.c, common/config/v850/v850-common.c,
13045         common/config/vax/vax-common.c,
13046         common/config/xstormy16/xstormy16-common.c,
13047         common/config/xtensa/xtensa-common.c: New.
13048         * config/alpha/alpha.c: Include common/common-target.h.
13049         (alpha_option_optimization_table, alpha_handle_option,
13050         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
13051         TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
13052         * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
13053         * config/arm/arm.c (arm_option_optimization_table,
13054         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
13055         TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
13056         arm-common.c.
13057         * config/avr/avr.c (avr_option_optimization_table,
13058         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
13059         to avr-common.c.
13060         * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
13061         (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
13062         TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
13063         * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
13064         * config/cris/cris.c (cris_option_optimization_table,
13065         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
13066         TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
13067         cris-common.c.
13068         * config/fr30/fr30.c (fr30_option_optimization_table,
13069         TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
13070         to fr30-common.c.
13071         * config/frv/frv.c (frv_option_optimization_table,
13072         MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
13073         TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
13074         * config/h8300/h8300.c (h8300_option_optimization_table,
13075         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
13076         TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
13077         * config/i386/i386-protos.h (ix86_handle_option): Declare.
13078         * config/i386/i386.c: Include common/common-target.h.
13079         (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
13080         OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
13081         OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
13082         OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
13083         OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
13084         OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
13085         OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
13086         OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
13087         OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
13088         OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
13089         OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
13090         OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
13091         OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
13092         OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
13093         OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
13094         OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
13095         OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
13096         OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
13097         OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
13098         OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
13099         OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
13100         OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
13101         OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
13102         OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
13103         OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
13104         OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
13105         OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
13106         OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
13107         OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
13108         ix86_option_optimization_table, ix86_option_init_struct,
13109         ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
13110         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
13111         TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
13112         i386-common.c.
13113         * config/i386/t-i386 (i386.o): Update dependencies.
13114         * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
13115         * config/ia64/ia64.c (ia64_option_optimization_table,
13116         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
13117         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
13118         ia64_handle_option): Move to ia64-common.c.
13119         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
13120         TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
13121         * config/lm32/lm32.c (lm32_option_optimization_table,
13122         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
13123         to lm32-common.c.
13124         * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
13125         m32c-common.c.
13126         * config/m32r/m32r.c (m32r_option_optimization_table,
13127         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
13128         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
13129         m32r_handle_option): Move to m32r-common.c.
13130         (m32r_memory_move_cost): Remove comment referring to
13131         TARGET_HANDLE_OPTION.
13132         * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
13133         Move to m68k-common.c.
13134         * config/mcore/mcore.c (mcore_option_optimization_table,
13135         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
13136         TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
13137         * config/mep/mep.c (mep_option_optimization_table,
13138         mep_handle_option, TARGET_HANDLE_OPTION,
13139         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
13140         Move to mep-common.c.
13141         * config/microblaze/microblaze.c
13142         (microblaze_option_optimization_table,
13143         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
13144         TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
13145         * config/mips/mips.c (mips_handle_option,
13146         mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
13147         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
13148         mips-common.c.
13149         * config/mmix/mmix.c (mmix_option_optimization_table,
13150         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
13151         Move to mmix-common.c.
13152         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
13153         mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
13154         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
13155         TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
13156         * config/pa/pa.c: Include common/common-target.h.
13157         (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
13158         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
13159         pa_handle_option): Move to pa-common.c.
13160         (pa_option_override): Use targetm_common.except_unwind_info.
13161         (pa_asm_output_mi_thunk, pa_function_section): Use
13162         targetm_common.have_named_sections.
13163         * config/pdp11/pdp11.c (pdp11_option_optimization_table,
13164         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
13165         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
13166         pdp11_handle_option, pdp11_option_init_struct): Move to
13167         pdp11-common.c.
13168         * config/picochip/picochip.c (picochip_option_optimization_table,
13169         TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
13170         TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
13171         * config/rs6000/rs6000.c: Include common/common-target.h.
13172         (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
13173         TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
13174         TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
13175         rs6000_handle_option): Move to rs6000-common.c.
13176         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
13177         * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
13178         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
13179         TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
13180         * config/s390/s390.c (processor_flags_table,
13181         s390_option_optimization_table, s390_option_init_struct,
13182         s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
13183         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
13184         TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
13185         * config/s390/s390.h (processor_flags_table): Declare.
13186         * config/score/score.c (score_option_optimization_table,
13187         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
13188         TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
13189         score_handle_option): Move to score-common.c.
13190         * config/sh/sh.c (sh_option_optimization_table,
13191         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
13192         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
13193         sh_handle_option, sh_option_init_struct): Move to sh-common.c.
13194         * config/sparc/sparc.c: Include common/common-target.h.
13195         (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
13196         TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
13197         * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
13198         TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
13199         spu_option_init_struct): Move to spu-common.c.
13200         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
13201         TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
13202         * config/v850/v850.c (small_memory_physical_max,
13203         v850_handle_memory_optionn v850_handle_option,
13204         v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
13205         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
13206         v850-common.c.
13207         * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c.
13208         * config/xtensa/xtensa.c (xtensa_option_optimization_table,
13209         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
13210         Move to xtensa-common.c.
13211         * cfglayout.c: Include common/common-target.h.
13212         (fixup_reorder_chain): Use targetm_common.have_named_sections.
13213         * cfgrtl.c: Include common/common-target.h.
13214         (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
13215         targetm_common.have_named_sections.
13216         * dbxout.c: Include common/common-target.h.
13217         (dbxout_function_end): Use targetm_common.have_named_sections.
13218         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
13219         targetm_common.except_unwind_info.
13220         * dwarf2out.c: Include common/common-target.h.
13221         (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
13222         dwarf2out_begin_prologue, dwarf2out_frame_init,
13223         dwarf2out_frame_finish, dwarf2out_assembly_start): Use
13224         targetm_common.except_unwind_info.
13225         * except.c: Include common/common-target.h.
13226         (init_eh, finish_eh_generation,
13227         output_one_function_exception_table): Use
13228         targetm_common.except_unwind_info.
13229         (switch_to_exception_section): Use targetm_common.have_named_sections.
13230         * explow.c: Include common/common-target.h.
13231         * expr.c: Include common/common-target.h.
13232         (build_personality_function): Use targetm_common.except_unwind_info.
13233         * function.c: Include common/common-target.h.
13234         (expand_function_end): Use targetm_common.except_unwind_info.
13235         * haifa-sched.c: Include common/common-target.h.
13236         (sched_create_recovery_edges): Use targetm_common.have_named_sections.
13237         * lto-opts.c: Include common/common-target.h instead of target.h.
13238         (lto_reissue_options): Use targetm_common.handle_option.
13239         * opts.c: Include common/common-target.h.
13240         (target_handle_option): Use targetm_common.handle_option.
13241         (init_options_struct): Update comment referring to
13242         targetm.target_option.optimization.  Use
13243         targetm_common.default_target_flags,
13244         targetm_common.unwind_tables_default and
13245         targetm_common.option_init_struct.
13246         (default_options_optimization): Use
13247         targetm_common.option_optimization_table.
13248         (finish_options): Use targetm_common.except_unwind_info,
13249         targetm_common.unwind_tables_default,
13250         targetm_common.have_named_sections and
13251         targetm_common.supports_split_stack.
13252         * toplev.c: Include common/common-target.h.
13253         (process_options): Use targetm_common.have_named_sections.
13254         * tree-tailcall.c: Include common/common-target.h.
13255         (suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info.
13256         * tree.c: Include common/common-target.h.
13257         (build_common_builtin_nodes): Use targetm_common.except_unwind_info.
13258         * varasm.c: Include common/common-target.h.
13259         (resolve_unique_section, hot_function_section,
13260         default_function_section): Use targetm_common.have_named_sections.
13261
13262 2011-06-14  Easwaran Raman  <eraman@google.com>
13263
13264         PR rtl-optimization/44194
13265         * dse.c: Include tree-flow.h
13266         (insn_info): Add new field non_frame_wild_read.
13267         (group_info): Add new fields escaped_n and escaped_p.
13268         (kill_on_calls): New variable.
13269         (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
13270         (dse_step0): Initialize kill_on_calls.
13271         (can_escape): New function.
13272         (set_usage_bits): Add additional parameter; record information
13273         about escaped locations.
13274         (record_store): Pass EXPR corresponding to MEM to set_usage_bits.
13275         (dse_step2_nospill): Set kill_on_calls based on
13276         group->escaped_n and group->escaped_n.
13277         (add_wild_read): Refactor into...
13278         (reset_active_stores): ... New function, and
13279         (free_read_records): ... New function.
13280         (add_non_frame_wild_read): New function.
13281         (scan_insn): Call add_non_frame_wild_read on non-const calls.
13282         (scan_reads_nospill): Handle instructions with non_frame_wild_read.
13283         (dse_step5_nospill): Call scan_reads_nospill for instructions
13284         marked as non_frame_wild_read.
13285         (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps.
13286
13287 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
13288
13289         * common/common-target-def.h, common/common-target.def,
13290         common/common-target.h, common/config/default-common.c,
13291         common/config/pa/pa-common.c: New files.
13292         * Makefile.in (common_out_file, common_out_object_file,
13293         COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
13294         (OBJS-libcommon-target): Include $(common_out_object_file).
13295         (prefix.o): Update dependencies.
13296         ($(common_out_object_file), common/common-target-hooks-def.h,
13297         s-common-target-hooks-def-h): New.
13298         (s-tm-texi): Also check timestamp on common-target.def.
13299         (build/genhooks.o): Update dependencies.
13300         * config.gcc (common_out_file, target_has_targetm_common): Define.
13301         * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
13302         TARGET_ALWAYS_STRIP_DOTDOT.
13303         * configure.ac (common_out_object_file): Define.
13304         (common_out_file, common_out_object_file): Substitute.
13305         (common): Create directory.
13306         * configure: Regenerate.
13307         * doc/tm.texi.in (targetm_common): Document.
13308         (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
13309         * doc/tm.texi: Regenerate.
13310         * genhooks.c (hook_array): Also include common/common-target.def.
13311         * prefix.c (tm.h): Don't include.
13312         (common/common-target.h): Include.
13313         (ALWAYS_STRIP_DOTDOT): Don't define.
13314         (update_path): Use targetm_common.always_strip_dotdot instead of
13315         ALWAYS_STRIP_DOTDOT.
13316         * system.h (ALWAYS_STRIP_DOTDOT): Poison.
13317
13318 2011-06-14  David Li  <davidxl@google.com>
13319
13320         * passes.c (execute_function_todo): Remove TODO_dump_func.
13321         (execute_one_pass): Remove TODO_dump_func.
13322         (execute_function_dump): New function.
13323         * tree-vrp.c: Remove TODO_dump_func.
13324         * regrename.c: Remove TODO_dump_func.
13325         * fwprop.c: Remove TODO_dump_func.
13326         * tree-into-ssa.c: Remove TODO_dump_func.
13327         * tree-complex.c: Remove TODO_dump_func.
13328         * tracer.c: Remove TODO_dump_func.
13329         * tree-loop-distribution.c: Remove TODO_dump_func.
13330         * postreload-gcse.c: Remove TODO_dump_func.
13331         * postreload.c: Remove TODO_dump_func.
13332         * tree-ssa-loop-ch.c: Remove TODO_dump_func.
13333         * tree-tailcall.c: Remove TODO_dump_func.
13334         * ipa-cp.c: Remove TODO_dump_func.
13335         * final.c: Remove TODO_dump_func.
13336         * tree-emutls.c: Remove TODO_dump_func.
13337         * omp-low.c: Remove TODO_dump_func.
13338         * tree-ssa-dse.c: Remove TODO_dump_func.
13339         * tree-ssa-uncprop.c: Remove TODO_dump_func.
13340         * auto-inc-dec.c: Remove TODO_dump_func.
13341         * reorg.c: Remove TODO_dump_func.
13342         * tree-ssa-copyrename.c: Remove TODO_dump_func.
13343         * tree-ssa-ccp.c: Remove TODO_dump_func.
13344         * compare-elim.c: Remove TODO_dump_func.
13345         * mode-switching.c: Remove TODO_dump_func.
13346         * modulo-sched.c: Remove TODO_dump_func.
13347         * tree-call-cdce.c: Remove TODO_dump_func.
13348         * cse.c: Remove TODO_dump_func.
13349         * web.c: Remove TODO_dump_func.
13350         * tree-stdarg.c: Remove TODO_dump_func.
13351         * lto-streamer-out.c: Remove TODO_dump_func.
13352         * tree-ssa-math-opts.c: Remove TODO_dump_func.
13353         * tree-ssa-dom.c: Remove TODO_dump_func.
13354         * tree-nrv.c: Remove TODO_dump_func.
13355         * loop-init.c: Remove TODO_dump_func.
13356         * gimple-low.c: Remove TODO_dump_func.
13357         * ipa-inline.c: Remove TODO_dump_func.
13358         * tree-ssa-sink.c: Remove TODO_dump_func.
13359         * jump.c: Remove TODO_dump_func.
13360         * ifcvt.c: Remove TODO_dump_func.
13361         * tree-ssa-loop.c: Remove TODO_dump_func.
13362         * recog.c: Remove TODO_dump_func.
13363         * dse.c: Remove TODO_dump_func.
13364         * tree-ssa-ifcombine.c: Remove TODO_dump_func.
13365         * matrix-reorg.c: Remove TODO_dump_func.
13366         * tree-eh.c: Remove TODO_dump_func.
13367         * regmove.c: Remove TODO_dump_func.
13368         * function.c: Remove TODO_dump_func.
13369         * tree-vectorizer.c: Remove TODO_dump_func.
13370         * ipa-split.c: Remove TODO_dump_func.
13371         * gcse.c: Remove TODO_dump_func.
13372         * tree-if-conv.c: Remove TODO_dump_func.
13373         * init-regs.c: Remove TODO_dump_func.
13374         * tree-ssa-phiopt.c: Remove TODO_dump_func.
13375         * implicit-zee.c: Remove TODO_dump_func.
13376         * lower-subreg.c: Remove TODO_dump_func.
13377         * bt-load.c: Remove TODO_dump_func.
13378         * tree-dfa.c: Remove TODO_dump_func.
13379         * except.c: Remove TODO_dump_func.
13380         * emit-rtl.c: Remove TODO_dump_func.
13381         * store-motion.c: Remove TODO_dump_func.
13382         * cfgexpand.c: Remove TODO_dump_func.
13383         * tree-cfgcleanup.c: Remove TODO_dump_func.
13384         * cfgcleanup.c: Remove TODO_dump_func.
13385         * tree-ssa-pre.c: Remove TODO_dump_func.
13386         * tree-sra.c: Remove TODO_dump_func.
13387         * tree-mudflap.c: Remove TODO_dump_func.
13388         * tree-ssa-copy.c: Remove TODO_dump_func.
13389         * cfglayout.c: Remove TODO_dump_func.
13390         * tree-ssa-forwprop.c: Remove TODO_dump_func.
13391         * tree-ssa-dce.c: Remove TODO_dump_func.
13392         * ira.c: Remove TODO_dump_func.
13393         * tree-ssa.c: Remove TODO_dump_func.
13394         * integrate.c: Remove TODO_dump_func.
13395         * tree-optimize.c: Remove TODO_dump_func.
13396         * tree-ssa-phiprop.c: Remove TODO_dump_func.
13397         * tree-object-size.c: Remove TODO_dump_func.
13398         * combine.c: Remove TODO_dump_func.
13399         * bb-reorder.c: Remove TODO_dump_func.
13400         * cprop.c: Remove TODO_dump_func.
13401         * var-tracking.c: Remove TODO_dump_func.
13402         * tree-profile.c: Remove TODO_dump_func.
13403         * tree-vect-generic.c: Remove TODO_dump_func.
13404         * reg-stack.c: Remove TODO_dump_func.
13405         * sched-rgn.c: Remove TODO_dump_func.
13406         * tree-ssa-structalias.c: Remove TODO_dump_func.
13407         * tree-switch-conversion.c: Remove TODO_dump_func.
13408         * tree-cfg.c: Remove TODO_dump_func.
13409         * tree-ssa-reassoc.c: Remove TODO_dump_func.
13410         * combine-stack-adj.c: Remove TODO_dump_func.
13411         * dce.c: Remove TODO_dump_func.
13412         * tree-ssanames.c: Remove TODO_dump_func.
13413         * regcprop.c: Remove TODO_dump_func.
13414
13415 2011-06-14  H.J. Lu  <hongjiu.lu@intel.com>
13416
13417         PR middle-end/47364
13418         * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
13419         and properly handle result not in Pmode.
13420
13421 2011-06-14  Robert Millan  <rmh@gnu.org>
13422
13423         * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
13424         * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
13425         `config/linux.h'.
13426
13427         * config/i386/kfreebsd-gnu64.h: New file.
13428         * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
13429         with `i386/kfreebsd-gnu64.h'.
13430
13431         * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
13432         (GNU_USER_LINK_EMULATION64): New macros.
13433         * config/i386/gnu-user64.h (LINK_SPEC): Rely on
13434         `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
13435         of hardcoding `elf_i386' and `elf_x86_64'.
13436
13437 2011-06-14  Nick Clifton  <nickc@redhat.com>
13438
13439         PR target/49403
13440         * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
13441
13442         PR target/49402
13443         * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
13444
13445 2011-06-14  Jakub Jelinek  <jakub@redhat.com>
13446
13447         PR fortran/49103
13448         * tree.h (DECL_NONSHAREABLE): Define.
13449         (struct tree_decl_common): Change decl_common_unused to
13450         decl_nonshareable_flag.
13451         * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
13452         Ignore vars with DECL_NONSHAREABLE bit set.
13453         * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
13454         on stores to automatic aggregate vars.
13455
13456         PR rtl-optimization/49390
13457         Revert:
13458         2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
13459
13460         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
13461         MEM_ALIAS_SET.
13462
13463 2011-06-14  Zdenek Dvorak  <ook@ucw.cz>
13464             Tom de Vries  <tom@codesourcery.com>
13465
13466         PR target/45098
13467         * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
13468         Document changed semantics.
13469         (max_stmt_executions, max_stmt_executions_int): Declare.
13470         * tree-data-ref.c (estimated_loop_iterations)
13471         (estimated_loop_iterations_int): Move functions...
13472         * tree-ssa-loop-niter.c (estimated_loop_iterations)
13473         (estimated_loop_iterations_int): here.
13474         (record_estimate): Change nb_iterations_upper_bound and
13475         nb_iterations_estimate semantics.
13476         (max_stmt_executions, max_stmt_executions_int): New function.
13477         * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
13478         (max_stmt_executions_tree): this.
13479         (analyze_miv_subscript): Use max_stmt_executions_tree instead of
13480         estimated_loop_iterations_tree.
13481         tree-ssa-loop-ivopts.c (avg_loop_niter): Use
13482         max_stmt_executions_int instead of estimated_loop_iterations_int.
13483         * predict.c (predict_loops): Idem.
13484         * tree-parloops.c (parallelize_loops): Idem.
13485         * tree-data-ref.c (analyze_siv_subscript_cst_affine)
13486         (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
13487         (init_omega_for_ddr_1): Idem.
13488         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
13489         (loop_prefetch_arrays): Idem
13490         * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
13491         max_stmt_executions instead of estimated_loop_iterations.
13492         * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
13493         * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
13494         instead of nb_iterations_upper_bound.
13495
13496 2011-06-13  Jan Hubicka  <jh@suse.cz>
13497
13498         * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
13499
13500 2011-06-14  Richard Henderson  <rth@redhat.com>
13501
13502         PR debug/48459
13503         * dwarf2out.c (frame_pointer_fb_offset_valid): New.
13504         (based_loc_descr): Assert it's true.
13505         (compute_frame_pointer_to_fb_displacement): Set it, rather than
13506         aborting immediately.
13507
13508 2011-06-14  Sanjin Liu  <scliu@faraday-tech.com>
13509             Mingfeng Wu  <mingfeng@faraday-tech.com>
13510
13511         * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
13512
13513 2011-06-13  Jan Hubicka  <jh@suse.cz>
13514
13515         * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
13516
13517 2011-06-13  Jan Hubicka  <jh@suse.cz>
13518
13519         * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
13520         similarly to DECL_COMDAT.
13521         * cgraphunit.c (cgraph_analyze_function): Likewise.
13522         * ipa.c (function_and_variable_visibility): Likewise.
13523
13524 2011-06-13  Jan Hubicka  <jh@suse.cz>
13525
13526         * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
13527         BINFO_VIRTUALS when streaming for ltrans unit.
13528
13529 2011-06-13  David Edelsohn  <dje.gcc@gmail.com>
13530
13531         * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
13532         (movdi_internal64): Same.
13533
13534 2011-06-13  Edmar Wienskoski  <edmar@freescale.com>
13535
13536         PR target/44618
13537         * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
13538         a set of similar patterns, where the MATCH_OPERAND for the function
13539         argument is replaced with individual references to hardware registers.
13540         (save_fpregs_<mode>): Ditto
13541         (restore_gpregs_<mode>): Ditto
13542         (return_and_restore_gpregs_<mode>): Ditto
13543         (return_and_restore_fpregs_<mode>): Ditto
13544         (return_and_restore_fpregs_aix_<mode>): Ditto
13545
13546 2011-06-13  Jan Hubicka  <jh@suse.cz>
13547
13548         * ipa-utils.c (postorder_stack): New structure.
13549         (ipa_reverse_postorder): Handle aliases.
13550
13551 2011-06-13  Jan Hubicka  <jh@suse.cz>
13552
13553         * ipa-inline.c (reset_edge_caches): Walk aliases.
13554         (update_caller_keys): Do not test inlinability of aliases.
13555         * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
13556         (do_estimate_growth): Fix typo.
13557
13558 2011-06-13  Jan Hubicka  <jh@suse.cz>
13559
13560         * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
13561         (can_remove_node_now_p): ... here; handle same comdat groups.
13562         (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
13563         (inline_call): Update use of can_remove_node_now_p.
13564
13565 2011-06-13  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
13566
13567         * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
13568         condition to disallow non-identical memory locations.
13569         (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
13570         preference to bit manipulation instructions.
13571
13572 2011-06-13  Jan Hubicka  <jh@suse.cz>
13573
13574         * cgraph.c (cgraph_for_node_thunks_and_aliases,
13575         cgraph_for_node_and_aliases): Fix thinko in recursive walking.
13576         (nonremovable_p): New function.
13577         (cgraph_can_remove_if_no_direct_calls_p): New function.
13578         (used_from_object_file_p): New functoin.
13579         (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
13580         references from aliases.
13581         * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
13582         * ipa-inline.c (check_caller_edge): New function.
13583         (want_inline_function_called_once_p): Use it; accept aliases called
13584         once, too.
13585         * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
13586
13587 2011-06-13  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
13588
13589         PR target/48454
13590         * config/arm/neon.md (vec_pack_trunc): Set the lengths
13591         correctly for the case with Quad vectors.
13592
13593 2011-06-13 Jakub Jelinek  <jakub@redhat.com>
13594            Ira Rosen  <ira.rosen@linaro.org>
13595
13596         PR tree-optimization/49352
13597         * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
13598         all, make sure loop_use_stmt after the loop is a def stmt of a used
13599         SSA_NAME that is the only one defined inside of the loop.  Don't
13600         check for COND_EXPR and GIMPLE_BINARY_RHS.
13601         (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
13602         check_reduction is true.
13603
13604 2011-06-11  Jan Hubicka  <jh@suse.cz>
13605
13606         PR middle-end/49373
13607         * ipa.c (cgraph_externally_visible_p): Check resolution info.
13608
13609 2011-06-11  Jan Hubicka  <jh@suse.cz>
13610
13611         PR middle-end/48836
13612         * ipa-inline-transform.c: Include tree-pass.h
13613         (inline_transform): Set TODO_update_ssa_only_virtuals.
13614         * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
13615
13616 2011-06-11  Jan Hubicka  <jh@suse.cz>
13617
13618         PR middle-end/49378
13619         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
13620         aliases and thunks.
13621
13622 2011-06-12  Ira Rosen  <ira.rosen@linaro.org>
13623
13624         * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
13625         Take number of iterations to peel into account for equally frequent
13626         misalignment values.
13627
13628 2011-06-11  Jan Hubicka  <jh@suse.cz>
13629
13630         * lto-streamer-out.c (produce_symtab): Stream out the newly
13631         represented aliases.
13632
13633 2011-06-11  Jan Hubicka  <jh@suse.cz>
13634
13635         * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting
13636         varying args.
13637         (ipa_update_after_lto_read): Likewise.
13638         (ipa_write_node_info): Do not sream call_with_var_arguments.
13639         (ipa_read_node_info): Likewise.
13640
13641 2011-06-11  Jan Hubicka  <jh@suse.cz>
13642
13643         * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
13644
13645 2011-06-11  Jan Hubicka  <jh@suse.cz>
13646
13647         * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
13648         (lto_symtab_resolve_can_prevail_p): Likewise.
13649         (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
13650         * cgraph.c (same_body_aliases_done): New global var.
13651         (cgraph_same_body_alias_1): Rename to ...
13652         (cgraph_create_function_alias): ... this one; reorg to new
13653         representation.
13654         (cgraph_same_body_alias): Use cgraph_create_function_alias;
13655         record references when asked to.
13656         (cgraph_add_thunk): Fix formating.
13657         (cgraph_get_node): Kill same body alias code.
13658         (cgraph_node_for_asm): Likewise.
13659         (cgraph_remove_same_body_alias): Remove.
13660         (cgraph_remove_node): Kill same body alias code.
13661         (cgraph_mark_address_taken_node): Mark also the aliased function
13662         as having address taken.
13663         (dump_cgraph_node): Dump same body aliases.
13664         (cgraph_for_node_thunks_and_aliases): Update for new alias
13665         representation.
13666         (cgraph_for_node_and_aliases): Likewise.
13667         * cgraph.h (same_body): Kll pointer.
13668         (same_body_alias): Update comment.
13669         (same_body_aliases_done): Declare.
13670         (cgraph_remove_same_body_alias): Remove declaration.
13671         (cgraph_create_function_alias): Declare.
13672         (cgraph_process_same_body_aliases): Declare.
13673         (cgraph_function_with_gimple_body_p): Check for alias.
13674         (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
13675         (cgraph_alias_aliased_node): New function.
13676         (cgraph_function_node): Update for new aliases.
13677         (cgraph_function_or_thunk_node): Likewise.
13678         * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
13679         (inline_call): Remove dead aliases.
13680         * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
13681         name hack for same body aliases.
13682         (clone_of_p): Look through aliases.
13683         (verify_cgraph_node): Verify aliases.
13684         (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
13685         (cgraph_process_same_body_aliases): New function.
13686         (process_function_and_variable_attributes): Disable weakref warning on
13687         alias.
13688         (cgraph_analyze_functions): Handle aliases.
13689         (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
13690         (assemble_thunks): Rename to ...
13691         (assemble_thunks_and_aliases): ... this one; handle aliases, too.
13692         (cgraph_expand_function): Remove alias output code.
13693         (cgraph_output_in_order): Skip aliases.
13694         (cgraph_preserve_function_body_p): Aliases don't need preserving.
13695         * ipa-ref.c (ipa_ref_use_name): Add alias reference.
13696         (ipa_record_reference): Do not assert on alias references.
13697         (ipa_ref_has_aliases_p): New function.
13698         * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
13699         (ipa_ref_has_aliases_p): Declare.
13700         * lto-cgraph.c (lto_output_node): Handle aliases.
13701         (input_node): Likewise.
13702         * lto-streamer-out.c (lto_output): Skip aliases.
13703         (produce_symtab): Kill same_body_alias code.
13704         * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
13705         (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
13706         * ipa-inline.c (update_caller_keys): Walk aliases.
13707         (inline_small_functions): Fix thinko in previous patch.
13708         * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
13709         (function_and_variable_visibility): Do not walk same body aliases.
13710         * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
13711         (ipa_pta_execute): Use it.
13712
13713 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
13714
13715         * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
13716         (*vec_dupv2df): Rename from vec_dupv2df.
13717         (vec_dupv2df): New expander.
13718
13719 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
13720
13721         * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
13722
13723 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
13724
13725         * config/i386/i386.md: Use default value in "isa" attribute.
13726         * config/i386/sse.md: Ditto.
13727         * config/i386/mmx.md: Ditto.
13728
13729 2011-06-10  Wei Guozhi  <carrot@google.com>
13730
13731         PR target/45335
13732         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
13733         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
13734         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
13735         related peephole2.
13736         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
13737         related peephole2.
13738         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
13739         (arm_legitimate_ldrd_p): New prototype.
13740         (arm_output_ldrd): New prototype.
13741         * config/arm/arm.c (arm_check_ldrd_operands): New function.
13742         (arm_legitimate_ldrd_p): New function.
13743         (arm_output_ldrd): New function.
13744
13745 2011-06-10  David Li  <davidxl@google.com>
13746
13747         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
13748         * passes.c (passr_eq): New function.
13749         (create_pass_tab): New function.
13750         (pass_traverse): New function.
13751         (dump_one_pass): New function.
13752         (dump_pass_list): New function.
13753         (dump_passes): New function.
13754
13755 2011-06-10  Jan Hubicka  <jh@suse.cz>
13756
13757         * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
13758         setting the nothrow flag.
13759         * ipa-reference.c (propagate): Skip aliases.
13760         * ipa-pure-const.c (propagate_pure_const): Skip aliases.
13761         (propagate_nothrow): Skip aliases; do not update cgraph.
13762         (local_pure_const): Do not update cgraph.
13763         * tree-profile.c (tree_profiling): Do fixup_cfg.
13764
13765 2011-06-10  Jan Hubicka  <jh@suse.cz>
13766
13767         * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
13768         (cgraph_local_node_p): ... here; handle aliases.
13769         (has_addr_references_p): Break out from ...;
13770         (cgraph_remove_unreachable_nodes) ... here.
13771
13772 2011-06-10  Jan Hubicka  <jh@suse.cz>
13773
13774         * opts.c (default_options): Enlist OPT_finline_functions_called_once.
13775         * common.opt (flag_inline_functions_called_once): Do not
13776         initialize to 1.
13777
13778 2011-06-10  Jan Hubicka  <jh@suse.cz>
13779
13780         * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
13781         (ipcp_initialize_node_lattices): Do not deal with aliases;
13782         Do not try to propagate through thunks.
13783         (ipcp_change_tops_to_bottom): Do not deal with aliases.
13784
13785 2011-06-10  Jan Hubicka  <jh@suse.cz>
13786
13787         * ipa-prop.c (ipa_write_node_info): Stream jump functions
13788         for indirect calls.
13789         (ipa_read_node_info): Likewise.
13790
13791 2011-06-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13792
13793         PR lto/49302
13794         * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
13795         (build_and_insert_call): Likewise.
13796         (build_and_insert_ref): New.
13797         (gimple_expand_builtin_pow): Minor cleanup.
13798         (gimple_expand_builtin_cabs): New.
13799         (execute_cse_sincos): Add case for BUILT_IN_CABS.
13800
13801 2011-06-10  Jan Hubicka  <jh@suse.cz>
13802
13803         * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
13804         (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
13805         (ipcp_initialize_node_lattices): We don't propagate through an aliases.
13806         (ipcp_propagate_stage): Skip aliases when propagating.
13807         (ipcp_need_redirect_p): Skip aliases.
13808         (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
13809         collect_callers_of_node.
13810         * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
13811         for aliases.
13812         (ipa_compute_jump_functions): Look through aliases.
13813
13814 2011-06-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13815
13816         * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
13817
13818 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
13819
13820         * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
13821         Adjust comments.
13822         * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
13823
13824 2011-06-10  Jan Hubicka  <jh@suse.cz>
13825
13826         * ipa-cp.c (ipcp_process_devirtualization_opportunities):
13827         Update call of gimple_get_virt_method_for_binfo.
13828         * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
13829         refuse_thunks parameter.
13830         (gimple_fold_call): Update.
13831         * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
13832
13833 2011-06-10  Jan Hubicka  <jh@suse.cz>
13834
13835         * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
13836         (not_all_callers_have_enough_arguments_p): ... this one; turn into
13837         worker for cgraph_for_node_and_aliases.
13838         (convert_callers_for_node): Break out from ...
13839         (convert_callers): ... here.
13840         (modify_function): Use collect_callers_of_node.
13841         (ipa_early_sra): Use cgraph_for_node_and_aliases.
13842
13843 2011-06-10  Richard Guenther  <rguenther@suse.de>
13844
13845         PR tree-optimization/49361
13846         * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
13847         when not already in gimple form.
13848
13849 2011-06-10  Richard Guenther  <rguenther@suse.de>
13850
13851         PR bootstrap/49344
13852         * tree-ssa-math-opts.c (convert_mult_to_fma): Use
13853         FOR_EACH_PHI_OR_STMT_USE.
13854
13855 2011-06-10  Jan Hubicka  <jh@suse.cz>
13856
13857         * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
13858         (clone_inlined_nodes): ... here.
13859         (inline_call): Use cgraph_function_or_thunk_node; redirect edge
13860         to real destination prior inlining.
13861         * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
13862         can_early_inline_edge_p, want_early_inline_function_p,
13863         want_early_inline_function_p, want_inline_small_function_p,
13864         want_inline_self_recursive_call_p, want_inline_function_called_once_p,
13865         edge_badness, update_all_callee_keys, lookup_recursive_calls,
13866         add_new_edges_to_heap, inline_small_functions, flatten_function,
13867         inline_always_inline_functions, early_inline_small_functions): Use
13868         cgraph_function_or_thunk_node.
13869         * ipa-inline-analysis.c (evaluate_conditions_for_edge,
13870         dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
13871         (do_estimate_edge_growth_1): Break out from ...
13872         (do_estimate_growth) ... here; walk aliases.
13873         (inline_generate_summary): Skip aliases.
13874
13875 2011-06-10  Richard Guenther  <rguenther@suse.de>
13876
13877         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
13878         forward when combining, visit inserted stmts when a stmt was changed.
13879
13880 2011-06-10  Paolo Carlini  <paolo.carlini@oracle.com>
13881
13882         * tree.h (error_operand_p): Add.
13883         * dbxout.c (dbxout_type_fields): Use the latter.
13884         * c-decl.c (add_stmt): Likewise.
13885         * gimplify.c (omp_add_variable, omp_notice_variable,
13886         gimplify_scan_omp_clauses): Likewise.
13887
13888 2011-06-10  Georg-Johann Lay  <avr@gjlay.de>
13889
13890         * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
13891         when a value is actually passed in regs.
13892
13893 2011-06-10  Eric Botcazou  <ebotcazou@adacore.com>
13894             Laurent Rougé  <laurent.rouge@menta.fr>
13895
13896         * doc/invoke.texi (SPARC options): Add -mflat.
13897         * config/sparc/sparc.opt: Likewise.
13898         * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
13899         (sparc_flat_expand_prologue): Declare.
13900         (sparc_flat_expand_epilogue): Likewise.
13901         * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
13902         (CPP_ENDIAN_SPEC): Replace with...
13903         (CPP_OTHER_SPEC): ...this.  Also handle -mflat and -msoft-float.
13904         (CPP_SPEC): Adjust to above change.
13905         (EXTRA_SPECS): Likewise.
13906         (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
13907         (INCOMING_REGNO): Likewise.
13908         (OUTGOING_REGNO): Likewise.
13909         (LOCAL_REGNO): Likewise.
13910         (SETUP_FRAME_ADDRESSES): Likewise.
13911         (FIXED_REGISTERS): Set 0 for %fp.
13912         (CALL_USED_REGISTERS): Likewise.
13913         (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
13914         (EXIT_IGNORE_STACK): Define to 1 unconditionally.
13915         (RETURN_ADDR_REGNUM): Define.
13916         (RETURN_ADDR_RTX): Use it.
13917         (INCOMING_RETURN_ADDR_REGNUM): Define.
13918         (INCOMING_RETURN_ADDR_RTX): Use it.
13919         (DWARF_FRAME_RETURN_COLUMN): Likewise.
13920         (EH_RETURN_REGNUM): Define.
13921         (EH_RETURN_STACKADJ_RTX): Use it.
13922         (EH_RETURN_HANDLER_RTX): Delete.
13923         (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
13924         * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
13925         Delete.
13926         (struct machine_function): Add frame_size, apparent_frame_size,
13927         frame_base_reg, frame_base_offset, n_global_fp_regs and
13928         save_local_in_regs_p fields.
13929         (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
13930         sparc_frame_base_offset, sparc_n_global_fp_regs,
13931         sparc_save_local_in_regs_p): New macros.
13932         (sparc_option_override): Error out if -fcall-saved-REG is specified
13933         for Out registers.
13934         (eligible_for_restore_insn): Fix formatting.
13935         (eligible_for_return_delay): Likewise.  Add TARGET_FLAT handling.
13936         (eligible_for_sibcall_delay): Likewise.
13937         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
13938         (sparc_legitimate_address_p): Adjust to above change.
13939         (save_global_or_fp_reg_p): New predicate.
13940         (return_addr_reg_needed_p): Likewise.
13941         (save_local_or_in_reg_p): Likewise.
13942         (sparc_compute_frame_size): Use them.  Add TARGET_FLAT handling.
13943         (SORR_SAVE, SORR_RESTORE): Delete.
13944         (sorr_pred_t): New typedef.
13945         (sorr_act_t): New enum.
13946         (save_or_restore_regs): Rename to...
13947         (emit_save_or_restore_regs): ...this.  Change type of LOW and HIGH
13948         parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
13949         ACTION_TRUE and ACTION_FALSE parameters.  Implement more general
13950         mechanism.  Add CFI information for double-word saves in 32-bit mode.
13951         (emit_adjust_base_to_offset): New function extracted from...
13952         (emit_save_or_restore_regs): ...this.  Rename the rest to...
13953         (emit_save_or_restore_regs_global_fp_regs): ...this.
13954         (emit_save_or_restore_regs_local_in_regs): New function.
13955         (gen_create_flat_frame_[123]): New functions.
13956         (sparc_expand_prologue): Use SIZE local variable.  Adjust.
13957         (sparc_flat_expand_prologue): New function.
13958         (sparc_asm_function_prologue): Add TARGET_FLAT handling.
13959         (sparc_expand_epilogue): Use SIZE local variable.  Adjust.
13960         (sparc_flat_expand_epilogue): New function.
13961         (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
13962         (output_return): Likewise.
13963         (output_sibcall): Likewise.
13964         (sparc_output_mi_thunk): Likewise.
13965         (sparc_frame_pointer_required): Likewise.
13966         (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
13967         function optimization.
13968         * config/sparc/sparc.md (flat): New attribute.
13969         (prologue): Add TARGET_FLAT handling.
13970         (save_register_window): Disable if TARGET_FLAT.
13971         (create_flat_frame_[123]): New patterns.
13972         (epilogue): Add TARGET_FLAT handling.
13973         (sibcall_epilogue): Likewise.
13974         (eh_return): New expander.
13975         (eh_return_internal): New insn and splitter.
13976         (return_internal): Add TARGET_FLAT handling.
13977         (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
13978         (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
13979         (nonlocal_goto): Add TARGET_FLAT handling.
13980         * config/sparc/t-elf: Add -mflat multilib.
13981         * config/sparc/t-leon: Likewise.
13982
13983 2011-06-10  Jan Hubicka  <jh@suse.cz>
13984
13985         * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
13986         * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
13987         (self_recursive_p): Use cgraph_function_node.
13988         (propagate_pure_const): Likewise.
13989         (propagate_nothrow): Likewise.
13990         * ipa-reference.c (ipa_reference_get_not_read_global): Use
13991         cgraph_function_node.
13992         (propagate_bits): Likewise.
13993         (propagate): Likewise.
13994
13995 2011-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
13996             Richard Earnshaw  <rearnsha@arm.com>
13997
13998         * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
13999         * config/arm/vfp.md (*arm_movdi_vfp): Delete.
14000         (*thumb2_movdi_vfp): Delete.
14001         (*arm_movdi_vfp_cortexa8): Delete.
14002         (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
14003         (*movdi_vfp_cortexa8): Likewise.
14004
14005 2011-06-10  Richard Guenther  <rguenther@suse.de>
14006
14007         * stor-layout.c (initialize_sizetypes): Give names to all
14008         sizetype kinds.
14009
14010 2011-06-10  Ira Rosen  <ira.rosen@linaro.org>
14011
14012         PR tree-optimization/49318
14013         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
14014         irrelevant pattern statements.
14015
14016 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
14017
14018         * system.h (SETJMP_VIA_SAVE_AREA): Poison.
14019
14020         PR bootstrap/49354
14021         * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
14022         to last assignment.
14023
14024 2011-06-09  Jan Hubicka  <jh@suse.cz>
14025
14026         * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
14027         do not recompute reachable flag.
14028         (cgraph_finalize_function, cgraph_analyze_functions): Set
14029         redefined_extern_inline here.
14030
14031 2011-06-09  Jan Hubicka  <jh@suse.cz>
14032
14033         * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
14034         (cgraph_only_called_directly_p): ... this one; bring offline.
14035         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
14036         varpool_used_from_object_file_p): Drop names from the declaratoin.
14037         (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
14038         collect_callers_of_node): New.
14039         (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
14040         (cgraph_edge_recursive_p): Use cgraph_function_node.
14041         * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
14042         (cgraph_node_cannot_be_local_p_1): Break out from ...
14043         (cgraph_node_can_be_local_p): ... here; walk aliases.
14044         (cgraph_for_node_thunks_and_aliases): New function.
14045         (cgraph_for_node_and_aliases): New function.
14046         (cgraph_make_node_local_1): Break out from ...
14047         (cgraph_make_node_local) ... here; use
14048         cgraph_for_node_thunks_and_aliases.
14049         (cgraph_set_nothrow_flag_1): Break out from ...
14050         (cgraph_set_nothrow_flag) ... here;
14051         use cgraph_for_node_thunks_and_aliases.
14052         (cgraph_set_const_flag_1): Break out from ...
14053         (cgraph_set_const_flag) ... here;
14054         use cgraph_for_node_thunks_and_aliases.
14055         (cgraph_set_pure_flag_1): Break out from ...
14056         (cgraph_set_pure_flag) ... here;
14057         use cgraph_for_node_thunks_and_aliases.
14058         (cgraph_propagate_frequency_1): Break out from ...
14059         (cgraph_propagate_frequency) ... here; use
14060         cgraph_for_node_thunks_and_aliases.
14061         (cgraph_used_from_object_file_p): Do not care about aliases.
14062         (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
14063         New functions.
14064         (collect_callers_of_node_1, collect_callers_of_node): New functions.
14065
14066 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
14067
14068         PR rtl-optimization/49154
14069         * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
14070         (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
14071         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
14072         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
14073         * config/cris/cris.h (cris_register_move_cost): Remove
14074         !TARGET_V32 code.  Tweak comments.
14075
14076 2011-06-09  Jan Hubicka  <jh@suse.cz>
14077
14078         * cgraphbuild.c (record_eh_tables): Mark personality function as having
14079         address taken.
14080
14081 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
14082
14083         PR rtl-optimization/49154
14084         * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
14085         is a matching slot in the hashtable, assign it to classes_ptr.
14086
14087         PR rtl-optimization/49154
14088         * doc/tm.texi.in (Register Classes): Document rule for the narrowest
14089         register classes.
14090         * doc/tm.texi: Regenerate.
14091
14092 2011-06-09  Kaz Kojima  <kkojima@gcc.gnu.org>
14093
14094         PR target/49307
14095         * config/sh/sh.md (UNSPEC_CHKADD): New.
14096         (chk_guard_add): New define_insn_and_split.
14097         (symGOT_load): Use chk_guard_add instead of blockage.
14098
14099 2011-06-09  Kai Tietz  <ktietz@redhat.com>
14100
14101         * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
14102
14103 2011-06-09  Eric Botcazou  <ebotcazou@adacore.com>
14104
14105         * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
14106
14107 2011-06-09  Wei Guozhi  <carrot@google.com>
14108
14109         PR target/46975
14110         * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
14111         (peephole2 for conditional move): Generate 16 bit instructions.
14112
14113 2011-06-09  Uros Bizjak  <ubizjak@gmail.com>
14114
14115         * config/i386/i386.md (*movdi_internal_rex64): Merge
14116         alternatives 6 and 8.
14117
14118 2011-06-09  David Li  <davidxl@google.com>
14119
14120         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
14121         * passes.c (passr_eq): New function.
14122         (create_pass_tab): New function.
14123         (pass_traverse): New function.
14124         (dump_one_pass): New function.
14125         (dump_pass_list): New function.
14126         (dump_passes): New function.
14127
14128 2011-06-09  David Li  <davidxl@google.com>
14129
14130         * tree-complex.c (tree_lower_complex): Gate cleanup.
14131         * tree-stdarg.c (check_all_va_list_escapes): Ditto.
14132         (execute_optimize_stdarg): Ditto.
14133         * tree-eh.c (execute_lower_eh_dispatch): Ditto.
14134         (execute_cleanup_eh_1): Ditto.
14135         (execute_cleanup_eh): Ditto.
14136         * gcse.c (gate_rtl_pre): Ditto.
14137         (execute_rtl_pre): Ditto.
14138         * except.c (finish_eh_generation): Ditto.
14139         (convert_to_eh_region_ranges): Ditto.
14140         * cprop.c (one_cprop_pass): Ditto.
14141
14142 2011-06-09  Bernd Schmidt  <bernds@codesourcery.com>
14143
14144         PR target/48673
14145         * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
14146         in all basic blocks.
14147
14148 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14149
14150         * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
14151         (HAVE_ENABLE_EXECUTE_STACK): Define.
14152         * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
14153         (HAVE_ENABLE_EXECUTE_STACK): Define.
14154         * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
14155         (HAVE_ENABLE_EXECUTE_STACK): Define.
14156         * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
14157         (ENABLE_EXECUTE_STACK): Remove.
14158         (HAVE_ENABLE_EXECUTE_STACK): Define.
14159         [IN_LIBGCC2]: Don't include <windows.h>.
14160         * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
14161         (HAVE_ENABLE_EXECUTE_STACK): Define.
14162         * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
14163         (HAVE_ENABLE_EXECUTE_STACK): Define.
14164         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
14165         * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
14166         (HAVE_ENABLE_EXECUTE_STACK): Define.
14167         * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
14168         (HAVE_ENABLE_EXECUTE_STACK): Define.
14169         * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
14170         (HAVE_ENABLE_EXECUTE_STACK): Define.
14171         * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
14172         (HAVE_ENABLE_EXECUTE_STACK): Define.
14173         * config/alpha/alpha.c (alpha_trampoline_init): Test
14174         HAVE_ENABLE_EXECUTE_STACK.
14175         * config/i386/i386.c (ix86_trampoline_init): Likewise.
14176         * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
14177         (sparc64_initialize_trampoline): Likewise.
14178         * libgcc2.c [L_enable_execute_stack]: Remove.
14179         * system.h (ENABLE_EXECUTE_STACK): Poison.
14180         * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
14181         * doc/tm.texi: Regenerate.
14182         * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
14183
14184 2011-06-09  Jakub Jelinek  <jakub@redhat.com>
14185
14186         PR middle-end/49308
14187         * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
14188         variable.  After resetting and rescanning insn continue with previous
14189         statement.
14190
14191 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14192
14193         * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
14194         (gcc_cv_ld_hidden): Likewise.
14195         * configure: Regenerate.
14196         * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
14197         (ix86_stack_protect_fail): Mark unused.
14198         (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
14199         * config/rs6000/rs6000.c (rs6000_assemble_visibility)
14200         [TARGET_MACHO]: Don't define.
14201         (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
14202         (TARGET_STACK_PROTECT_FAIL): Likewise.
14203         (rs6000_stack_protect_fail): Mark unused.
14204         * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
14205         USE_LINKONCE_INDIRECT.  Don't emit .hidden expicitly.
14206
14207 2011-06-08  Andi Kleen  <ak@linux.intel.com>
14208
14209         * varasm.c (get_section): Print location of other conflict
14210         for section conflicts.
14211
14212 2011-06-08  Andi Kleen  <ak@linux.intel.com>
14213
14214         * config/i386/driver-i386.c (host_detect_local_cpu):
14215         Add model 0x2d Intel CPU.
14216
14217 2011-06-08  Andi Kleen  <ak@linux.intel.com>
14218
14219         * reginfo.c (global_regs_decl): Add.
14220         (globalize_reg): Add decl parameter. Compute location.  Pass location
14221         to warnings and add inform. Store decl in global_regs_decl.
14222         * rtl.h (globalize_reg): Update prototype.
14223         * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
14224
14225 2011-06-09  Mingjie Xing  <mingjie.xing@gmail.com>
14226
14227         * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
14228
14229 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
14230
14231         PR target/49305
14232         * config/sh/predicates.md (general_movsrc_operand): Check
14233         mode for memory with indexed address for QI and HImode.
14234         (general_movdst_operand): Likewise.
14235
14236 2011-06-09  Nicola Pero  <nicola.pero@meta-innovation.com>
14237
14238         * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
14239
14240 2011-06-08  Alexandre Oliva  <aoliva@redhat.com>
14241
14242         * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
14243         (num_ssa_operands): Likewise.
14244         (op_iter_init_phiuse): Forward-declare.
14245         (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
14246
14247 2011-06-08  Nick Clifton  <nickc@redhat.com>
14248
14249         * doc/invoke.texi (ARM Options): Update description of
14250         -mthumb-interwork.
14251
14252 2011-06-08  H.J. Lu  <hongjiu.lu@intel.com>
14253
14254         * config/i386/driver-i386.c (host_detect_local_cpu): Support
14255         unknown Intel family 0x6 CPUs.
14256
14257 2011-06-08  Martin Jambor  <mjambor@suse.cz>
14258
14259         * tree-sra.c (mark_rw_status): Removed.
14260         (analyze_access_subtree): New parameter parent instead of
14261         mark_read and mark_write, propagate from that.
14262
14263 2011-06-08  Julian Brown  <julian@codesourcery.com>
14264
14265         * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
14266         for double-precision helper functions in hard-float mode if only
14267         single-precision arithmetic is supported in hardware.
14268
14269 2011-06-08  Alexander Monakov  <amonakov@ispras.ru>
14270
14271         PR rtl-optimization/49303
14272         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
14273         code_motion_path_driver returned 0 or 1.
14274         (sel_region_finish): Clear h_d_i_d.
14275
14276 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
14277
14278         * config/sh/sh.c (prepare_move_operands): Set pic register
14279         appropriately for global and local dynamic tls models even
14280         if flag_pic is unset.
14281
14282 2011-06-07  Jason Merrill  <jason@redhat.com>
14283
14284         * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
14285
14286 2011-06-07  Xinliang David Li  <davidxl@google.com>
14287         * passes.c (enable_disable_pass): Handle assembler name.
14288         (is_pass_explicitly_enabled_or_disabled): Ditto.
14289
14290 2011-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14291
14292         PR tree-optimization/48497
14293         * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
14294
14295 2011-06-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14296
14297         PR tree-optimization/46728
14298         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
14299         to use gimple_val_nonnegative_real_p.
14300         * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
14301         * gimple.h (gimple_val_nonnegative_real_p): New declaration.
14302
14303 2011-06-07  H.J. Lu  <hongjiu.lu@intel.com>
14304
14305         * config/i386/i386.md (*movsf_internal): Optimize AVX check.
14306
14307 2011-06-07  Sergey Grechanik  <mouseentity@ispras.ru>
14308
14309         * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
14310         constant vectors.
14311
14312 2011-06-07  Richard Guenther  <rguenther@suse.de>
14313
14314         * stor-layout.c (initialize_sizetypes): Initialize all
14315         sizetypes based on target definitions.
14316         (set_sizetype): Remove.
14317         * tree.c (build_common_tree_nodes): Do not call set_sizetype.
14318         * tree.h (set_sizetype): Remove.
14319
14320 2011-06-07  Nick Clifton  <nickc@redhat.com>
14321
14322         * config.gcc: Unify V850 architecture options and add support for
14323         newer V850 architectures.
14324         * config/v850/t-v850e: Delete.
14325
14326 2011-06-07  Richard Guenther  <rguenther@suse.de>
14327
14328         * tree.c (build_common_tree_nodes): Also initialize size_type_node.
14329         Call set_sizetype from here.
14330
14331 2011-06-07  Andrew Stubbs  <ams@codesourcery.com>
14332
14333         * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
14334         (*maddhisi4tb, *maddhisi4tt): New define_insns.
14335
14336 2011-06-07  Bernd Schmidt  <bernds@codesourcery.com>
14337             Andrew Stubbs  <ams@codesourcery.com>
14338
14339         * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
14340         multiplies.
14341         * doc/md.texi (Canonicalization of Instructions): Document widening
14342         multiply canonicalization.
14343
14344 2011-06-07  Jakub Jelinek  <jakub@redhat.com>
14345
14346         PR gcov-profile/49299
14347         * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
14348
14349 2011-06-07  Ira Rosen  <ira.rosen@linaro.org>
14350
14351         * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
14352         a pointer.
14353         * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
14354         vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
14355         vect_recog_pow_pattern): Likewise.
14356         (vect_pattern_recog_1): Remove declaration.
14357         (widened_name_p): Remove declaration.  Add new argument to specify
14358         whether to check that both types are either signed or unsigned.
14359         (vect_recog_widen_mult_pattern): Update documentation.  Handle
14360         unsigned patterns and multiplication by constants.
14361         (vect_pattern_recog_1): Update vect_recog_func references.  Use
14362         statement information from the statement returned from pattern
14363         detection functions.
14364         (vect_pattern_recog): Update vect_recog_func reference.
14365         * tree-vect-stmts.c (vectorizable_type_promotion): For widening
14366         multiplication by a constant use the type of the other operand.
14367
14368 2011-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
14369
14370         PR rtl-optimization/49145
14371         * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
14372
14373 2011-06-06  Jakub Jelinek  <jakub@redhat.com>
14374
14375         PR debug/49262
14376         * dwarf2out.c (native_encode_initializer): Decrement count in each
14377         iteration.
14378
14379         PR debug/49294
14380         * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
14381         non-MODE_INT modes.
14382
14383         PR c++/49264
14384         * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
14385         if stmt folded into nothing.
14386         * tree-inline.c (fold_marked_statements): If a builtin at the end of
14387         a bb folded into nothing, just update cgraph edges and move to next bb.
14388         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
14389         to be NULL.  Don't compute count and frequency if new_call is NULL.
14390
14391 2011-06-04  Diego Novillo  <dnovillo@google.com>
14392
14393         * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
14394         (cgraph.o): Likewise.
14395         (cgraphunit.o): Likewise.
14396         * cgraphunit.c: Include lto-streamer.h
14397         (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
14398         if LTO is enabled.
14399         * lto-streamer-in.c (unpack_value_fields): Call
14400         streamer_hooks.unpack_value_fields if set.
14401         (lto_materialize_tree): For unhandled nodes, first try to
14402         call lto_streamer_hooks.alloc_tree, if it exists.
14403         (lto_input_ts_decl_common_tree_pointers): Move reading of
14404         DECL_INITIAL to lto_streamer_read_tree.
14405         (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
14406         (lto_streamer_read_tree): New.
14407         (lto_reader_init): Rename from lto_init_reader.
14408         Move initialization code to lto/lto.c.
14409         * lto-streamer-out.c (pack_value_fields): Call
14410         streamer_hooks.pack_value_fields if set.
14411         (lto_output_tree_ref): For tree nodes that are not normally indexable,
14412         call streamer_hooks.indexable_with_decls_p before giving up.
14413         (lto_output_ts_decl_common_tree_pointers): Move handling
14414         for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
14415         (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
14416         lto_is_streamable.  Call lto_streamer_hooks.output_tree_header if set.
14417         (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
14418         (lto_streamer_write_tree): New.
14419         (lto_output): Call lto_streamer_init directly.
14420         (lto_writer_init): Remove.
14421         * lto-streamer.c (streamer_hooks): New.
14422         (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
14423         instead of lto_preload_common_nodes.
14424         (lto_is_streamable): Move from lto-streamer.h
14425         (lto_streamer_hooks_init): New.
14426         (streamer_hooks): New.
14427         (streamer_hooks_init): New.
14428         * lto-streamer.h (struct output_block): Forward declare.
14429         (struct lto_input_block): Likewise.
14430         (struct data_in): Likewise.
14431         (struct bitpack_d): Likewise.
14432         (struct streamer_hooks): Declare.
14433         (streamer_hooks): Declare.
14434         (lto_streamer_hooks_init): Declare.
14435         (lto_streamer_write_tree): Declare.
14436         (lto_streamer_read_tree): Declare.
14437         (streamer_hooks_init): Declare.
14438         (lto_is_streamable): Move to lto-streamer.c
14439
14440 2011-06-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14441
14442         * longlong.h (smul_ppmm): The resulting register pair contains the
14443         higher order word first.
14444
14445 2011-06-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14446
14447         PR tree-optimization/46728
14448         * builtins.c (powi_table): Remove.
14449         (powi_lookup_cost): Remove.
14450         (powi_cost): Remove.
14451         (expand_powi_1): Remove.
14452         (expand_powi): Remove.
14453         (expand_builtin_pow_root): Remove.
14454         (expand_builtin_pow): Remove.
14455         (expand_builtin_powi): Eliminate handling of constant exponent.
14456         (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
14457
14458 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
14459
14460         * cprop.c (local_cprop_pass): Don't set changed for debug insns.
14461
14462 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
14463
14464         * dce.c (reset_unmarked_insns_debug_uses): New.
14465         (delete_unmarked_insns): Skip debug insns.
14466         (prescan_insns_for_dce): Likewise.
14467         (rest_of_handle_ud_dce): Reset debug uses of removed sets.
14468         * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
14469         active reg can be found.
14470         (subst_all_stack_regs_in_debug_insn): New.  Reset debug insn then.
14471         (convert_regs_1): Use it.
14472
14473 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
14474
14475         * tree-pretty-print.c (dump_function_header): Add flags.
14476         Don't dump decl_uid with nouid.
14477         * tree-pretty-print.h (dump_function_header): Adjust.
14478         * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
14479         * passes.c (pass_init_dump_file): Pass dump_flags on.
14480         * tree-cfg.c (gimple_dump_cfg): Pass flags on.
14481
14482 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
14483
14484         PR bootstrap/49270
14485         * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
14486
14487 2011-06-06  Mikael Pettersson  <mikpe@it.uu.se>
14488
14489         PR tree-optimization/49243
14490         * calls.c (setjmp_call_p): Also check if fndecl has the
14491         returns_twice attribute.
14492
14493 2011-06-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14494
14495         * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
14496         -ffast-math etc.
14497
14498 2011-06-06  Richard Henderson  <rth@redhat.com>
14499             Georg-Johann Lay  <avr@gjlay.de>
14500
14501         PR target/42210
14502         * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
14503         New predicates.
14504         * config/avr/avr.md ("insv"): New insn expander.
14505         ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
14506         "*insv.not.io", "*insv.reg"): New insns.
14507
14508 2011-06-06  Hans-Peter Nilsson  <hp@bitrange.com>
14509
14510         PR target/49285
14511         * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
14512         to nonimmediate_operand from memory_operand for the operand that is to
14513         be forced to memory by the expander.  Lose the constraints.
14514
14515 2011-06-05  Eric Botcazou  <ebotcazou@adacore.com>
14516
14517         * config/sparc/sparc.c (output_return): Fix thinko in the output of an
14518         EH return when delayed branches are disabled.
14519
14520 2011-06-05  Uros Bizjak  <ubizjak@gmail.com>
14521
14522         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
14523         Remove MODE_TI handling.  Remove SSE1 handling in attribute "mode"
14524         calculation.
14525         (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
14526         Simplify MODE_V1DF and MODE_V2SF handling.
14527         (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
14528         Simplify MODE_SF handling.
14529
14530 2011-06-04  Jan Hubicka  <jh@suse.cz>
14531
14532         PR tree-optimization/48893
14533         PR tree-optimization/49091
14534         PR tree-optimization/49179
14535         * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
14536         Bounds check.
14537
14538 2011-06-04  Jan Hubicka  <jh@suse.cz>
14539
14540         PR lto/48954
14541         * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
14542         bitmaps.
14543
14544 2011-06-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
14545
14546         * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
14547
14548 2011-06-04  Jakub Jelinek  <jakub@redhat.com>
14549
14550         PR target/49281
14551         * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
14552         to be strictly smaller than 1 << shiftcount.
14553
14554 2011-06-04  Jan Hubicka  <jh@suse.cz>
14555
14556         PR tree-optimize/48929
14557         * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
14558         of empty predicate.
14559
14560 2011-06-04  Alexandre Oliva  <aoliva@redhat.com>
14561
14562         PR debug/48333
14563         * calls.c (emit_call_1): Prefer the __builtin declaration of
14564         builtin functions.
14565
14566 2011-06-03   Diego Novillo  <dnovillo@google.com>
14567
14568         * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
14569         (lto_input_tree_pointers): Likewise.
14570         * lto-streamer-out.c (pack_value_fields): Likewise.
14571         (lto_output_tree_pointers): Likewise.
14572         * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
14573         and OPTIMIZATION_NODE.
14574
14575 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14576
14577         * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
14578         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
14579         * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
14580         * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
14581         * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
14582         * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
14583         * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
14584         * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
14585         * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
14586         * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
14587         * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
14588         * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
14589         * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
14590         * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
14591         * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
14592         * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
14593         * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
14594         * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
14595         * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
14596         * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
14597         * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
14598         * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
14599         * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
14600         * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
14601         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
14602         * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
14603         * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
14604         * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
14605         * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
14606         * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
14607         * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
14608         * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
14609         * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
14610         * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
14611         * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
14612         * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
14613         * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
14614         * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
14615         * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
14616         * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
14617         * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
14618         * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
14619         * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
14620         * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
14621         * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
14622         * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
14623         * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
14624         * system.h (MD_UNWIND_SUPPORT): Poison.
14625         * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
14626         * doc/tm.texi: Regenerate.
14627         * unwind-dw2.c: Include md-unwind-support.h instead of
14628         MD_UNWIND_SUPPORT.
14629         * config/ia64/unwind-ia64.c: Likewise.
14630         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
14631
14632 2011-06-03  Jack Howarth  <howarth@bromo.med.uc.edu>
14633
14634         * varpool.c (varpool_extra_name_alias): Return NULL, not false.
14635
14636 2011-06-03  Richard Henderson  <rth@redhat.com>
14637             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14638
14639         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
14640         (sigill_hdlr): Correct insn, insn size.
14641         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
14642
14643 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14644
14645         * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
14646         t-slibgcc-dummy.
14647         * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
14648         * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
14649         * config/mips/t-iris: Remove.
14650         * config/mips/t-irix6: New file.
14651         * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
14652
14653 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14654
14655         * Makefile.in (LIB2ADDEHDEP): Remove.
14656         * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
14657         * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
14658         * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
14659         * config/t-darwin (LIB2ADDEHDEP): Remove.
14660         * config/t-freebsd (LIB2ADDEHDEP): Remove.
14661         * config/t-linux (LIB2ADDEHDEP): Remove.
14662
14663 2011-06-03  Diego Novillo  <dnovillo@google.com>
14664
14665         * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
14666         (lto_register_var_decl_in_symtab): Likewise.
14667         (lto_register_function_decl_in_symtab): Likewise.
14668         (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
14669         logic to uniquify_nodes.
14670
14671 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14672
14673         * config/alpha/t-osf5: Remove.
14674         * config/alpha/t-osf-pthread: Remove.
14675         * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
14676         * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
14677
14678 2011-06-03  Julian Brown  <julian@codesourcery.com>
14679
14680         * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
14681         (strongarm1110): Use strongarm tuning.
14682         * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
14683         * config/arm/arm.c (arm_strongarm_tune): New.
14684         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
14685         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
14686         (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
14687         setting, using previous defaults or 1 for Cortex-A5.
14688         (arm_option_override): Set max_insns_skipped from current tuning.
14689
14690 2011-06-03  Nathan Sidwell  <nathan@codesourcery.com>
14691
14692         * doc/install.texi (Options specification): Document --with-specs.
14693
14694 2011-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
14695
14696         * config/arm/neon.md (orndi3_neon): Actually split it.
14697
14698 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
14699
14700         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
14701         * var-tracking.c (reverse_op): Limite recurse depth to 5.
14702
14703 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
14704
14705         PR debug/47590
14706         * target.def (delay_sched2, delay_vartrack): New.
14707         * doc/tm.texi.in: Update.
14708         * doc/tm.texi: Rebuild.
14709         * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
14710         * var-tracking.c (gate_handle_var_tracking): Likewise.
14711         * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
14712         (bfin_flag_var_tracking): Drop.
14713         (output_file_start): Don't save and override flag_var_tracking.
14714         (bfin_option_override): Ditto flag_schedule_insns_after_reload.
14715         (bfin_reorg): Test original variables.
14716         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
14717         * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
14718         (ia64_flag_var_tracking): Drop.
14719         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
14720         (ia64_file_start): Don't save and override flag_var_tracking.
14721         (ia64_override_options_after_change): Ditto
14722         flag_schedule_insns_after_reload.
14723         (ia64_reorg): Test original variables.
14724         * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
14725         (picochip_flag_var_tracking): Drop.
14726         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
14727         (picochip_option_override): Don't save and override
14728         flag_schedule_insns_after_reload.
14729         (picochip_asm_file_start): Ditto flag_var_tracking.
14730         (picochip_reorg): Test original variables.
14731         * config/spu/spu.c (spu_flag_var_tracking): Drop.
14732         (TARGET_DELAY_VARTRACK): Define.
14733         (spu_var_tracking): New.
14734         (spu_machine_dependent_reorg): Call it.
14735         (asm_file_start): Don't save and override flag_var_tracking.
14736
14737 2011-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
14738
14739         PR target/49163
14740         * config/sh/predicates.md (general_movsrc_operand): Return 0
14741         for memory and memory subreg of which address is an invalid
14742         indexed address for QI and HImode.
14743         (general_movdst_operand): Likewise.
14744
14745 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
14746
14747         * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
14748         edges only, when there is a non-local label in the function.
14749         * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
14750
14751 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
14752
14753         * config/i386/constraints.md (Y3): New register constraint.
14754         * config/i386/sse.md (*vec_interleave_highv2df): Merge with
14755         *sse3_interleave_highv2df and *sse2_interleave_highv2df.
14756         (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
14757         *sse2_interleave_lowv2df.
14758
14759 2011-06-02  Julian Brown  <julian@codesourcery.com>
14760
14761         * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
14762         * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
14763         (arm_cortex_a5_tune): New.
14764
14765 2011-06-02  Julian Brown  <julian@codesourcery.com>
14766
14767         * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
14768         * config/arm/arm.c (arm_default_branch_cost): New.
14769         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
14770         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
14771         (arm_fa726_tune): Set branch_cost field using
14772         arm_default_branch_cost.
14773         * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
14774         current_tune structure.
14775         * dojump.c (tm_p.h): Include file.
14776
14777 2011-06-02  Julian Brown  <julian@codesourcery.com>
14778
14779         * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
14780         tuning.
14781         (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
14782         (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
14783         * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
14784         field.
14785         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
14786         (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
14787         (arm_fa726te_tune): Add prefer_constant_pool setting.
14788         (arm_v6t2_tune, arm_cortex_tune): New.
14789         * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
14790         prefer_constant_pool setting.
14791
14792 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
14793
14794         * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
14795         switch statement.
14796         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
14797         (*movdf_internal) <case 6,7,8>: Ditto.
14798
14799         * config/i386/constraints.md (Y4): New register constraint.
14800         * config/i386/sse.md (vec_set<mode>_0): Merge with
14801         *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
14802         (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
14803         *vec_extractv2di_1_sse.
14804         (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
14805         and *vec_concatv2di_rex64_sse.
14806
14807 2011-06-02  Stuart Henderson  <shenders@gcc.gnu.org>
14808
14809         PR target/48807
14810         * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
14811         of cgraph_local_info for null before attempting to use it.
14812
14813 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
14814
14815         * function.h (struct stack_usage): Remove dynamic_alloc_count field.
14816         (current_function_dynamic_alloc_count): Delete.
14817         * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
14818         (expand_builtin_nonlocal_goto): Remove obsolete comment.
14819         (expand_builtin_update_setjmp_buf): Remove dead code.
14820         * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
14821         * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
14822         support.
14823         * function.c (instantiate_virtual_regs): Likewise.
14824         * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
14825         for a block with a single abnormal incoming edge.
14826         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
14827         (SETJMP_VIA_SAVE_AREA): Delete.
14828         * config/sparc/sparc-protos.h (load_got_register): Declare.
14829         * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
14830         (load_got_register): Make global.
14831         (sparc_frame_pointer_required): Add 'static'.
14832         (sparc_can_eliminate): Likewise.  Call sparc_frame_pointer_required.
14833         (sparc_builtin_setjmp_frame_value): New function.
14834         * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
14835         (save_stack_nonlocal): New expander.
14836         (restore_stack_nonlocal): Likewise.
14837         (nonlocal_goto): Remove modes, adjust predicates and reimplement.
14838         (nonlocal_goto_internal): New insn.
14839         (goto_handler_and_restore): Delete.
14840         (builtin_setjmp_setup): Likewise.
14841         (do_builtin_setjmp_setup): Likewise.
14842         (setjmp): Likewise.
14843         (builtin_setjmp_receiver): New expander.
14844
14845 2011-06-01  David Li  <davidxl@google.com>
14846
14847         PR middle-end/49261
14848         * tree-pretty-print.c (dump_function_header): Format cleanup.
14849
14850 2011-06-01  Kaz Kojima  <kkojima@gcc.gnu.org>
14851
14852         PR target/49238
14853         * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
14854         needed when original operands are used for msw_skip comparison.
14855
14856 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
14857
14858         PR debug/49250
14859         * var-tracking.c (add_uses, add_stores): Don't call
14860         cselib_subst_to_values on ENTRY_VALUE.
14861
14862 2011-06-01  Diego Novillo  <dnovillo@google.com>
14863
14864         * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
14865         output_record_start with LTO_null instead of output_zero.
14866         (lto_output_ts_binfo_tree_pointers): Likewise.
14867         (lto_output_tree): Likewise.
14868         (output_eh_try_list): Likewise.
14869         (output_eh_region): Likewise.
14870         (output_eh_lp): Likewise.
14871         (output_eh_regions): Likewise.
14872         (output_bb): Likewise.
14873         (output_function): Likewise.
14874         (output_unreferenced_globals): Likewise.
14875         * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
14876         instead of NUM_TREE_CODES.
14877         (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
14878         (lto_output_int_in_range): Change << to >> when shifting VAL.
14879
14880 2011-06-01  Diego Novillo  <dnovillo@google.com>
14881
14882         * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
14883         Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
14884
14885 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
14886
14887         PR target/45074
14888         * optabs.h (valid_multiword_target_p): Declare.
14889         * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
14890         doing multi-word operations.
14891         * optabs.c (expand_binop): Likewise.
14892         (expand_doubleword_bswap): Likewise.
14893         (expand_absneg_bit): Likewise.
14894         (expand_unop): Likewise.
14895         (expand_copysign_bit): Likewise.
14896         (multiword_target_p): New function.
14897
14898 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
14899
14900         PR rtl-optimization/48830
14901         PR rtl-optimization/48808
14902         PR rtl-optimization/48792
14903         * reload.c (push_reload): Check contains_reg_of_mode.
14904         * reload1.c (strip_paradoxical_subreg): New function.
14905         (gen_reload_chain_without_interm_reg_p): Use it to handle
14906         paradoxical subregs.
14907         (emit_output_reload_insns, gen_reload): Likewise.
14908
14909 2011-06-01  David Li  <davidxl@google.com>
14910
14911         * predict.c : Change pass name
14912         * ipa.c: Ditto.
14913         * dce.c: Ditto.
14914         * tree-profile.c: Ditto.
14915         * except.c: Ditto.
14916
14917 2011-06-01  David Li  <davidxl@google.com>
14918
14919         * tree-pretty-print.c (dump_function_header): New function.
14920         * final.c (rest_of_clean_state): Use header dumper.
14921         * tree-cfg.c (gimple_dump_cfg): Use header dumper.
14922         * passes.c (pass_init_dump_file): Use header dumper.
14923
14924 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
14925
14926         * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
14927         ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
14928         popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
14929         New functions.
14930         (mem_loc_descriptor): Use them.
14931
14932         * var-tracking.c (create_entry_value): New function.
14933         (vt_add_function_parameter): Use it.
14934
14935 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14936
14937         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
14938         Include <signal.h>, <ucontext.h>.
14939         (sigill_caught): Define.
14940         (sigill_hdlr): New function.
14941         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
14942         insns can be executed.
14943         * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
14944         * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
14945
14946 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14947
14948         * config/t-slibgcc-darwin: Move to ...
14949         * config/t-slibgcc-dummy: ... this.  Clarify comments.
14950         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
14951         powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
14952         (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
14953         (i[34567]86-*-rtems*): Remove extra_parts.  Use i386/t-rtems.
14954         Remove i386/t-crtstuff from tmake_file.
14955         (i[34567]86-*-solaris2*): Remove t-svr4,
14956         t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
14957         t-slibgcc-dummy.
14958         (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
14959         (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
14960         sparc/t-crtfm from tmake_file.
14961         (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
14962         t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
14963         Remove extra_parts.
14964         * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
14965         * config/i386/t-nwld (SHLIB_LINK): Remove.
14966         * config/i386/t-rtems-i386: Rename to ...
14967         * config/i386/t-rtems: ... this.
14968         ($(T)crti.o, $(T)crtn.o): Remove.
14969         (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
14970         (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
14971         (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
14972         * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
14973         EXTRA_MULTILIB_PARTS): Remove.
14974         * config/sparc/t-sol2-64: Likewise.
14975         * config/sparc/t-sol2: Remove.
14976         * config/sparc/t-crtin: Remove.
14977         * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
14978         * config/i386/gmon-sol2.c: Remove.
14979         * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
14980         * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
14981         * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
14982         * config/i386/sol2-gc1.asm: Remove.
14983         * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
14984         * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
14985         * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
14986         * config/t-slibgcc-sld: Remove.
14987
14988 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
14989
14990         * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
14991         base_type_for_mode with op_mode instead of mode.
14992
14993 2011-06-01  Paul Brook  <paul@cpodesourcery.com>
14994
14995         * config/arm/arm-cores.def: Add cortex-r5.  Add DIV flags to
14996         Cortex-A15.
14997         * config/arm/arm-tune.md: Regenerate.
14998         * config/arm/arm-tables.opt: Regenerate.
14999         * config/arm/arm.c (FL_DIV): Rename...
15000         (FL_THUMB_DIV): ... to this.
15001         (FL_ARM_DIV): Define.
15002         (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
15003         (arm_arch_hwdiv): Remove.
15004         (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
15005         (arm_issue_rate): Add cortexr5.
15006         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
15007         __ARM_ARCH_EXT_IDIV__.
15008         (TARGET_IDIV): Define.
15009         (arm_arch_hwdiv): Remove.
15010         (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
15011         * config/arm/arm.md (tune_cortexr4): Add cortexr5.
15012         (divsi3, udivsi3): New patterns.
15013         * config/arm/thumb2.md (divsi3, udivsi3): Remove.
15014         * doc/invoke.texi: Document ARM -mcpu=cortex-r5
15015
15016 2011-06-01  Martin Jambor  <mjambor@suse.cz>
15017
15018         * ipa-utils.c (ipa_dfs_info): New field scc_no.
15019         * ipa-utils.c (searchc): Set scc_no.
15020
15021 2011-06-01  Martin Jambor  <mjambor@suse.cz>
15022
15023         * ipa-utils.c (searchc_env): New field allow_overwritable.
15024         (searchc): do not ignore edges to overwritable nodes if indicated
15025         by env->allow_overwritable.
15026         (ipa_reduced_postorder): Set env.allow_overwritable.
15027
15028 2011-06-01  Richard Guenther  <rguenther@suse.de>
15029
15030         * tree.c (free_lang_data): Do not reset boolean_type_node nor
15031         char_type_node.
15032         * lto-streamer.c (lto_record_common_node): Take node pointer,
15033         do not register types.
15034         (lto_preload_common_nodes): Explicitly skip preloading nodes
15035         that differ between frontends.
15036
15037 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
15038
15039         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
15040         NON_FLOAT_REGS.
15041
15042 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
15043
15044         * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
15045         parameter value for dump. Dump cost on outermost call only.
15046         (rs6000_memory_move_cost): Dump cost on outermost call only.
15047
15048 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
15049
15050         * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
15051         DW_OP_GNU_convert ops.
15052
15053         * cselib.c (promote_debug_loc): Allow l->next non-NULL for
15054         cselib_preserve_constants.
15055         (cselib_lookup_1): If cselib_preserve_constants,
15056         a new VALUE is being created for REG and there is a VALUE for the
15057         same register in wider mode, add another loc with lowpart SUBREG of
15058         the wider VALUE.
15059         (cselib_subst_to_values): Handle ENTRY_VALUE.
15060         * var-tracking.c  (replace_expr_with_values): Return NULL for
15061         ENTRY_VALUE too.
15062         * dwarf2out.c (convert_descriptor_to_signed): New function.
15063         (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
15064         instead of two shifts.
15065         (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
15066         the right mode if needed.
15067         (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
15068         (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
15069         convert_descriptor_to_signed.
15070         (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
15071         BSWAP, ROTATE, ROTATERT>: Handle these rtls.
15072
15073         PR target/48688
15074         * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
15075
15076 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
15077
15078         * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
15079         of X87MODEI12 and SWI48x instead of SSEMODEI24.
15080         (SWI248x): New mode iterator, rename from X87MODEI.
15081         (X87MODEI): Remove mode iterator.
15082         (X87MODEI12): Ditto.
15083         (SSEMODEI24): Ditto.
15084
15085 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
15086
15087         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
15088         * doc/invoke.texi: Document max-vartrack-expr-depth.
15089         * var-tracking.c (EXPR_DEPTH): New.
15090         (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
15091
15092 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
15093
15094         * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
15095         * config/i386/sse.md: Add n to negated FMA pattern names.
15096
15097 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
15098
15099         * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
15100
15101 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
15102
15103         * gengtype-state.c (read_state_params_structs): Initialize previous.
15104
15105 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
15106
15107         * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
15108         (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
15109
15110 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
15111
15112         * config/i386/i386.md (*movtf_internal): Avoid allocating general
15113         registers.  Penalize F*r->o alternative to prevent partial memory
15114         stalls.  Slightly penalize *roF->*r alternative.  Generate SSE
15115         CONST_DOUBLE immediates when optimizing function for size.  Do not move
15116         CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
15117         (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
15118         (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
15119         (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
15120         alternatives.
15121         (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
15122
15123         (fp_register_operand splitters): Use fp_register_operand
15124         constraint.  Do not use FP_REG_P in insn condition.
15125         (any_fp_register_operand splitters): Use any_fp_register_operand
15126         constraint.  Do not use ANY_FP_REG_P in insn condition.
15127
15128 2011-05-31  Jan Hubicka  <jh@suse.cz>
15129
15130         * cgraph.h (cgraph_inline_failed_t): Give enum a name
15131         * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
15132         (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
15133         (lto_output_edge): Use output_enum and var_len_unsigned.
15134         (lto_output_varpool_node): Likewise.
15135         (input_overwrite_node): Do not take resolution parameter;
15136         extract it from a bitpack.
15137         (input_node): Do not read resolution; use input_enum and
15138         var_len_unsigned.
15139         (input_varpool_node): Likewise.
15140         (input_edge): Likewise.
15141         (input_cgraph_1): Likewise.
15142
15143 2011-05-31  Richard Guenther  <rguenther@suse.de>
15144
15145         * gimple.c (gimple_register_canonical_type): Do not register
15146         any types via gimple_register_type.
15147
15148 2011-05-31  Jan Hubicka  <jh@suse.cz>
15149
15150         * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
15151         of thunks.
15152
15153 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
15154
15155         PR rtl-optimization/49235
15156         * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
15157         (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
15158
15159 2011-05-31  Ira Rosen  <ira.rosen@linaro.org>
15160
15161         PR tree-optimization/49093
15162         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
15163         data references.
15164
15165 2011-05-31  Dodji Seketeli  <dodji@redhat.com>
15166
15167         PR debug/49047
15168         * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
15169         for concrete functions containing the code of cloned functions.
15170
15171 2011-05-31  Richard Guenther  <rguenther@suse.de>
15172
15173         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
15174         to ...
15175         (forward_propagate_into_comparison_1): ... this.
15176         (forward_propagate_comparison): Rename to ...
15177         (forward_propagate_into_comparison): ... this.  Split out
15178         real forward propagation code to ...
15179         (forward_propagate_comparison): ... this.
15180         (forward_propagate_into_gimple_cond): Remove looping.
15181         (forward_propagate_into_cond): Likewise.
15182         (simplify_not_neg_expr): Return whether we have done something.
15183         (simplify_gimple_switch): Likewise.
15184         (tree_ssa_forward_propagate_single_use_vars): Rename to ...
15185         (ssa_forward_propagate_and_combine): ... this.  Re-structure
15186         to do a forward forward-propagation walk on BBs and a backward
15187         stmt combining walk on BBs.  Consistently re-scan changed statements.
15188         (pass_forwprop): Adjust.
15189
15190 2011-05-30  Ian Lance Taylor  <iant@google.com>
15191
15192         * godump.c (go_format_type): Correct length of name added to
15193         obstack for anonymous field.
15194
15195 2011-05-30  Kaz Kojima  <kkojima@gcc.gnu.org>
15196
15197         PR target/49186
15198         * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
15199         part of the second operand is 0.
15200
15201 2011-05-30  Uros Bizjak  <ubizjak@gmail.com>
15202
15203         * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
15204         to prevent partial memory stalls.  Do not move CONST_DOUBLEs directly
15205         to memory for !TARGET_MEMORY_MISMATCH_STALL.
15206         (*movdf_internal_rex64): Do not penalize F->r alternative.
15207         (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
15208         memory stalls.  Generate SSE and x87 CONST_DOUBLE immediates only
15209         when optimizing function for size.  Do not move CONST_DOUBLEs
15210         directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
15211         (FP move splitters): Merge {TF,XF,DF}mode splitters.  Do not handle
15212         SUBREGs.  Do not check for MEM_P operands in the insn condition,
15213         check for ANY_FP_REGNO_P instead.
15214         * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
15215         TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
15216         function for speed.
15217         * config/i386/i386.c (ix86_option_override_internal): Do not
15218         set TARGET_INTEGER_DFMODE_MOVES here.
15219
15220 2011-05-30  H.J. Lu  <hongjiu.lu@intel.com>
15221
15222         PR target/49168
15223         * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
15224
15225 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
15226
15227         * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
15228         DW_TAG_rvalue_reference_type even for
15229         -gdwarf-4 -fno-debug-types-section.
15230
15231 2011-05-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15232
15233         PR tree-optimization/46728
15234         * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
15235         (build_and_insert_binop): New.
15236         (gimple_expand_builtin_pow): Reorder args for
15237         build_and_insert_call; use build_and_insert_binop; add more
15238         optimizations for fractional exponents.
15239
15240 2011-05-30  Nathan Froyd  <froydnj@gcc.gnu.org>
15241
15242         PR bootstrap/49190
15243
15244         Revert:
15245         2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
15246
15247         * tree.h (struct tree_identifier): Inherit from tree_typed, not
15248         tree_common.
15249         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
15250         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
15251         TS_BASE instead of TS_COMMON.
15252         * varasm.c (assemble_name): Remove assert.
15253
15254 2011-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
15255
15256         * config.gcc: Keep obselete list sorted.
15257
15258 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
15259             Eric Botcazou  <ebotcazou@adacore.com>
15260
15261         * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
15262         crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
15263         there is a DRAP register and arg_pointer_rtx is the CFA pointer.
15264         (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
15265         (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
15266
15267 2011-05-30  Richard Guenther  <rguenther@suse.de>
15268
15269         * gimple.c (gimple_types_compatible_p_1): Compare record
15270         and union type members properly.
15271
15272 2011-05-30  Richard Guenther  <rguenther@suse.de>
15273
15274         PR tree-optimization/49210
15275         * ipa-split.c (split_function): Care for the case where the call
15276         result is not trivially convertible to the result holding variable.
15277
15278 2011-05-30  Richard Guenther  <rguenther@suse.de>
15279
15280         PR tree-optimization/49218
15281         * tree-vrp.c (adjust_range_with_scev): Properly check whether
15282         overflow occured.
15283
15284 2011-05-30  Richard Guenther  <rguenther@suse.de>
15285
15286         * tree-ssa-forwprop.c (forward_propagate_into_comparison):
15287         New function split out from ...
15288         (forward_propagate_into_gimple_cond): ... here.  Adjust.
15289         (forward_propagate_into_cond): Likewise.
15290         (forward_propagate_comparison): Also propagate into
15291         comparisons on assignment RHS.  Change return value to
15292         behave similar to forward_propagate_into_cond.
15293         (tree_ssa_forward_propagate_single_use_vars): Handle
15294         strict-overflow warnings properly for forward_propagate_comparison.
15295
15296 2011-05-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15297
15298         * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
15299         from plugin linker.
15300         * configure: Regenerate.
15301
15302 2011-05-30  Ira Rosen  <ira.rosen@linaro.org>
15303
15304         PR tree-optimization/49199
15305         * tree-vect-loop.c (vect_is_slp_reduction): Check that the
15306         non-reduction operands are either defined in the loop or by induction.
15307
15308 2011-05-29  Xinliang David Li  <davidxl@google.com>
15309
15310         * opts-global.c (handle_common_deferred_options): Handle new options.
15311         * passes.c (register_one_dump_file): Call register_pass_name.
15312         (execute_one_pass): Check explicit enable/disable flag.
15313         (passr_hash): New function.
15314         (passr_eq): Ditto.
15315         (register_pass_name): Ditto.
15316         (get_pass_by_name): Ditto.
15317         (pass_hash): Ditto.
15318         (pass_eq): Ditto.
15319         (enable_pass): Ditto.
15320         (disable_pass): Ditto.
15321         (is_pass_explicitly_enabled_or_disabled): Ditto.
15322
15323 2011-05-29  Uros Bizjak  <ubizjak@gmail.com>
15324
15325         * config/i386/i386.md (*movoi_internal_avx): Use
15326         standard_sse_constant_opcode for alternative 0.
15327         (*movti_internal_sse): Ditto.
15328         (*movti_internal_rex64): Use standard_sse_constant_opcode for
15329         alternative 2.
15330         (*movdi_internal_rex64): Use standard_sse_constant_opcode for
15331         sselog1 type moves.
15332         (*movsi_internal): Ditto.
15333         (*movdi_internal): Ditto.  Add ssecvt type moves.
15334
15335 2011-05-29  Eric Botcazou  <ebotcazou@adacore.com>
15336
15337         PR target/48830
15338         * rtlanal.c (simplify_subreg_regno): Adjust comment.
15339
15340 2011-05-29  Jakub Jelinek  <jakub@redhat.com>
15341
15342         PR rtl-optimization/49095
15343         * config/i386/predicates.md (plusminuslogic_operator): New predicate.
15344         * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
15345
15346 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
15347
15348         PR target/43995
15349         * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
15350         recurse_p argument.  Only follow register copies if it is set,
15351         and prevent mips_find_pic_call_symbol from recursing.
15352         (mips_find_pic_call_symbol): Add a recurse_p argument.
15353         Pass it to mips_pic_call_symbol_from_set.
15354         (mips_annotate_pic_calls): Update accordingly.
15355
15356 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
15357
15358         * emit-rtl.c (try_split): Use a loop to search for
15359         NOTE_INSN_CALL_ARG_LOCATIONs.
15360
15361 2011-05-29  Richard Guenther  <rguenther@suse.de>
15362
15363         PR tree-optimization/49217
15364         * ipa-pure-const.c (propagate_pure_const): Fix typos.
15365
15366 2011-05-28  Jan Hubicka  <jh@suse.cz>
15367
15368         * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
15369         length.
15370         (string_slot_free): Remove
15371         (create_output_block): Initialize obstack.
15372         (destroy_output_block): Free obstack.
15373         (lto_string_index): Add PERSISTENT parameter; do not duplicate
15374         the string unless it needs to be added into the hash.
15375         (lto_output_string_with_length): Add persistent attribute;
15376         handle NULL strings.
15377         (lto_output_string): Add PERSISTENT parameter.
15378         (output_string_cst, output_identifier): Simplify.
15379         (lto_output_location_bitpack): Update.
15380         (lto_output_builtin_tree): Update.
15381         * lto-streamer.h (struct output_block): Add obstack.
15382         (lto_output_string, lto_output_string_with_length): Remove
15383         declarations; functions are static now.
15384
15385 2011-05-28  Jan Hubicka  <jh@suse.cz>
15386
15387         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
15388         pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
15389         pack_ts_function_decl_value_fields, lto_output_builtin_tree,
15390         output_cfg, output_gimple_stmt): Use enum and variable length i/o.
15391         * lto-streamer-in.c (input_cfg, input_gimple_stmt,
15392         unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
15393         unpack_ts_decl_with_vis_value_fields,
15394         unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
15395         lto_get_builtin_tree): Use enum and variable length i/o.
15396         * basic-block.h (profile_status_d): Add PROFILE_LAST.
15397         * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
15398         New functions.
15399         (bp_pack_enum, bp_unpack_enum): New macros.
15400
15401 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
15402
15403         * genrecog.c: Remove redundant forward declarations.
15404
15405 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
15406
15407         * config.gcc: Deprecate mips*-*-openbsd*.
15408
15409 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
15410
15411         PR bootstrap/49195
15412         * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
15413         for match_op_dup.
15414
15415 2011-05-27  Andrew Pinski  <pinskia@gmail.com>
15416
15417         PR middle-end/48981
15418         * gengtype.c (vec_prefix_type): New function.
15419         (note_def_vec): Use vec_prefix_type and change the length
15420         attribute to be based on the prefix.
15421         * vec.c: Include coretypes.h before vec.h.
15422         (struct vec_prefix): Remove.
15423         (vec_gc_p_reserve): Change the offsetof to sizeof.
15424         (vec_gc_p_reserve_exact): Likewise.
15425         (vec_heap_p_reserve): Likewise.
15426         (vec_heap_p_reserve_exact): Likewise.
15427         (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
15428         (vec_stack_p_reserve): Change the offsetof to sizeof.
15429         (vec_stack_p_reserve_exact): Likewise.
15430         * vec.h (struct vec_prefix): New struct definition.
15431         (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
15432         (VEC_T_GTY(T,B)): Likewise.
15433         (DEF_VEC_FUNC_P(T)): Use prefix field.
15434         (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
15435         (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
15436
15437 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15438
15439         PR tree-optimization/46728
15440         * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
15441         (powi_as_mults): Add gimple_set_location.
15442         (build_and_insert_call): New.
15443         (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
15444         0.5, 0.25, 0.75, 1./3., or 1./6.
15445
15446 2011-05-27  Alexander Monakov  <amonakov@ispras.ru>
15447
15448         * doc/contrib.texi: Update copyright years.
15449         (Contributors): Add Zdenek Sojka.
15450
15451 2011-05-27  Nathan Froyd  <froydnj@codesourcery.com>
15452
15453         * c-decl.c (c_push_function_context): Copy the current statement
15454         list stack.
15455         (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
15456         (finish_struct): Call building_stmt_list_p instead of checking
15457         cur_stmt_list.
15458         * c-parser.c (c_parser_postfix_expression): Likewise.
15459         * c-typeck.c (c_end_compound_stmt): Likewise.
15460         * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
15461         * tree-iterator.c (stmt_list_cache): Change to a VEC.
15462         (alloc_stmt_list): Adjust for stmt_list_cache's new type.
15463         (free_stmt_list): Likewise.
15464         * tree.h (struct tree_statement_list): Include typed_tree instead
15465         of tree_common.
15466         * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
15467         as TS_TYPED instead of TS_COMMON.
15468
15469 2011-05-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15470             Uros Bizjak  <ubizjak@gmail.com>
15471
15472         * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
15473         (HAVE_AS_IX86_TLSGDPTL): Define.
15474         (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
15475         (HAVE_AS_IX86_TLSLDMPLT): Define.
15476         * configure: Regenerate.
15477         * config.in: Regenerate.
15478         * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
15479         * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
15480         TARGET_SUN_TLS, use @tlsgdplt or @plt.
15481         (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
15482         (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
15483         @tlsldmplt or @plt.
15484         (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
15485
15486 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
15487
15488         * sched-int.h (struct _haifa_deps_insn_data): New members cond
15489         and reverse_cond.
15490         (INSN_COND, INSN_REVERSE_COND): New macros.
15491         * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
15492         once.
15493         (sched_get_condition_with_rev): Cache the results, and look them up
15494         if possible.
15495         (sched_analyze_insn): Destroy INSN_COND of previous insns if they
15496         are clobbered by the current insn.
15497         * target.def (exposed_pipline): New sched data hook.
15498         * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
15499         * doc/tm.texi: Regenerate.
15500
15501 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15502
15503         PR tree-optimization/49170
15504         * tree-ssa-math-opts.c (execute_cse_sincos):  Add checks for
15505         sincos or cexp.
15506
15507 2011-05-27  Richard Guenther  <rguenther@suse.de>
15508
15509         PR middle-end/49189
15510         * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
15511         of comparisons.
15512
15513 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
15514
15515         * haifa-sched.c (sched_scan_info): Remove.
15516         (schedule_block): Call sched_extend_luids rather than sched_init_luids
15517         with NULL args.
15518         (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
15519         Remove functions.
15520         (sched_scan): Remove.
15521         (sched_extend_luids): Renamed from luids_extend_insn and no longer
15522         static.  All callers changed.
15523         (sched_init_insn_luid): Renamed from luids_init_insn and no longer
15524         static.  All callers changed.
15525         (sched_init_luids): Remove all arguments except the first.  All
15526         callers changed.  Don't use sched_scan.
15527         (haifa_init_h_i_d): Likewise.
15528         (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
15529         manually rather than using sched_init_luids.  Likewise with
15530         extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
15531         * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
15532         rather than sched_init_luids with NULL args.
15533         * sel-sched-ir.c (new_insns): Remove variable.
15534         (sched_scan): New static function, previously in haifa-sched.c.  Remove
15535         all arguments but the first two; all callers changed.
15536         (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
15537         rather than sched_init_luids.
15538         (sel_init_bbs): Remove second argument.  All callers changed.
15539         (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
15540         with NULL arguments.
15541         (create_insn_rtx_from_pattern): Likewise.
15542         * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
15543         * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
15544         (sched_init_insn_luid, sched_extend_luids): Declare.
15545         (sched_scan_info_def, sched_scan_info, sched_scan): Remove
15546         declarations.
15547
15548 2011-05-27  Richard Guenther  <rguenther@suse.de>
15549
15550         PR middle-end/49177
15551         * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
15552         A CMP B ? (T) true : (T) false for non-integral types T again.
15553
15554 2011-05-27  Jan Hubicka  <jh@suse.cz>
15555
15556         * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
15557         so 0 means NULL string.
15558         (lto_output_string_with_length): ... here.
15559         (lto_output_string, output_string_cst, output_identifier): Update
15560         handling of NULL strings.
15561         (lto_output_location_bitpack): New function.
15562         (lto_output_location): Use it.
15563         (lto_output_tree_ref): Use output_record_start.
15564         (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
15565         len values.
15566         * lto-streamer-in.c (string_for_index): Break out from ...; offset
15567         values by 1.
15568         (input_string_internal): ... here;
15569         (input_string_cst, input_identifier, lto_input_string): Update handling
15570         of NULL strings.
15571         (lto_input_location_bitpack): New function
15572         (lto_input_location): Use it.
15573         (unpack_ts_type_common_value_fields): Pack align & alias in var len
15574         values.
15575         * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
15576         bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
15577         (bp_pack_value): Sanity check the value range.
15578         * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
15579         New functions.
15580         * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
15581         New functions.
15582
15583 2011-05-27  Hariharan Sandanagobalane  <hariharan@picochip.com>
15584
15585         * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
15586         call_arg_location instructions down the floor.
15587
15588 2011-05-26  Vladimir Makarov  <vmakarov@redhat.com>
15589
15590         PR rtl-optimization/49154
15591         * ira.c (setup_pressure_classes): Process class without sublcasses
15592         as a candidate for pressure classes.
15593
15594 2011-05-26  Richard Sandiford  <rdsandiford@googlemail.com>
15595
15596         PR rtl-optimization/48575
15597         * genrecog.c (position_type): New enum.
15598         (position): New structure.
15599         (decision): Use position structure instead of a string.
15600         (root_pos, peep2_insn_pos_list): New variables.
15601         (next_position, compare_positions): New functions.
15602         (new_decision): Use position structures instead of strings.
15603         (maybe_both_true): Likewise.
15604         (change_state): Likewise.
15605         (write_tree): Likewise.
15606         (make_insn_sequence): Likewise.
15607
15608 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
15609
15610         * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
15611         TS_BASE instead of TS_COMMON.
15612         (find_decls_types_r): Check for TS_TYPED structure before looking at
15613         TREE_TYPE.
15614         * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
15615         Add chain field.
15616         (BLOCK_CHAIN): Use new chain field.
15617
15618 2011-05-26  Pat Haugen  <pthaugen@us.ibm.com>
15619
15620         * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
15621         moves expensive on Power7 also.
15622
15623 2011-05-26  Richard Guenther  <rguenther@suse.de>
15624
15625         * fold-const.c (fold_unary_loc): Remove bogus code.
15626
15627 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
15628
15629         * tree.h (struct tree_identifier): Inherit from tree_typed, not
15630         tree_common.
15631         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
15632         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
15633         TS_BASE instead of TS_COMMON.
15634         * varasm.c (assemble_name): Remove assert.
15635
15636 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
15637
15638         * Makefile.in (srcdirify): Change order so that libgcc_objdir is
15639         substituted first.
15640         * libgcc-std.ver: Delete file.
15641
15642 2011-05-26  Richard Guenther  <rguenther@suse.de>
15643
15644         PR tree-optimization/48702
15645         * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
15646         only when we know the base address is within bounds.
15647         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
15648         assume the base address of TARGET_MEM_REFs is in bounds.
15649
15650 2011-05-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15651
15652         PR target/49099
15653         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
15654         declaration in TARGET_SOLARIS.
15655
15656 2011-05-26  Hariharan Sandanagobalane  <hariharan@picochip.com>
15657
15658         * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
15659         The instruction is then expanded explicitly.
15660         (supported_compare): Callable instruction.
15661         (compare): Likewise.
15662
15663 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
15664
15665         PR c++/49165
15666         * gimplify.c (shortcut_cond_r): Don't special case
15667         COND_EXPRs if they have void type on one of their arms.
15668
15669 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
15670
15671         * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
15672         to reduce duplication, and to achieve a slightly more logical order
15673         of operations.
15674
15675 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
15676
15677         PR tree-optimization/49161
15678         * tree-vrp.c (struct case_info): New type.
15679         (compare_case_labels): Sort case_info structs instead of
15680         trees, and not primarily by CASE_LABEL uids but by
15681         label_for_block indexes.
15682         (find_switch_asserts): Put case labels into struct case_info
15683         array instead of TREE_VEC, adjust sorting, compare label_for_block
15684         values instead of CASE_LABELs.
15685
15686 2011-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
15687
15688         * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
15689         ("orndi3_neon"): Likewise.
15690         ("bic<mode>3_neon"): Likewise.
15691
15692 2011-05-26  Ira Rosen  <ira.rosen@linaro.org>
15693
15694         PR tree-optimization/49038
15695         * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
15696         Ensure at least one epilogue iteration if required by data
15697         accesses with gaps.
15698         * tree-vectorizer.h (struct _loop_vec_info): Add new field
15699         to mark loops that require peeling for gaps.
15700         * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
15701         (vect_get_known_peeling_cost): Take peeling for gaps into
15702         account.
15703         (vect_transform_loop): Generate epilogue if required by data
15704         access with gaps.
15705         * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
15706         loop as requiring an epilogue if there are gaps in the end of
15707         the strided group.
15708
15709 2011-05-25  Ian Lance Taylor  <iant@google.com>
15710
15711         * godump.c (go_format_type): Output the first field with a usable
15712         Go type, if any.
15713
15714 2011-05-25  Ian Lance Taylor  <iant@google.com>
15715
15716         * godump.c (go_format_type): Check for invalid type names, pointer
15717         target types, and struct field types.
15718
15719 2011-05-25  Jason Merrill  <jason@redhat.com>
15720
15721         * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
15722
15723 2011-05-25  Uros Bizjak  <ubizjak@gmail.com>
15724
15725         * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
15726
15727 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
15728
15729         * config/i386/i386.md (*movqi_extv_1)): Put back
15730         "register_operand" check in "type" calculation.
15731         (*movqi_extzv_2): Likewise.
15732
15733 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
15734
15735         * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
15736
15737 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
15738
15739         PR bootstrap/49160
15740         * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
15741         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
15742         __divxc3, __divtc3): Wrap definitions in #ifndef.
15743
15744 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
15745
15746         PR target/49142
15747         * config/i386/i386.md (*movqi_extv_1_rex64): Remove
15748         "register_operand" check and replace q_regs_operand with
15749         QIreg_operand in "type" calculation.
15750         (*movqi_extv_1): Likewise.
15751         (*movqi_extzv_2_rex64): Likewise.
15752         (*movqi_extzv_2): Likewise.
15753
15754         * config/i386/predicates.md (QIreg_operand): New.
15755
15756 2011-05-25  Richard Guenther  <rguenther@suse.de>
15757
15758         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
15759         type-based offset disambiguation, streamline MEM_REF and
15760         TARGET_MEM_REF handling.
15761
15762 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
15763
15764         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
15765         (bdesc_special_args): Add pause intrinsic.
15766
15767         * config/i386/i386.md (UNSPEC_PAUSE): New.
15768         (pause): Likewise.
15769         (*pause): Likewise.
15770         * config/i386/ia32intrin.h (__pause): Likewise.
15771
15772         * doc/extend.texi (X86 Built-in Functions): Add documentation for
15773         pause intrinsic.
15774
15775 2011-05-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15776
15777         PR tree-optimization/46728
15778         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
15779         (execute_cse_sincos): Add switch case for BUILT_IN_POW.
15780
15781 2011-05-25  Nathan Froyd  <froydnj@codesourcery.com>
15782
15783         * tree.h (struct tree_exp): Inherit from struct tree_typed.
15784         * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
15785         instead of TS_COMMON.
15786
15787 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
15788
15789         * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
15790         LIBGCC2_GNU_PREFIX is defined.
15791         (__N): New macro.
15792         (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
15793         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
15794         __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
15795         __clz_tab): Define using __N.
15796         (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
15797         COMPAT_SIMODE_TRAPPING_ARITHMETIC.
15798         * target.def (libfunc_gnu_prefix): New hook.
15799         * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
15800         (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
15801         * doc/tm.texi: Regenerate.
15802         * system.h (LIBGCC2_GNU_PREFIX): Poison.
15803         * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
15804         account.
15805         (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
15806         (init_optabs): Likewise for the bswap libfuncs.
15807         * tree.c (build_common_builtin_nodes): Likewise for complex multiply
15808         and divide.
15809         * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
15810         * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
15811         * libgcc-std.ver: Remove.
15812         * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
15813         * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
15814         libgcc-std.ver.
15815         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
15816         * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
15817         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
15818         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
15819         * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
15820         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
15821         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
15822         * config/fixed-bit.h (FIXED_OP): Define differently depending on
15823         LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
15824         (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
15825
15826 2011-05-25  Jan Hubicka  <jh@suse.cz>
15827
15828         * lto-streamer-out.c (output_record_start): Use lto_output_enum
15829         (lto_output_tree): Use output_record_start.
15830         * lto-streamer-in.c (input_record_start): Use lto_input_enum
15831         (lto_get_pickled_tree): Use input_record_start.
15832         * lto-section-in.c (lto_section_overrun): Turn into fatal error.
15833         (lto_value_range_error): New function.
15834         * lto-streamer.h (lto_value_range_error): Declare.
15835         (lto_output_int_in_range, lto_input_int_in_range): New functions.
15836         (lto_output_enum, lto_input_enum): New macros.
15837
15838 2011-05-25  Eric Botcazou  <ebotcazou@adacore.com>
15839
15840         * common.opt (flag_stack_usage_info): New variable.
15841         (-Wstack-usage): New option.
15842         * doc/invoke.texi (Warning options): Document -Wstack-usage.
15843         * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
15844         <OPT_fstack_usage>: Likewise.
15845         * toplev.c (output_stack_usage): Handle -Wstack-usage.
15846         * calls.c (expand_call): Test flag_stack_usage_info variable instead
15847         of flag_stack_usage.
15848         (emit_library_call_value_1): Likewise.
15849         * explow.c (allocate_dynamic_stack_space): Likewise.
15850         * function.c (instantiate_virtual_regs ): Likewise.
15851         (prepare_function_start): Likewise.
15852         (rest_of_handle_thread_prologue_and_epilogue): Likewise.
15853         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
15854         * config/arm/arm.c (arm_expand_prologue): Likewise.
15855         (thumb1_expand_prologue): Likewise.
15856         * config/avr/avr.c (expand_prologue): Likewise.
15857         * config/i386/i386.c (ix86_expand_prologue): Likewise.
15858         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
15859         * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
15860         * config/mips/mips.c (mips_expand_prologue): Likewise.
15861         * config/pa/pa.c (hppa_expand_prologue): Likewise.
15862         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
15863         * config/s390/s390.c (s390_emit_prologue): Likewise.
15864         * config/sh/sh.c (sh_expand_prologue): Likewise.
15865         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
15866         * config/spu/spu.c (spu_expand_prologue): Likewise.
15867
15868 2011-05-25  Richard Guenther  <rguenther@suse.de>
15869
15870         * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
15871         (gimple_canonical_types_compatible_p): Likewise.
15872
15873 2011-05-25  Jan Hubicka  <jh@suse.cz>
15874
15875         PR middle-end/49062
15876         * ipa.c (function_and_variable_visibility): Only add to same
15877         comdat group list if DECL_ONE_ONLY.
15878
15879 2011-05-25  Andrey Belevantsev  <abel@ispras.ru>
15880
15881         PR rtl-optimization/49014
15882         * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
15883
15884 2011-05-25  Jakub Jelinek  <jakub@redhat.com>
15885
15886         PR target/49128
15887         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
15888
15889 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
15890
15891         PR rtl-optimization/48757
15892         * ira-build.c (loop_with_eh_edge_p): Rename to
15893         loop_with_complex_edge_p, check edges on complexity, make function
15894         conditional.
15895         (mark_loops_for_removal): Make call of loop_with_complex_edge_p
15896         conditional.
15897
15898 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
15899
15900         * config/sparc/sparc.c (sparc_option_override): If not set by the user,
15901         force flag_ira_share_save_slots to 0.
15902
15903 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
15904
15905         * var-tracking.c (compute_cfa_pointer): Adjust head comment.
15906         (vt_initialize): Set PROLOGUE_BB unconditionally.
15907         Add block comment about CFA_BASE_RTX machinery.
15908         Reset FP_CFA_OFFSET to -1 on all invalid paths.
15909         Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
15910
15911 2011-05-24  Nicola Pero  <nicola.pero@meta-innovation.com>
15912
15913         PR objc/48187
15914         * c-parser.c (c_parser_objc_class_instance_variables): More robust
15915         parsing of syntax error in ObjC instance variable lists.  In
15916         particular, avoid an infinite loop if there is a stray ']'.
15917         Updated error message.
15918
15919 2011-05-24  Ian Lance Taylor  <iant@google.com>
15920
15921         * godump.c (go_define): Don't accept a string immediately after
15922         another operand.
15923
15924 2011-05-24  Ian Lance Taylor  <iant@google.com>
15925
15926         * godump.c (struct godump_container): Add invalid_hash field.
15927         (go_format_type): Return false if type is found in invalid_hash.
15928         (go_output_typedef): Add invalid type to invalid_hash.
15929         (go_finish): Create and delete invalid_hash.
15930
15931 2011-05-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15932
15933         PR tree-optimization/46728
15934         * tree-ssa-math-opts.c (powi_table): New.
15935         (powi_lookup_cost): New.
15936         (powi_cost): New.
15937         (powi_as_mults_1): New.
15938         (powi_as_mults): New.
15939         (gimple_expand_builtin_powi): New.
15940         (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
15941         (gate_cse_sincos): Remove sincos/cexp restriction.
15942
15943 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15944
15945         PR target/3746
15946         * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
15947         mips-tdump native.
15948         * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
15949         * mips-tdump.c: Likewise.
15950
15951 2011-05-24  H.J. Lu  <hongjiu.lu@intel.com>
15952
15953         PR target/49128
15954         * config/i386/driver-i386.c (host_detect_local_cpu): Always
15955         add -mno-XXX.  Handle FMA.
15956
15957 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
15958
15959         PR rtl-optimization/48633
15960         * ira-build.c (loop_with_eh_edge_p): New function.
15961         (mark_loops_for_removal): Use it.
15962
15963 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
15964
15965         PR rtl-optimization/48971
15966         * ira.c (setup_pressure_classes): Don't check register move cost
15967         for classes with one registers.  Don't add pressure class if there
15968         is a pressure class with the same available hard registers.
15969         Check contains_reg_of_mode.  Fix a typo in collecting
15970         temp_hard_regset.  Ignore hard registers not belonging to a class.
15971
15972 2011-05-24  Uros Bizjak  <ubizjak@gmail.com>
15973
15974         PR target/49133
15975         * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
15976
15977 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
15978             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15979
15980         PR gcov-profile/48845
15981         * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
15982
15983 2011-05-24  Richard Guenther  <rguenther@suse.de>
15984
15985         * gimple.c (compare_type_names_p): Remove for_completion_p arg.
15986         (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
15987         (gimple_types_compatible_p_1): Adjust.
15988         (iterative_hash_canonical_type): Do not bother about complete vs.
15989         incomplete types.
15990         (gimple_canonical_types_compatible_p): Likewise.
15991
15992 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15993
15994         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
15995
15996 2011-05-24  Richard Guenther  <rguenther@suse.de>
15997
15998         PR bootstrap/49078
15999         * gimple.c (gimple_register_canonical_type): Revert
16000         previous change.
16001         * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
16002         does not for a tree for the case where it matters.  Cache
16003         pointer-type alias-sets.
16004
16005 2011-05-24  Joseph Myers  <joseph@codesourcery.com>
16006
16007         * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
16008         (OBJS): Remove options.o, opts-common.o and prefix.o.
16009         (OBJS-libcommon-target): New.
16010         (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
16011         (BACKEND): Include libcommon-target.a.
16012         (MOSTLYCLEANFILES): Include libcommon-target.a.
16013         (libcommon-target.a): New.
16014         (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
16015         prefix.o.
16016
16017 2011-05-23  Joseph Myers  <joseph@codesourcery.com>
16018
16019         * optc-save-gen.awk: New.  Based on optc-gen.awk.  Don't generate
16020         parts of output shared with the driver.
16021         * optc-gen.awk: Don't generate parts of output not shared with the
16022         driver.
16023         * opth-gen.awk: Remove GCC_DRIVER conditionals.
16024         * doc/options.texi (SourcerInclude): Mention options-save.c.
16025         * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
16026         (OBJS): Add options-save.o.
16027         (options-save.c, options-save.o): New.
16028         (options.o): Update dependencies.
16029         (gcc-options.o): Remove.
16030         (mostlyclean): Remove options-save.c.
16031
16032 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
16033
16034         PR debug/49032
16035         * dbxout.c: Include cgraph.h.
16036         (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
16037         and without value expr, return NULL if no varpool node exists for
16038         it or if it is not needed.
16039         * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
16040
16041         PR c/49120
16042         * c-decl.c (start_decl): Convert expr to void_type_node.
16043
16044 2011-05-23  Richard Sandiford  <rdsandiford@googlemail.com>
16045
16046         PR rtl-optimization/48826
16047         * emit-rtl.c (try_split): When splitting a call that is followed
16048         by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
16049
16050 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
16051
16052         * cfgexpand.c (expand_debug_expr): For unused non-addressable
16053         parameters passed in memory prefer using DECL_INCOMING_RTL over
16054         the pseudos it will be copied into.
16055
16056 2011-05-23  H.J. Lu  <hongjiu.lu@intel.com>
16057
16058         PR target/47315
16059         * config/i386/i386.c (ix86_option_override_internal): Save the
16060         initial options after checking vzeroupper.
16061
16062 2011-05-23  David Li  <davidxl@google.com>
16063
16064         PR tree-optimization/48988
16065         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
16066         Initialize has_valid_pred for each pred chain.
16067
16068 2011-05-23  Richard Guenther  <rguenther@suse.de>
16069
16070         * gimple.c (gimple_types_compatible_p_1): Always compare type names.
16071         (iterative_hash_gimple_type): Always hash type names.
16072
16073 2011-05-23  Nathan Froyd  <froydnj@codesourcery.com>
16074
16075         * c-typeck.c (build_function_call_vec): Tweak call to
16076         check_function_arguments.
16077
16078 2011-05-23  Richard Guenther  <rguenther@suse.de>
16079
16080         PR tree-optimization/49115
16081         * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
16082         is not necessarily carried out, do not claim it kills the ref.
16083         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
16084
16085 2011-05-23  Richard Guenther  <rguenther@suse.de>
16086
16087         PR middle-end/15419
16088         * builtins.c (fold_builtin_memory_op): Be less restrictive about
16089         what pointer types we accept for folding.
16090
16091 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16092
16093         * gthr-gnat.c: Remove.
16094         * gthr-gnat.h: Remove.
16095         * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
16096         * config/t-freebsd (LIB2ADDEH): Likewise.
16097         * config/t-linux (LIB2ADDEH): Likewise.
16098         * config/t-sol2 (LIB2ADDEH): Likewise.
16099         * config/ia64/t-vms (LIB2ADDEH): Likewise.
16100         * configure.ac (target_thread_file): Remove gnat handling.
16101         * configure: Regenerate.
16102         * doc/install.texi (Configuration, --enable-threads): Remove gnat.
16103
16104 2011-05-23  Tristan Gingold  <gingold@adacore.com>
16105             Eric Botcazou  <ebotcazou@adacore.com>
16106
16107         * gcov.c (create_file_names): If no object directory is specified,
16108         keep the directory of the file.
16109
16110 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16111
16112         * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
16113         * configure: Regenerate.
16114
16115 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
16116
16117         PR middle-end/48973
16118         * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
16119         failed and the comparison has a single bit signed type, use
16120         constm1_rtx instead of const1_rtx for true value.
16121         (do_store_flag): If ops->type is single bit signed type, disable
16122         signel bit test optimization and pass -1 instead of 1 as last
16123         parameter to emit_store_flag_force.
16124
16125 2011-05-23  Tom de Vries  <tom@codesourcery.com>
16126
16127         PR target/45098
16128         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
16129         function.
16130         (infer_loop_bounds_from_undefined): Use new function.
16131
16132 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
16133
16134         * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
16135         (ASM_SPEC): Add a -O* option here.  Pass -O0 for -noasmopt,
16136         -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
16137         and -O0 otherwise.
16138         (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
16139
16140 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
16141
16142         * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
16143         (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
16144         returns true.
16145
16146 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
16147
16148         * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
16149
16150 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
16151
16152         * config/sparc/sparc.c (sparc_delegitimize_address): Handle
16153         UNSPEC_MOVE_PIC pattern.
16154
16155 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
16156
16157         * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
16158         (sparc-*-rtems*): Likewise.
16159         (sparc64-*-elf*): Likewise.
16160         (sparc64-*-rtems*): Likewise.
16161         (sparc*-*-solaris2*): Likewise.  Remove crti.o crtn.o extra parts.
16162         * config/sparc/t-crtin: New file.
16163         * config/sparc/t-sol2 (crti.o): Delete rule.
16164         (crtn.o): Likewise.
16165         * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
16166         * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
16167         * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
16168         (ENDFILE_SPEC): Add crtn.o.
16169
16170 2011-05-22  Tom de Vries  <tom@codesourcery.com>
16171
16172         PR middle-end/48689
16173         * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
16174         CODE_CONTAINS_STRUCT (TS_COMMON).
16175
16176 2011-05-22  Jakub Jelinek  <jakub@redhat.com>
16177
16178         PR middle-end/49029
16179         * expmed.c (extract_fixed_bit_field): Test whether target can be used
16180         only after deciding which mode to use.
16181
16182 2011-05-22  Tom de Vries  <tom@codesourcery.com>
16183
16184         PR target/45098
16185         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
16186         for call to get_shiftadd_cost.
16187
16188 2011-05-22  Uros Bizjak  <ubizjak@gmail.com>
16189
16190         PR target/49104
16191         * config/i386/cpuid.h (bit_MMXEXT): New define.
16192
16193 2011-05-22  Nick Clifton  <nickc@redhat.com>
16194
16195         * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
16196         initialisation of non-existant args[2] element.  Use args[] array
16197         not arg[] array to pass arguments to build_function_type_list.
16198
16199 2011-05-22  Ira Rosen  <ira.rosen@linaro.org>
16200
16201         PR tree-optimization/49087
16202         * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
16203
16204 2011-05-21  Jason Merrill  <jason@redhat.com>
16205
16206         PR c++/49092
16207         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
16208         static storage duration.
16209
16210 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
16211
16212         * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
16213         frame pointer.
16214
16215 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
16216
16217         * config/sparc/sparc.c (eligible_for_return_delay): Do not return
16218         false if there are call-saved registers here...
16219         (sparc_can_use_return_insn_p): ...but here instead.
16220         (save_or_restore_regs): Fix thinko.
16221         (sparc_expand_prologue): Use current_function_is_leaf.
16222         (sparc_frame_pointer_required): Likewise.
16223
16224 2011-05-21  Nick Clifton  <nickc@redhat.com>
16225
16226         PR target/49098
16227         * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
16228
16229 2011-05-21  Nicola Pero  <nicola.pero@meta-innovation.com>
16230
16231         * gengtype.c (walk_type): Implemented "atomic" GTY option.
16232         * doc/gty.texi (GTY Options): Document "atomic" GTY option.
16233
16234 2011-05-21  Joseph Myers  <joseph@codesourcery.com>
16235
16236         * opt-read.awk: New.  Split out of optc-gen.awk and opth-gen.awk.
16237         * optc-gen.awk: Move common code to opt-read.awk.
16238         * opth-gen.awk: Likewise.
16239         * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
16240
16241 2011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
16242
16243         * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
16244
16245 2011-05-20  Tom de Vries  <tom@codesourcery.com>
16246
16247         PR target/45098
16248         * tree-ssa-loop-ivopts.c: Include expmed.h.
16249         (get_shiftadd_cost): New function.
16250         (force_expr_to_var_cost): Declare forward.  Use get_shiftadd_cost.
16251
16252 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
16253
16254         PR bootstrap/49086
16255         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
16256         for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
16257
16258 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
16259
16260         * Makefile.in: Update comment referring to $(OBJS-common).
16261
16262 2011-05-20  Ian Lance Taylor  <iant@google.com>
16263
16264         * godump.c (go_output_typedef): Put enum constants in the macro
16265         hash table to avoid duplicate Go const definitions.
16266
16267 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
16268
16269         * Makefile.in (LIBDEPS): Add libcommon.a.
16270         (LIBS): Likewise.
16271         (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
16272         (OBJS-common): Remove diagnostic.o, input.o, intl.o,
16273         pretty-print.o and version.o.
16274         (OBJS-libcommon): New.
16275         (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
16276         (BACKEND): Add libcommon.a.
16277         (MOSTLYCLEANFILES): Likewise.
16278         (libcommon.a): New.
16279         (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
16280         (cpp$(exeext)): Likewise.
16281         (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
16282         pretty-print.o and input.o.
16283         (lto-wrapper$(exeext)): Don't explicitly use intl.o.
16284         (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
16285         (errors.o): Remove.
16286         (mips-tfile): Don't explicitly use version.o.
16287         (mips-tdump): Likewise.
16288         (gcov.o): Depend on $(DIAGNOSTIC_H).
16289         (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
16290         (GCOV_OBJS): Remove intl.o, version.o and errors.o.
16291         (GCOV_DUMP_OBJS): Remove version.o and errors.o.
16292         * gcov-dump.c: Include intl.h and diagnostic.h.
16293         (main): Initialize diagnostics.
16294         * gcov.c: Include diagnostic.h.
16295         (fnotice): Remove.
16296         (main): Initialize diagnostics.
16297         * lto-wrapper.c: Include diagnostic.h.
16298         (main): Initialize diagnostics.
16299
16300 2011-05-20  Michael Matz  <matz@suse.de>
16301
16302         * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
16303
16304 2011-05-20  Michael Matz  <matz@suse.de>
16305             Richard Guenther  <rguenther@suse.de>
16306
16307         * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
16308         use lto_streamer_cache_append directly instead of returning a VEC.
16309         (preload_common_node): Remove.
16310         (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
16311         track seen nodes.
16312         (lto_streamer_cache_create): Call lto_preload_common_nodes.
16313
16314 2011-05-20  Richard Guenther  <rguenther@suse.de>
16315
16316         PR tree-optimization/49079
16317         * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
16318         MEM_REFs correctly for the trailing array access detection.
16319         Special case constants the same way as decls for overall size
16320         constraining.
16321
16322 2011-05-20  Uros Bizjak  <ubizjak@gmail.com>
16323
16324         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
16325         argument expansion.
16326
16327 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
16328
16329         PR tree-optimization/49073
16330         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
16331         PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
16332         * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
16333
16334 2011-05-20  Richard Guenther  <rguenther@suse.de>
16335
16336         PR middle-end/48849
16337         * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
16338         of pointer types the same way the middle-end does.
16339
16340 2011-05-20  Richard Guenther  <rguenther@suse.de>
16341
16342         * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
16343         or pointer-to chains.  Delay all fixup to uniquify_nodes.
16344
16345 2011-05-19  Quentin Neill  <quentin.neill@amd.com>
16346
16347         * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
16348         (fma4_fmaddsub): Likewise
16349
16350 2011-05-19  Jan Hubicka  <jh@suse.cz>
16351
16352         * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
16353         (GIMPLE_TYPE_PAIR_SIZE): New macro.
16354         (type_pair_cache): New static var.
16355         (lookup_type_pair): Use fixed sized custom hash; make inline.
16356         (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
16357         calls of lookup_type_pair.
16358         (print_gimple_types_stats): Remove cache stats.
16359         (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
16360         and gtc_ob.
16361
16362 2011-05-19  Uros Bizjak  <ubizjak@gmail.com>
16363
16364         * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
16365         when TARGET_RDRND is active.
16366         (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
16367         Generate dummy SImode target register when target is NULL.
16368
16369 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
16370
16371         * config/arm/arm-fpus.def: New.
16372         * config/arm/genopt.sh: Generate Enum and EnumValue entries from
16373         arm-fpus.def.
16374         * config/arm/arm-tables.opt: Regenerate.
16375         * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
16376         (arm_option_override): Don't decode FPU name to string here.
16377         * config/arm/arm.opt (mfpu=): Use Enum.
16378         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
16379         Update dependencies.
16380
16381 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
16382
16383         * collect2.c: Include diagnostic.h.
16384         (fatal_perror, fatal, error, fancy_abort): Remove.
16385         (main): Set progname.  Call xmalloc_set_program_name and
16386         diagnostic_initialize.
16387         (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
16388         scan_libraries, resolve_lib_name): Call fatal_error instead of
16389         fatal and fatal_perror.
16390         * collect2.h (error, fatal, fatal_perror): Don't declare.
16391         * tlink.c: Include diagnostic-core.h.
16392         (recompile_files): Call fatal_error instead of fatal_perror.
16393         * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
16394         pretty-print.o and input.o.
16395         (collect2.o, tlink.o): Update dependencies.
16396
16397 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16398
16399         * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
16400
16401 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16402
16403         PR target/40483
16404         * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
16405         COMDAT group syntax, both SPARC and x86 variants.
16406         (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
16407         * configure: Regenerate.
16408         * config/sol2.h (TARGET_SOLARIS): Define.
16409         (PUSHSECTION_FORMAT): Remove.
16410         (SECTION_NAME_FORMAT): Define.
16411         * config/sol2.c: Include hashtab.h.
16412         (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
16413         expansion, using SECTION_NAME_FORMAT.
16414         (solaris_comdat_htab): New variable.
16415         (struct comdat_entry): Define.
16416         (comdat_hash): New function.
16417         (comdat_eq): New function.
16418         (solaris_elf_asm_comdat_section): New function.
16419         (solaris_define_comdat_signature): New function.
16420         (solaris_code_end): New function.
16421         * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
16422         (solaris_code_end): Declare.
16423         * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
16424         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
16425         solaris_code_end.
16426         (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
16427         Remove ATTRIBUTE_UNUSED.
16428         [!USE_GAS]: Call solaris_elf_asm_comdat_section for
16429         SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
16430         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
16431         * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
16432         * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
16433         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
16434         (PUSHSECTION_FORMAT): Remove.
16435         (SECTION_NAME_FORMAT): Redefine.
16436
16437 2011-05-19  Kai Tietz  <ktietz@redhat.com>
16438
16439         * tree-cfg.c (verify_gimple_assign_binary): Barf on
16440         TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
16441         (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
16442
16443 2011-05-19  Anatoly Sokolov  <aesok@post.ru>
16444             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16445
16446         * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
16447
16448 2011-05-19  Richard Guenther  <rguenther@suse.de>
16449
16450         PR middle-end/48985
16451         * tree-object-size.c (addr_object_size): If the pointed-to
16452         variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
16453
16454 2011-05-19  Richard Guenther  <rguenther@suse.de>
16455
16456         * gimple.c (gimple_types_compatible_p_1): Compare names of
16457         the types themselves.
16458         (iterative_hash_gimple_type): And hash them that way.
16459         (gimple_register_type_1): If we register a main variant properly
16460         initialize the leader to ourselves.
16461
16462 2011-05-19  Tom de Vries  <tom@codesourcery.com>
16463
16464         PR target/45098
16465         * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
16466         get_loop_invariant_expr_id.
16467         (get_loop_invariant_expr_id): Use get_expr_id.
16468         (parm_decl_cost): New function.
16469         (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
16470         Improve bound cost estimation.  Use different inv_expr_id for elim and
16471         express cases.
16472
16473 2011-05-19  Tom de Vries  <tom@codesourcery.com>
16474
16475         PR target/45098
16476         * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
16477         cost_base.cost == 0.
16478
16479 2011-05-18  H.J. Lu  <hongjiu.lu@intel.com>
16480
16481         PR target/49002
16482         * config/i386/sse.md
16483         (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
16484         load cast.
16485
16486 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
16487
16488         PR tree-optimization/49039
16489         * tree-vrp.c (extract_range_from_binary_expr): For
16490         MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
16491         return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
16492
16493 2011-05-18  Tom de Vries  <tom@codesourcery.com>
16494
16495         PR target/45098
16496         * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
16497
16498 2011-05-18  Uros Bizjak  <ubizjak@gmail.com>
16499
16500         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
16501         (*tls_global_dynamic_64): Ditto.
16502         (*tls_local_dynamic_base_32_gnu): Ditto.
16503         (*tls_local_dynamic_base_64): Ditto.
16504         (tls_initial_exec_64_sun): Ditto.
16505
16506 2011-05-18  Stuart Henderson  <shenders@gcc.gnu.org>
16507
16508         * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
16509         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
16510         bf592-none.
16511         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
16512         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
16513         * config/bfin/bfin.c (bfin_cpus): Add bf592.
16514         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
16515         __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
16516         * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
16517         * config/bfin/elf.h (LIB_SPEC): Add bf592.
16518
16519 2011-05-18  Joseph Myers  <joseph@codesourcery.com>
16520
16521         * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
16522         arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
16523         * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
16524         target_thread_pointer, arm_structure_size_boundary, struct
16525         float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
16526         struct abi_name, arm_all_abis): Remove.
16527         (arm_option_override) Don't process most enumerated option values here.
16528         Don't process target_fpe_name here.  Work with integer not string for
16529         structure size boundary; use separate diagnostics for each case.
16530         * config/arm/arm.h (enum float_abi_type, enum
16531         arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
16532         to arm-opts.h.
16533         (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
16534         arm_structure_size_boundary): Remove.
16535         * config/arm/arm.opt (mabi=): Use Enum and Init.
16536         (arm_abi_type): New Enum and EnumValue entries.
16537         (mfloat-abi=): Use Enum and Init.
16538         (float_abi_type): New Enum and EnumValue entries.
16539         (mfp=, mfpe=): Replace by separate Alias entries for each argument.
16540         (mfp16-format=): Use Enum and Init.
16541         (arm_fp16_format_type): New Enum and EnumValue entries.
16542         (mstructure-size-boundary=): Use UInteger and Init.
16543         (mtp=): Use Enum and Init.
16544         (arm_tp_type): New Enum and EnumValue entries.
16545
16546 2011-05-18  Richard Guenther  <rguenther@suse.de>
16547
16548         PR tree-optimization/49018
16549         * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
16550         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
16551         gimple_has_side_effects.
16552
16553 2011-05-18  Richard Guenther  <rguenther@suse.de>
16554
16555         * gimple.c (gimple_register_type_1): New function, split out from ...
16556         (gimple_register_type): ... here.  Avoid infinite recursion.
16557
16558 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
16559
16560         PR tree-optimization/41881
16561         * tree-vectorizer.h (struct _loop_vec_info): Add new field
16562         reduction_chains along with a macro for its access.
16563         * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
16564         (destroy_loop_vec_info): Free reduction chains.
16565         (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
16566         (vect_is_slp_reduction): New function.
16567         (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
16568         (vect_create_epilog_for_reduction): Support SLP reduction chains.
16569         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
16570         definition types for reduction chains.
16571         (vect_supported_load_permutation_p): Don't allow permutations for
16572         reduction chains.
16573         (vect_analyze_slp_instance): Support reduction chains.
16574         (vect_analyze_slp): Try to build SLP instance from reduction chains.
16575         (vect_get_constant_vectors):  Handle reduction chains.
16576         (vect_schedule_slp_instance): Mark the first statement of the
16577         reduction chain as reduction.
16578
16579 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
16580
16581         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
16582         names for group elements access.
16583         * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
16584         reduction chains as well.  Remove data reference and interleaving
16585         related words from the fields names.
16586         * tree-vect-loop.c (vect_transform_loop): Use new names for group
16587         elements access.
16588         * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
16589         vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
16590         vect_update_interleaving_chain, vect_same_range_drs,
16591         vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
16592         vect_verify_datarefs_alignment, vector_alignment_reachable_p,
16593         vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
16594         vect_analyze_group_access, vect_analyze_data_ref_access,
16595         vect_create_data_ref_ptr, vect_transform_strided_load,
16596         vect_record_strided_load_vectors): Likewise.
16597         * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
16598         vect_model_load_cost, vectorizable_store, vectorizable_load,
16599         vect_remove_stores, new_stmt_vec_info): Likewise.
16600         * tree-vect-slp.c (vect_build_slp_tree,
16601         vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
16602
16603 2011-05-18  Richard Guenther  <rguenther@suse.de>
16604
16605         PR middle-end/48989
16606         * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
16607         operand verification.
16608         (verify_gimple_assign_binary): Likewise.
16609         * tree-ssa.c (useless_type_conversion_p): Preserve conversions
16610         to non-1-precision BOOLEAN_TYPEs.
16611
16612 2011-05-18  Tom de Vries  <tom@codesourcery.com>
16613
16614         PR target/45098
16615         * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
16616
16617 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
16618
16619         PR tree-optimization/49000
16620         * tree-ssa.c (execute_update_addresses_taken): Call
16621         maybe_rewrite_mem_ref_base on debug stmt value.  If it couldn't
16622         be rewritten and decl has been marked for renaming, reset
16623         the debug stmt.
16624
16625 2011-05-17  Joseph Myers  <joseph@codesourcery.com>
16626
16627         * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
16628         enum_opts_set when testing if attributes have set -mfpmath=.
16629
16630 2011-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
16631
16632         * config/mips/mips.c (mips_handle_option): Remove unused variable.
16633
16634 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
16635
16636         * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
16637         info->entry with 0
16638         * tree-inline.c (maybe_inline_call_in_expr):  Initialize
16639         id.transform_lang_insert_block with NULL.
16640
16641 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
16642
16643         * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
16644         (output_fp_compare): Change args 3 and 4 to bool.
16645         (ix86_expand_call): Change arg 6 to bool.
16646         (ix86_attr_length_immediate_default): Change arg 2 to bool.
16647         (ix86_attr_length_vex_default): Change arg 3 to bool.
16648         * config/i386/i386.md: Update all uses.
16649         * config/i386/i386.c: Ditto.
16650         (ix86_flags_dependent): Change return type to bool.
16651
16652 2011-05-17  Richard Guenther  <rguenther@suse.de>
16653
16654         * gimple.c (type_hash_pair_compare): Fix comparison.
16655
16656 2011-05-17  Richard Guenther  <rguenther@suse.de>
16657
16658         * gimple.c (iterative_hash_gimple_type): Simplify singleton
16659         case some more, fix final hash value of the non-singleton case.
16660
16661 2011-05-17  Richard Guenther  <rguenther@suse.de>
16662
16663         PR bootstrap/49013
16664         Revert
16665         2011-05-16  Richard Guenther  <rguenther@suse.de>
16666
16667         * gimple.c (gimple_types_compatible_p_1): Use names of the
16668         type itself, not its main variant.
16669         (iterative_hash_gimple_type): Likewise.
16670
16671 2011-05-17  Richard Guenther  <rguenther@suse.de>
16672
16673         * gimple.c (gimple_register_canonical_type): Use the main-variant
16674         leader for computing the canonical type.
16675
16676 2011-05-17  Nick Clifton  <nickc@redhat.com>
16677
16678         * config/rx/rx.c (rx_memory_move_cost): Include cost of register
16679         moves.
16680
16681         * config/rx/rx.md: Add peephole to remove redundant extensions
16682         after loads.
16683         (bitset_in_memory): Use rx_restricted_mem_operand.
16684         (bitinvert_in_memory): Likewise.
16685         (bitclr_in_memory): Likewise.
16686
16687 2011-05-17  Kazuhio Inaoka  <kazuhiro.inaoka.ud@renesas.com>
16688             Nick Clifton  <nickc@redhat.com>
16689
16690         * config/rx/rx.md: Add peepholes to match a register move followed
16691         by a comparison of the moved register.  Replace these with an
16692         addition of zero that does both actions in one instruction.
16693
16694 2011-05-17  Jakub Jelinek  <jakub@redhat.com>
16695
16696         PR target/48986
16697         * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
16698         predicate to allow CONST_INT.
16699         (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
16700
16701 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
16702
16703         * opts-common.c (opt_enum_arg_to_value): New.
16704         * opts.h (opt_enum_arg_to_value): Declare.
16705         * config/i386/i386.opt (fpmath): Remove.
16706         (mfpmath=): Use Enum, Init and Save.
16707         (fpmath_unit): New Enum and EnumValue entries.
16708         * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
16709         name for function fpmath state.
16710         * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
16711         * config/i386/i386.c: Include diagnostic.h.
16712         (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
16713         (ix86_target_string): Take enum fpmath_unit value instead of string.
16714         (ix86_debug_options): Update call to ix86_target_string.
16715         (ix86_option_override_internal): Don't process fpmath strings here.
16716         (x86_function_specific_save, ix86_function_specific_restore):
16717         Don't handle fpmath state specially.
16718         (ix86_function_specific_print): Pass fpmath state to
16719         ix86_target_string instead of printing in this function.
16720         (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
16721         Handle enum attributes.
16722         (IX86_ATTR_ENUM, ix86_opt_enum): New.
16723         (ix86_valid_target_attribute_tree): Update option_strings
16724         handling.  Handle fpmath as enum option.
16725         (ix86_can_inline_p): Update field names for function fpmath state.
16726         (ix86_expand_builtin): Update call to ix86_target_string.
16727         * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
16728         (ix86_fpmath): Remove.
16729         * config/i386/t-i386 (i386.o): Update dependencies.
16730
16731 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
16732
16733         PR preprocessor/48677
16734         * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
16735         from decoded_options[0], not from itself.
16736
16737 2011-05-16  Uros Bizjak  <ubizjak@gmail.com>
16738
16739         * config/i386/constraints.md (z): New constraint.
16740         * config/i386/i386.c (c): New mode attribute.
16741         (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
16742         *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
16743         constraint for operand 0.
16744         (*call_vzeroupper): Ditto.
16745         (*call_rex64_ms_sysv): Ditto.  Use "rzm" constraint for operand 0.
16746         (*call_rex64_ms_sysv_vzeroupper): Ditto.
16747         (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
16748         Use "lzm" constraint for operand 0.
16749         (*call_pop_vzeroupper): Ditto.
16750         (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
16751         *sibcall_1_rex64 patterns using "P" mode iterator.  Use "Uz"
16752         constraint for operand 0.
16753         (*sibcall_vzeroupper): Ditto.
16754         (*sibcall_rex64_ms_sysv): Ditto.
16755         (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
16756         (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
16757         *sibcall_pop_1.  Use "Uz" constraint for operand 0.
16758         (*sibcall_pop_vzeroupper): Ditto.
16759         (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
16760         *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
16761         mode iterator.  Use "<c>zm" constraint for operand 1.
16762         (*call_value_vzeroupper): Ditto.
16763         (*call_value_rex64_ms_sysv): Ditto.  Use "rzm" constraint
16764         for operand 1.
16765         (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
16766         (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
16767         *call_value_pop_1.  Use "lzm" constraint for operand 1.
16768         (*call_value_pop_vzeroupper): Ditto.
16769         (*sibcall_value): Merge insn pattern from *sibcall_value_0,
16770         *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
16771         mode iterator.  Use "Uz" constraint for operand 1.
16772         (*sibcall_value_vzeroupper): Ditto.
16773         (*sibcall_value_rex64_ms_sysv): Ditto.
16774         (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
16775         (*sibcall_value_pop): Rename from *sibcall_pop_1.  Use "Uz"
16776         constraint for operand 1.
16777         (*sibcall_value_pop_vzeroupper): Ditto.
16778         (*tls_global_dynamic_64): Use constant_call_address_operand predicate
16779         and "z" constraint for operand 2.
16780         (*tls_global_dynamic_32_gnu): Ditto.
16781         (*tls_local_dynamic_base_32_gnu): Ditto.
16782         (*tls_local_dynamic_base_64): Ditto.
16783         (*tls_local_dynamic_32_once): Ditto.
16784         * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
16785         Update all callers.
16786         * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
16787
16788 2011-05-16  Richard Guenther  <rguenther@suse.de>
16789
16790         * gimple.c (gimple_types_compatible_p_1): Use names of the
16791         type itself, not its main variant.
16792         (iterative_hash_gimple_type): Likewise.
16793
16794 2011-05-16  Richard Guenther  <rguenther@suse.de>
16795
16796         * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
16797         always visit pointer target and function result and argument types.
16798
16799 2011-05-16  Jason Merrill  <jason@redhat.com>
16800
16801         PR c++/48999
16802         * tree-inline.c (copy_statement_list): Put back recursion.
16803
16804 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
16805
16806         PR target/27663
16807         PR target/41076
16808         * config/avr/predicates.md (const_8_16_24_operand): New predicate.
16809         * config/avr/avr.md ("*ior<mode>qi.byte0",
16810         "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
16811
16812 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
16813
16814         PR target/45099
16815         * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
16816         register is needed for a function argument.
16817
16818 2011-05-16  Richard Guenther  <rguenther@suse.de>
16819
16820         * gimple.c (struct type_hash_pair): New type.
16821         (type_hash_pair_compare): New function.
16822         (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
16823
16824 2011-05-16  Revital Eres  <revital.eres@linaro.org>
16825
16826         * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
16827
16828 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
16829
16830         * config/i386/i386.md (floating point move splitters): Fix
16831         usage of standard_80387_constant_p.
16832         * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
16833
16834 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
16835
16836         * config/i386/i386.md (*movdf_internal): Simplify insn condition.
16837
16838 2011-05-14  Eric Botcazou  <ebotcazou@adacore.com>
16839
16840         * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
16841         (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
16842         (tree_ssa_lim_finalize): Likewise.
16843
16844 2011-05-14  Uros Bizjak  <ubizjak@gmail.com>
16845
16846         * config/i386/constraint.md (Yd, Yx): New register constraints.
16847         * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger.  Use
16848         Yd conditional register constraint.
16849         (*movtf_internal): Use standard_sse_constant_opcode.
16850         (*movxf_internal): Merge with *movxf_internal_nointeger.  Use
16851         Yx conditional register constraint.
16852         (*movdf_internal): Merge with *movdf_internal_nointeger.  Use
16853         Yd conditional register constraint.  Use standard_sse_constant_p to
16854         check for valid SSE constants and call standard_sse_constant_opcode to
16855         output SSE insn.
16856         (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
16857         constants and call standard_sse_constant_opcode to output SSE insn.
16858         * config/i386/i386.c (ix86_option_ovverride_internal): Set
16859         TARGET_INTEGER_DFMODE_MOVES for 64bit targets.  Clear it when
16860         optimize_size is set.
16861         (standard_sse_constant_opcode): Output conditional AVX insn templates.
16862
16863 2011-05-14  Tobias Burnus  <burnus@net-b.de>
16864
16865         * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
16866
16867 2011-05-13  Martin Jambor  <mjambor@suse.cz>
16868
16869         * ipa-prop.c (ipa_cst_from_jfunc): New function.
16870         * ipa-prop.h (ipa_cst_from_jfunc): Declare.
16871         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
16872         (evaluate_conditions_for_ipcp_clone): Removed.
16873         (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
16874         * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
16875         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
16876
16877 2011-05-13  Eric Botcazou  <ebotcazou@adacore.com>
16878
16879         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
16880         * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
16881         lieu of MAY_HAVE_DEBUG_STMTS.
16882         * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
16883         debug statements if !MAY_HAVE_DEBUG_STMTS.
16884
16885 2011-05-13  Martin Thuresson  <martint@google.com>
16886
16887         PR gcov-profile/47793
16888         * libgcov.c (gcov_exit): Support relative profile paths.
16889         * doc/invoke.texi (-fprofile-dir): Update for above change.
16890
16891 2011-05-13  Richard Guenther  <rguenther@suse.de>
16892
16893         * gimple.c (gimple_canonical_types_compatible_p): Do not use
16894         type-pair caching, do not compare hashes.
16895
16896 2011-05-13  Nathan Froyd  <froydnj@codesourcery.com>
16897
16898         PR middle-end/48965
16899         * tree-cfg.c (edge_to_cases_cleanup): Return true.
16900         (verify_expr) [CASE_LABEL_EXPR]: Add checking.
16901
16902 2011-05-13  Kai Tietz  <ktietz@redhat.com>
16903
16904         * gimplify.c (gimplify_expr): Make sure operand is boolified.
16905         * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
16906         compatible type for TRUTH_NOT_EXPR.
16907
16908 2011-05-13  H.J. Lu  <hongjiu.lu@intel.com>
16909
16910         * config/i386/i386.c (ix86_save_reg): Change return type to bool.
16911         (ix86_hard_regno_mode_ok): Change return value to bool.  Use
16912         can_create_pseudo_p ().
16913
16914 2011-05-13  Richard Guenther  <rguenther@suse.de>
16915
16916         PR lto/48978
16917         * gimple.c (iterative_hash_gimple_type): Revert change in
16918         pointer target and function result and argument hashing.
16919
16920 2011-05-13  Uros Bizjak  <ubizjak@gmail.com>
16921
16922         * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
16923         (*movxf_internal_nointeger): Ditto.
16924         (*movdf_internal_rex64): Ditto.
16925         (*movdf_internal): Ditto.
16926         (*movdf_internal_nointeger): Ditto.
16927         (*movsf_internal): Ditto.
16928         (sincos splitters): Use can_create_pseudo ().
16929
16930 2011-05-13  Joseph Myers  <joseph@codesourcery.com>
16931
16932         * config/i386/i386-opts.h: New.
16933         * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
16934         ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
16935         ix86_section_threshold): Remove.
16936         (ix86_handle_option): Move MAX_CODE_ALIGN define here.  Handle
16937         OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
16938         OPT_mbranch_cost_.
16939         (ix86_option_override_internal): Don't decode strings for options
16940         other than -march=, -mtune= and -mfpmath=.  Don't allow for
16941         __attribute__ uses in remaining diagnostics for options with
16942         string arguments.  Don't check for integer arguments being negative.
16943         * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
16944         enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
16945         (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
16946         ix86_branch_cost, ix86_section_threshold): Remove.
16947         * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
16948         HeaderInclude.
16949         (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
16950         but not Var.
16951         (masm=): Use Enum and Init.
16952         (asm_dialect): New Enum and EnumValue entries.
16953         (mbranch-cost=): Use UInteger.
16954         (mlarge-data-threshold=): Use UInteger and Init.
16955         (mcmodel=): Use Enum and Init.
16956         (cmodel): New Enum and EnumValue entries.
16957         (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
16958         (mpreferred-stack-boundary=, mincoming-stack-boundary=,
16959         mregparm=): Use UInteger.
16960         (mstringop-strategy=): Use Enum and Init.
16961         (stringop_alg): New Enum and EnumValue entries.
16962         (mtls-dialect=): Use Enum and Init.
16963         (tls_dialect): New Enum and EnumValue entries.
16964         (mabi=): Use Enum and Init.
16965         (calling_abi): New Enum and EnumValue entries.
16966         (mveclibabi=): Use Enum and Init.
16967         (ix86_veclibabi): New Enum and EnumValue entries.
16968
16969 2011-05-13  Nick Clifton  <nickc@redhat.com>
16970
16971         * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
16972         * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
16973
16974 2011-05-13  Kai Tietz  <ktietz@redhat.com>
16975
16976         PR middle-end/48984
16977         * gimplify.c (gimplify_expr): Check for boolean_type_node instead
16978         for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
16979         (gimple_boolify): Check for cast for boolean_type_node instead for
16980         BOOLEAN_TYPE.
16981
16982 2011-05-13  Richard Guenther  <rguenther@suse.de>
16983
16984         PR tree-optimization/48172
16985         * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
16986         multiplying by number of iterations for equal step.
16987         (vect_create_cond_for_alias_checks): Likewise.
16988
16989 2011-05-13  Andreas Schwab  <schwab@redhat.com>
16990
16991         * configure.ac: Use AS_HELP_STRING throughout.
16992         * configure: Regenerate.
16993
16994 2011-05-12  H.J. Lu  <hongjiu.lu@intel.com>
16995
16996         * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
16997         (ix86_emit_restore_regs_using_mov): Likewise.
16998         (ix86_emit_restore_sse_regs_using_mov): Likewise.
16999
17000 2011-05-12  Anatoly Sokolov  <aesok@post.ru>
17001
17002         * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
17003         SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
17004         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
17005         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
17006         RTX_OK_FOR_OLO10_P): ...here.
17007         (sparc_mode_dependent_address_p): Use symbolic_operand instead of
17008         SYMBOLIC_CONST.
17009
17010 2011-05-12  Kai Tietz  <ktietz@redhat.com>
17011
17012         * gimplify.c (gimple_boolify): Re-boolify expression
17013         arguments even if expression type is of kind BOOLEAN_TYPE.
17014         (gimplify_boolean_expr): Removed.
17015         (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
17016         and XOR. Additional take care that we keep expression's type.
17017         * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
17018         of TRUTH_AND|OR|XOR_EXPR.
17019
17020 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
17021
17022         PR tree-optimization/48975
17023         * tree-if-conv.c (combine_blocks): Call free_bb_predicate
17024         on all bbs here and free and clear ifc_bbs at the end.
17025
17026 2011-05-12  Richard Guenther  <rguenther@suse.de>
17027
17028         * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
17029         NULLPTR_TYPE similar to VOID_TYPE.  Defer type-leader lookup
17030         until after simple checks.
17031         (gimple_types_compatible_p): Likewise.
17032         (iterative_hash_gimple_type): Always hash pointer targets
17033         and function return and argument types.
17034         (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
17035         hash TYPE_ALIGN.  Do not hash TYPE_MIN/MAX_VALUE.
17036         (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
17037         handle NULLPTR_TYPE similar to VOID_TYPE.  Handle non-aggregates
17038         completely in the simple compare section.
17039         (gimple_register_canonical_type): Query the cache again after
17040         registering.
17041
17042 2011-05-12  Richard Guenther  <rguenther@suse.de>
17043
17044         PR tree-optimization/48172
17045         * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
17046         the number of iterations from the segment size calculation.
17047         (vect_create_cond_for_alias_checks): Adjust.
17048
17049 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
17050
17051         PR debug/48967
17052         * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
17053         if validate_subreg fails.
17054
17055 2011-05-12  Hariharan Sandanagobalane  <hariharan@picochip.com>
17056
17057         * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
17058         accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
17059         early.
17060
17061 2011-05-12  DJ Delorie  <dj@redhat.com>
17062
17063         * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
17064         (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
17065         created builtin into rx_builtins array.
17066         (rx_builtin_decl): New function.
17067         (TARGET_BUITLIN_DECL): Define.  Include gt-rx.h.
17068
17069 2011-05-12  DJ Delorie  <dj@redhat.com>
17070             Nick Clifton  <nickc@redhat.com>
17071
17072         * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
17073         * config/rx/rx.c (CC_FLAG_FP): Fix comment.
17074         (rx_is_legitimate_address): Add pre-decrement and post-increment
17075         addressing in HImode and QImode.  Fix test for out of range
17076         REG+INT addressing.
17077         (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
17078         (rx_align_for_label): Test label before extracting its usage count.
17079         (rx_adjust_insn_lengths): Fix selection of insn codes.
17080         (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
17081
17082 2011-05-11  Jason Merrill  <jason@redhat.com>
17083
17084         * tree.c (type_hash_canon): Use struct tree_type_non_common.
17085
17086 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
17087
17088         * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
17089         reindent the subsequent block.
17090
17091 2011-05-11  Satoru Takabayashi  <satorux@google.com>
17092             Paul Pluzhnikov  <ppluzhnikov@google.com>
17093
17094         * doc/install.texi (Configuration): Document --with-linker-hash-style.
17095         * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
17096         * config.in: Add LINKER_HASH_STYLE.
17097         * configure.ac: Add --with-linker-hash-style.
17098         * configure: Regenerate.
17099
17100 2011-05-11  Richard Guenther  <rguenther@suse.de>
17101
17102         PR middle-end/48964
17103         * gimple.c (iterative_hash_canonical_type): Fix typo.
17104
17105 2011-05-11  Uros Bizjak  <ubizjak@gmail.com>
17106
17107         * config/i386/i386.c (legitimize_tls_address)
17108         <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
17109         expanders directly for TARGET_GNU2_TLS.  Determine pic and
17110         __tls_get_addr symbol reference here.  Update call to
17111         gen_tls_global_dynamic_{32,64} for added arguments.
17112         <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
17113         expanders directly for TARGET_GNU2_TLS.  Determine
17114         __tls_get_addr symbol reference here.  Update call to
17115         gen_tls_local_dynamic_base_{32,64} for added arguments.  Attach
17116         unique UNSPEC REG_EQUIV to libcall block.
17117         (ix86_tls_get_addr): Declare static.
17118         * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
17119         * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
17120         Do not determine pic and __tls_get_addr symbol reference here. Do not
17121         call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
17122         (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
17123         (tls_global_dynamic_64): Add operand 2.  Do not determine
17124         __tls_get_addr symbol reference here.  Do not call
17125         gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
17126         (tls_local_dynamic_base64): Ditto for operand 1.
17127
17128 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
17129
17130         * function.c (expand_function_start): Initialize stack_check_probe_note
17131         only if the generic stack checking mechanism is used.
17132
17133 2011-05-11  Richard Guenther  <rguenther@suse.de>
17134
17135         PR tree-optimization/15256
17136         * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
17137         (A & B) | C, combine (A op CST1) op CST2.
17138         (tree_ssa_forward_propagate_single_use_vars): Only bother to
17139         visit assigns that have uses.
17140
17141 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
17142
17143         * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
17144         * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
17145         (unpack_ts_type_common_value_fields): ...this.  Update comment.
17146         (unpack_value_fields): Adjust for renaming.
17147         (lto_input_ts_type_tree_pointers): Split into...
17148         (lto_input_ts_type_common_tree_pointer): ...this and...
17149         (lto_input_ts_type_non_common_tree_pointers): ...this.
17150         (lto_input_tree_pointers): Adjust for above split.
17151         * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
17152         (pack_ts_type_common_value_fields): ...this.  Update comment.
17153         (lto_output_ts_type_tree_pointers): Split into...
17154         (lto_output_ts_type_common_tree_pointers): ...this and...
17155         (lto_output_ts_type_non_common_tree_pointers): ...this.
17156         (lto_output_tree_pointers): Adjust for above split.
17157         * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
17158         TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
17159         * stor-layout.c (vector_type_mode): Adjust location of mode field.
17160         * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
17161         Define.
17162         (struct tree_type): Split into...
17163         (struct tree_type_common: ...this and...
17164         (struct tree_type_with_lang_specific): ...this and...
17165         (struct tree_type_non_common): ...this.  Adjust accessor macros
17166         accordingly.
17167         (TYPE_VALUES_RAW): Define.
17168         (union tree_node): Update for above changes.
17169         * tree.c (tree_node_structure_for_code) [tcc_type]: Return
17170         TS_TYPE_NON_COMMON.
17171         (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
17172         Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
17173         (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
17174         * treestructu.def (TS_TYPE): Remove.
17175         (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
17176         Define.
17177
17178 2011-05-11  Jakub Jelinek  <jakub@redhat.com>
17179
17180         PR debug/48159
17181         * tree-ssa.c (reset_debug_uses): New function.
17182         * tree-flow.h (reset_debug_uses): New prototype.
17183         * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
17184         * tree-loop-distribution.c (generate_loops_for_partition): Call
17185         reset_debug_uses on the stmts that will be removed.  Keep around
17186         all debug stmts, don't count them as bits in partition bitmap.
17187         (generate_builtin): Don't count debug stmts or labels as bits in
17188         partition bitmap.
17189
17190 2011-05-11  Richard Guenther  <rguenther@suse.de>
17191
17192         * gimple.c (gimple_type_hash_1): Merge with ...
17193         (gimple_type_hash): ... this.
17194         (gtc_visit): Remove mode parameter and simplify accordingly.
17195         (gimple_types_compatible_p_1): Likewise.
17196         (gimple_types_compatible_p): Likewise.
17197         (iterative_hash_gimple_type): Likewise.
17198         (visit): Likewise.
17199         (gimple_type_eq): Adjust.
17200
17201 2011-05-11  Revital Eres  <revital.eres@linaro.org>
17202
17203         * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
17204         enters the branch create an anti edge in the opposite direction
17205         to prevent the creation of reg-moves.
17206         * modulo-sched.c: Adjust comment to reflect the fact we are
17207         scheduling closing branch.
17208         (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
17209         (stage_count): New field in struct partial_schedule.
17210         (calculate_stage_count): New function.
17211         (normalize_sched_times): Rename to reset_sched_times and handle
17212         incrementing the sched time of the nodes by a constant value
17213         passed as parameter.
17214         (duplicate_insns_of_cycles): Skip closing branch.
17215         (sms_schedule_by_order): Schedule closing branch.
17216         (ps_insn_find_column): Handle closing branch.
17217         (sms_schedule): Call reset_sched_times and adjust the code to
17218         support scheduling of the closing branch.
17219         (ps_insert_empty_row): Update calls to normalize_sched_times
17220         and rotate_partial_schedule functions.
17221
17222 2011-05-11  Richard Guenther  <rguenther@suse.de>
17223
17224         PR middle-end/48953
17225         * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
17226
17227 2011-05-11  Joseph Myers  <joseph@codesourcery.com>
17228
17229         * opts.c (finish_options): Move warning settings from process_options.
17230         * toplev.c (process_options): Move warning settings to finish_options.
17231
17232 2011-05-11  Richard Guenther  <rguenther@suse.de>
17233
17234         PR tree-optimization/18041
17235         * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
17236         (simplify_bitwise_binary): ... this.  Handle operand conversions
17237         by applying them to the result instead.
17238         (tree_ssa_forward_propagate_single_use_vars): Adjust.  CSE tree code.
17239
17240 2011-05-11  Richard Guenther  <rguenther@suse.de>
17241
17242         * gimple.c (gimple_canonical_types_compatible_p): Split out
17243         from gimple_types_compatible_p and friends.  Do not recurse
17244         to pointed-to types.
17245         (gimple_canonical_type_eq): Use it.
17246         (iterative_hash_canonical_type): Split out from
17247         iterative_hash_gimple_type and friends.  Do not recurse
17248         to pointed-to types.
17249         (gimple_canonical_type_hash): Use it, allocate the hash here.
17250
17251 2011-05-11  Revital Eres  <revital.eres@linaro.org>
17252
17253         * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
17254         recognizing doloop.
17255
17256 2011-05-11  Revital Eres  <revital.eres@linaro.org>
17257
17258         * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
17259         instead of PREV_INSN.
17260
17261 2011-05-11  Revital Eres  <revital.eres@linaro.org>
17262
17263         * modulo-sched.c (sms_schedule): Support new form of doloop pattern
17264         * loop-doloop.c (doloop_condition_get): Likewise.
17265         * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
17266         (doloop_end): New.
17267         * config/arm/arm.md (*addsi3_compare0): Remove "*".
17268
17269 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
17270
17271         * tree.def (CASE_LABEL_EXPR): Add an operand.
17272         * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
17273
17274 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
17275
17276         * c-decl.c (c_override_global_bindings_to_false): Remove.
17277         (global_bindings_p): Don't check
17278         c_override_global_bindings_to_false.
17279         * c-tree.h (c_override_global_bindings_to_false): Remove.
17280         * c-typeck.c (composite_type): Don't set
17281         c_override_global_bindings_to_false.
17282
17283 2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
17284
17285         PR target/48857, 48495
17286         * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
17287         (VSX_MODE): Ditto.
17288         (VSX_MOVE_MODE): Ditto.
17289         (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
17290         VSX vector types.  Add V2DImode.
17291         (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
17292         ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
17293         (MODES_TIEABLE_P): Ditto.
17294
17295         * config/rs6000/rs6000.c (rs6000_emit_move): Use
17296         ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
17297         VSX_VECTOR_MODE.
17298         (init_cumulative_args): Ditto.
17299         (rs6000_function_arg_boundary): Ditto.
17300         (rs6000_function_arg_advance_1): Ditto.
17301         (rs6000_function_arg): Ditto.
17302         (rs6000_function_ok_for_sibcall): Ditto.
17303         (emit_frame_save): Ditto.
17304         (rs6000_function_value): Ditto.
17305         (rs6000_libcall_value): Ditto.
17306
17307 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
17308
17309         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
17310         i386/darwin-lib.h to $libgcc_tm_file.
17311         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
17312
17313 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
17314
17315         * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
17316
17317 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
17318
17319         * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
17320         * config/rs6000/rs6000-tables.opt: New file (generated).
17321         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
17322         rs6000/rs6000-tables.opt to extra_options.
17323         * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
17324         * config/rs6000/rs6000.c (rs6000_select): Remove.
17325         (processor_target_table): Move contents to rs6000-cpus.def.
17326         (darwin_rs6000_override_options): Check
17327         global_options_set.x_rs6000_cpu_index instead of
17328         rs6000_select[1].string.
17329         (rs6000_option_override_internal): Likewise.
17330         (rs6000_handle_option): Don't assert that global structures are in
17331         use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
17332         (rs6000_default_cpu): New variable.
17333         (rs6000_file_start): Set it instead of local default_cpu.  Check
17334         rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
17335         global_options_set.x_rs6000_tune_index instead of rs6000_select.
17336         (rs6000_darwin_file_start): Check rs6000_default_cpu and
17337         global_options_set.x_rs6000_cpu_index instead of rs6000_select.
17338         * config/rs6000/rs6000.h (struct rs6000_cpu_select,
17339         rs6000_select): Remove.
17340         * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
17341         Remove.
17342         (mcpu=, mtune=): Use Var, Init, Enum and Save.
17343         * config/rs6000/t-rs6000
17344         ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
17345         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
17346         global_options_set.x_rs6000_cpu_index instead of
17347         rs6000_select[1].string.
17348         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
17349         global_options_set.x_rs6000_cpu_index instead of
17350         rs6000_select[1].string.
17351
17352 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
17353
17354         * config.gcc (libgcc_tm_file): Define instead of including files
17355         from ../../libgcc/config/ in tm_file.
17356         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
17357         * configure: Regenerate.
17358         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
17359         libgcc_tm.h, cs-libgcc_tm.h): New.
17360         (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
17361         (clean): Remove libgcc_tm.h.
17362         * config/arm/symbian.h (RENAME_LIBRARY): Remove.
17363         * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
17364         * system.h (DECLARE_LIBRARY_RENAMES): Poison.
17365
17366 2011-05-10  Georg-Johann Lay  <avr@gjlay.de>
17367
17368         PR target/48896
17369         * config/avr/avr.c (avr_ret_register): Return unsigned int
17370         instead of int.
17371         (avr_function_value): Mark fn_decl_or_type as unused, don't pass
17372         it to avr_libcall_value.
17373         avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
17374         expand_expr.
17375         (avr_expand_binop_builtin): Ditto.
17376         (avr_expand_unop_builtin): Ditto.
17377
17378 2011-05-10  DJ Delorie  <dj@redhat.com>
17379
17380         * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
17381         (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
17382         * config/rx/rx.c (rx_align_for_label): Add label and
17383         uses_threshold parameters.  Do not align when the label is not
17384         used enough.
17385         * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
17386
17387 2011-05-10  Richard Guenther  <rguenther@suse.de>
17388
17389         * tree-ssa-forwprop.c (combine_conversions): Pattern-match
17390         a series of conversions and apply foldings similar to what
17391         fold-const does.
17392         (tree_ssa_forward_propagate_single_use_vars): Call it.
17393
17394 2011-05-10  Jakub Jelinek  <jakub@redhat.com>
17395
17396         PR tree-optimization/48611
17397         PR tree-optimization/48794
17398         * tree-eh.c (remove_unreachable_handlers): Don't remove regions
17399         referenced from RESX or EH_DISPATCH arguments.
17400
17401         PR debug/48928
17402         * dfp.c (decimal_to_decnumber): Handle conversion from
17403         dconst{1,2,m1,half}.
17404
17405 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
17406
17407         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
17408         for !flag_prefer_avx128.
17409         (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
17410
17411 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
17412
17413         * fold-const.c (fold_range_test): Pass LOC to build_range_check.
17414         (fold_ternary_loc): Use expr_location_or.
17415
17416 2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>
17417
17418         PR debug/48853
17419         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
17420         POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
17421         Pmode and mem_mode is not VOIDmode.
17422
17423 2011-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
17424
17425         * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
17426         TYPE_QUAL_RESTRICT): Convert to enum.
17427
17428 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
17429
17430         * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
17431         (const_pow2_1_to_8_operand): Ditto.
17432         (const_pow2_1_to_128_operand): Ditto.
17433         (const_pow2_1_to_32768_operand): Ditto.
17434         * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
17435         const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
17436         in insn constraint to check integer value of operand 3.
17437         * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
17438
17439         (PINSR_MODE): New mode iterator.
17440         (sse2p4_1): New mode attribute.
17441         (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
17442         sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
17443         iterator.  Use const_int_operand instead of
17444         const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
17445         exact_log2 in insn constraint to check integer value of operand 3.
17446
17447 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
17448
17449         * config/i386/sse.md (blendbits): Remove mode attribute.
17450         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
17451         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
17452         Check integer value of operand 3 in insn constraint.
17453
17454 2011-05-09  Richard Guenther  <rguenther@suse.de>
17455
17456         * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
17457         for diagnostics.
17458         (lto_symtab_merge): Likewise.  Do not register types here.
17459         (lto_symtab_merge_decls_2): Likewise.
17460         (lto_symtab_merge_decls_1): Likewise.
17461         * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
17462         * gimple.c (enum gtc_mode): Declare.
17463         (gimple_types_compatible_p): Make static.
17464
17465 2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17466
17467         * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
17468         temporary register to match Pmode.
17469
17470 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
17471
17472         * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
17473         and *vec_concatv4si_1_avx.
17474
17475 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
17476
17477         PR rtl-optimization/48927
17478         * ira-conflicts.c (commutative_constraint_p): Use
17479         recog_data.alternative_enabled_p to disable alternatives where
17480         "enabled" attribute is false.
17481         (get_dup_num): Ditto.
17482         * ira-lives.c (single_reg_class): Ditto.
17483         (ira_implicitly_set_insn_hard_regs): Ditto.
17484
17485 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
17486
17487         * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
17488         (dataflow_set_preserve_mem_locs): Likewise.
17489
17490 2011-05-09  Philipp Thomas  <pth@suse.de>
17491
17492         * config/mep/mep.c (mep_validate_vliw): Syntax description
17493         should not be translated.
17494
17495 2011-05-09  Joseph Myers  <joseph@codesourcery.com>
17496
17497         * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
17498         * config/mips/mips-tables.opt: New file (generated).
17499         * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
17500         * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
17501         MIPS_ARCH_OPTION_NATIVE): Define.
17502         * config/mips/mips.c (mips_cpu_info_table): Move contents to
17503         mips-cpus.def.
17504         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
17505         mips_parse_cpu): Remove.
17506         (mips_cpu_info_from_opt, mips_default_arch): New.
17507         (mips_handle_option): Don't assert that global structures are in
17508         use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
17509         (mips_option_override): Use new variables and functions to set
17510         state of these options.  Use strcmp to check for individual CPU names.
17511         * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
17512         definition.
17513         * config/mips/mips.opt (march=): Use ToLower and Enum.
17514         (mips): Use ToLower, Enum and Var.
17515         (mtune=): Use ToLower and Enum.
17516         * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
17517
17518 2011-05-08  Jan Hubicka  <jh@suse.cz>
17519
17520         * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
17521         Arrange type pairs to be UID ordered.
17522         (gimple_lookup_type_leader): Make inline.
17523
17524 2011-05-09  Nick Clifton  <nickc@redhat.com>
17525
17526         PR target/48899
17527         * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
17528         PROCESSOR_DEFAULT.
17529
17530         PR target/48897
17531         * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
17532         variable 's'.
17533
17534 2011-05-08  Chung-Lin Tang  <cltang@codesourcery.com>
17535
17536         * combine.c (simplify_comparison): Abstract out parts into...
17537         (simplify_compare_const): ... new function.
17538         (try_combine): Generalize parallel arithmetic/compare combining
17539         to call simplify_compare_const() and CANONICALIZE_COMPARE().
17540
17541 2011-05-08  Jan Hubicka  <jh@suse.cz>
17542
17543         * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
17544         (cgraph_create_virtual_clone): Call hooks once virtual clone
17545         is finished.
17546         * cgraph.h (cgraph_clone_node): Update prototype.
17547         * ipa-cp.c (ipcp_estimate_growth): Use
17548         estimate_ipcp_clone_size_and_time.
17549         * ipa-inline-transform.c (clone_inlined_nodes): Update.
17550         * lto-cgraph.c (input_node): Update.
17551         * ipa-inline.c (recursive_inlining): Update.
17552         * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
17553         (evaluate_conditions_for_known_args): Break out from ...
17554         (evaluate_conditions_for_edge): ... here.
17555         (evaluate_conditions_for_ipcp_clone): New function.
17556         (inline_node_duplication_hook): Update clone summary based
17557         on parameter map.
17558         (estimate_callee_size_and_time): Rename to ...
17559         (estimate_node_size_and_time): take NODE instead of EDGE;
17560         take POSSIBLE_TRUTHS as argument.
17561         (estimate_callee_size_and_time): Update.
17562         (estimate_ipcp_clone_size_and_time): New function.
17563         (do_estimate_edge_time): Update.
17564
17565 2011-05-08  Richard Guenther  <rguenther@suse.de>
17566
17567         PR middle-end/48908
17568         PR middle-end/48905
17569         * expmed.c (expand_shift_1): Compute adjusted constant shift
17570         amount manually.
17571
17572 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
17573
17574         * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
17575
17576 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
17577
17578         * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
17579
17580 2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
17581
17582         * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
17583
17584 2011-05-07  Jan Hubicka  <jh@suse.cz>
17585
17586         * ipa-inline-transform.c (inline_call): Account when program size
17587         decreases.
17588         * ipa-inline.c (relative_time_benefit): New function.
17589         (edge_badness): Reorganize to be power 2 based; fix thinko when
17590         computing badness for negative growth; update comments to match
17591         reality; better dumps.
17592
17593 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
17594
17595         * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
17596         type to bool and adjust comment.
17597         * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
17598         (fold_mathfn_compare): Remove calls to global_bindings_p.
17599         (fold_inf_compare): Likewise.
17600         * stor-layout.c (variable_size): Adjust call to global_bindings_p.
17601         * c-tree.h (global_bindings_p): Adjust prototype.
17602         * c-decl.c (global_bindings_p): Return bool and simplify.
17603
17604 2011-05-07  Zdenek Dvorak  <ook@ucw.cz>
17605
17606         PR tree-optimization/48837
17607         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
17608         when accumulator transformation is performed.
17609
17610 2011-05-06  Jan Hubicka  <jh@suse.cz>
17611
17612         * i386.h (ix86_tune_indices): Add
17613         X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
17614         (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
17615         * i386.c (initial_ix86_tune_features): Add
17616         X86_SOFTARE_PREFETCHING_BENEFICIAL.
17617         (software_prefetching_beneficial_p): Remove predicate.
17618         (ix86_option_override_internal): Use new macro.
17619
17620 2011-05-06  Jan Hubicka  <jh@suse.cz>
17621
17622         * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
17623
17624 2011-05-06  Jan Hubicka  <jh@suse.cz>
17625
17626         * cgraph.c (cgraph_add_thunk): Create real function node instead
17627         of alias node; finalize it and mark needed/reachale; arrange visibility
17628         to be right and add it into the corresponding same comdat group list.
17629         (dump_cgraph_node): Dump thunks.
17630         * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
17631         cgraph_function_with_gimple_body_p,
17632         cgraph_first_function_with_gimple_body,
17633         cgraph_next_function_with_gimple_body): New functions.
17634         (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
17635         New macros.
17636         * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
17637         (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
17638         * cgraphunit.c (cgraph_finalize_function): Only look into possible
17639         devirtualization when optimizing.
17640         (verify_cgraph_node): Verify thunks.
17641         (cgraph_analyze_function): Analyze thunks.
17642         (cgraph_mark_functions_to_output): Output thunks only in combination
17643         with function they are assigned to.
17644         (assemble_thunk): Turn thunk into non-thunk; don't try to turn
17645         alias into normal node.
17646         (assemble_thunks): New functoin.
17647         (cgraph_expand_function): Use it.
17648         * lto-cgraph.c (lto_output_node): Stream thunks.
17649         (input_overwrite_node): Stream in thunks.
17650         * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
17651         * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
17652         * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
17653         * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
17654         (inline_analyze_function): Do not care about thunk jump functions.
17655         (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
17656         * ipa-prop.c (ipa_prop_write_jump_functions): Use
17657         cgraph_function_with_gimple_body_p.
17658         * passes.c (do_per_function_toporder): Use
17659         cgraph_function_with_gimple_body_p.
17660         (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
17661         (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
17662         (function_called_by_processed_nodes_p): Likewise.
17663
17664 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
17665
17666         * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
17667         rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
17668         entries.
17669         (mabi=): Replace with separate entries for mabi=altivec,
17670         mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
17671         mabi=ieeelongdouble and mabi=ibmlongdouble.
17672         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
17673         check for -mabi=spe without SPE ABI support here.
17674         (rs6000_handle_option): Replace OPT_mabi_ handling with
17675         OPT_mabi_altivec and OPT_mabi_spe handling.
17676
17677 2011-05-06  Cary Coutant  <ccoutant@google.com>
17678
17679         * dwarf2out.c (contains_subprogram_definition): New function.
17680         (should_move_die_to_comdat): Call it.
17681
17682 2011-05-06  Jeff Law  <law@redhat.com>
17683
17684         * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
17685         remove_ctrl_stmt_and_useless_edges.
17686         (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
17687         (fixup_template_block, thread_single_edge): Likewise.
17688         (mark_threaded_blocks): Use THREAD_TARGET.
17689
17690 2011-05-06  Alan Modra  <amodra@gmail.com>
17691
17692         PR target/48900
17693         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
17694         const0_rtx as the arg to the dummy __tls_get_addr libcall.
17695
17696 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
17697
17698         * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
17699         constraint modifier to "r".
17700
17701 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
17702
17703         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
17704         fall through for OPT_mcmodel_.
17705
17706 2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17707
17708         * config/s390/s390.c (s390_asm_trampoline_template): Comment
17709         instruction sizes.
17710         (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
17711
17712 2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
17713
17714         PR target/47930
17715         * config/arm/arm.opt (marm): Document it.
17716         (mthumb): Reject negative variant.
17717
17718 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
17719
17720         PR target/48898
17721         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
17722         Fix typo in "ccvt" variable name.
17723
17724 2011-05-06  Tristan Gingold  <gingold@adacore.com>
17725
17726         PR target/48895
17727         * config/vms/vms-ar.c (main): Remove cwd variable.
17728
17729 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
17730
17731         PR debug/48902
17732         * var-tracking.c (prepare_call_arguments): Move else before #endif.
17733
17734 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
17735
17736         * except.c (sjlj_emit_dispatch_table): Call build_case_label.
17737         * gimplify.c (gimplify_switch_expr): Likewise.
17738         * omp-low.c (expand_omp_sections): Likewise.
17739         * tree-eh.c (lower_try_finally_switch): Likewise.
17740         (lower_eh_dispatch): Likewise.
17741         * tree.h (build_case_label): Declare.
17742         * tree.c (build_case_label): Define.
17743
17744 2011-05-05  Jason Merrill  <jason@redhat.com>
17745
17746         PR c++/40975
17747         * tree-inline.c (copy_tree_r): Use copy_statement_list.
17748         (copy_statement_list): Don't recurse.
17749         * stor-layout.c (copy_self_referential_tree_r): Don't allow
17750         STATEMENT_LIST.
17751
17752 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
17753
17754         * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
17755         through from -mfpu= handling.
17756         * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
17757
17758 2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>
17759
17760         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
17761         POST_MODIFY.
17762
17763 2011-05-05  Steve Ellcey  <sje@cup.hp.com>
17764
17765         * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
17766         for 11.31.
17767         (hppa[12]*-*-hpux11*): Ditto.
17768         (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
17769         * config/ia64/hpux-unix2003.h: New.
17770         * config/pa/pa-hpux1131.opt: New.
17771         * config/pa/pa-hpux1131.h: New.
17772         * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
17773         * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
17774         * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
17775
17776 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
17777
17778         PR debug/48853
17779         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
17780         instead of mode as 3rd argument to recursive call.
17781         (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
17782         emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
17783         VOIDmode.
17784         (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
17785         don't give up if mode is Pmode and mem_mode is not VOIDmode.
17786         (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
17787         use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
17788
17789 2011-05-05  Julian Brown  <julian@codesourcery.com>
17790
17791         * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
17792         parenthesis in D-register case.
17793
17794 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
17795
17796         * opt-functions.awk (var_type_struct): Handle Enum options.
17797         * optc-gen.awk: Don't check range of variables of character type.
17798         * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
17799         rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
17800         rs6000_sdata_name, rs6000_explicit_options): Remove.
17801         (rs6000_option_override_internal): Check for -malign-power here.
17802         Use global_options_set instead of rs6000_explicit_options.
17803         (rs6000_parse_fpu_option): Remove.
17804         (rs6000_handle_option): Access variables via opts and opts_set
17805         pointers.  Use error_at and warning_at.  Add fall-through
17806         comments.  Don't handle OPT_mcmodel_, OPT_maix_struct_return,
17807         OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
17808         OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
17809         OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
17810         here.  Don't use rs6000_parse_fpu_option.
17811         * config/rs6000/rs6000.h (fpu_type): Remove declaration.
17812         * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
17813         rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
17814         (mrecip=): Use Var.
17815         (mspe): Use Var and Save.
17816         (mtraceback=): Use Enum and Var.
17817         (rs6000_traceback_type): New Enum and EnumValue entries.
17818         (mfloat-gprs=): Use Enum, Var and Save.
17819         (rs6000_float_gprs): New Enum and EnumValue entries.
17820         (mlong-double-): use Var and Save.
17821         (msched-costly-dep=, minsert-sched-nops=): Use Var.
17822         (malign-): Use Enum and Var.
17823         (rs6000_alignment_flags): New Enum and EnumValue entries.
17824         (mfpu=): Use Enum.
17825         (fpu_type_t): New Enum and EnumValue entries.
17826         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
17827         global_options_set instead of rs6000_explicit_options.
17828         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
17829         global_options_set instead of rs6000_explicit_options.
17830         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
17831         global_options_set instead of rs6000_explicit_options.
17832         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
17833         global_options_set instead of rs6000_explicit_options.
17834         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
17835         global_options_set instead of rs6000_explicit_options.
17836         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
17837         global_options_set instead of rs6000_explicit_options.
17838         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
17839         definition.
17840         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
17841         global_options_set instead of rs6000_explicit_options.
17842         * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
17843         (rs6000_cmodel): New Enum and EnumValue entries.
17844         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
17845         global_options_set instead of rs6000_explicit_options.
17846         * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
17847         (mtls-size=): Use Enum and Var.
17848         (rs6000_tls_size): New Enum and EnumValue entries.
17849
17850 2011-05-05  Michael Matz  <matz@suse.de>
17851
17852         * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
17853         * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
17854         * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
17855         * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
17856         * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
17857         * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
17858         * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
17859         * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
17860         * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
17861         * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
17862         * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
17863         * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
17864         * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
17865         * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
17866         * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
17867         * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
17868
17869 2011-05-05  Richard Guenther  <rguenther@suse.de>
17870
17871         * expmed.c (expand_variable_shift): Rename to ...
17872         (expand_shift_1): ... this.  Take an expanded shift amount.
17873         For rotates recurse directly not building trees for the shift amount.
17874         (expand_variable_shift): Wrap around expand_shift_1.
17875         (expand_shift): Adjust.
17876
17877 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
17878
17879         * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
17880
17881 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
17882
17883         * tree.h (get_pending_sizes): Remove prototype.
17884         (put_pending_size): Likewise.
17885         (put_pending_sizes): Likewise.
17886         * stor-layout.c (pending_sizes): Delete.
17887         (get_pending_sizes): Likewise.
17888         (put_pending_size): Likewise.
17889         (put_pending_sizes): Likewise.
17890         (variable_size): Do not call put_pending_size and tidy up.
17891         * function.h (struct function): Remove dont_save_pending_sizes_p.
17892         * lto-streamer-in.c (input_function): Do not stream it.
17893         * lto-streamer-out.c (output_function): Likewise.
17894         * tree-inline.c (initialize_cfun): Do not copy it.
17895         * c-decl.c (store_parm_decls): Do not set it.
17896         * omp-low.c (create_task_copyfn): Likewise.
17897         * tree-optimize.c (tree_rest_of_compilation): Likewise.
17898
17899 2011-05-05  Uros Bizjak  <ubizjak@gmail.com>
17900
17901         * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
17902         conditions.
17903         (*movdf_internal): Ditto.
17904         (*movdf_internal_nointeger): Ditto.
17905         (*movsf_internal): Ditto.
17906
17907 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
17908
17909         * c-decl.c (finish_decl): Don't call get_pending_sizes.
17910         (grokparm): Add parameter expr.  Pass it to grokdeclarator.
17911         (push_parm_decl): Add parameter expr.  Pass it to grokdeclarator.
17912         (c_variable_size): Remove.
17913         (grokdeclarator): Use save_expr instead of c_variable_size.  Don't
17914         call put_pending_sizes.
17915         (get_parm_info): Add parameter expr.  Use it to set
17916         arg_info->pending_sizes.
17917         (store_parm_decls): Use arg_info->pending_sizes instead or calling
17918         get_pending_sizes.
17919         * c-parser.c (c_parser_parms_declarator): Update call to
17920         c_parser_parms_list_declarator.
17921         (c_parser_parms_list_declarator): Take parameter expr.  Update
17922         call to push_parm_decl.  Update recursive call.  Don't call
17923         get_pending_sizes.  Update calls to get_parm_info.
17924         (c_parser_objc_method_definition): Update calls to
17925         c_parser_objc_method_decl and objc_start_method_definition.
17926         (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
17927         (c_parser_objc_method_decl): Add parameter expr.  Update call to
17928         grokparm.
17929         (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
17930         * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
17931         (get_parm_info, grokparm, push_parm_decl): Update prototypes.
17932
17933 2011-05-05  Michael Hope  <michael.hope@linaro.org>
17934
17935         PR pch/45979
17936         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
17937         __ARM_EABI__ hosts.
17938
17939 2011-05-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17940
17941         * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
17942         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
17943         (spu_output_mi_thunk): New function.
17944
17945 2011-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17946
17947         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
17948         targetm.asm_out.print_operand.
17949         * config/sol2.c: Include target.h.
17950
17951 2011-05-04  Jan Hubicka  <jh@suse.cz>
17952
17953         * ipa-inline.c (reset_edge_caches): New function.
17954         (update_caller_keys): Add check_inlinablity_for; do not
17955         reset edge caches; remove now unnecesary loop.
17956         (update_callee_keys): Add comments; reset node_growth_cache of callee.
17957         (update_all_callee_keys): Likewise.
17958         (inline_small_functions): Sanity check cache; update code
17959         recomputing it.
17960
17961 2011-05-04  Bernd Schmidt  <bernds@codesourcery.com>
17962
17963         PR rtl-optimization/47612
17964         * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
17965         as the last insn of the sequence to be moved.
17966
17967 2011-05-04  Tobias Burnus  <burnus@net-b.de>
17968
17969         PR fortran/48864
17970         * doc/invoke.texi (Ofast): Document that it
17971         enables Fortran's -fno-protect-parens.
17972
17973 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
17974
17975         * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
17976
17977 2011-05-04  Eric Botcazou  <ebotcazou@adacore.com>
17978
17979         * stor-layout.c (variable_size): Do not issue errors.
17980
17981 2011-05-04  Richard Guenther  <rguenther@suse.de>
17982
17983         * coverage.c (tree_coverage_counter_ref): Use integer_type_node
17984         for array-ref indices.
17985         (tree_coverage_counter_addr): Likewise.
17986         (build_fn_info_type): Use size_int for index types.
17987         (build_gcov_info): Likewise.
17988
17989 2011-05-04  Richard Guenther  <rguenther@suse.de>
17990
17991         * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
17992         to build_int_cst.
17993         * c-typeck.c (really_start_incremental_init): Use bitsize_int
17994         for constructor indices.
17995         (push_init_level): Likewise.
17996
17997 2011-05-04  Richard Guenther  <rguenther@suse.de>
17998
17999         * explow.c (promote_mode): Move variable declarations before code.
18000
18001 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
18002
18003         * tree.h (build_function_type_array): Declare.
18004         (build_varargs_function_type_array): Declare.
18005         (build_function_type_vec, build_varargs_function_type_vec): Define.
18006         * tree.c (build_function_type_array_1): New function.
18007         (build_function_type_array): New function.
18008         (build_varargs_function_type_array): New function.
18009
18010 2011-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
18011
18012         * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
18013         before setting STMT_VINFO_TYPE.
18014
18015 2011-05-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18016
18017         * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
18018         instead of spu_pass_by_reference.
18019
18020 2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18021
18022         * calls.c (emit_library_call_value_1): Invoke
18023         promote_function_mode hook on libcall arguments.
18024         * explow.c (promote_function_mode, promote_mode): Handle TYPE
18025         argument being NULL.
18026         * targhooks.c (default_promote_function_mode): Lisewise.
18027         * config/s390/s390.c (s390_promote_function_mode): Likewise.
18028         * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
18029
18030         * doc/tm.texi: Document that TYPE argument might be NULL.
18031
18032 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
18033
18034         * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
18035
18036 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
18037
18038         From Bernd Schmidt
18039         * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
18040
18041 2011-05-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18042
18043         * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
18044         (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
18045         Move ...
18046         * mips-tfile.c: ... here.
18047         Don't include coretypes.h, tm.h, filenames.h.
18048         (saber_stop): Remove definition and all calls.
18049         [__SABER__]: Remove.
18050         (__LINE__): Remove default.
18051         (Size_t, Ptrdiff_t): Remove definitions.
18052         Replace by size_t, ptrdiff_t.
18053         [!MIPS_DEBUGGING_INFO]: Remove.
18054         (SHASH_SIZE, THASH_SIZE): Remove defaults.
18055         (progname): Add const.
18056         (STATIC): Remove.
18057         Replace all uses by static.
18058         (ALIGN_SYMTABLE_OFFSET): Remove default.
18059         * mips-tdump.c: Don't include coretypes.h, tm.h.
18060         Remove !MIPS_IS_STAB guard.
18061         * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
18062         $(TM_H), filenames.h dependencies.
18063         (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
18064
18065 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
18066
18067         From Jie Zhang
18068         *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
18069         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
18070
18071 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
18072
18073         From Bernd Schmidt
18074         * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
18075         account and save/restore RETS.
18076         (PROFILE_BEFORE_PROLOGUE): Define.
18077         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character.  Correct
18078         the push insn to use predecrement.
18079
18080 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
18081
18082         From Jie Zhang
18083         * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
18084
18085 2011-05-04  Nick Clifton  <nickc@redhat.com>
18086
18087         * config/mn10300/mn10300.c: Include cfgloop.h.
18088         (DUMP): New macro.
18089         (mn10300_insert_setlb_lcc): New function.  Inserts a SETLB and a
18090         Lcc or a FLcc insn into the instruction stream.
18091         (mn10300_block_contains_call): New function.  Returns true if the
18092         given basic block contains a CALL insn.
18093         (mn10300_loop_contains_call_insn): New function.  Returns true if
18094         the given loop contains a CALL insn.
18095         (mn10300_scan_for_setlb_lcc): New function.  Finds opportunities
18096         to use the SETLB and Lcc or FLcc insns.
18097         (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
18098         (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
18099         * config/mn10300/mn10300.opt (msetlb): New option.  Used to
18100         disable the SETLB optimization.
18101         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
18102         __SETLB__ or __NO_SETLB__.
18103         * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
18104         (movsf_internal): Handle MDR register.
18105         (cmpsi): Make visible.
18106         (setlb): New pattern.
18107         (Lcc): New pattern.
18108         (FLcc): New pattern.
18109
18110 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
18111
18112         PR target/48860
18113         * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
18114         for reg<->xmm moves.
18115         * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
18116         (vec_concatv2di_rex64_sse): Ditto.
18117         (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
18118         (*vec_extractv2di_1_rex64): Ditto.
18119
18120         Revert:
18121         2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
18122
18123         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
18124         reg<->xmm moves.
18125         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
18126
18127 2011-05-04  Richard Guenther  <rguenther@suse.de>
18128
18129         * tree.h (int_const_binop): Remove notrunc argument.
18130         * fold-const.c (int_const_binop): Remove notrunc argument.  Always
18131         create integer constants that are properly truncated.
18132         (extract_muldiv_1): Expand one notrunc int_const_binop caller.
18133         (const_binop): Remove zero notrunc argument to int_const_binop.
18134         (size_binop_loc): Likewise.
18135         (fold_div_compare): Likewise.
18136         (maybe_canonicalize_comparison_1): Likewise.
18137         (fold_comparison): Likewise.
18138         (fold_binary_loc): Likewise.
18139         (multiple_of_p): Likewise.
18140         * expr.c (store_constructor): Likewise.
18141         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
18142         (maybe_fold_stmt_addition): Likewise.
18143         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
18144         * stor-layout.c (layout_type): Likewise.
18145         * tree-data-ref.c (tree_fold_divides_p): Likewise.
18146         * tree-sra.c (build_ref_for_offset): Likewise.
18147         (build_user_friendly_ref_for_offset): Likewise.
18148         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
18149         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
18150         * tree-ssa-loop-niter.c (inverse): Likewise.
18151         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
18152         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
18153         * tree-switch-conversion.c (check_range): Likewise.
18154         (build_constructors): Likewise.
18155         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
18156         * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
18157         (extract_range_from_assert): Likewise.
18158         (vrp_int_const_binop): Likewise.
18159         (extract_range_from_binary_expr): Likewise.
18160         (extract_range_from_unary_expr): Likewise.
18161         (check_array_ref): Likewise.
18162         (find_case_label_range): Likewise.
18163         (simplify_div_or_mod_using_ranges): Likewise.
18164         * tree-cfg.c (group_case_labels_stmt): Use double-ints for
18165         comparing case labels for merging.
18166
18167 2011-05-03  Mark Wielaard  <mjw@redhat.com>
18168
18169         * dwarf2out.c (debug_str_hash_forced): Removed.
18170         (gen_label_for_indirect_string): Removed.
18171         (get_debug_string_label): Removed.
18172         (AT_string_form): Generate label directly.
18173         (output_indirect_string): Test indirect_string_node for
18174         DW_FORM_strp instead of checking label and refcount.
18175         (prune_indirect_string): Removed.
18176         (prune_unused_types): Don't check debug_str_hash_forced or
18177         call prune_indirect_string.
18178
18179 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
18180
18181         PR other/48093
18182         * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
18183
18184 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
18185
18186         PR debug/47994
18187         PR debug/47919
18188         * combine.c (try_combine): Skip debug insns at m_split tests.
18189
18190 2011-04-26  Mark Wielaard  <mjw@redhat.com>
18191
18192         PR42288
18193         * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
18194         when info_section_emitted.
18195
18196 2011-05-03  Joseph Myers  <joseph@codesourcery.com>
18197
18198         * config/mips/mips-opts.h: New.
18199         * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
18200         to mips-opts.h.
18201         (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
18202         (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
18203         or OPT_mr10k_cache_barrier_ here.  Access mips_cache_flush_func
18204         via opts pointer.
18205         * config/mips/mips.h (enum mips_code_readable_setting): Move to
18206         mips-opts.h.
18207         (mips_abi, mips_code_readable): Don't declare.
18208         * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
18209         (mabi=): Use Enum and Var.
18210         (mips_abi): New Enum and EnumValue entries.
18211         (mcode-readable=): Use Enum and Var.
18212         (mips_code_readable_setting): New Enum and EnumValue entries.
18213         (mr10k-cache-barrier=): Use Enum and Var.
18214         (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
18215
18216 2011-05-03  Jan Hubicka  <jh@suse.cz>
18217
18218         * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
18219         replace hash by pointer map.
18220         (cgraph_node_set_element_def, cgraph_node_set_element,
18221         const_cgraph_node_set_element, varpool_node_set_element_def,
18222         varpool_node_set_element, const_varpool_node_set_element): Remove.
18223         (free_cgraph_node_set, free_varpool_node_set): New function.
18224         (cgraph_node_set_size, varpool_node_set_size): Use vector size.
18225         * tree-emutls.c: Free varpool node set.
18226         * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
18227         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
18228         debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
18229         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
18230         dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
18231         Move here from ipa.c; implement using pointer_map
18232         * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
18233         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
18234         debug_cgraph_node_set, varpool_node_set_new,
18235         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
18236         dump_varpool_node_set, debug_varpool_node_set):
18237         Move to ipa-uitls.c.
18238         * passes.c (ipa_write_summaries): Update.
18239
18240 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
18241
18242         From Mike Frysinger:
18243         * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
18244         bf542/bf544/bf547/bf548/bf549.
18245
18246 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
18247
18248         * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
18249
18250 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
18251
18252         From Bernd Schmidt:
18253         * config/bfin/bfin.md (MOVCC): New mode_macro.
18254         (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
18255         movsicc_insn1, movsicc_insn2 and movsicc and macroized.  Remove
18256         comments from generated assembly.
18257
18258 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
18259
18260         From Bernd Schmidt
18261         * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
18262         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
18263         * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
18264         * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
18265         * config/bfin/lib1funcs.asm (___muldi3): New function.
18266
18267 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
18268
18269         * config/stormy16/stormy16 (xstormy16_init_builtins): Call
18270         build_function_type_list instead of build_function_type.
18271         Rearrange initialization of `args' to do so.
18272
18273 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
18274
18275         * config/i386/i386.c (ix86_code_end): Call build_function_type_list
18276         instead of build_function_type.
18277
18278 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
18279
18280         * config/rs6000/rs6000.c (spe_init_builtins): Call
18281         build_function_type_list instead of build_function_type.
18282         (paired_init_builtins, altivec_init_builtins): Likewise.
18283         (builtin_function_type): Likewise.
18284
18285 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
18286
18287         * config/sh/sh.c (sh_media_init_builtins): Call
18288         build_function_type_list instead of build_function_type.
18289
18290 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
18291
18292         * config/sparc/sparc.c (sparc_file_end): Call
18293         build_function_type_list instead of build_function_type.
18294
18295 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
18296
18297         * config/alpha/alpha.c (alpha_init_builtins): Call
18298         build_function_type_list instead of build_function_type.
18299
18300 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
18301
18302         * config/xtensa/xtensa.c (xtensa_init_builtins): Call
18303         build_function_type_list instead of build_function_type.
18304
18305 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
18306
18307         * config/iq2000/i2000.c (iq2000_init_builtins): Call
18308         build_function_type_list instead of build_function_type.
18309         Delete `endlink' variable.
18310
18311 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
18312
18313         * config/avr/avr.c (avr_init_builtins): Call
18314         build_function_type_list instead of build_function_type.
18315
18316 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
18317
18318         * config/picochip/picochip.c (picochip_init_builtins): Call
18319         build_function_type_list instead of build_function_type.
18320         Delete `endlink' variable.
18321
18322 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
18323
18324         * config/bfin/bfin.c (bfin_init_builtins): Call
18325         build_function_type_list instead of build_function_type.
18326
18327 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
18328
18329         From Bernd Schmidt
18330         * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
18331         that's not CONST_INT.  Seemingly redundant check is due to PR39768.
18332
18333 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
18334
18335         From Jie Zhang:
18336         * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
18337         libbffastfp overrides libgcc when -mfast-fp.
18338
18339 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
18340
18341         Originally from Bernd Schmidt
18342         * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
18343         * config/bfin/bfin.c (override_options): Test it and error if
18344         TARGET_FDPIC.
18345
18346 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
18347
18348         Originally From Bernd Schmidt
18349         * config/bfin/bfin.c (override_options): Disable -fstack-limit for
18350         FD-PIC.
18351
18352 2011-05-03  Jeff Law  <law@redhat.com>
18353
18354         * tree-ssa-threadupdate.c (THREAD_TARGET): define.
18355         (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
18356         (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
18357         than accessing AUX field directly.  Free the AUX field before
18358         clearing it.
18359         (thread_block, thread_through_loop_header): Likewise.
18360         (thread_single_edge, mark_threaded_blocks): Likewise.
18361         (redirect_edges): Delay clearing the AUX field.  Free the AUX field.
18362         (register_jump_thread): Do not attempt to thread to a NULL edge.
18363
18364 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
18365
18366         * function.c (init_function_start): Call decide_function_section.
18367         * varasm.c (decide_function_section): New function.
18368         (assemble_start_function): When not using
18369         flag_reorder_blocks_and_partition, don't compute in_cold_section_p
18370         or first_function_block_is_cold.
18371         * rtl.h (decide_function_section): Declare.
18372
18373 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
18374             Jakub Jelinek  <jakub@redhat.com>
18375
18376         PR target/48774
18377         * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
18378         only succeed if req_mode is the same as set_mode.
18379
18380 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
18381
18382         * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
18383         * genemit.c (gen_exp): Handle RETURN.
18384         * emit-rtl.c (verify_rtx_sharing): Likewise.
18385         (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
18386         * rtl.c (copy_rtx): RETURN is shared.
18387         * rtl.h (enum global_rtl_index): Add GR_RETURN.
18388         (ret_rtx): New.
18389         * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
18390         * config/s390/s390.c (s390_emit_epilogue): Likewise.
18391         * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
18392         * config/cris/cris.c (cris_expand_return): Likewise.
18393         * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
18394         * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
18395         rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
18396         * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
18397         * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
18398         Likewise.
18399         * config/v850/v850.c (expand_epilogue): Likewise.
18400         * config/bfin/bfin.c (bfin_expand_call): Likewise.
18401         * config/arm/arm.md (epilogue): Likewise.
18402         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
18403         * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
18404         variable to ret_reg.
18405
18406 2011-05-03  Richard Guenther  <rguenther@suse.de>
18407
18408         PR lto/48846
18409         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
18410         Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
18411         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
18412
18413 2011-05-03  Richard Guenther  <rguenther@suse.de>
18414
18415         * c-decl.c (grokdeclarator): Instead of looking at
18416         TREE_OVERFLOW check if the constant fits in the index type.
18417
18418 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
18419
18420         * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
18421         (vec_store_lanes<mode><mode>): Likewise.
18422
18423 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
18424
18425         * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
18426         * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
18427         convert_optab_index values.
18428         (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
18429         * genopinit.c (optabs): Initialize the new optabs.
18430         * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
18431         * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
18432         (expand_STORE_LANES): New functions.
18433         * tree.h (build_array_type_nelts): Declare.
18434         * tree.c (build_array_type_nelts): New function.
18435         * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
18436         (vect_model_load_cost): Likewise.
18437         (vect_store_lanes_supported, vect_load_lanes_supported)
18438         (vect_record_strided_load_vectors): Declare.
18439         * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
18440         (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
18441         (vect_transform_strided_load): Split out statement recording into...
18442         (vect_record_strided_load_vectors): ...this new function.
18443         * tree-vect-stmts.c (create_vector_array, read_vector_array)
18444         (write_vector_array, create_array_ref): New functions.
18445         (vect_model_store_cost): Add store_lanes_p argument.
18446         (vect_model_load_cost): Add load_lanes_p argument.
18447         (vectorizable_store): Try to use store-lanes functions for
18448         interleaved stores.
18449         (vectorizable_load): Likewise load-lanes and loads.
18450         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
18451         to vect_model_store_cost.
18452         (vect_build_slp_tree): Likewise vect_model_load_cost.
18453
18454 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
18455
18456         * hooks.h (hook_bool_mode_uhwi_false): Declare.
18457         * hooks.c (hook_bool_mode_uhwi_false): New function.
18458         * target.def (array_mode_supported_p): New hook.
18459         * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
18460         * doc/tm.texi: Regenerate.
18461         * stor-layout.c (mode_for_array): New function.
18462         (layout_type): Use it.
18463         * config/arm/arm.c (arm_array_mode_supported_p): New function.
18464         (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
18465
18466 2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
18467
18468         PR target/48723
18469         * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
18470         for -fstack-check if the size to allocate is negative.
18471
18472 2011-05-02  Lawrence Crowl  <crowl@google.com>
18473
18474         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
18475         (timevar_cond_start): New for starting a timer only when it is not
18476         already running.
18477         (timevar_cond_stop): New for stopping a timer when it was not already
18478         running.
18479
18480         * timevar.c (timevar_stop): Enable start/stop timers to start again.
18481         (timevar_cond_start): New as above.
18482         (timevar_cond_stop): New as above.
18483
18484         * timevar.def: Add start/stop timers for compiler phases,
18485         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
18486         TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
18487         and TV_PHASE_FINALIZE.
18488         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
18489         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
18490         TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
18491         Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
18492         Make unused TV_OVERLOAD into a start/stop timer.
18493
18494         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
18495         Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
18496         to indicate that they are start/stop timers.
18497
18498         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
18499         Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
18500         Move initialization to do_compile.
18501         (do_compile): Add initialization from above.
18502         Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
18503
18504         * c-decl.c (c_write_global_declarations): Add start/stop of
18505         TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
18506
18507         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
18508         or TV_PARSE_INLINE, as appropriate.
18509         (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
18510         (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
18511
18512 2011-05-02  Jason Merrill  <jason@redhat.com>
18513
18514         PR c++/40975
18515         * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
18516
18517 2011-05-02  Simon Martin  <simartin@users.sourceforge.net>
18518
18519         PR c/35445
18520         * c-decl.c (finish_decl): Only create a composite if the types are
18521         compatible.
18522
18523 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
18524
18525         * config/fr30/fr30-protos.h (Mmode): Don't define.
18526         * config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
18527         definition where used.
18528         * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
18529         define.  Expand definitions where used.
18530         * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
18531         Expand definitions where used.
18532         * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
18533         rx_function_arg, rx_function_arg_advance,
18534         rx_function_arg_boundary): Expand definitions of those macros.
18535         * config/v850/v850-protos.h (Mmode): Don't define.  Expand
18536         definition where used.
18537
18538 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
18539
18540         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
18541         reg<->xmm moves.
18542         (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
18543         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
18544         with *movv2sf_internal_rex64_avx.
18545         (*movv2sf_internal): Merge with *movv2sf_internal_avx.
18546         * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
18547         Use %v prefix in insn mnemonic to handle TARGET_AVX.
18548         (*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
18549         "vex" in "prefix" attribute calculation.
18550         (*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.
18551
18552 2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>
18553
18554         PR target/47951
18555         * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
18556         inputs match the output.
18557
18558 2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>
18559
18560         PR target/47955
18561         * config/m68k/m68k.c (m68k_expand_prologue): Set
18562         current_function_static_stack_size.
18563
18564 2011-05-02   Jan Hubicka  <jh@suse.cz>
18565
18566         * lto-streamer.c (lto_streamer_cache_insert_1,
18567         lto_streamer_cache_lookup, lto_streamer_cache_create,
18568         lto_streamer_cache_delete): Use pointer map instead of hashtable.
18569         * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
18570
18571 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
18572
18573         * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
18574         config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
18575         config/m68k/t-opts: New files.
18576         * config/m68k/m68k-tables.opt: New file (generated).
18577         * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
18578         extra_options and m68k/t-opts to tmake_file.
18579         * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
18580         (all_isas): Initialize using m68k-isas.def.
18581         (all_microarchs): Initialize using m68k-microarchs.def.
18582         (m68k_find_selection): Remove.
18583         (m68k_handle_option): Don't assert that global structures are in
18584         use.  Use error_at.  Access variables via opts pointer.  Don't
18585         handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
18586         directly for -m68020-40 and -m68020-60.
18587         (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
18588         m68k_tune_entry here.
18589         * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
18590         to m68k-opts.h.
18591         (m68k_library_id_string): Remove declaration.
18592         * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
18593         (m68k_library_id_string): New Variable.
18594         (march=, mcpu=, mtune=): Use Enum and Var.
18595
18596 2011-05-02  Richard Guenther  <rguenther@suse.de>
18597
18598         * varasm.c (output_constructor_regular_field): Compute zero-based
18599         index with double-ints.  Make sure to ICE instead of producing
18600         wrong code.
18601         * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
18602         in asserts.  Properly use a signed type.
18603
18604 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
18605
18606         * config/i386/sse.md (V): New mode iterator.
18607         (V_128): Rename from SSEMODE.  Make V2DF mode conditional on
18608         TARGET_SSE2.
18609         (V_256): Rename from AVX256MODE.
18610         (VF): Make V4SF mode unconditional.  Add TARGET_SSE instruction
18611         condition to all users.
18612         (VF1): Ditto.
18613         (VF2): Make V2DF mode unconditional.  Add TARGET_SSE2 instruction
18614         condition to all users.
18615         (VF_128): Make V4SF mode unconditional.
18616         (VF_256): Rename from AVX256MODEF2P.
18617         (VI4F_128): Rename from SSEMODE4S.
18618         (VI8F_128): Rename from SSEMODE2D.
18619         (VI4F_256): Rename from AVX256MODE8P.
18620         (VI8F_256): Rename from AVX256MODE4P.
18621         (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
18622         (ssescalarmodesuffix): Remove SF and DF modes.
18623         (SSEMODE124): Remove.
18624         (SSEMODE1248): Ditto.
18625         (SSEMODEF2P): Ditto.
18626         (AVXMODEF2P): Ditto.
18627         (AVXMODEFDP): Ditto.
18628         (AVXMODEFSP): Ditto.
18629         (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
18630         unconditional.
18631         (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO.  Make V4SF mode
18632         unconditional.
18633         (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
18634         xop_pcmov_<mode>256.  Use V mode iterator.
18635
18636         Adjust RTX patterns globally for renamed mode attributes.
18637
18638 2011-05-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18639
18640         * haifa-sched.c (sched_emit_insn): Emit insn before first
18641         non-scheduled insn.  Inform back-end about new insn.  Add
18642         new insn to scheduled_insns list.
18643
18644 2011-05-02  Richard Guenther  <rguenther@suse.de>
18645
18646         PR tree-optimization/48822
18647         * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
18648         (process_scc): Indicate which iteration we start.
18649
18650 2011-05-02  Jan Hubicka  <jh@suse.cz>
18651
18652         * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
18653         (lto_section_overrun): New.
18654         * lto-section-out.c (append_block): Rename to ...
18655         (lto_append_block): ... this one; export.
18656         (lto_output_1_stream): Move lto lto-streamer.h
18657         (lto_output_data_stream): Update.
18658         * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
18659         (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
18660         functions.
18661
18662 2011-05-02  Richard Guenther  <rguenther@suse.de>
18663
18664         * tree.c (tree_code_counts): New global array.
18665         (record_node_allocation_statistics): Count individual tree codes.
18666         (dump_tree_statistics): Dump individual code stats.
18667
18668 2011-05-01  Jan Hubicka  <jh@suse.cz>
18669
18670         * ipa-inline.c (caller_growth_limits): Fix thinko when
18671         looking for largest stack frame.
18672         * ipa-inline.h (dump_inline_summary): Declare.
18673         * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
18674         on stack usage.
18675         (dump_inline_summary): Export.
18676         (debug_inline_summary): Declare as DEBUG_FUNCTION.
18677
18678 2011-05-01  Anatoly Sokolov  <aesok@post.ru>
18679
18680         * reginfo.c (memory_move_cost): Change rclass argument type form
18681         'enum reg_class' to reg_class_t.
18682         * reload.h (memory_move_cost): Update prototype.
18683         * postreload.c reload_cse_simplify_set): Change type dclass var to
18684         reg_class_t.
18685         * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
18686         Update prototype.
18687         (ira_allocate_and_set_costs): Change aclass argument type form
18688         'enum reg_class' to reg_class_t.
18689         * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
18690         Change aclass argument type to reg_class_t.
18691         (update_conflict_hard_reg_costs): Change type aclass and pref vars
18692         to reg_class_t.
18693         * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
18694         memory_move_cost call.
18695
18696         * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
18697         'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
18698         Change type tmp var to reg_class_t.
18699
18700 2011-04-30  Jan Hubicka  <jh@suse.cz>
18701
18702         * ipa-inline.c (can_inline_edge_p): Disregard limits when
18703         inlining into function with flatten attribute.
18704         (want_inline_small_function_p): Be more realistic about inlining
18705         cold calls where callee size grows.
18706
18707 2011-04-30  Jan Hubicka  <jh@suse.cz>
18708
18709         * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
18710         flags.
18711
18712 2011-04-30  Anatoly Sokolov  <aesok@post.ru>
18713
18714         * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
18715         PRINT_OPERAND_PUNCT_VALID_P): Remove.
18716         * config/sparc/sparc-protos.h (print_operand): Remove declaration.
18717         * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
18718         TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
18719         (print_operand): Rename to...
18720         (sparc_print_operand): ...this. Make static. Adjust
18721         sparc_print_operand function call.
18722         (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
18723         functions.
18724
18725 2011-04-30  Jan Hubicka  <jh@suse.cz>
18726
18727         PR middle-end/48752
18728         * ipa-inline.c (early_inliner): Disable when doing late
18729         addition of function.
18730
18731 2011-04-30  Jakub Jelinek  <jakub@redhat.com>
18732
18733         * dwarf2out.c (get_address_mode): New inline.
18734         (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
18735         if not dwarf_strict emit
18736         DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
18737         desirable.  Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
18738         UNSIGNED_FLOAT, FIX and UNSIGNED_FIX.  Just return NULL for
18739         FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
18740         (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
18741         dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
18742         mem_loc_descriptor callers.
18743         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
18744         output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
18745         Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
18746         DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
18747         (base_types): New variable.
18748         (get_base_type_offset, calc_base_type_die_sizes,
18749         base_type_for_mode, mark_base_types, base_type_cmp,
18750         move_marked_base_types): New functions.
18751         (calc_die_sizes): Assert that die_offset is 0 or equal to
18752         next_die_offset.
18753         (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
18754         others defer to mem_loc_descriptor.  Adjust mem_loc_descriptor
18755         callers.  If not dwarf_strict, call mem_loc_descriptor even for
18756         non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
18757         (gen_subprogram_die): Don't give up on call site parameters
18758         with non-integral or large integral modes.  Adjust
18759         mem_loc_descriptor callers.
18760         (prune_unused_types): Call prune_unused_types_mark on base_types
18761         vector entries.
18762         (resolve_addr): Call mark_base_types.
18763         (dwarf2out_finish): Call move_marked_base_types.
18764
18765         PR tree-optimization/48809
18766         * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
18767         type.
18768         (gen_inbound_check): Don't compute index_expr - range_min in utype
18769         again, instead reuse SSA_NAME initialized in build_arrays.
18770         Remove two useless gsi_for_stmt calls.
18771
18772 2011-04-29  Jeff Law  <law@redhat.com>
18773
18774         * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
18775
18776 2011-04-29  Martin Jambor  <mjambor@suse.cz>
18777
18778         * cgraph.h (cgraph_postorder): Remove declaration.
18779         * ipa-utils.h (ipa_free_postorder_info): Declare.
18780         (ipa_reverse_postorder): Likewise.
18781         * cgraphunit.c: Include ipa-utils.h.
18782         (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
18783         * ipa-inline.c: Include ipa-utils.h.
18784         (ipa_inline): Update call to ipa_reverse_postorder.
18785         * ipa-pure-const.c (propagate_pure_const): Update call to
18786         ipa_reduced_postorder and ipa_print_order.  Call
18787         ipa_free_postorder_info to clean up.
18788         (propagate_nothrow): Likewise.
18789         * ipa-reference.c (propagate): Removed a useless call to
18790         ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
18791         and ipa_print_order.  Call ipa_free_postorder_info to clean up.
18792         * ipa.c: Include ipa-utils.h.
18793         (ipa_profile): Update call to ipa_reverse_postorder.
18794         (cgraph_postorder): Moved to...
18795         * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
18796         (ipa_utils_print_order): Renamed to ipa_print_order.
18797         (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
18798         comments.
18799         (ipa_free_postorder_info): New function.
18800         * passes.c: Include ipa-utils.h.
18801         (do_per_function_toporder): Update call to ipa_reverse_postorder.
18802         (ipa_write_summaries): Likewise.
18803         * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
18804         (cgraphunit.o): Likewise.
18805         (ipa.o): Likewise.
18806         (ipa-inline.o): Likewise.
18807
18808 2011-04-29  Jan Hubicka  <jh@suse.cz>
18809
18810         * gcc.dg/tree-ssa/inline-10.c: New testcase.
18811         * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
18812         * ipa-inline.h (clause_t): Turn into unsigned int.
18813         * ipa-inline-analysis.c (add_clause): Do more simplification.
18814         (and_predicates): Shortcut more cases.
18815         (predicates_equal_p): Move forward; check that clauses are properly
18816         ordered.
18817         (or_predicates): Shortcut more cases.
18818         (edge_execution_predicate): Rewrite as...
18819         (set_cond_stmt_execution_predicate): ... this function; handle
18820         __builtin_constant_p.
18821         (set_switch_stmt_execution_predicate): New .
18822         (compute_bb_predicates): New.
18823         (will_be_nonconstant_predicate): Update TODO.
18824         (estimate_function_body_sizes): Use compute_bb_predicates
18825         and free them later, always try to estimate if stmt is constant.
18826         (estimate_time_after_inlining, estimate_size_after_inlining):
18827         Gracefully handle optimized out edges.
18828         (read_predicate): Fix off by one error.
18829
18830 2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>
18831
18832         * Makefile.in (ENABLE_MAINTAINER_RULES): New.
18833
18834 2011-04-27  Xinliang David Li  <davidxl@google.com>
18835
18836         * tree-profile.c (init_ic_make_global_vars): Set
18837         tls attribute on ic vars.
18838         * coverage.c (coverage_end_function): Initialize
18839         function_list with zero.
18840
18841 2011-04-29  Richard Guenther  <rguenther@suse.de>
18842
18843         * builtins.c (fold_builtin_classify_type): Use integer_type_node
18844         for the type of the result.
18845         (fold_builtin_isascii): Likewise.
18846         (fold_builtin_toascii): Use integer_type_node where appropriate.
18847         (fold_builtin_logb): Likewise.
18848         (fold_builtin_frexp): Likewise.
18849         (fold_builtin_strstr): Likewise.
18850         (fold_builtin_strpbrk): Likewise.
18851         (fold_builtin_fputs): Likewise.
18852         (fold_builtin_sprintf): Likewise.
18853         (fold_builtin_snprintf): Likewise.
18854         (fold_builtin_printf): Likewise.
18855         (do_mpfr_remquo): Use a proper type for the assigned constant.
18856         (do_mpfr_lgamma_r): Likewise.
18857         * dwarf2out.c (resolve_one_addr): Use size_int.
18858         * except.c (init_eh): Likewise.
18859         (assign_filter_values): Use integer_type_node for filter values.
18860         (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
18861         indices.
18862         * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
18863         for EH region numbers.
18864         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
18865         for the shift amount.
18866
18867 2011-04-29  Richard Guenther  <rguenther@suse.de>
18868
18869         * expr.h (expand_shift): Rename to ...
18870         (expand_variable_shift): ... this.
18871         (expand_shift): Take a constant shift amount.
18872         * expmed.c (expand_shift): Rename to ...
18873         (expand_variable_shift): ... this.
18874         (expand_shift): New wrapper around expand_variable_shift.
18875         * expr.c (convert_move, emit_group_load_1, emit_group_store,
18876         optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
18877         expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
18878         * expmed.c (store_fixed_bit_field, extract_bit_field_1,
18879         extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
18880         expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
18881         extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
18882         emit_store_flag_1, emit_store_flag): Likewise.
18883         * builtins.c (expand_builtin_signbit): Likewise.
18884         * calls.c (load_register_parameters): Likewise.
18885         * function.c (assign_parm_setup_block): Likewise.
18886         * lower-subreg.c (resolve_shift_zext): Likewise.
18887         * optabs.c (widen_bswap, expand_abs_nojump,
18888         expand_one_cmpl_abs_nojump, expand_float): Likewise.
18889         * spu/spu.c (spu_expand_extv): Likewise.
18890         * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
18891
18892 2011-04-29  Richard Guenther  <rguenther@suse.de>
18893
18894         * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
18895         for the remapped region number.
18896         * predict.c (build_predict_expr): Use integer_type_node for the
18897         predict kind.
18898         * fold-const.c (fold_binary_loc): Use integer_type_node for
18899         the shift amount.  Use a proper type for the PLUS_EXPR operand.
18900
18901 2011-04-29  Michael Matz  <matz@suse.de>
18902
18903         * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
18904         other trees that just builtins.
18905         (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
18906
18907 2011-04-29  Richard Guenther  <rguenther@suse.de>
18908
18909         * tree-nested.c (get_trampoline_type): Use size_int.
18910         (get_nl_goto_field): Likewise.
18911         * tree-eh.c (lower_try_finally_switch): Use integer_type_node
18912         for all indexes.
18913         (lower_eh_constructs_2): Likewise.
18914         (lower_resx): Likewise.
18915         (lower_eh_dispatch): Likewise.
18916         * tree-mudflap.c (mf_build_string): Use size_int.
18917         (mudflap_register_call): Use integer_type_node for the flag.
18918         (mudflap_enqueue_constant): Use size_int.
18919         * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
18920         instead of rebuilding it.
18921
18922 2011-04-29  Richard Guenther  <rguenther@suse.de>
18923
18924         * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
18925         Handle OBJ_TYPE_REF.
18926         (find_func_aliases_for_call): Use it more consistently.
18927
18928 2011-04-29  Alexandre Oliva  <aoliva@redhat.com>
18929
18930         * haifa-sched.c (last_nondebug_scheduled_insn): New.
18931         (rank_for_schedule): Use it.
18932         (schedule_block): Set it.
18933
18934 2011-04-28  David Li  <davidxl@google.com>
18935
18936         * tree.c (crc32_string): Use crc32_byte.
18937         (crc32_byte): New function.
18938         * tree.h (crc32_byte): New function.
18939         * gcov.c (read_graph_file): Handle new cfg_cksum.
18940         (read_count_file): Ditto.
18941         * profile.c (instrument_values): Ditto.
18942         (get_exec_counts): Ditto.
18943         (read_profile_edge_counts): Ditto.
18944         (compute_branch_probabilities): Ditto.
18945         (compute_value_histograms): Ditto.
18946         (branch_prob): Ditto.
18947         (end_branch_prob): Ditto.
18948         * coverage.c (read_counts_file): Ditto.
18949         (get_coverage_counts): Ditto.
18950         (tree_coverage_counter_addr): Ditto.
18951         (coverage_checksum_string): Ditto.
18952         (coverage_begin_output): Ditto.
18953         (coverage_end_function): Ditto.
18954         (build_fn_info_type): Ditto.
18955         (build_fn_info_value): Ditto.
18956         * libgcov.c (gcov_exit): Ditto.
18957         * gcov-dump.c (tag_function): Ditto.
18958         (compute_checksum): Remove.
18959
18960 2011-04-29  Alan Modra  <amodra@gmail.com>
18961
18962         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
18963         unspec plus offset.  Tidy macho code.
18964
18965 2011-04-29  Martin Jambor  <mjambor@suse.cz>
18966
18967         * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
18968         node instead of a decl.  Update all callers.
18969         * cgraph.h: Update declaration.
18970
18971 2011-04-28  Ira Rosen  <ira.rosen@linaro.org>
18972
18973         PR tree-optimization/48765
18974         * tree-vectorizer.h (vect_make_slp_decision): Return bool.
18975         * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
18976         to indicate if loop aware SLP is being used.  Scan the statements
18977         and update the vectorization factor according to the type of
18978         vectorization before statement analysis.
18979         (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
18980         pass it to vect_analyze_loop_operations.
18981         (vectorizable_reduction): Set number of copies to 1 in case of pure
18982         SLP statement.
18983         * tree-vect-stmts.c (vectorizable_conversion,
18984         vectorizable_assignment, vectorizable_shift,
18985         vectorizable_operation, vectorizable_type_demotion,
18986         vectorizable_type_promotion, vectorizable_store, vectorizable_load):
18987         Likewise.
18988         (vectorizable_condition): Move the check that it is not SLP
18989         vectorization before the number of copies check.
18990         * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
18991         to vectorize the loop using SLP.
18992
18993 2011-04-28  Jakub Jelinek  <jakub@redhat.com>
18994
18995         PR middle-end/48597
18996         * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
18997         inline asm.
18998
18999 2011-04-28  Joseph Myers  <joseph@codesourcery.com>
19000
19001         * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
19002         *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
19003         (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
19004         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
19005         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
19006         linux*.h headers.
19007         * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
19008         * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
19009         * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
19010         * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
19011         * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
19012         * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
19013         REG_NAME.
19014         * config/i386/linux.h (REG_NAME): Don't define.
19015         * config/i386/linux64.h (REG_NAME): Don't define.
19016         * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
19017         Undefine before defining.
19018
19019 2011-04-28  Jan Hubicka  <jh@suse.cz>
19020
19021         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
19022         nonconstant_names array.
19023         (estimate_function_body_sizes): Build nonconstant_names array; handle
19024         BUILT_IN_CONSTANT_P.
19025
19026 2011-04-28  Richard Guenther  <rguenther@suse.de>
19027
19028         PR bootstrap/48804
19029         Revert
19030         2011-04-28  Richard Guenther  <rguenther@suse.de>
19031
19032         * tree-ssa-structalias.c (solve_constraints): Build succ graph
19033         as late as possible.
19034
19035 2011-04-28  Richard Guenther  <rguenther@suse.de>
19036
19037         * tree-ssa-structalias.c (dump_constraint): Don't end the line.
19038         (debug_constraint): Do it here.
19039         (dump_constraints): And here.
19040         (rewrite_constraints): And here.
19041         (dump_constraint_edge): Remove.
19042         (dump_constraint_graph): Rewrite to produce DOT output.
19043         (solve_constraints): Build succ graph as late as possible.
19044         Dump constraint graphs before and after solving.
19045
19046 2011-04-28  Richard Guenther  <rguenther@suse.de>
19047
19048         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
19049         New function split out from ...
19050         (find_func_aliases): ... here.  Call it.
19051         (find_func_aliases_for_call): Likewise.
19052
19053 2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
19054
19055         * internal-fn.h (internal_fn_name_array): Declare.
19056         (internal_fn_flags_array): Likewise.
19057
19058 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
19059
19060         * config/i386/i386.md (ssemodesuffix):  Merge with ssevecsize,
19061         ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
19062         Move from sse.md.
19063         (ssemodefsuffix): Remove.
19064         (ssevecmodesuffix): New mode attribute.
19065         (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
19066         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
19067         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
19068         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
19069         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
19070         *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
19071         *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
19072         ssemodesuffix mode attribute.
19073         (float splitters): Use ssevecmodesuffix mode attribute.
19074         * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
19075         (sseinsmode): Rename from avxvecmode.
19076         (avxsizesuffix): Rename from avxmodesuffix.
19077         (sseintvecmode): Rename from avxpermvecmode.
19078         (ssedoublevecmode): Rename from ssedoublesizemode.
19079         (ssehalfvecmode): Rename from avxhalfvecmode.
19080         (ssescalarmode): Rename from avxscalarmode.
19081         (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
19082         templates for ssemodesuffix mode attribute.
19083         (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
19084         mode attribute.
19085
19086         Adjust RTX patterns globally for renamed mode attributes.
19087
19088 2011-04-27  Jan Hubcika  <jh@suse.cz>
19089
19090         * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
19091         * ipa-inline-analysis.c: Include alloc-pool.h.
19092         (edge_predicate_pool): New.
19093         (trye_predicate_p): New function
19094         (false_predicate_p): New function.
19095         (add_clause): Sanity check that false clauses are "optimized";
19096         never add clauses to predicate that is already known to be false.
19097         (and_predicate): Use flase_predicate_p.
19098         (evaulate_predicate): Rename to ...
19099         (evaluate_predicate): ... this one; update all callers; assert
19100         that false is not listed among possible truths.
19101         (dump_predicate): Use true_predicate_p.
19102         (account_size_time): Use false_predicate_p.
19103         (evaulate_conditions_for_edge): Rename to ...
19104         (evaluate_conditions_for_edge) ... this one.
19105         (edge_set_predicate): New function.
19106         (inline_edge_duplication_hook): Duplicate edge predicates.
19107         (inline_edge_removal_hook): Free edge predicates.
19108         (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
19109         (dump_inline_summary): Update.
19110         (estimate_function_body_sizes): Set edge predicates.
19111         (estimate_calls_size_and_time): Handle predicates.
19112         (estimate_callee_size_and_time): Update.
19113         (remap_predicate): Add toplev_predicate; update comment.
19114         (remap_edge_predicates): New function.
19115         (inline_merge_summary): Compute toplev predicate; update.
19116         (read_predicate): New function.
19117         (read_inline_edge_summary): Use it.
19118         (inline_read_section): Likewise.
19119         (write_predicate): New function.
19120         (write_inline_edge_summary): Use it.
19121         (inline_write_summary): Likewise.
19122         (inline_free_summary): Free alloc pool and edge summary vec.
19123
19124 2011-04-27  Richard Guenther  <rguenther@suse.de>
19125
19126         * tree-ssa-structalias.c (changed_count): Remove.
19127         (changed): Use a bitmap.
19128         (unify_nodes): Adjust.
19129         (do_sd_constraint): Likewise.
19130         (do_ds_constraint): Likewise.
19131         (do_complex_constraint): Likewise.
19132         (solve_graph): Likewise.
19133
19134 2011-04-27  Jan Hubicka  <jh@suse.cz>
19135
19136         * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
19137
19138 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
19139
19140         * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
19141         (avx_vperm2f128_*_operand): Ditto.
19142         * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
19143         Use avx_vpermilp_parallel in insn condition.
19144         (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
19145         Use avx_vperm2f128_parallel in insn condition.
19146
19147 2011-04-27  Richard Guenther  <rguenther@suse.de>
19148
19149         * Makefile.in (tree-ssa-structalias.o): Remove
19150         gt-tree-ssa-structalias.h dependency.
19151         (GTFILES): Remove tree-ssa-structalias.c.
19152         * tree.c (allocate_decl_uid): New function.
19153         (make_node_stat): Use it.
19154         (copy_node_stat): Likewise.
19155         * tree.h (allocate_decl_uid): Declare.
19156         * tree-ssa-alias.h (delete_alias_heapvars): Remove.
19157         * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
19158         * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
19159         * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
19160         * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
19161         (struct heapvar_map): Likewise.
19162         (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
19163         heapvar_insert): Likewise.
19164         (make_heapvar_for): Rename to ...
19165         (make_heapvar): ... this.  Simplify.
19166         (fake_var_decl_obstack): New global var.
19167         (build_fake_var_decl): New function.
19168         (make_constraint_from_heapvar): Adjust.
19169         (handle_lhs_call): Likewise.
19170         (create_function_info_for): Likewise.
19171         (intra_create_variable_infos): Likewise.
19172         (init_alias_vars): Allocate fake_var_decl_obstack.
19173         (init_alias_heapvars, delete_alias_heapvars): Remove.
19174         (compute_points_to_sets): Do not call init_alias_heapvars.
19175         (ipa_pta_execute): Likewise.
19176         (delete_points_to_sets): Free fake_var_decl_obstack.
19177
19178 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19179
19180         * config/spu/divmovti4.c (union qword_UTItype): New data type.
19181         (si_from_UTItype, si_to_UTItype): New functions.
19182         (__udivmodti4): Use them to implement type-punning.
19183         * config/spu/multi3.c (union qword_TItype): New data type.
19184         (si_from_TItype, si_to_TItype): New functions.
19185         (__multi3): Use them to implement type-punning.
19186
19187 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19188
19189         * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
19190
19191 2011-04-27  Jan Hubicka  <jh@suse.cz>
19192
19193         * ipa-prop.c (function_insertion_hook_holder): New holder.
19194         (ipa_add_new_function): New function.
19195         (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
19196         Register/deregister holder.
19197
19198 2011-04-27  Richard Guenther  <rguenther@suse.de>
19199
19200         PR tree-optimization/48772
19201         * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
19202
19203 2011-04-27  Richard Guenther  <rguenther@suse.de>
19204
19205         * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
19206         TARGET_MEM_REF handling.
19207
19208 2011-04-27  Nick Clifton  <nickc@redhat.com>
19209
19210         * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
19211         ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
19212         (REG_CLASS_NAMES): Likewise.
19213         (REG_CLASS_CONTENTS): Likewise.
19214         (EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
19215         (ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
19216         (FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
19217         (FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
19218         (EVEN_REGS): New macro.  Alias for QUAD_REGS.
19219         * config/frv/frv.c (frv_secondary_reload_class): Remove use of
19220         duplicate register classes.
19221         (frv_class_likely_spilled_p): Likewise.
19222         (frv_register_move_cost): Likewise.
19223
19224         * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
19225         end of the regno_reg_class array.
19226
19227 2011-04-27  Jakub Jelinek  <jakub@redhat.com>
19228
19229         PR c/48742
19230         * c-typeck.c (build_binary_op): Don't wrap arguments if
19231         int_operands is true.
19232
19233 2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>
19234
19235         PR target/48767
19236         * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
19237         targetm.calls.must_pass_in_stack for void type.
19238
19239 2011-04-26  Jan Hubicka  <jh@suse.cz>
19240
19241         * cgraphbuild.c (build_cgraph_edges): Update call
19242         of cgraph_create_edge and cgraph_create_indirect_edge.
19243         * cgraph.c (cgraph_create_edge_including_clones,
19244         cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
19245         cgraph_update_edges_for_call_stmt_node): Do not take nest
19246         argument; do not initialize call_stmt_size/time.
19247         (dump_cgraph_node): Do not dump nest.
19248         (cgraph_clone_edge): Do not take loop_nest argument;
19249         do not propagate it; do not clone call_stmt_size/time.
19250         (cgraph_clone_node): Likewise.
19251         (cgraph_create_virtual_clone): Update.
19252         * cgraph.h (struct cgraph_edge): Remove
19253         call_stmt_size/call_stmt_time/loop_nest.
19254         (cgraph_create_edge, cgraph_create_indirect_edge,
19255         cgraph_create_edge_including_clones, cgraph_clone_node): Update
19256         prototype.
19257         * tree-emutls.c (gen_emutls_addr): Update.
19258         * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
19259         loop_nest; handle indirect calls, too.
19260         (clone_inlined_nodes): Do not care about updating inline summaries.
19261         * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
19262         * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
19263         stream call_stmt_size/call_stmt_time/loop_nest.
19264         * ipa-inline.c (edge_badness): Update.
19265         (ipa_inline): dump summaries after inlining.
19266         * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
19267         New.
19268         (inline_edge_summary): New function.
19269         * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
19270         (inline_edge_removal_hook): Handle edge summaries.
19271         (inline_edge_duplication_hook): New hook.
19272         (inline_summary_alloc): Alloc hooks.
19273         (initialize_growth_caches): Do not register removal hooks.
19274         (free_growth_caches); Do not free removal hook.
19275         (dump_inline_edge_summary): New function.
19276         (dump_inline_summary): Use it.
19277         (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
19278         (inline_update_callee_summaries): New function.
19279         (inline_merge_summary): Use it.
19280         (do_estimate_edge_time, do_estimate_edge_growth): Update.
19281         (read_inline_edge_summary): New function.
19282         (inline_read_section): Use it.
19283         (write_inline_edge_summary): New function.
19284         (inline_write_summary): Use it.
19285         (inline_free_summary): Free edge new holders.
19286         * tree-inline.c (copy_bb): Update.
19287
19288 2011-04-26  Jason Merrill  <jason@redhat.com>
19289
19290         * tree-eh.c (lower_try_finally_switch): Create the label along with
19291         the CASE_LABEL_EXPR.
19292
19293 2011-04-26  David S. Miller  <davem@davemloft.net>
19294             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19295
19296         * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
19297         * configure: Regenerate.
19298
19299 2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
19300
19301         PR target/48258
19302         * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
19303         reduction.
19304         (VEC_reduc): New code iterator and splitters for vector reduction.
19305         (VEC_reduc_name): Ditto.
19306         (VEC_reduc_rtx): Ditto.
19307         (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
19308         (reduc_<VEC_reduc_name>_v4sf): Ditto.
19309
19310         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
19311         support for extracting SF on VSX.
19312
19313         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
19314         generating xscvspdp.
19315         (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
19316         (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
19317         double add, minimum, maximum vector reduction.
19318         (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
19319         (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
19320         optimize double vector reduction.
19321         (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
19322
19323 2011-04-26  Joseph Myers  <joseph@codesourcery.com>
19324
19325         * config/fr30/fr30.h (inhibit_libc): Don't define.
19326         * config/m32r/m32r-protos.h: Correct comment.
19327         * config/v850/v850.h (GHS_default_section_names,
19328         GHS_current_section_names): Use tree, not union tree_node *.
19329
19330 2011-04-26  Xinliang David Li  <davidxl@google.com>
19331
19332         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
19333         * c-family/c-opts.c (c_common_handle_option): Set
19334         warn_maybe_uninitialized.
19335         * opts.c (common_handle_option): Ditto.
19336         * common.opt:  New option.
19337         * tree-ssa.c (warn_uninit): Add one more parameter.
19338         (warn_uninitialized_var): Pass warning code.
19339         * tree-flow.h: Interface change.
19340
19341 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19342
19343         * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
19344         (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
19345         (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
19346
19347 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19348
19349         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
19350         * config/mips/mips.opt (mmips-tfile): Remove.
19351
19352         * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
19353         mips-tdump reference to ...
19354         (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
19355         * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
19356         reference by Tru64 UNIX.
19357
19358 2011-04-26  Jakub Jelinek  <jakub@redhat.com>
19359
19360         PR debug/48768
19361         * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
19362         is error_mark_node, set value to NULL.
19363
19364         PR tree-optimization/48734
19365         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
19366         if return value from maybe_fold_*_comparsions isn't something
19367         the code is prepared to handle.
19368
19369 2011-04-26  Uros Bizjak  <ubizjak@gmail.com>
19370
19371         * config/i386/predicates.md (ext_QIreg_operand): Remove extra
19372         mode check.
19373         (ext_QIreg_nomode_operands): Remove.
19374         * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
19375         (*andsi_1): Ditto.
19376         (*andhi_1): Ditto.
19377
19378 2011-04-26  Andrew Stubbs  <ams@codesourcery.com>
19379
19380         * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
19381
19382 2011-04-26  Richard Guenther  <rguenther@suse.de>
19383
19384         * c-typeck.c (build_unary_op): Do not expand array-refs via
19385         pointer arithmetic.  Only adjust qualifiers for function types.
19386
19387 2011-04-26  Richard Guenther  <rguenther@suse.de>
19388
19389         PR middle-end/48694
19390         * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
19391         * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
19392         compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
19393         with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
19394
19395 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
19396
19397         * doc/extend.texi: Document __underlying_type.
19398
19399 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
19400
19401         * config/rs6000/titan.md (automata_option "progress"): Remove.
19402
19403 2011-04-25  Jeff Law  <law@redhat.com>
19404
19405         * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
19406
19407 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
19408
19409         * system.h (ENUM_BITFIELD): Remove.
19410
19411 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
19412             Eric Botcazou  <ebotcazou@adacore.com>
19413
19414         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
19415         for STORE_FLAG_VALUE==-1 case.
19416
19417 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
19418
19419         PR target/43804
19420         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
19421         LEGITIMATE_PIC_OPERAND_P.
19422
19423 2011-04-24  Jan Hubicka  <jh@suse.cz>
19424
19425         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
19426         WPA hack.
19427         * ipa-prop.h (ipa_get_param, ipa_is_param_used,
19428         ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
19429         ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
19430         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
19431         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
19432         Sanity check predicate length.
19433         (remap_predicate): Likewise; sanity check jump functions.
19434         (inline_read_section, inline_write_summary): Sanity check
19435         predicate length.
19436
19437 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
19438
19439         PR other/48748
19440         * doc/extend.texi (Type Traits): Document __is_standard_layout,
19441         __is_literal_type, and __is_trivial; update throughout about
19442         possibly cv-qualified void types.
19443
19444 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
19445
19446         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
19447         testsuite and make it version agnostic.
19448
19449 2011-04-22  Jan Hubicka  <jh@suse.cz>
19450
19451         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
19452
19453 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
19454
19455         PR c/48685
19456         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
19457         to VOID_TYPE even around MODIFY_EXPR.
19458
19459 2011-04-22  Mike Stump  <mikestump@comcast.net>
19460
19461         * gensupport.c (read_md_rtx): Fix typo in comment.
19462         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
19463         comment.
19464
19465 2011-04-22  Jan Hubicka  <jh@suse.cz>
19466
19467         * gengtype.c (open_base_files): Add ipa-inline.h include.
19468         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
19469         ipa-prop.c; update all uses.
19470         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
19471         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
19472         merge summary of inlined function into former caller.
19473         * ipa-inline.c (max_benefit): Remove.
19474         (edge_badness): Compensate for removal of benefits.
19475         (update_caller_keys): Use
19476         reset_node_growth_cache/reset_edge_growth_cache.
19477         (update_callee_keys): Likewise.
19478         (update_all_callee_keys): Likewise.
19479         (inline_small_functions): Do not collect max_benefit; do not reset
19480         estimated_growth; call free_growth_caches and initialize_growth_caches.
19481         * ipa-inline.h (struct condition, type clause_t, struct predicate,
19482         struct size_time_entry): New structures.
19483         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
19484         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
19485         and estimated_growth.
19486         (edge_growth_cache_entry): New structure.
19487         (node_growth_cache, edge_growth_cache): New global vars.
19488         (estimate_growth): Turn into inline.
19489         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
19490         initialize_growth_caches, free_growth_caches): Declare.
19491         (estimate_edge_growth): Rewrite.
19492         (estimate_edge_time): Implement as inline cache lookup.
19493         (reset_node_growth_cache, reset_edge_growth_cache): New inline
19494         functions.
19495         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
19496         (NUM_CONDITIONS): New constant.
19497         (predicate_conditions): New enum.
19498         (IS_NOT_CONSTANT): New constant.
19499         (edge_removal_hook_holder): New var.
19500         (node_growth_cache, edge_growth_cache): New global vars.
19501         (true_predicate, single_cond_predicate, false_predicate,
19502         not_inlined_predicate, add_condition, add_clause, and_predicates,
19503         or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
19504         dump_clause, dump_predicate, account_size_time,
19505         evaulate_conditions_for_edge): New functions.
19506         (inline_summary_alloc): Move to heap.
19507         (inline_node_removal_hook): Clear condition and entry vectors.
19508         (inline_edge_removal_hook): New function.
19509         (initialize_growth_caches, free_growth_caches): New function.
19510         (dump_inline_summary): Update.
19511         (edge_execution_predicate): New function.
19512         (will_be_nonconstant_predicate): New function.
19513         (estimate_function_body_sizes): Compute BB and constantness predicates.
19514         (compute_inline_parameters): Do not clear estimated_growth.
19515         (estimate_edge_size_and_time): New function.
19516         (estimate_calls_size_and_time): New function.
19517         (estimate_callee_size_and_time): New function.
19518         (remap_predicate): New function.
19519         (inline_merge_summary): New function.
19520         (do_estimate_edge_time): New function based on...
19521         (estimate_edge_time): ... this one.
19522         (do_estimate_edge_growth): New function.
19523         (do_estimate_growth): New function based on....
19524         (estimate_growth): ... this one.
19525         (inline_analyze_function): Analyze after deciding on jump functions.
19526         (inline_read_section): New function.
19527         (inline_read_summary): Use it.
19528         (inline_write_summary): Write all the new data.
19529         * ipa-prop.c (ipa_get_param_decl_index): Export.
19530         (ipa_lattice_from_jfunc): Move here from ipa-cp.c
19531         * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
19532         Declare.
19533         (ipa_get_lattice): Move here from ipa-cp.c
19534         * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
19535         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
19536         * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
19537         cgraph_edge_inlinable_p): Remove.
19538         * cgraphunit.c: Include ipainline.h
19539         (cgraph_process_new_functions): Update call of
19540         compute_inline_parameters.
19541
19542 2011-04-22  Richard Guenther  <rguenther@suse.de>
19543
19544         * tree.c (build_int_cst): Properly create canonicalized integer
19545         constants.
19546         (build_int_cst_type): Remove scary comments.
19547
19548 2011-04-22  Xinliang David Li  <davidxl@google.com>
19549
19550         * toplev.c (process_options): Enable -Werror=coverage-mismatch
19551         by default when -Wno-error is not specified.
19552         * opts-global.c (decode_options): Remove call to
19553         control_warning_options.
19554
19555 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
19556
19557         PR tree-optimization/48717
19558         * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
19559         ~A + A optimizations use build_int_cst_type instead of build_int_cst.
19560
19561 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
19562
19563         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
19564         definition where used.
19565
19566 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
19567
19568         PR c/48716
19569         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
19570         TREE_STATIC variables declared inside of some OpenMP construct.
19571
19572 2011-04-22  Martin Jambor  <mjambor@suse.cz>
19573
19574         PR middle-end/48585
19575         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
19576
19577 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
19578
19579         PR c/36750
19580         * c-typeck.c (pop_init_level): Do not warn about initializing
19581         with ` = {0}'.
19582
19583 2011-04-22  Alan Modra  <amodra@gmail.com>
19584
19585         * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
19586         when returning call_cookie.
19587         (rs6000_function_ok_for_sibcall): Allow sibcalls via function
19588         pointers, to functions with no more vector args than the current
19589         function, and some non-local calls for ABI_V4.
19590         * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
19591         sibcall_nonlocal_aix64): Combine to ..
19592         (sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
19593         (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
19594         (sibcall_value_nonlocal_aix<mode>): ..likewise.
19595         (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
19596         (sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
19597         operand.
19598         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
19599         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
19600         sibcall_value_symbolic_64): Delete.
19601
19602 2011-04-21  Xinliang David Li  <davidxl@google.com>
19603
19604         * cgraph.h: Remove pid.
19605         * cgraph.c: Remove pid.
19606         * value-prof.c (init_node_map): New function.
19607         (del_node_map): New function.
19608         (find_func_by_funcdef_no): New function.
19609         (gimple_ic_transform): Call new function.
19610         * cgraphunit.c (cgraph_finalize_function): Remove pid.
19611         * function.c (get_last_funcdef_no): New function.
19612         * function.h (get_last_funcdef_no): New function.
19613         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
19614         to libgcov function.
19615         (tree-profiling): Call node map init and delete function.
19616
19617 2011-04-21  Ian Lance Taylor  <iant@google.com>
19618
19619         * godump.c (go_format_type): Use exported Go name for anonymous
19620         field name.
19621
19622 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
19623
19624         * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
19625         Call builtin_function_type_list instead of builtin_function_type.
19626         (UNARY, BINARY, TRINARY, QUAD): Likewise.
19627
19628 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
19629
19630         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
19631         build_function_type_list instead of build_function_type.
19632         Delete variable `endlink'.
19633
19634 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
19635
19636         * config/s390/s390.c (s390_init_builtins): Call
19637         build_function_type_list instead of build_function_type.
19638
19639 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
19640
19641         * config/ia64/ia64.c (ia64_init_builtins): Call
19642         build_function_type_list instead of builtin_function_type.
19643
19644 2011-04-21  Easwaran Raman  <eraman@google.com>
19645
19646         * cfgexpand.c (stack_var): Remove OFFSET...
19647         (add_stack_var): ...and its reference here...
19648         (expand_stack_vars): ...and here.
19649         (stack_var_cmp): Sort by descending order of size.
19650         (partition_stack_vars): Change heuristic.
19651         (union_stack_vars): Fix to reflect changes in partition_stack_vars.
19652         (dump_stack_var_partition): Add newline after each partition.
19653
19654 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
19655             Jeff Law  <law@redhat.com>
19656
19657         * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
19658         * gengtype.c (matching_file_name_substitute): Likewise.
19659
19660 2011-04-21  Richard Guenther  <rguenther@suse.de>
19661
19662         PR lto/48703
19663         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
19664
19665 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
19666
19667         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
19668
19669 2011-04-21  Richard Guenther  <rguenther@suse.de>
19670
19671         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
19672         file name.
19673
19674 2011-04-21  Richard Guenther  <rguenther@suse.de>
19675
19676         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
19677         MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
19678         Use DECL_P, not SSA_VAR_P.
19679         (ptr_derefs_may_alias_p): Likewise.
19680         (ptr_deref_may_alias_ref_p_1): Likewise.
19681         (decl_refs_may_alias_p): Likewise.
19682         (refs_may_alias_p_1): Likewise.
19683         (ref_maybe_used_by_call_p_1): Likewise.
19684         (call_may_clobber_ref_p_1): Likewise.
19685         (indirect_ref_may_alias_decl_p): Assume indirect refrences
19686         are either MEM_REF or TARGET_MEM_REF.
19687         (indirect_refs_may_alias_p): Likewise.
19688         * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
19689         for MEM_EXPR of indirect calls.
19690
19691 2011-04-21  Tristan Gingold  <gingold@adacore.com>
19692
19693         * vmsdbgout.c (write_srccorr): Compute file length from the string.
19694         (dst_file_info_struct): Remove flen field.
19695         (lookup_filename): Remove code that set flen field.
19696
19697 2011-04-21  Tristan Gingold  <gingold@adacore.com>
19698
19699         * config/ia64/ia64.c (ia64_start_function): Add a guard.
19700
19701 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
19702
19703         PR target/48708
19704         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
19705         vec_extract and vec_concat for non-SSE4_1 targets.
19706
19707 2011-04-21  Richard Guenther  <rguenther@suse.de>
19708
19709         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
19710         return statements.
19711
19712 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
19713
19714         * config/i386/cygming.h (union tree_node, TREE): Don't define or
19715         undefine.
19716         (FILE): Don't undefine.
19717
19718 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
19719
19720         * config/alpha/alpha.c (struct machine_function): Use rtx, not
19721         struct rtx_def *.
19722         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
19723         struct rtx_def *.
19724         * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
19725         * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
19726         * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
19727         rtx_def *.
19728         * config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
19729         definitions where used.
19730         * config/microblaze/microblaze.h (struct microblaze_args): Use
19731         rtx, not struct rtx_def *.
19732         * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
19733         rtx_def *.
19734         * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
19735         * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
19736         * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
19737         not struct rtx_def *.
19738         * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
19739         struct rtx_def *.
19740         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
19741         rtx_def *.
19742         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
19743
19744 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
19745
19746         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
19747         operand_equal_p to compare DR_BASE_ADDRESSes.
19748         (vect_check_interleaving): Likewise.
19749
19750 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
19751
19752         PR target/46329
19753         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
19754         for all Neon struct constants.
19755
19756 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
19757
19758         * target.def (legitimate_constant_p): New hook.
19759         * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
19760         (TARGET_LEGITIMATE_CONSTANT_P): ...this.
19761         * doc/tm.texi: Regenerate.
19762         * hooks.h (hook_bool_mode_rtx_true): Declare.
19763         * hooks.c (hook_bool_mode_rtx_true): Define.
19764         * system.h (LEGITIMATE_CONSTANT_P): Poison.
19765         * calls.c (precompute_register_parameters): Replace uses of
19766         LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
19767         (emit_library_call_value_1): Likewise.
19768         * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
19769         (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
19770         * ira-costs.c (scan_one_insn): Likewise.
19771         * recog.c (general_operand, immediate_operand): Likewise.
19772         * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
19773         * reload1.c (init_eliminable_invariants): Likewise.
19774
19775         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
19776         mode argument.
19777         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
19778         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
19779         argument.
19780         (TARGET_LEGITIMATE_CONSTANT_P): Define.
19781         * config/alpha/predicates.md (input_operand): Update call to
19782         alpha_legitimate_constant_p.
19783
19784         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
19785         * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
19786         (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
19787         * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19788         (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
19789         (arm_legitimate_constant_p): New functions.
19790         (arm_cannot_force_const_mem): Make static.
19791
19792         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
19793
19794         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
19795         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
19796         * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
19797         instead of bfin_legitimate_constant_p.
19798         (bfin_legitimate_constant_p): Make static.  Add a mode argument.
19799         (TARGET_LEGITIMATE_CONSTANT_P): Define.
19800
19801         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
19802
19803         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
19804
19805         * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
19806         * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
19807         * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19808         (frv_legitimate_constant_p): Make static.  Add a mode argument.
19809
19810         * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
19811         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
19812         * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
19813
19814         * config/i386/i386-protos.h (legitimate_constant_p): Delete.
19815         * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
19816         * config/i386/i386.c (legitimate_constant_p): Rename to...
19817         (ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
19818         argument.
19819         (ix86_cannot_force_const_mem): Update accordingly.
19820         (ix86_legitimate_address_p): Likewise.
19821         (TARGET_LEGITIMATE_CONSTANT_P): Define.
19822         * config/i386/i386.md: Update commentary.
19823
19824         * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
19825         * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
19826         * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19827         (ia64_legitimate_constant_p): Make static.  Add a mode argument.
19828
19829         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
19830
19831         * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
19832         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
19833         * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19834         (lm32_legitimate_constant_p): Make static.  Add a mode argument.
19835
19836         * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
19837         * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
19838         * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
19839
19840         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
19841         * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19842         (m32r_legitimate_constant_p): New function.
19843
19844         * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
19845         * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
19846         LEGITIMATE_CONSTANT_P.
19847         (LEGITIMATE_CONSTANT_P): Delete.
19848         * config/m68k/m68k.c (m68k_expand_prologue): Call
19849         m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
19850         (m68k_legitimate_constant_p): New function.
19851         * config/m68k/m68k.md: Update comments.
19852
19853         * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
19854         * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19855         (mcore_legitimate_constant_p): New function.
19856
19857         * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
19858         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
19859         * config/mep/mep.c (mep_legitimate_constant_p): Make static.
19860         Add a mode argument.
19861         (mep_legitimate_address): Update accordingly.
19862         (TARGET_LEGITIMATE_CONSTANT_P): Define.
19863
19864         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
19865         Delete.
19866         * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
19867         * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
19868         static.  Check OP's mode for VOIDmode.
19869         (microblaze_legitimate_constant_p): New function.
19870         (TARGET_LEGITIMATE_CONSTANT_P): Define.
19871
19872         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
19873         * config/mips/mips.c (mips_legitimate_constant_p): New function.
19874         (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
19875         (TARGET_LEGITIMATE_CONSTANT_P): Define.
19876         * config/mips/predicates.md: Update comments.
19877
19878         * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
19879         * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
19880         * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19881         (mmix_legitimate_constant_p): Make static, return a bool, and take
19882         a mode argument.
19883         (mmix_print_operand_address): Update accordingly.
19884
19885         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
19886         Delete.
19887         * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
19888         * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
19889         static.  Add a mode argument.
19890         (TARGET_LEGITIMATE_CONSTANT_P): Define.
19891
19892         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
19893
19894         * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
19895         * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19896         (pa_legitimate_constant_p): New function.
19897
19898         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
19899
19900         * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
19901         * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19902         (pdp11_legitimate_constant_p): New function.
19903
19904         * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
19905         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19906         (rs6000_legitimate_constant_p): New function.
19907
19908         * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
19909         (rx_legitimate_constant_p): ...this.
19910         * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
19911         * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
19912         (rx_legitimate_constant_p): ...this.
19913         (TARGET_LEGITIMATE_CONSTANT_P): Define.
19914         * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
19915
19916         * config/s390/s390-protos.h (legitimate_constant_p): Delete.
19917         * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
19918         * config/s390/s390.c (legitimate_constant_p): Rename to...
19919         (s390_legitimate_constant_p): ...this.  Make static, return a bool,
19920         and add a mode argument.
19921         (TARGET_LEGITIMATE_CONSTANT_P): Define.
19922
19923         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
19924
19925         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
19926         * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19927         (sh_legitimate_constant_p): New function.
19928
19929         * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
19930         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
19931         * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19932         (legitimate_constant_p): Rename to...
19933         (sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
19934         argument.
19935         (constant_address_p): Update accordingly.
19936
19937         * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
19938         argument and return a bool.
19939         * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
19940         * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19941         (spu_legitimate_constant_p): Add a mode argument and return a bool.
19942         (spu_rtx_costs): Update accordingly.
19943         * config/spu/predicates.md (vec_imm_operand): Likewise.
19944
19945         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
19946
19947         * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
19948         * config/v850/v850.c (v850_legitimate_constant_p): New function.
19949         (TARGET_LEGITIMATE_CONSTANT_P): Define.
19950
19951         * config/vax/vax-protos.h (legitimate_constant_p): Delete.
19952         * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
19953         * config/vax/vax.c (legitimate_constant_p): Likewise.
19954
19955         * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
19956         * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19957         (xtensa_legitimate_constant_p): New function.
19958
19959 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
19960
19961         * target.def (cannot_force_const_mem): Add a mode argument.
19962         * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
19963         * doc/tm.texi: Regenerate.
19964         * hooks.h (hook_bool_mode_rtx_false): Declare.
19965         * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
19966         (hook_bool_mode_const_rtx_true): Likewise.
19967         (hook_bool_mode_rtx_false): New function.
19968         * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
19969         to be non-VOID.  Update call to cannot_force_const_mem.
19970         (find_reloads): Update accordingly.
19971         * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
19972         * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
19973         argument.
19974         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
19975         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
19976         * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
19977         * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
19978         * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
19979         * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
19980         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
19981         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
19982         (m68k_cannot_force_const_mem): ...this new function.
19983         * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
19984         argument.
19985         (mips_const_insns, mips_legitimize_const_move): Update calls.
19986         (mips_secondary_reload_class): Likewise.
19987         * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
19988         (pa_cannot_force_const_mem): ...this new function.
19989         * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
19990         (rs6000_cannot_force_const_mem): ...this new function.
19991         * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
19992         argument.
19993         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
19994         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
19995         to...
19996         (xtensa_cannot_force_const_mem): ...this new function.
19997
19998 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
19999
20000         * config/mips/mips.c (mips16_build_function_stub): Call
20001         build_function_type_list instead of build_function_type.
20002         (mips16_build_call_stub): Likewise.
20003
20004 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
20005
20006         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
20007         instead of build_function_type.
20008
20009 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
20010
20011         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
20012         instead of build_function_type.
20013
20014 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
20015
20016         PR target/48678
20017         * config/i386/i386.md (insv): Change operand 0 constraint to
20018         "register_operand".  Change operand 1 and 2 constraint to
20019         "const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
20020         * config/i386/sse.md (sse4_1_pinsrb): Export.
20021         (sse2_pinsrw): Ditto.
20022         (sse4_1_pinsrd): Ditto.
20023         (sse4_1_pinsrq): Ditto.
20024         * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
20025         * config/i386/i386.c (ix86_expand_pinsr): New.
20026
20027 2011-04-20  Easwaran Raman  <eraman@google.com>
20028
20029         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
20030         containing union type only with -fstrict-aliasing.
20031
20032 2011-04-20  Jim Meyering  <meyering@redhat.com>
20033
20034         Remove useless if-before-free tests.
20035         * calls.c (expand_call, save_area): Likewise.
20036         * cfgcleanup.c (try_forward_edges): Likewise.
20037         * collect2.c (collect_execute): Likewise.
20038         * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
20039         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
20040         * coverage.c (coverage_checksum_string): Likewise.
20041         * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
20042         * cselib.c (cselib_init): Likewise.
20043         * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
20044         (df_set_clean_cfg): Likewise.
20045         * function.c (free_after_compilation): Likewise.
20046         * gcc.c (do_spec_1, main): Likewise.
20047         * gcov.c (create_file_names): Likewise.
20048         * gensupport.c (identify_predicable_attribute): Likewise.
20049         * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
20050         * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
20051         * haifa-sched.c (haifa_finish_h_i_d): Likewise.
20052         * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
20053         * ipa-pure-const.c (local_pure_const): Likewise.
20054         * ipa-reference.c (propagate): Likewise.
20055         * ira-costs.c (free_ira_costs): Likewise.
20056         * ira.c (free_register_move_costs, build_insn_chain): Likewise.
20057         * matrix-reorg.c (mat_free): Likewise.
20058         * prefix.c (get_key_value): Likewise.
20059         * profile.c (compute_value_histograms): Likewise.
20060         * reload1.c (free_reg_equiv): Likewise.
20061         * sched-deps.c (free_deps): Likewise.
20062         * sel-sched-ir.c (fence_clear): Likewise.
20063         * sese.c (set_rename, if_region_set_false_region): Likewise.
20064         * tree-data-ref.c (free_rdg): Likewise.
20065         * tree-eh.c (lower_try_finally): Likewise.
20066         * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
20067         * tree-ssa-live.c (delete_var_map): Likewise.
20068         * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
20069         * tree-ssa-pre.c (phi_trans_add): Likewise.
20070
20071 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
20072
20073         PR tree-optimization/48611
20074         * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
20075         beyond ERT_MUST_NOT_THROW region.
20076
20077 2011-04-20  Catherine Moore  <clm@codesourcery.com>
20078
20079         * config/mips/mips.opt (mfix-24k): New.
20080         * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
20081         * config/mips/mips.md (length): Increase by 4 for stores if
20082         fixing 24K errata.
20083         * config/mips/mips.c (mips_reorg_process_insns): Do not allow
20084         all noreorder if fixing 24K errata.
20085         * doc/invoke.texi: Document mfix-24k.
20086
20087 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
20088
20089         * config/arm/arm.c (arm_legitimize_reload_address): For NEON
20090         quad-word modes, reduce to 9-bit index range when above 1016 limit.
20091
20092 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
20093
20094         * config/arm/arm.c (arm_gen_constant): Move movw support ....
20095         (const_ok_for_op): ... to here.
20096
20097 2011-04-20  Kai Tietz  <ktietz@redhat.com>
20098
20099         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
20100         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
20101
20102 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
20103
20104         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
20105
20106 2011-04-20  Richard Guenther  <rguenther@suse.de>
20107
20108         PR tree-optimization/47892
20109         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
20110         are if-convertible.
20111
20112 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
20113
20114         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
20115
20116 2011-04-20  Tristan Gingold  <gingold@adacore.com>
20117
20118         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
20119
20120 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
20121
20122         PR target/18145
20123
20124         * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
20125         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
20126         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
20127         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
20128         (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
20129
20130         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
20131         New prototype.
20132
20133         * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
20134         (avr_asm_named_section, avr_asm_output_aligned_common,
20135         avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
20136         New functions to update...
20137         (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
20138         (avr_asm_init_sections): Overwrite section callbacks for
20139         data_section, bss_section.
20140         (avr_file_start): Move output of __do_copy_data, __do_clear_bss
20141         from here to...
20142         (avr_file_end): ...here.
20143
20144 2011-04-20  Richard Guenther  <rguenther@suse.de>
20145
20146         PR middle-end/48695
20147         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
20148         objects and types here.  Adjust for their offset before comparing.
20149
20150 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
20151
20152         * tree-vect-stmts.c (vectorizable_store): Only chain one related
20153         statement per copy.
20154
20155 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
20156
20157         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
20158         (GIMPLE_H): Include $(INTERNAL_FN_H).
20159         (OBJS-common): Add internal-fn.o.
20160         (internal-fn.o): New rule.
20161         * internal-fn.def: New file.
20162         * internal-fn.h: Likewise.
20163         * internal-fn.c: Likewise.
20164         * gimple.h: Include internal-fn.h.
20165         (GF_CALL_INTERNAL): New gf_mask.
20166         (gimple_statement_call): Put fntype into a union with a new
20167         internal_fn field.
20168         (gimple_build_call_internal): Declare.
20169         (gimple_build_call_internal_vec): Likewise.
20170         (gimple_call_same_target_p): Likewise.
20171         (gimple_call_internal_p): New function.
20172         (gimple_call_internal_fn): Likewise.
20173         (gimple_call_fntype): Return null for internal calls.
20174         (gimple_call_set_fntype): Assert that the function is not internal.
20175         (gimple_call_set_fn): Likewise.
20176         (gimple_call_set_fndecl): Likewise.
20177         (gimple_call_set_internal_fn): New function.
20178         (gimple_call_addr_fndecl): Handle null functions.
20179         (gimple_call_return_type): Likewise null types.
20180         * gimple.c (gimple_build_call_internal_1): New function.
20181         (gimple_build_call_internal): Likewise.
20182         (gimple_build_call_internal_vec): Likewise.
20183         (gimple_call_same_target_p): Likewise.
20184         (gimple_call_flags): Handle calls to internal functions.
20185         (gimple_call_fnspec): New function.
20186         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
20187         (gimple_has_side_effects): Handle null functions.
20188         (gimple_rhs_has_side_effects): Likewise.
20189         (gimple_call_copy_skip_args): Handle calls to internal functions.
20190         * cfgexpand.c (expand_call_stmt): Likewise.
20191         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
20192         * gimple-fold.c (gimple_fold_call): Handle null functions.
20193         (gimple_fold_stmt_to_constant_1): Don't fold
20194         calls to internal functions.
20195         * gimple-low.c (gimple_check_call_args): Handle calls to internal
20196         functions.
20197         * gimple-pretty-print.c (dump_gimple_call): Likewise.
20198         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
20199         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
20200         (do_warn_unused_result): Likewise.
20201         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
20202         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
20203         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
20204         the target of a call.
20205         (initialize_hash_element): Update accordingly.
20206         (hashable_expr_equal_p): Use gimple_call_same_target_p.
20207         (iterative_hash_hashable_expr): Handle calls to internal functions.
20208         (print_expr_hash_elt): Likewise.
20209         * tree-ssa-pre.c (can_value_number_call): Likewise.
20210         (eliminate): Handle null functions.
20211         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
20212         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
20213         (find_func_aliases): Likewise.
20214         * value-prof.c (gimple_ic_transform): Likewise.
20215         (gimple_indirect_call_to_profile): Likewise.
20216         * lto-streamer-in.c (input_gimple_stmt): Likewise.
20217         * lto-streamer-out.c (output_gimple_stmt): Likewise.
20218
20219 2011-04-19  Jan Hubicka  <jh@suse.cz>
20220
20221         * ipa-inline-transform.c (save_inline_function_body): Add comments.
20222         * ipa-inline.c (inline_small_functions): Compute summaries first,
20223         populate heap later.
20224
20225 2011-04-19  Jan Hubicka  <jh@suse.cz>
20226
20227         * cgraph.h (save_inline_function_body): Remove.
20228         * ipa-inline-transform.c: New file, broke out of...
20229         * ipa-inline.c: ... this one; Update toplevel comment.
20230         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
20231         make global.
20232         (update_noncloned_frequencies): Move to ipa-inline-transform.c
20233         (cgraph_mark_inline_edge): Rename to inline_call; move to
20234         ipa-inline-transform.c.
20235         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
20236         move to ipa-inline-transform.c
20237         (recursive_inlining, inline_small_functions, flatten_function,
20238         ipa_inline, inline_always_inline_functions,
20239         early_inline_small_functions): Update.
20240         (inline_transform): Move to ipa-inline-transform.c.
20241         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
20242         Declare.
20243         * Makefile.in (ipa-inline-transform.o): New file.
20244         * cgraphunit.c (save_inline_function_body): Move to
20245         ipa-inline-transform.c
20246
20247 2011-04-19  DJ Delorie  <dj@redhat.com>
20248
20249         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
20250         registers if we already know there aren't any.
20251         (m32c_emit_epilogue): Don't emit a barrier here.
20252         (m32c_emit_eh_epilogue): Likewise.
20253         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
20254         operands at expand time.
20255         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
20256         int" wchar type.
20257         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
20258         duplicates.  Provide aliases instead.
20259         * config/m32c/prologue.md (eh_return): Emit a barrier here.
20260         (eh_epilogue): Add a "(return)" here as a hint to other parts of
20261         the compiler.
20262
20263 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
20264
20265         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
20266         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
20267         (general_or_i64_p, sparc_register_move_cost): New function.
20268
20269 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20270
20271         * doc/install.texi (Configuration, --enable-threads): Remove mach.
20272         Add lynx, mipssde.  Sort table.
20273
20274 2011-04-19  Xinliang David Li  <davidxl@google.com>
20275
20276         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
20277         not negative.
20278
20279 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
20280
20281         PR target/48678
20282         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
20283         is a SUBREG with non-MODE_INT mode inside of it.
20284
20285 2011-04-19  Martin Jambor  <mjambor@suse.cz>
20286
20287         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
20288         also according to actual contants.
20289         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
20290         (gimple_fold_call): Use it.
20291         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
20292
20293 2011-04-19  Martin Jambor  <mjambor@suse.cz>
20294
20295         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
20296         non-pointer assignments.
20297
20298 2011-04-19  Martin Jambor  <mjambor@suse.cz>
20299
20300         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
20301         account anc_offset and otr_type from the indirect edge info.
20302         * ipa-prop.c (get_ancestor_addr_info): New function.
20303         (compute_complex_ancestor_jump_func): Assignment analysis moved to
20304         get_ancestor_addr_info, call it.
20305         (ipa_note_param_call): Do not initialize information about polymorphic
20306         calls, return the indirect call graph edge.  Remove the last
20307         parameter, adjust all callers.
20308         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
20309         parameters.  Initialize polymorphic information in the indirect edge.
20310
20311 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
20312
20313         PR lto/48148
20314         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
20315         the types if they have different enumeration identifiers.
20316
20317 2011-04-19  Jan Hubicka  <jh@suse.cz>
20318
20319         * cgraph.h (cgraph_optimize_for_size_p): Declare.
20320         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
20321         * predict.c (cgraph_optimize_for_size_p): Break out from ...
20322         (optimize_function_for_size_p) ... here.
20323
20324 2011-04-19  Richard Guenther  <rguenther@suse.de>
20325
20326         PR lto/48207
20327         * tree.c (free_lang_data): Do not reset the decl-assembler-name
20328         langhook.
20329
20330 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
20331
20332         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
20333         if DECL_NO_INLINE_WARNING_P is set on the function.
20334
20335 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
20336
20337         PR fortran/47976
20338         * reload1.c (inc_for_reload): Return void. All callers changed.
20339         (emit_input_reload_insns): Don't try to delete previous output
20340         reloads to a register, or record spill_reg_store for autoincs.
20341
20342 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
20343
20344         * gengtype.h: Updated copyright year.
20345         (struct input_file_st): Add inpisplugin field.
20346         (type_fileloc): New function.
20347         * gengtype.c
20348         (write_typed_struct_alloc_def): Add gcc_assert.
20349         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
20350         (write_typed_alloc_defns): Don't output for plugin files.
20351         (input_file_by_name): Clear inpisplugin field.
20352         (main): Set inpisplugin field for plugin files.
20353
20354 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
20355
20356         * gengtype-state.c (string_eq): New.
20357         (read_state): Use string_eq instead of strcmp when creating the
20358         state_ident_tab.
20359
20360 2011-04-19  Wei Guozhi  <carrot@google.com>
20361
20362         PR target/47855
20363         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
20364         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
20365         linkage.
20366         * config/arm/constraints.md (Uu): New constraint.
20367         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
20368
20369 2011-04-19  Tristan Gingold  <gingold@adacore.com>
20370
20371         * config.gcc (-*-*-*vms): Added.
20372         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
20373         definitions moved.
20374         * config/vms/vms-ld.c: New file.
20375         * config/vms/vms-ar.c: New file.
20376         * config/vms/t-vmsnative: New file.
20377
20378 2011-04-18  Xinliang David Li  <davidxl@google.com>
20379
20380         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
20381
20382 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
20383
20384         PR middle-end/48661
20385         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
20386         if TREE_TYPE (v) is non-NULL.
20387
20388         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
20389         gimple_get_virt_mehtod_for_binfo.
20390         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
20391         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
20392         callers.
20393         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
20394
20395 2011-04-18  Michael Matz  <matz@suse.de>
20396             Steve Ellcey  <sje@cup.hp.com>
20397
20398         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
20399         use its mode as source mode if it isn't VOIDmode.
20400
20401 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
20402
20403         * doc/passes.texi: Fill crossref nodes.
20404
20405 2011-04-18  Jim Meyering  <meyering@redhat.com>
20406
20407         Fix doubled-word typos in comments and strings
20408         * config/alpha/vms-unwind.h: s/for for/for/
20409         * config/arm/unwind-arm.h: Likewise.
20410         * config/microblaze/microblaze.c: Likewise.
20411         * config/sh/constraints.md: s/in in/in/
20412         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
20413
20414 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
20415
20416         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
20417         (AVX_FLOAT_MODE_P): Ditto.
20418         (AVX128_VEC_FLOAT_MODE_P): Ditto.
20419         (AVX256_VEC_FLOAT_MODE_P): Ditto.
20420         (AVX_VEC_FLOAT_MODE_P): Ditto.
20421         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
20422         (UNSPEC_MASKSTORE): Ditto.
20423         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
20424         Merge from <sse>_movmsk<ssemodesuffix> and
20425         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
20426         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
20427         iterator.
20428         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
20429         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
20430         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
20431
20432 2011-04-18  Jan Hubicka  <jh@suse.cz>
20433
20434         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
20435
20436         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
20437         (want_inline_function_called_once_p): Break out the logic from
20438         ipa_inline.
20439         (edge_badness): Ensure that profile is not misupdated.
20440         (lookup_recursive_calls): Prioritize by call frequencies.
20441         (inline_small_functions): Move program size estimates here;
20442         actually process whole queue even when unit growth has been
20443         met. (to properly compute inline_failed reasons and for the
20444         case unit size decrease.) Revisit comments on recursive inlining.
20445         (ipa_inline): Remove unit summary code; first inline hot calls
20446         of functions called once, cold calls next.
20447         (order, nnodes): Remove unused variables.
20448         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
20449         (GTFILES): Remove ipa-inline.c
20450         * sel-sched.c (fill_insns): Silence uninitialized var warning.
20451
20452 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
20453
20454         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
20455
20456 2011-04-18  Jie Zhang  <jie@codesourcery.com>
20457             Richard Earnshaw  <rearnsha@arm.com>
20458
20459         * arm.c (neon_builtin_type_bits): Remove.
20460         (typedef enum neon_builtin_mode): New.
20461         (T_MAX): Don't define.
20462         (typedef enum neon_builtin_datum): Remove bits, codes[],
20463         num_vars and base_fcode.  Add mode, code and fcode.
20464         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
20465         VAR10): Change accordingly.
20466         (neon_builtin_data[]): Change accordingly
20467         (arm_init_neon_builtins): Change accordingly.
20468         (neon_builtin_compare): Remove.
20469         (locate_neon_builtin_icode): Remove.
20470         (arm_expand_neon_builtin): Change accordingly.
20471
20472         * arm.h (enum arm_builtins): Move to ...
20473         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
20474
20475         * arm.c (arm_builtin_decl): Declare.
20476         (TARGET_BUILTIN_DECL): Define.
20477         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
20478         (arm_builtin_decls[]): New.
20479         (arm_init_neon_builtins): Store builtin declarations in
20480         arm_builtin_decls[].
20481         (arm_init_tls_builtins): Likewise.
20482         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
20483         (arm_builtin_decl): New.
20484
20485 2011-04-18  Richard Guenther  <rguenther@suse.de>
20486
20487         * tree.c (upper_bound_in_type): Build properly canonicalized
20488         INTEGER_CSTs.
20489         (lower_bound_in_type): Likewise.
20490
20491 2011-04-18  Richard Guenther  <rguenther@suse.de>
20492
20493         * gimple.h (gimple_call_addr_fndecl): New function.
20494         (gimple_call_fndecl): Use it.
20495         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
20496         for direct calls.
20497         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
20498         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
20499
20500 2011-04-18  Richard Guenther  <rguenther@suse.de>
20501
20502         PR middle-end/48650
20503         * tree.c (build_string): STRING_CST is now derived from tree_typed.
20504
20505 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
20506
20507         PR lto/48492
20508         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
20509         DECL_IN_CONSTANT_POOL without RTL.
20510
20511 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
20512             Ira Rosen  <ira.rosen@linaro.org>
20513
20514         PR target/48252
20515         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
20516         to match neon_vzip/vuzp/vtrn_internal.
20517         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
20518         outputs explicitly dependent on both inputs.
20519         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
20520
20521 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
20522
20523         PR tree-optimization/48616
20524         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
20525         whether the shift is by scalar or vector based on whether all SLP
20526         scalar stmts have the same rhs.
20527
20528 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
20529
20530         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
20531         memory operands.
20532
20533 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
20534
20535         PR target/43700
20536         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
20537         registers.
20538
20539 2011-04-17  Jan Hubicka  <jh@suse.cz>
20540
20541         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
20542         * cgrpahunit.c (cgraph_finalize_function): Do not set
20543         finalized_by_frontend.
20544         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
20545         finalized_by_frontend.
20546
20547 2011-04-17  Jan Hubicka  <jh@suse.cz>
20548
20549         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
20550         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
20551         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
20552         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
20553         method.
20554         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
20555         gimple-fold.c
20556         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
20557
20558 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
20559
20560         PR lto/48538
20561         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
20562         is non-null before accessing it.
20563         (input_cgraph): Remove trailing spaces.
20564
20565 2011-04-17  Revital Eres  <revital.eres@linaro.org>
20566
20567         * params.def (sms-min-sc): New param flag.
20568         * modulo-sched.c (sms_schedule): Use it.
20569         * doc/invoke.texi (sms-min-sc): Document it.
20570
20571 2011-04-17  Jan Hubicka  <jh@suse.cz>
20572
20573         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
20574         present, also set gimple_call_set_cannot_inline.
20575         * ipa-inline.c: Update toplevel comment.
20576         (MAX_TIME): Remove.
20577         (cgraph_clone_inlined_nodes): Fix linebreaks.
20578         (cgraph_check_inline_limits): Restructure to ...
20579         (caller_growth_limits): ... this one; be more tolerant
20580         on growth in nested inline chains; add explanatory comment;
20581         fix stack accounting thinko introduced by previous patch.
20582         (cgraph_default_inline_p): Remove.
20583         (report_inline_failed_reason): New function.
20584         (can_inline_edge_p): New function.
20585         (can_early_inline_edge_p): New function.
20586         (leaf_node_p): Move upwards in file.
20587         (want_early_inline_function_p): New function.
20588         (want_inline_small_function_p): New function.
20589         (want_inline_self_recursive_call_p): New function.
20590         (cgraph_edge_badness): Rename to ...
20591         (edge_badness) ... this one; fix linebreaks.
20592         (update_edge_key): Update call of edge_baddness; add
20593         detailed dump about queue updates.
20594         (update_caller_keys): Use can_inline_edge_p and
20595         want_inline_small_function_p.
20596         (cgraph_decide_recursive_inlining): Rename to...
20597         (recursive_inlining): Use can_inline_edge_p and
20598         want_inline_self_recursive_call_p; simplify and remove no longer
20599         valid FIXME.
20600         (cgraph_set_inline_failed): Remove.
20601         (add_new_edges_to_heap): Use can_inline_edge_p and
20602         want_inline_small_function_p.
20603         (cgraph_decide_inlining_of_small_functions): Rename to ...
20604         (inline_small_functions): ... this one; cleanup; use
20605         can/want predicates; cleanup debug ouput; work edges till fibheap
20606         is exhausted and do not stop once unit growth is reached; remove
20607         later loop processing remaining edges.
20608         (cgraph_flatten): Rename to ...
20609         (flatten_function): ... this one; use can_inline_edge_p
20610         and can_early_inline_edge_p predicates.
20611         (cgraph_decide_inlining): Rename to ...
20612         (ipa_inline): ... this one; remove unreachable nodes before
20613         inlining functions called once; simplify the pass.
20614         (cgraph_perform_always_inlining): Rename to ...
20615         (inline_always_inline_functions): ... this one; use
20616         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
20617         (cgraph_decide_inlining_incrementally): Rename to ...
20618         (early_inline_small_functions): ... this one; simplify
20619         using new predicates; cleanup; make dumps prettier.
20620         (cgraph_early_inlining): Rename to ...
20621         (early_inliner): newer inline regular functions into always-inlines;
20622         fix updating of call stmt summaries.
20623         (pass_early_inline): Update for new names.
20624         (inline_transform): Fix formating.
20625         (gate_cgraph_decide_inlining): Rename to ...
20626         (pass_ipa_inline): ... this one.
20627         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
20628         * ipa-inline-analysis.c (dump_inline_summary): Update.
20629         (compute_inline_parameters): Do not compute disregard_inline_limits;
20630         look for mismatching arguments.
20631         (estimate_growth): Fix handlig of non-trivial self recursion.
20632         (inline_read_summary): Do not read info->disregard_inline_limits.
20633         (inline_write_summary): Do not write info->disregard_inline_limits.
20634         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
20635         and move all checks into can_inline_edge_p predicate; re-enable code
20636         comparing optimization levels.
20637         (expand_call_inline): Do not test inline_forbidden_into_p.
20638         * Makefile.in (ipa-inline.o): Update arguments.
20639
20640 2011-04-17  Revital Eres  <revital.eres@linaro.org>
20641
20642         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
20643
20644 2011-04-17  Revital Eres  <revital.eres@linaro.org>
20645
20646         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
20647
20648 2011-04-17  Michael Matz  <matz@suse.de>
20649
20650         PR tree-optimization/48622
20651         PR lto/48645
20652         * ipa-inline-analysis.c (inline_read_summary): Read size/time
20653         in same order as they're written.
20654
20655 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20656
20657         * config/pa/predicates.md: Reorganize and simplify predicates.
20658         Eliminate duplicate code checks.
20659         (arith_operand): Rename to arith14_operand
20660         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
20661         * config/pa/pa.md: Use renamed operands.
20662         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
20663         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
20664         arith11_operand, adddi3_operand, indexed_memory_operand,
20665         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
20666         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
20667         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
20668         move_dest_operand, move_src_operand, prefetch_cc_operand,
20669         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
20670         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
20671         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
20672         div_operand, int5_operand, movb_comparison_operator,
20673         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
20674         arith_double_operand, ireg_operand, lhs_lshift_operand,
20675         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
20676         integer_store_memory_operand): Likewise.
20677         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
20678         (integer_store_memory_operand, read_only_operand,
20679         function_label_operand, borx_reg_operand,
20680         non_hard_reg_operand): Likewise.
20681         (eq_neq_comparison_operator): Delete unused operator.
20682         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
20683         function_label_operand.
20684         (emit_move_sequence): Likewise.
20685
20686 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
20687
20688         * config/i386/sse.md (sseunpackmode): New mode attribute.
20689         (ssepackmode): Ditto.
20690         (vec_pack_trunc_<mode>): Macroize expander from
20691         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
20692         (vec_unpacks_lo_<mode>): Macroize expander from
20693         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
20694         (vec_unpacks_hi_<mode>): Macroize expander from
20695         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
20696         (vec_unpacku_lo_<mode>): Macroize expander from
20697         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
20698         (vec_unpacku_hi_<mode>): Macroize expander from
20699         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
20700         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
20701         ix86_expand_sse4_unpack.
20702         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
20703
20704 2011-04-16  Jan Hubicka  <jh@suse.cz>
20705
20706         * cgraphbuild.c: Include ipa-inline.h.
20707         (reset_inline_failed): Use initialize_inline_failed.
20708         * cgraph.c: Include ipa-inline.h.
20709         (cgraph_create_node_1): Do not initialize estimated_growth.
20710         (initialize_inline_failed): More to ipa-inline-analysis.c
20711         (dump_cgraph_node): Do not dump inline flags.
20712         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
20713         and disregard_inline_limits flags.
20714         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
20715         time, size, estimated_growth.
20716         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
20717         Update.
20718         * cgraphunit.c (cgraph_decide_is_function_needed): Use
20719         DECL_DISREGARD_INLINE_LIMITS.
20720         (cgraph_analyze_function): Do not initialize
20721         node->local.disregard_inline_limits.
20722         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
20723         inlinable, versionable and disregard_inline_limits.
20724         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
20725         cgraph_check_inline_limits, cgraph_default_inline_p,
20726         cgraph_edge_badness, update_caller_keys, update_callee_keys,
20727         add_new_edges_to_heap): Update.
20728         (cgraph_decide_inlining_of_small_function): Update; set
20729         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
20730         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
20731         cgraph_decide_inlining_incrementally): Update.
20732         * ipa-inline.h (inline_summary): Add inlinable, versionable,
20733         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
20734         time, size and estimated_growth parameters.
20735         (estimate_edge_growth): Update.
20736         (initialize_inline_failed): Declare.
20737         * ipa-split.c: Include ipa-inline.h
20738         (execute_split_functions): Update.
20739         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
20740         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
20741         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
20742         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
20743         estimated_growth to INT_MIN.
20744         (inline_node_duplication_hook): Likewise.
20745         (dump_inline_summary): Dump new fields.
20746         (compute_inline_parameters): Update.
20747         (estimate_edge_time, estimate_time_after_inlining,
20748         estimate_size_after_inlining, estimate_growth, inline_read_summary,
20749         inline_write_summary):
20750         (initialize_inline_failed): Move here from cgraph.c.
20751         * tree-sra.c: Include ipa-inline.h.
20752         (ipa_sra_preliminary_function_checks): Update.
20753         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
20754         ipa-inline.h.
20755
20756 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
20757
20758         * config/i386/sse.md (V16): New mode iterator.
20759         (VI1, VI8): Ditto.
20760         (AVXMODEQI, AVXMODEDI): Remove.
20761         (sse2, sse3): New mode attribute.
20762         (mov<mode>): Use V16 mode iterator.
20763         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
20764         (push<mode>1): Use V16 mode iterator.
20765         (movmisalign<mode>): Ditto.
20766         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
20767         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
20768         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
20769         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
20770         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
20771         avx_movdqu<avxmodesuffix>.
20772         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
20773         *avx_movdqu<avxmodesuffix>.
20774         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
20775         avx_lddqu<avxmodesuffix>.
20776         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
20777         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
20778         avx_movnt<AVXMODEDI:mode>.
20779         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
20780         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
20781
20782 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
20783
20784         PR target/48629
20785         * haifa-sched.c (prune_ready_list, schedule_block): Use
20786         sched_pressure_p rather than flag_sched_pressure.
20787
20788 2011-04-15  Pat Haugen  <pthaugen@us.ibm.com>
20789
20790         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
20791         cgraph_get_node instead of cgraph_get_create_node.
20792
20793 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
20794
20795         * cfgexpand.c (expand_debug_expr): Use
20796         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
20797
20798 2011-04-15  Michael Matz  <matz@suse.de>
20799
20800         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
20801         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
20802         * function.c (gimplify_parameters): Ditto.
20803         * gimplify.c (gimplify_vla_decl): Ditto.
20804
20805         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
20806         (gimple_call_set_alloca_for_var): New inline function.
20807         (gimple_call_alloca_for_var_p): Ditto.
20808         * gimple.c (gimple_build_call_from_tree): Remember
20809         CALL_ALLOCA_FOR_VAR_P state.
20810         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
20811
20812         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
20813         calls if they were for VLA objects.
20814
20815 2011-04-15  Martin Jambor  <mjambor@suse.cz>
20816
20817         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
20818         of ADR_EXPRs.
20819
20820 2011-04-15  Martin Jambor  <mjambor@suse.cz>
20821
20822         PR middle-end/48601
20823         * tree-emutls.c (lower_emutls_function_body): Call
20824         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
20825         result is non-NULL.
20826
20827 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
20828
20829         * c-decl.c (detect_field_duplicates): Call
20830         objc_detect_field_duplicates instead of objc_get_interface_ivars.
20831
20832 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
20833
20834         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
20835         * gimple.c (gimple_asm_clobbers_memory_p): Define.
20836         * ipa-pure-const.c (check_stmt): Call it.
20837         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
20838
20839 2011-04-15  Richard Guenther  <rguenther@suse.de>
20840
20841         PR tree-optimization/48290
20842         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
20843         Properly decide inhibiting propagation based on the valueized
20844         operand.  Do loop-closed SSA form preserving here ...
20845         (init_copy_prop): ... not here.
20846
20847 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
20848
20849         PR target/48612
20850         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
20851         (*ieee_smax<mode>3): Likewise.
20852
20853 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20854
20855         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
20856         Replace match_operand with match_dup for the third operand in
20857         these expanders.
20858
20859 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
20860
20861         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
20862         to track processing of conditionals.  Update all callers.
20863         (try_combine, simplify_if_then_else): Update.
20864
20865 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
20866
20867         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
20868         -fsched-pressure.
20869
20870 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
20871
20872         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
20873         instead of match_operand for operand 3.
20874
20875 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
20876
20877         * recog.h (insn_operand_data): Add an "allows_mem" field.
20878         * genoutput.c (output_operand_data): Initialize it.
20879         * optabs.c (maybe_legitimize_operand_same_code): New function.
20880         (maybe_legitimize_operand): Use it when matching the original
20881         op->value.
20882
20883 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
20884
20885         * gimplify.c: Fix issues in comments throughout.
20886         (voidify_wrapper_expr): Fix long line.
20887         (build_stack_save_restore): Likewise.
20888         (gimplify_loop_expr): Likewise.
20889         (gimplify_compound_lval): Likewise.
20890         (gimplify_init_ctor_eval): Likewise.
20891         (gimplify_modify_expr_rhs): Likewise.
20892         (omp_notice_threadprivate_variable): Likewise.
20893
20894 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
20895
20896         * cfgexpand.c (expand_call_stmt): Convert the function type to the
20897         original one if this is not a builtin function.
20898
20899 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
20900
20901         PR target/48605
20902         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
20903         offset it as needed based on top 2 bits in operands[3], change
20904         MEM mode to SFmode and mask those 2 bits away from operands[3].
20905
20906 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
20907
20908         * c-parser.c (c_parser_objc_protocol_definition): Updated for
20909         change from objc_declare_protocols() to objc_declare_protocol().
20910
20911 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
20912
20913         * config/i386/sse.md (sse4_1): New mode attribute.
20914         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
20915         avx_blend<ssemodesuffix><avxmodesuffix> and
20916         sse4_1_blend<ssemodesuffix> using VF mode iterator.
20917         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
20918         avx_blendv<ssemodesuffix><avxmodesuffix> and
20919         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
20920         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
20921         avx_dp<ssemodesuffix><avxmodesuffix> and
20922         sse4_1_dp<ssemodesuffix> using VF mode iterator.
20923         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
20924         (sse4_1_packusdw): Merge with *avx_packusdw.
20925         (sse4_1_pblendvb): Merge with *avx_pblendvb.
20926         (sse4_1_pblendw): Merge with *avx_pblendw.
20927         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
20928         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
20929         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
20930         VF mode iterator.
20931         (sse4_1_round<ssescalarmodesuffix>): Merge with
20932         *avx_round<ssescalarmodesuffix>.
20933         (aesenc): Merge with *avx_aesenc.
20934         (aesenclast): Merge with *avx_aesenclast.
20935         (aesdec): Merge with *avx_aesdec.
20936         (aesdeclast): Merge with *avx_aesdeclast.
20937         (pclmulqdq): Merge with *pclmulqdq.
20938         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
20939         New predicate.
20940         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
20941
20942 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
20943
20944         PR middle-end/48608
20945         * cfgexpand.c (get_decl_align_unit): Renamed to ...
20946         (align_local_variable): This.  Update DECL_ALIGN.
20947         (add_stack_var): Updated.
20948         (expand_one_stack_var): Likewise.
20949
20950 2011-04-14  Richard Guenther  <rguenther@suse.de>
20951
20952         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
20953         Remove.
20954         (dse_initialize_block_local_data, dse_leave_block,
20955         record_voperand_set, get_stmt_uid): Likewise.
20956         (dse_possible_dead_store_p): Allow any kind of killing stmt.
20957         (dse_optimize_stmt): Remove voperand set handling code.
20958         Simplify and improve to handle any kind of killing stmt.
20959         (dse_record_phi): Remove.
20960         (dse_enter_block): Simplify.
20961         (tree_ssa_dse): Likewise.
20962         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
20963
20964 2011-04-14  Jan Hubicka  <jh@suse.cz>
20965
20966         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
20967         * cgraph.h (struct inline_summary): Move to ipa-inline.h
20968         (cgraph_local_info): Remove inline_summary.
20969         * ipa-cp.c: Include ipa-inline.h.
20970         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
20971         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
20972         accesor.
20973         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
20974         (input_overwrite_node): Do not set inline summary.
20975         (input_node): Do not stream inline summary.
20976         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
20977         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
20978         growth; we do not have inline parameters computed for that anyway.
20979         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
20980         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
20981         (inline_summary_t): New type and VECtor.
20982         (debug_inline_summary, dump_inline_summaries): Declare.
20983         (inline_summary): Use VOCtor.
20984         (estimate_edge_growth): Kill hack computing call stmt size directly.
20985         * lto-section-in.c (lto_section_name): Add inline section.
20986         * ipa-inline-analysis.c: Include lto-streamer.h
20987         (node_removal_hook_holder, node_duplication_hook_holder): New holders
20988         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
20989         (inline_summary_vec): Define.
20990         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
20991         dump_inline_summaries): New functions.
20992         (estimate_function_body_sizes): Properly compute size/time of outgoing
20993         calls.
20994         (compute_inline_parameters): Alloc inline_summary; do not compute
20995         size/time of incomming calls.
20996         (estimate_edge_time): Avoid missing time summary hack.
20997         (inline_read_summary): Read inline summary info.
20998         (inline_write_summary): Write inline summary info.
20999         (inline_free_summary): Free all hooks and inline summary vector.
21000         * lto-streamer.h: Add LTO_section_inline_summary section.
21001         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
21002         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
21003
21004 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
21005
21006         * tree-vectorizer.h (vect_strided_store_supported): Add a
21007         HOST_WIDE_INT argument.
21008         (vect_strided_load_supported): Likewise.
21009         (vect_permute_store_chain): Return void.
21010         (vect_transform_strided_load): Likewise.
21011         (vect_permute_load_chain): Delete.
21012         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
21013         count argument.  Check that the count is a power of two.
21014         (vect_strided_load_supported): Likewise.
21015         (vect_permute_store_chain): Return void.  Update after above changes.
21016         Assert that the access is supported.
21017         (vect_permute_load_chain): Likewise.
21018         (vect_transform_strided_load): Return void.
21019         * tree-vect-stmts.c (vectorizable_store): Update calls after
21020         above interface changes.
21021         (vectorizable_load): Likewise.
21022         (vect_analyze_stmt): Don't check for strided powers of two here.
21023
21024 2011-04-14  Richard Guenther  <rguenther@suse.de>
21025
21026         PR tree-optimization/48590
21027         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
21028         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
21029         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
21030         BUILT_IN_STACK_SAVE.
21031         * tree-ssa-dce.c (propagate_necessity): Handle
21032         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
21033
21034 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
21035
21036         * c-parser.c (c_parser_objc_class_declaration): Updated call to
21037         objc_declare_class.
21038
21039 2011-04-14  Richard Guenther  <rguenther@suse.de>
21040
21041         * tree.h (get_object_alignment_1): Declare.
21042         * builtins.c (get_object_alignment_1): Split out worker from ...
21043         (get_object_alignment): ... here.
21044         * fold-const.c (get_pointer_modulus_and_residue): Use
21045         get_object_alignment_1.
21046
21047 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
21048
21049         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
21050         type parameter.
21051         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
21052         parameter.  Generalise code to handle arrays as well as vectors.
21053         (vect_setup_realignment): Update accordingly.
21054         * tree-vect-stmts.c (vectorizable_store): Likewise.
21055         (vectorizable_load): Likewise.
21056
21057 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
21058
21059         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
21060         within the per-copy loop.
21061
21062 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
21063
21064         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
21065         in the dump file.
21066
21067 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
21068
21069         * doc/options.texi (Negative): Explicitly mention that the
21070         Negative chain must be circular.
21071
21072 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
21073
21074         * function.h (block_chainon): Declare.
21075         * function.c (block_chainon): Define.
21076
21077 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
21078             Eric Weddington  <eric.weddington@atmel.com>
21079             Georg-Johann Lay  <avr@gjlay.de>
21080
21081         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
21082         New Includes
21083         (avr_init_builtins, avr_expand_builtin,
21084         avr_expand_delay_cycles, avr_expand_unop_builtin,
21085         avr_expand_binop_builtin ): New functions.
21086         (avr_builtin_id): New enum
21087         (struct avr_builtin_description): New struct
21088         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
21089         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
21090
21091         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
21092         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
21093         UNSPECV_DELAY_CYCLES): new enumeration values
21094         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
21095         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
21096         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
21097         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
21098         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
21099         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
21100         "fmulsu"): New insns
21101
21102         * config/avr/avr-c.c: fix line endings
21103         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
21104         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
21105         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
21106         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
21107         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
21108
21109         * doc/extend.texi (AVR Built-in Functions): New node
21110         (Target Builtins): Add documentation of AVR
21111         built-in functions.
21112
21113 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
21114
21115         PR target/44643
21116         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
21117         alone. Error if non-const data has attribute progmem.
21118
21119 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
21120
21121         * tree.h (struct tree_constructor): Include tree_typed instead of
21122         tree_common.
21123         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
21124         TS_TYPED instead of TS_COMMON.
21125
21126 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
21127
21128         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
21129         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
21130         (sse2_psadbw): Merge with *avx_psadbw.
21131         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
21132         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
21133         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
21134         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
21135         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
21136         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
21137         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
21138         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
21139         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
21140         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
21141         (ssse3_palignrti): Merge with *avx_palignrti.
21142
21143 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
21144
21145         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
21146         * tree-ssanames.c (fini_ssanames): VEC_free it.
21147         (make_ssa_name_fn): Update for VECness of free_ssanames.
21148         (release_ssa_name, release_dead_ssa_names): Likewise.
21149         * tree.h (struct tree_ssa_name): Include tree_typed instead of
21150         tree_common.
21151         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
21152         TS_TYPED instead of TS_COMMON.
21153
21154 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
21155
21156         * postreload-gcse.c (gcse_after_reload_main): Add calls to
21157         statistics_counter_event.
21158         * tree-ssa-copyrename.c (stats): Define.
21159         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
21160         statistics_counter_event.
21161         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
21162         (bswap_stats, widen_mul_stats): Define.
21163         (insert_reciprocals): Increment rdivs_inserted.
21164         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
21165         rfuncs_inserted.  Add calls to statistics_counter_event.
21166         (execute_cse_sincos_1): Increment inserted.
21167         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
21168         statistics_counter_event.
21169         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
21170         of bswap_stats.  Add calls to statistics_counter_event.
21171         (convert_mult_to_widen): Increment widen_mults_inserted.
21172         (convert_plusminus_to_widen): Increment maccs_inserted.
21173         (convert_mult_to_fma): Increment fmas_inserted.
21174         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
21175         calls to statistics_counter_event.
21176
21177 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
21178
21179         PR rtl-optimization/48455
21180         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
21181         `temp_costs->mem_cost'.
21182
21183 2011-04-13  Jan Hubicka  <jh@suse.cz>
21184
21185         * ipa-inline.h: New file.
21186         * ipa-inline-analysis.c: New file. Broken out of ...
21187         * ipa-inline.c: ... this file; update toplevel comment;
21188         include ipa-inline.h
21189         (inline_summary): Move to ipa-inline.h
21190         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
21191         ipa-inline-analysis.c.
21192         (cgraph_estimate_time_after_inlining): Rename to
21193         estiamte_time_after_inlining; move to ipa-inline-analysis.c
21194         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
21195         to estimate_edge_growth.
21196         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
21197         rename to estimate_size_after_inlining.
21198         (cgraph_mark_inline_edge): Update for new naming convention.
21199         (cgraph_check_inline_limits): Likewise.
21200         (cgraph_edge_badness): Likewise.
21201         (cgraph_decide_recursive_inlining): Likewise.
21202         (cgraph_decide_inlining_of_small_functions): Likewise.
21203         (cgraph_decide_inlining_incrementally): Likewise.
21204         (cgraph_estimate_growth): Rename to estimate_growth; move to
21205         ipa-inline-analysis.c.
21206         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
21207         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
21208         (compute_inline_parameters): Likewise.
21209         (compute_inline_parameters_for_current): Likewise.
21210         (pass_inline_parameters): Likewise.
21211         (inline_indirect_intraprocedural_analysis): Likewise.
21212         (analyze_function): Rename to inline_analyze_function; likewise.
21213         (add_new_function): Move to ipa-inline-analysis.c.
21214         (inline_generate_summary): Likewise.
21215         (inline_read_summary): Likewise.
21216         (inline_write_summary): Likewise.
21217         * Makefile.in (ipa-inline-analysis.c): New file.
21218
21219 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21220
21221         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
21222         * configure: Regenerate.
21223
21224 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
21225
21226         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
21227         instead of tree_common.
21228         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
21229         Likewise.
21230         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
21231         TS_TYPED rather than TS_COMMON.
21232         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
21233
21234 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
21235
21236         PR target/45263
21237         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
21238         r20 around calls of __tablejump_elpm__
21239
21240 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
21241
21242         PR middle-end/48591
21243         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
21244         NULL.
21245         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
21246
21247 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
21248
21249         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
21250         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
21251         (cfi_vec): New typedef.
21252         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
21253         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
21254         (cie_cfi_vec): New static variable.
21255         (cie_cfi_head): Delete.
21256         (add_cfi): Accept a cfi_vec * as first argument. All callers and
21257         declaration changed. Use vector rather than list operations.
21258         (new_cfi): Don't initialize the dw_cfi_next field.
21259         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
21260         rather than list operations.
21261         (lookup_cfa): Use vector rather than list operations.
21262         (output_cfis): New argument upto. Accept a cfi_vec rather than
21263         a dw_cfi_ref list head as argument. All callers changed.
21264         Iterate over the vector using upto as a maximum index.
21265         (output_all_cfis): New static function.
21266         (output_fde): Use vector rather than list operations. Use the
21267         new upto argument for output_cfis rather than manipulating a
21268         list.
21269         (dwarf2out_begin_prologue): Change initializations to match
21270         new struct members.
21271         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
21272         from the vector length rather than searching for the end of a list.
21273         Use output_all_cfis.
21274         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
21275
21276 2011-04-13  Nick Clifton  <nickc@redhat.com>
21277
21278         * config/rx/rx.md (movmemsi): Do not use this pattern when
21279         volatile pointers are involved.
21280
21281 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
21282
21283         * config/i386/sse.md (pinsrbits): Remove.
21284         (sse2_packsswb): Merge with *avx_packsswb.
21285         (sse2_packssdw): Merge with *avx_packssdw.
21286         (sse2_packuswb): Merge with *avx_packuswb.
21287         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
21288         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
21289         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
21290         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
21291         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
21292         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
21293         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
21294         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
21295         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
21296         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
21297         (sse2_loadld): Merge with *avx_loadld.
21298         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
21299         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
21300         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
21301         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
21302         (vec_concatv2di): Merge with *vec_concatv2di_avx.
21303
21304 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
21305
21306         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
21307         calling TREE_CHAIN.
21308         * print-tree.c (print_node): Likewise.
21309         * tree-inline.c (copy_tree_r): Likewise.
21310         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
21311         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
21312         instead of TS_COMMON.
21313         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
21314         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
21315         (copy_node_stat): Zero TREE_CHAIN only if necessary.
21316         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
21317         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
21318         ...and these...
21319         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
21320         * tree.h: ...here.
21321         (TREE_CHAIN): Check for a TS_COMMON structure.
21322         (TREE_TYPE): Check for a TS_TYPED structure.
21323
21324 2011-04-12  Pat Haugen  <pthaugen@us.ibm.com>
21325
21326         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
21327         cgraph_get_create_node instead of cgraph_node.
21328
21329 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
21330
21331         * c-parser.c (c_parser_initelt): Updated call to
21332         objc_build_message_expr.
21333         (c_parser_postfix_expression): Likewise.
21334
21335 2011-04-12  Kai Tietz  <ktietz@redhat.com>
21336
21337         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
21338         MASK_MS_BITFIELD_LAYOUT bit.
21339
21340 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
21341
21342         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
21343         assert it is always true.
21344         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
21345         moves.
21346
21347 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
21348
21349         * c-parser.c (c_lex_one_token): Rewritten conditional used when
21350         compiling Objective-C to be more efficient.
21351
21352 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
21353
21354         * opts-common.c (decode_cmdline_options_to_array): Remove variable
21355         argv_copied.
21356
21357 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
21358
21359         * recog.h, genoutput.c, optabs.c: Revert last patch.
21360
21361 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
21362
21363         PR target/48090
21364         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
21365
21366 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
21367
21368         * recog.h (insn_operand_data): Add an "allows_mem" field.
21369         * genoutput.c (output_operand_data): Initialize it.
21370         * optabs.c (maybe_legitimize_operand_same_code): New function.
21371         (maybe_legitimize_operand): Use it when matching the original
21372         op->value.
21373
21374 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
21375
21376         * genpreds.c (process_define_predicate): Move most processing
21377         to gensupport.c.  Continue to validate the expression.
21378         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
21379         (process_define_predicate): Move processing to gensupport.c.
21380         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
21381         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
21382         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
21383         argument.
21384         (valid_predicate_name_p): New function, split out from old
21385         genpreds.c:process_define_predicate.
21386         (process_define_predicate): New function, combining code from
21387         old genpreds.c and genrecog.c functions.
21388         (process_rtx): Call it for DEFINE_PREDICATE and
21389         DEFINE_SPECIAL_PREDICATE.
21390
21391 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
21392
21393         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
21394         size of a '%A' memory reference.
21395         (T_DREG, T_QREG): New neon_builtin_type_bits.
21396         (arm_init_neon_builtins): Assert that the load and store operands
21397         are neon_struct_operands.
21398         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
21399         (NEON_ARG_MEMORY): New builtin_arg.
21400         (neon_dereference_pointer): New function.
21401         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
21402         Handle NEON_ARG_MEMORY.
21403         (arm_expand_neon_builtin): Update after above interface changes.
21404         Use NEON_ARG_MEMORY for loads and stores.
21405         * config/arm/predicates.md (neon_struct_operand): New predicate.
21406         * config/arm/iterators.md (V_two_elem): Tweak formatting.
21407         (V_three_elem): Use BLKmode for accesses that have no associated mode.
21408         (V_four_elem): Tweak formatting.
21409         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
21410         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
21411         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
21412         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
21413         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
21414         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
21415         (neon_vst4<mode>): Replace pointer operand with a memory operand.
21416         Use %A in the output template.
21417         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
21418         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
21419         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
21420         the width of the memory access.  Remove post-increment.
21421         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
21422
21423 2011-04-12  Nick Clifton  <nickc@redhat.com>
21424
21425         * config/v850/v850.c (expand_prologue): Do not use the CALLT
21426         instruction for interrupt handlers if the target is the basic V850
21427         architecture.
21428         (expand_epilogue): Likewise.
21429
21430 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
21431
21432         PR rtl-optimization/48549
21433         * combine.c (propagate_for_debug): Also stop after BB_END of
21434         this_basic_block.  Process LAST and just stop processing after it.
21435         (combine_instructions): If last_combined_insn has been deleted,
21436         set last_combined_insn to its PREV_INSN.
21437
21438 2011-04-12  Richard Guenther  <rguenther@suse.de>
21439
21440         PR tree-optimization/46076
21441         * gimple.h (struct gimple_statement_call): Add fntype field.
21442         (gimple_call_fntype): Adjust.
21443         (gimple_call_set_fntype): New function.
21444         * gimple.c (gimple_build_call_1): Set the call function type.
21445         * gimplify.c (gimplify_call_expr): Preserve the function
21446         type the frontend used for the call.
21447         (gimplify_modify_expr): Likewise.
21448         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
21449         function type.
21450         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
21451         function type.
21452         * tree-ssa.c (useless_type_conversion_p): Function pointer
21453         conversions are useless.
21454
21455 2011-04-12  Martin Jambor  <mjambor@suse.cz>
21456
21457         * cgraph.h (cgraph_node): Remove function declaration.
21458         (cgraph_create_node): Declare.
21459         (cgraph_get_create_node): Likewise.
21460         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
21461         Updated all callers.
21462         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
21463         the decl does not already exist.  Call cgraph_get_create_node instead
21464         of cgraph_node.
21465         (cgraph_get_create_node): New function.
21466         (cgraph_same_body_alias): Update comment.
21467         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
21468         assert it does not return NULL.
21469         (cgraph_update_edges_for_call_stmt): Likewise.
21470         (cgraph_clone_edge): Likewise.
21471         (cgraph_create_virtual_clone): Likewise.
21472         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
21473         instead of cgraph_node.
21474         (cgraph_add_new_function): Call cgraph_create_node or
21475         cgraph_get_create_node instead of cgraph_node.
21476         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
21477         instead of cgraph_node.
21478         (record_eh_tables): Likewise.
21479         (mark_address): Likewise.
21480         (mark_load): Likewise.
21481         (build_cgraph_edges): Call cgraph_get_create_node instead
21482         of cgraph_node.
21483         (rebuild_cgraph_edges): Likewise.
21484         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
21485         instead of cgraph_node.
21486         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
21487         cgraph_node.
21488         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
21489         cgraph_create_node instead of cgraph_node.
21490         * c-decl.c (finish_function): Call cgraph_get_create_node instead
21491         of cgraph_node.
21492         * lto-cgraph.c (input_node): Likewise.
21493         * lto-streamer-in.c (input_function): Likewise.
21494         * varasm.c (mark_decl_referenced): Likewise.
21495         (assemble_alias): Likewise.
21496
21497 2011-04-12  Martin Jambor  <mjambor@suse.cz>
21498
21499         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
21500         instead of cgraph_node and assert it does not return NULL.
21501         * lto-streamer-in.c (lto_read_body): Likewise.
21502         * omp-low.c (new_omp_context): Likewise.
21503         (create_task_copyfn): Likewise.
21504         * tree-emutls.c (lower_emutls_function_body): Likewise.
21505         * matrix-reorg.c (transform_allocation_sites): Likewise.
21506
21507 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
21508
21509         PR c/48552
21510         * c-typeck.c (build_asm_expr): Error out on attempts to use
21511         void type outputs or inputs for constraints that allow reg or
21512         don't allow memory.
21513
21514 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
21515             Richard Earnshaw  <rearnsha@arm.com>
21516
21517         PR target/48250
21518         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
21519         to use sign-magnitude offsets. Reject unsupported unaligned
21520         cases. Add detailed description in comments.
21521         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
21522         condition from TARGET_32BIT to TARGET_ARM.
21523
21524 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
21525
21526         * tree.h (struct typed_tree): New.
21527         (struct tree_common): Include it instead of tree_base.
21528         (TREE_TYPE): Update for new location of type field.
21529         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
21530         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
21531         (union tree_node): Add typed field.
21532         * treestruct.def (TS_TYPED): New.
21533         * lto-streamer.c (check_handled_ts_structures): Handle it.
21534         * tree.c (MARK_TS_TYPED): New macro.
21535         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
21536
21537 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
21538
21539         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
21540         (force_nonfallthru): Do not alter the loop nest if no basic block
21541         was created.
21542
21543 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
21544
21545         * config/i386/sse.md (VI): New mode iterator.
21546         (SSEMODEI): Remove.
21547         (AVX256MODEI): Ditto.
21548         (AVXMODEF4P): Ditto.
21549         (avxvecpsmode): Ditto.
21550         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
21551         (sse2_andnot<mode>3): New expander.
21552         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
21553         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
21554         (<any_logic:code><mode>3): Use VI mode iterator.
21555         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
21556         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
21557         (*andnottf3): Handle AVX three-operand constraints.
21558         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
21559
21560 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
21561             Robert Millan  <rmh@gnu.org>
21562
21563         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
21564         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
21565         GNU_USER_DYNAMIC_LINKER64): Define.
21566         (REG_NAME): Don't undefine.
21567         (MD_UNWIND_SUPPORT): Undefine.
21568         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
21569         (REG_NAME): Don't undefine.
21570         (MD_UNWIND_SUPPORT): Undefine.
21571         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
21572
21573 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
21574
21575         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
21576         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
21577
21578 2011-04-11  Xinliang David Li  <davidxl@google.com>
21579
21580         * value-profile.c (check_ic_target): New function.
21581         (gimple_ic_transform): Sanity check indirect call target.
21582         * gimple-low.c (gimple_check_call_args): Interface change.
21583         (gimple_check_call_matching_types): New function.
21584         * tree-inline.c (tree_can_inline_p): Call new function.
21585
21586 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
21587
21588         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
21589         tree-pretty-print.h & realmpfr.h.
21590
21591 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
21592
21593         PR middle-end/48464
21594         * ira.c (setup_pressure_classes): Fix typo in loop condition.
21595         (setup_allocno_and_important_classes): Ditto.
21596
21597 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
21598
21599         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
21600         GNU_USER_DYNAMIC_LINKER.
21601         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
21602         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21603         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
21604         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
21605         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
21606         GNU_USER_TARGET_OS_CPP_BUILTINS.
21607         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
21608         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21609         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
21610         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21611         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
21612         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
21613         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
21614         GNU_USER_TARGET_OS_CPP_BUILTINS.
21615         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
21616         GNU_USER_DYNAMIC_LINKER.
21617         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
21618         GNU_USER_TARGET_OS_CPP_BUILTINS.
21619         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
21620         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21621         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
21622         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21623         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
21624         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
21625         GNU_USER_DYNAMIC_LINKER64): Remove.
21626         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
21627         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21628         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
21629         GNU_USER_DYNAMIC_LINKER.
21630         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
21631         GNU_USER_TARGET_OS_CPP_BUILTINS.
21632         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
21633         GNU_USER_TARGET_OS_CPP_BUILTINS.
21634         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
21635         to GNU_USER_TARGET_OS_CPP_BUILTINS.
21636         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
21637         GNU_USER_TARGET_OS_CPP_BUILTINS.
21638         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
21639         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
21640         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
21641         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
21642         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21643         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
21644         GNU_USER_DYNAMIC_LINKER.
21645         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
21646         GNU_USER_TARGET_OS_CPP_BUILTINS.
21647         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
21648         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21649         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
21650         GNU_USER_DYNAMIC_LINKER.
21651         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
21652         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21653         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
21654         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21655         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
21656         GNU_USER_DYNAMIC_LINKER.
21657         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
21658         GNU_USER_DYNAMIC_LINKERN32.
21659         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
21660         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
21661         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
21662         GNU_USER_DYNAMIC_LINKER32.
21663         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
21664         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21665         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
21666         GNU_USER_DYNAMIC_LINKER.
21667         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
21668         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21669         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
21670         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21671         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
21672         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
21673         GNU_USER_DYNAMIC_LINKER32.
21674         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
21675         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
21676         GNU_USER_DYNAMIC_LINKER.
21677         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
21678         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21679         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
21680         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
21681         GNU_USER_DYNAMIC_LINKER64.
21682         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
21683         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21684         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
21685         GNU_USER_DYNAMIC_LINKER.
21686         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
21687         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21688         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
21689         GNU_USER_DYNAMIC_LINKER.
21690         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
21691         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21692         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
21693         GNU_USER_DYNAMIC_LINKER32.
21694         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
21695         GNU_USER_DYNAMIC_LINKER64.
21696         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
21697         GNU_USER_DYNAMIC_LINKER64.
21698         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
21699         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21700         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
21701         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21702         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
21703
21704 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
21705
21706         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
21707         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
21708         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
21709         GNU_USER_DYNAMIC_LINKER.
21710         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
21711         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
21712         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
21713         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
21714         GNU_USER_DYNAMIC_LINKER64.
21715         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
21716         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
21717         GNU_USER_LINK_EMULATION.
21718         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
21719         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
21720         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
21721         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
21722         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
21723         CPP_SPEC, CC1_SPEC): Remove.
21724         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
21725         (GNU_USER_DYNAMIC_LINKER): Define.
21726         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
21727         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
21728         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
21729         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
21730         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
21731         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
21732         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
21733         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
21734         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
21735         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
21736         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
21737         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
21738         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
21739         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
21740         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
21741         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
21742         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
21743         GNU_USER_DYNAMIC_LINKER.
21744         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
21745         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
21746         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
21747         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
21748         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
21749         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
21750         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
21751         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
21752         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
21753         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
21754
21755 2011-04-11  Kai Tietz  <ktietz@redhat.com>
21756
21757         PR target/9601
21758         PR target/11772
21759         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
21760         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
21761         comment.
21762         (ix86_is_msabi_thiscall): Removed.
21763         (ix86_is_type_thiscall): Likewise.
21764         (ix86_get_callcvt): New function.
21765         (ix86_comp_type_attributes): Simplify check.
21766         (ix86_function_regparm): Use ix86_get_callcvt for calling
21767         convention attribute checks.
21768         (ix86_return_pops_args): Likewise.
21769         (ix86_static_chain): Likewise.
21770         (x86_this_parameter): Likewise.
21771         (x86_output_mi_thunk): Likewise.
21772         (ix86_function_type_abi): Optimize check for types without attributes.
21773         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
21774         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
21775         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
21776         by flag-values.
21777         (IX86_BASE_CALLCVT): Helper macro.
21778         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
21779         Use ix86_get_callcvt for calling convention attribute checks and avoid
21780         symbol-decoration for stdcall in TARGET_RTD case.
21781         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
21782         Likewise.
21783         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
21784         for declaration.
21785
21786 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
21787
21788         * config/i386/sse.md (VI_128): New mode iterator.
21789         (VI12_128): Rename from SSEMODE12.
21790         (VI14_128): Rename from SSEMODE14.
21791         (VI124_128): New mode iterator.
21792         (VI24_128): Rename from SSEMODE248.
21793         (VI248_128): Rename from SSEMODE248.
21794         (SSEMODE124C8): Remove.
21795         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
21796         (*sse2_<plusminus_insn><mode>3): Merge with
21797         *avx_<plusminus_insn><mode>3.
21798         (*mulv8hi3): Merge with *avx_mulv8hi3.
21799         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
21800         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
21801         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
21802         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
21803         (ashr<mode>3): Merge with *avx_ashr<mode>3.
21804         (lshr<mode>3): Merge with *avx_lshr<mode>3.
21805         (ashl<mode>3): Merge with *avx_ashl<mode>3.
21806         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
21807         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
21808         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
21809         (*<smaxmin:code>v8hi3): Ditto.
21810         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
21811         (*<smaxmin:code>v16qi3): Ditto.
21812         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
21813         (*sse2_eq<mode>3): Ditto.
21814         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
21815         (*sse2_gt<mode>3): Ditto.
21816         (vcondv2di): Split out of vcond<mode>.
21817         (vconduv2di): Split out of vcondu<mode>.
21818
21819 2011-04-11  Richard Guenther  <rguenther@suse.de>
21820
21821         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
21822         before calling tree_low_cst.
21823
21824 2011-04-11  Richard Guenther  <rguenther@suse.de>
21825
21826         * stor-layout.c (layout_type): Compute all array index size operations
21827         in the original type.
21828         (initialize_sizetypes): Add comment.
21829         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
21830
21831 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
21832
21833         * common.opt (Tbss=, Tdata=, Ttext=): New options.
21834
21835 2011-04-11  Martin Jambor  <mjambor@suse.cz>
21836
21837         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
21838         of cgraph_node, handle NULL return value.
21839         (cgraph_global_info): Likewise.
21840         (cgraph_rtl_info): Likewise.
21841         * tree-inline.c (estimate_num_insns): Likewise.
21842         * gimplify.c (unshare_body): Likewise.
21843         (unvisit_body): Likewise.
21844         (gimplify_body): Likewise.
21845         * predict.c (optimize_function_for_size_p): Likewise.
21846         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
21847         (call_may_clobber_ref_p_1): Likewise.
21848         * varasm.c (function_section_1): Likewise.
21849         (assemble_start_function): Likewise.
21850
21851 2011-04-11  Martin Jambor  <mjambor@suse.cz>
21852
21853         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
21854         of cgraph_node.
21855         * final.c (rest_of_clean_state): Likewise.
21856         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
21857         * passes.c (pass_init_dump_file): Likewise.
21858         (execute_all_ipa_transforms): Likewise.
21859         (function_called_by_processed_nodes_p): Likewise.
21860         * predict.c (maybe_hot_frequency_p): Likewise.
21861         (probably_never_executed_bb_p): Likewise.
21862         (compute_function_frequency): Likewise.
21863         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
21864         (unnest_nesting_tree_1): Likewise.
21865         (lower_nested_functions): Likewise.
21866         * tree-optimize.c (execute_fixup_cfg): Likewise.
21867         (tree_rest_of_compilation): Likewise.
21868         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
21869         * tree-sra.c (ipa_early_sra): Likewise.
21870         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
21871         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
21872         * ipa.c (record_cdtor_fn): Likewise.
21873         * ipa-inline.c (cgraph_early_inlining): Likewise.
21874         (compute_inline_parameters_for_current): Likewise.
21875         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
21876         * ipa-pure-const.c (local_pure_const): Likewise.
21877         * ipa-split.c (split_function): Likewise.
21878         (execute_split_functions): Likewise.
21879         * cgraphbuild.c (build_cgraph_edges): Likewise.
21880         (rebuild_cgraph_edges): Likewise.
21881         (cgraph_rebuild_references): Likewise.
21882         (remove_cgraph_callee_edges): Likewise.
21883         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
21884         (verify_cgraph_node): Likewise.
21885         (cgraph_analyze_functions): Likewise.
21886         (cgraph_preserve_function_body_p): Likewise.
21887         (save_inline_function_body): Likewise.
21888         (save_inline_function_body): Likewise.
21889         * tree-inline.c (copy_bb): Likewise.
21890         (optimize_inline_calls): Likewise.
21891
21892 2011-04-11  Martin Jambor  <mjambor@suse.cz>
21893
21894         PR tree-optimization/48195
21895         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
21896         ipa_check_create_edge_args.
21897         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
21898         ipa_check_create_edge_args.
21899         * ipa-inline.c (inline_generate_summary): Do not call
21900         ipa_check_create_node_params and ipa_check_create_edge_args.
21901         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
21902         ipa_check_create_edge_args.
21903
21904 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
21905
21906         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
21907         instead of loop.
21908         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
21909         * function.c (record_hard_reg_sets): Likewise.
21910         * ira.c (compute_regs_asm_clobbered): Likewise.
21911         * sched-deps.c (sched_analyze_1): Likewise.
21912         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
21913
21914 2011-04-09  Xinliang David Li  <davidxl@google.com>
21915
21916         PR tree-optimization/PR48484
21917         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
21918         has_valid_pred lazily
21919
21920 2011-04-09  Duncan Sands  <baldrick@free.fr>
21921
21922         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
21923
21924 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
21925
21926         * combine.c (combine_validate_cost): Adjust comments.  Set registered
21927         cost of I0 to zero at the end, if any.
21928
21929 2011-04-08  Xinliang David Li  <davidxl@google.com>
21930
21931         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
21932         to insane profile data.
21933
21934 2011-04-08  Xinliang David Li  <davidxl@google.com>
21935
21936         * ipa-cp.c (ipcp_update_profiling): Correct
21937          negative scale factor due to insane profile data.
21938
21939 2011-04-08  Xinliang David Li  <davidxl@google.com>
21940
21941         * final.c (dump_basic_block_info): New function.
21942         (final): Dump basic block.
21943         (final_scan_insn): Remove old dump.
21944
21945 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
21946
21947         PR target/47829
21948         * config.gcc (i386-*-freebsd): Disable unwind table generation for
21949         crtbegin/crtend.
21950
21951 2011-04-08  Michael Matz  <matz@suse.de>
21952
21953         PR middle-end/48389
21954         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
21955         functions.
21956         (rebuild_jump_labels): Call rebuild_jump_labels_1.
21957         * rtl.h (rebuild_jump_labels_chain): Declare.
21958         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
21959         insns inserted on edges.
21960
21961 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
21962
21963         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
21964         * config/arm/arm-arches.def: New.
21965         * config/arm/arm-opts.h: New.
21966         * config/arm/genopt.sh: New.
21967         * config/arm/arm-tables.opt: New (generated).
21968         * config/arm/arm.c (arm_handle_option, arm_target_help,
21969         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
21970         (all_architectures): Get most table contents from arm-arches.def.
21971         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
21972         arm_selected_tune here.
21973         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
21974         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
21975         (march=, mcpu=, mtune=): Use Enum and Var.
21976         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
21977         (arm.o): Update dependencies.
21978
21979 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
21980
21981         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
21982         of header_file.
21983         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
21984         (write_typed_alloc_defns): Likewise.
21985         (main): Calls write_typed_alloc_defns with output_header.
21986
21987 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
21988
21989         PR inline-asm/48435
21990         * ira-color.c (setup_profitable_hard_regs): Add comments.
21991         Don't take prohibited hard regs into account.
21992         (setup_conflict_profitable_regs): Rename to
21993         get_conflict_profitable_regs.
21994         (check_hard_reg_p): Check prohibited hard regs.
21995
21996 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
21997
21998         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
21999         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
22000         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
22001
22002 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22003
22004         PR target/48366
22005         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
22006         move from floating point to shift amount register.
22007         (emit_move_sequence): Remove secondary reload support for floating
22008         point to shift amount amount register copies.
22009         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
22010         amount register copies.
22011         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
22012         register, return false if mode isn't a scalar integer mode.
22013         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
22014
22015 2011-04-08  Richard Guenther  <rguenther@suse.de>
22016
22017         * gimple.c (gimple_call_flags): Remove kludge.
22018
22019 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
22020
22021         * sel-sched.c (sel_region_init): Move call to
22022         sel_setup_region_sched_flags after setup_current_loop_nest.
22023
22024 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
22025
22026         PR rtl-optimization/48272
22027         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
22028         init_insn_reg_pressure_info.  Adjust a caller.
22029         * sched-int.h (init_insn_reg_pressure_info): Declare.
22030         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
22031         when sched-pressure is enabled.
22032
22033 2011-04-08  Richard Guenther  <rguenther@suse.de>
22034
22035         * gimple.c (gimple_set_modified): Do not queue calls to
22036         MODIFIED_NORETURN_CALLS here ...
22037         * tree-ssa-operands.c (update_stmt_operands): ... but here.
22038
22039 2011-04-08  Richard Guenther  <rguenther@suse.de>
22040
22041         PR lto/48467
22042         * toplev.c (lang_dependent_init): Do not open asm_out_file
22043         in WPA mode, nor perform debug machinery initialization.
22044         (finalize): Do not unlink asm_out_file in WPA mode.
22045
22046 2011-04-08  Richard Guenther  <rguenther@suse.de>
22047
22048         * gimple.h (gimple_call_fntype): New function.
22049         (gimple_call_return_type): Use it.
22050         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
22051         * gimple-low.c (gimple_check_call_args): Likewise.
22052         * gimple.c (gimple_call_flags): Likewise.
22053         (gimple_call_arg_flags): Likewise.
22054         (gimple_call_return_flags): Likewise.
22055         * tree-cfg.c (verify_gimple_call): Likewise.
22056         (do_warn_unused_result): Likewise.
22057         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
22058         * value-prof.c (gimple_ic_transform): Fix fndecl check.
22059
22060 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
22061
22062         PR rtl-optimization/48235
22063         * sel-sched.c (code_motion_process_successors): Recompute the last
22064         insn in basic block if control flow changed.
22065         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
22066         Update condition for ilist_remove.
22067
22068 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
22069
22070         PR rtl-optimization/48302
22071         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
22072         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
22073         it to record added preheader blocks.
22074         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
22075         on to sel_add_loop_preheaders.
22076         (sel_region_init): Move call to setup_current_loop_nest after
22077         sel_init_bbs.
22078
22079 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
22080
22081         PR target/48273
22082         * cfgloop.h (loop_has_exit_edges): New helper.
22083         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
22084         non-clonable.
22085         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
22086         that have no exit edges.
22087
22088 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
22089
22090         PR rtl-optimization/48442
22091         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
22092         all callers.  Adjust assert.
22093
22094 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
22095
22096         PR tree-optimization/48377
22097         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
22098         is_packed to true even for types with smaller TYPE_ALIGN than
22099         TYPE_SIZE.
22100
22101 2011-04-08  Richard Guenther  <rguenther@suse.de>
22102
22103         PR bootstrap/48513
22104         * doc/tm.texi: Re-generate.
22105
22106 2011-04-08  Wei Guozhi  <carrot@google.com>
22107
22108         PR target/47855
22109         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
22110         * config/arm/arm.c (arm_attr_length_push_multi): New function.
22111         * config/arm/arm.md (*push_multi): Change the length computation to
22112         call a C function.
22113
22114 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
22115
22116         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
22117         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
22118         * doc/tm.texi: Regenerate.
22119         * system.h (ASM_OUTPUT_BSS): Poison.
22120         * varasm.c (asm_output_bss): Remove function.
22121         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
22122
22123         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
22124         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
22125         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
22126         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
22127         Likewise.
22128         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
22129         Likewise.
22130         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
22131         Likewise.
22132         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
22133
22134 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
22135
22136         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
22137         EnumValue lines.
22138
22139 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
22140
22141         * config/m68k/m68k.c (m68k_handle_option): Don't handle
22142         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
22143         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
22144         OPT_mcpu32.
22145         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
22146         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
22147         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
22148         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
22149         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
22150         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
22151         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
22152         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
22153         options.  Don't map other m68k options manually.  Don't handle
22154         old-style options as canonical.
22155         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
22156         * doc/install.texi (m68k-*-*): Document binutils version requirement.
22157
22158 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
22159
22160         * basic-block.h (force_nonfallthru): Move to...
22161         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
22162         (force_nonfallthru): ...here.
22163         * cfghooks.c (force_nonfallthru): New function.
22164         * cfgrtl.c (force_nonfallthru): Rename into...
22165         (rtl_force_nonfallthru): ...this.
22166         (commit_one_edge_insertion): Do not set AUX field.
22167         (commit_edge_insertions): Do not discover new basic blocks.
22168         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
22169         (cfg_layout_rtl_cfg_hooks): Likewise.
22170         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
22171         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
22172         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
22173
22174 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
22175
22176         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
22177         Remove macros.
22178
22179 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
22180
22181         * config/i386/sse.md: Update copyright year.
22182         (avxcvtvecmode): Remove.
22183         (sse_movhlps): Merge with *avx_movhlps.
22184         (sse_movlhps): Merge with *avx_movlhps.
22185         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
22186         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
22187         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
22188         (sse_loadhps): Merge with *avx_loadhps.
22189         (sse_storelps): Merge with *avx_storelps.
22190         (sse_loadlps): Merge with *avx_loadlps.
22191         (sse_movss): Merge with *avx_movss.
22192         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
22193         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
22194         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
22195         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
22196         (vec_set<mode>_0): Ditto.
22197         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
22198         (sse4_1_insertps): Merge with *avx_insertps.
22199         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
22200         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
22201         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
22202         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
22203         (sse2_storehpd): Merge with *avx_storehpd.
22204         (sse2_loadhpd): Merge with *avx_loadhpd.
22205         (sse2_loadlpd): Merge with *avx_loadlpd.
22206         (sse2_movsd): Merge with *avx_movsd.
22207         (*vec_concatv2df): Merge with *vec_concatv2df.
22208
22209 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
22210
22211         PR debug/48343
22212         * combine.c (combine_instructions): Add last_combined_insn,
22213         update it if insn is after it, pass it to all try_combine calls.
22214         (try_combine): Add last_combined_insn parameter, pass it instead of
22215         i3 to propagate_for_debug.
22216
22217 2011-04-07  Nick Clifton  <nickc@redhat.com>
22218
22219         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
22220         to handle MDR <-> data register transfers.
22221         (movhi_internal): Likewise.
22222
22223 2011-04-07  Alan Modra  <amodra@gmail.com>
22224
22225         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
22226         previous stack info.
22227
22228 2011-04-07  Tom de Vries  <tom@codesourcery.com>
22229
22230         PR target/43920
22231         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
22232         flow_find_cross_jump.  Swap variables to implement backward replacement.
22233         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
22234
22235 2011-04-07  Tom de Vries  <tom@codesourcery.com>
22236
22237         PR target/43920
22238         * cfgcleanup.c (walk_to_nondebug_insn): New function.
22239         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
22240         and bb2.
22241         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
22242         src1 or src2.  Redirect edges to the last basic block.  Update
22243         frequency and count on multiple basic blocks in case of fallthru.
22244
22245 2011-04-07  Tom de Vries  <tom@codesourcery.com>
22246
22247         PR target/43920
22248         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
22249         function.
22250         (old_insns_match_p): Change return type.  Replace return false/true
22251         with return dir_none/dir_both.  Use can_replace_by.
22252         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
22253         direction from dir_p.  Register replacement direction in dir, last_dir
22254         and afterlast_dir.  Handle new return type of old_insns_match_p using
22255         merge_dir.  Return replacement direction in dir_p.
22256         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
22257         return type of old_insns_match_p.
22258         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
22259         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
22260         flow_find_cross_jump.
22261         * basic-block.h (enum replace_direction): New type.
22262         (flow_find_cross_jump): Add parameter to declaration.
22263
22264 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
22265
22266         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
22267         (AVXMODEDCVTPS2DQ): Ditto.
22268         (VEC_FLOAT_MODE): Ditto.
22269         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
22270         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
22271         (<any_logic:code><mode>3): Use VF mode iterator.
22272         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
22273         Use VF mode iterator.
22274         (copysign<mode>3): Use VF mode iterator.
22275         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
22276         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
22277         (*<any_logic:code><MODEF:mode>3): Merge with
22278         *avx_<any_logic:code><MODEF:mode>3.
22279         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
22280         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
22281         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
22282         (avx_cvtdq2ps<avxmodesuffix>): Remove.
22283         (sse2_cvtdq2ps): Use %v modifier.
22284         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
22285         (avx_cvtps2dq<avxmodesuffix>): Remove.
22286         (sse2_cvtps2dq): Use %v modifier.
22287         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
22288         (avx_cvttps2dq<avxmodesuffix>): Remove.
22289         (sse2_cvttps2dq): Use %v modifier.
22290         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
22291         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
22292         (sse2_cvtsd2siq): Fix insn template.
22293         (sse2_cvtsd2siq_2): Ditto.
22294         (sse2_cvttsd2siq): Ditto.
22295         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
22296         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
22297
22298 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
22299
22300         * gcov-io.c: Use GCC Runtime Library Exception.
22301
22302 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
22303
22304         PR debug/48466
22305         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
22306         as base_reg whatever register reg has been eliminated to, instead
22307         of hardcoding STACK_POINTER_REGNUM.
22308
22309 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
22310
22311         * doc/tm.texi.in: Document C target hooks as separate from general
22312         target hooks.
22313         * doc/tm.texi: Regenerate.
22314         * genhooks.c (struct hook_desc): Add docname field.
22315         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
22316         docname field.
22317         (hook_array): Include c-target.def.
22318         (emit_documentation): Use docname field in output.
22319         (emit_init_macros): Take docname argument.  Only emit definitions
22320         for hooks matching docname.
22321         (main): Expect additional arguments in all cases.  Pass argument
22322         to emit_init_macros.
22323         * target.def: Move initial macro definitions and comments to
22324         target-hooks-macros.h.
22325         (gcc_targetcm): Move to c-family/c-target.def.
22326         * target.h (targetcm): Move declaration to c-family/c-target.h.
22327         * targhooks.c (default_handle_c_option): Move to
22328         c-family/c-opts.c.
22329         * targhooks.h (default_handle_c_option): Move declaration to
22330         c-family/c-common.h.
22331         * target-hooks-macros.h: New file.
22332         * config.gcc (target_has_targetcm): Define and use to add to
22333         c_target_objs and cxx_target_objs.
22334         * config/default-c.c: New file.
22335         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
22336         of target.h and target-def.h.
22337         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
22338         (darwin_objc_construct_string, darwin_cfstring_ref_p,
22339         darwin_check_cfstring_format_arg): Make static.
22340         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
22341         TARGET_STRING_OBJECT_REF_TYPE_P,
22342         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
22343         * config/darwin-protos.h (darwin_objc_construct_string,
22344         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
22345         declare.
22346         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
22347         TARGET_STRING_OBJECT_REF_TYPE_P,
22348         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
22349         * config/t-darwin (darwin-c.o): Update dependencies.
22350         * system.h (TARGET_HAS_TARGETCM): Poison.
22351         * Makefile.in (TARGET_H): Update.
22352         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
22353         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
22354         (default-c.o): New target.
22355         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
22356         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
22357         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
22358         c-target.def.
22359         (build/genhooks.o): Update dependencies.
22360
22361 2011-04-06  Richard Guenther  <rguenther@suse.de>
22362
22363         * ipa-inline.c (enum inlining_mode): Remove.
22364         (cgraph_flatten): Use some other token.
22365         (cgraph_edge_early_inlinable_p): New function, split out from ...
22366         (cgraph_perform_always_inlining): New function, split out from ...
22367         (cgraph_decide_inlining_incrementally): ... here.
22368         (cgraph_mark_inline_edge): Adjust.
22369         (cgraph_early_inlining): Re-structure.
22370         (pass_early_inline): Require SSA form.
22371
22372 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
22373             Julian Brown  <julian@codesourcery.com>
22374             Mark Shinwell  <shinwell@codesourcery.com>
22375
22376         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
22377         LO_REGS only for Thumb-1.
22378         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
22379         be used in short instructions when optimising for size on Thumb-2.
22380
22381 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
22382
22383         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
22384         associated with user returns to be preserved.
22385
22386 2011-04-06  Tristan Gingold  <gingold@adacore.com>
22387
22388         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
22389         symbol_queue_size, DBXOUT_DECR_NESTING,
22390         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
22391         if XCOFF_DEBUGGING_INFO.
22392
22393 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
22394
22395         * config/i386/i386.md (attribute isa): New.
22396         (attribute enabled): New.
22397         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
22398         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
22399         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
22400         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
22401         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
22402         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
22403         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
22404         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
22405
22406         * config/i386/sse.md (VF): New mode iterator.
22407         (VF1): Ditto.
22408         (VF2): Ditto.
22409         (VF_128): Ditto.
22410         (SSEMODEF4): Remove.
22411         (attribute sse): Handle V8SF and V4DF modes.
22412         (<absneg:code><mode>2): Use VF mode iterator.
22413         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
22414         mode iterator.
22415         (<plusminus_insn><mode>3): Use VF mode iterator.
22416         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
22417         Use VF mode iterator.
22418         (<sse>_vm<plusminus_insn><mode>3): Merge with
22419         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
22420         (mul<mode>3): Use VF mode iterator.
22421         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
22422         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
22423         mode iterator.
22424         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
22425         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
22426         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
22427         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
22428         mode iterator.
22429         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
22430         Use VF1 mode iterator.
22431         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
22432         (sqrt<VF2:mode>2): New expander.
22433         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
22434         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
22435         and sqrtv2df2.  Use VF mode iterator.
22436         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
22437         mode iterator.
22438         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
22439         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
22440         Use VF1 mode iterator.
22441         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
22442         (<smaxmin:code><mode>3): Use VF mode iterator.
22443         (*<smaxmin:code><mode>3_finite): Merge with
22444         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
22445         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
22446         (<sse>_vm<smaxmin:code><mode>2): Merge with
22447         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
22448         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
22449         mode iterator.
22450         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
22451         mode iterator.
22452         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
22453         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
22454         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
22455         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
22456         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
22457         VF mode iterator.
22458         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
22459         Use VF_128 mode iterator.
22460         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
22461         mode iterator.
22462         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
22463         VF_128 mode iterator.
22464         (vcond<mode>): Use VF mode iterator.
22465         * config/i386/predicates.md (sse_comparison_operator): Merge with
22466         avx_comparison_float_operator.  Do not declare as special_predicate.
22467         * config/i386/i386.c (struct builtin_description): Update for renamed
22468         compare patterns.
22469         (ix86_expand_args_builtin): Ditto.
22470         (ix86_expand_sse_compare_mask): Ditto.
22471
22472 2011-04-06  Richard Guenther  <rguenther@suse.de>
22473
22474         * tree-inline.c (estimate_num_insns): For calls simply account
22475         for all passed arguments and a used return value.
22476
22477 2011-04-06  Richard Guenther  <rguenther@suse.de>
22478
22479         PR tree-optimization/47663
22480         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
22481         call_stmt_time fields.
22482         (cgraph_edge_inlinable_p): Declare.
22483         (cgraph_edge_recursive_p): New inline function.
22484         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
22485         (cgraph_clone_edge): Copy it.
22486         * ipa-inline.c (cgraph_estimate_edge_time): New function.
22487         Account for call stmt time.
22488         (cgraph_estimate_time_after_inlining): Take edge argument.
22489         (cgraph_estimate_edge_growth): Account call stmt size.
22490         (cgraph_estimate_size_after_inlining): Take edge argument.
22491         (cgraph_mark_inline_edge): Adjust.
22492         (cgraph_check_inline_limits): Likewise.
22493         (cgraph_recursive_inlining_p): Remove.
22494         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
22495         (cgraph_decide_recursive_inlining): Take edge argument and
22496         adjust.
22497         (cgraph_decide_inlining_of_small_functions): Do not avoid
22498         diags for recursive inlining here.
22499         (cgraph_flatten): Adjust.
22500         (cgraph_decide_inlining_incrementally): Likewise.
22501         (estimate_function_body_sizes): Remove call cost handling.
22502         (compute_inline_parameters): Initialize caller edge call costs.
22503         (cgraph_estimate_edge_growth): New function.
22504         (cgraph_estimate_growth): Use it.
22505         (cgraph_edge_badness): Likewise.
22506         (cgraph_check_inline_limits): Take an edge argument.
22507         (cgraph_decide_inlining_of_small_functions): Adjust.
22508         (cgraph_decide_inlining): Likewise.
22509         * tree-inline.c (estimate_num_insns): Only account for call
22510         return value if it is used.
22511         (expand_call_inline): Avoid diagnostics on recursive inline
22512         functions here.
22513         * lto-cgraph.c (lto_output_edge): Output edge call costs.
22514         (input_edge): Input edge call costs.
22515
22516 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22517
22518         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
22519
22520 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
22521
22522         * doc/invoke.texi (Spec Files): Fix typo.
22523
22524 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
22525
22526         * profile.c (branch_prob): Move declaration of local variable.  Remove
22527         obsolete ??? comment.  Expand the location explicitly instead of using
22528         the LOCATION_FILE and LOCATION_LINE macros.
22529
22530 2011-04-06  Wei Guozhi  <carrot@google.com>
22531
22532         PR target/47855
22533         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
22534         (arm_cond_branch): Likewise.
22535         (arm_cond_branch_reversed): Likewise.
22536         (arm_jump): Likewise.
22537         (push_multi): Likewise.
22538         * config/arm/constraints.md (Py): New constraint.
22539
22540 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
22541
22542         PR bootstrap/48471
22543         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
22544         Move these...
22545         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
22546         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
22547         #ifdef DBX_DEBUGGING_INFO.
22548
22549 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
22550
22551         PR bootstrap/48403
22552         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
22553         if old and new states differ.
22554
22555 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
22556
22557         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
22558         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
22559         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
22560         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
22561         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
22562         mcfv4e): Use Alias.
22563         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
22564         ColdFire options to -mcpu= options.
22565
22566 2011-04-05  Jeff Law  <law@redhat.com>
22567
22568         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
22569         check if BB is a successor of LOOP->header and return
22570         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
22571
22572 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
22573
22574         * cprop.c (struct reg_use): Remove.
22575         (reg_use_table): Make an array of RTX.
22576         (find_used_regs, constprop_register, local_cprop_pass,
22577         bypass_block): Simplify users of reg_use_table.
22578         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
22579         on one of the uses found by find_used_regs.
22580
22581 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
22582
22583         PR bootstrap/48469
22584         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
22585         declaration.
22586
22587 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
22588
22589         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
22590         as an rtx.
22591         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
22592
22593 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
22594
22595         PR middle-end/48441
22596         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
22597
22598 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
22599
22600         * combine.c: Include obstack.h.
22601         (struct insn_link): Define.
22602         (uid_log_links): Adjust type.
22603         (FOR_EACH_LOG_LINK): New macro.
22604         (insn_link_obstack): Declare.
22605         (alloc_insn_link): Define.
22606         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
22607         type of link variables.
22608         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
22609         (try_combine, record_promoted_values, distribute_notes): Likewise.
22610         (distribute_links): Likewise.  Tweak prototype.
22611         (clear_log_links): Delete.
22612         (adjust_for_new_dest): Call alloc_insn_link.
22613         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
22614
22615 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
22616
22617         * gcse.c (modify_mem_list): Convert to an array of VECs.
22618         (canon_modify_mem_list, compute_transp): Tweak formatting.
22619         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
22620         (load_killed_in_block_p): Likewise.
22621         (record_last_mem_set_info): Likewise.
22622         (clear_modify_mem_tables): Likewise.
22623
22624 2011-04-05  Tom de Vries  <tom@codesourcery.com>
22625
22626         PR middle-end/48461
22627         * function.c (emit_use_return_register_into_block): Only define if
22628         HAVE_return.
22629
22630 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
22631
22632         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
22633
22634 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
22635
22636         * config/rx/rx-opts.h: New.
22637         * config/rx/rx.c (rx_cpu_type): Remove.
22638         (rx_handle_option): Don't assert that global structures are in
22639         use.  Access variables via opts pointer.  Defer most handling of
22640         OPT_mint_register_.  Use error_at.
22641         (rx_option_override): Handle deferred OPT_mint_register_ here.
22642         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
22643         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
22644         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
22645         (rx_cpu_types): New Enum and EnumValue entries.
22646         (mint-register=): Use Defer and use Var accordingly.
22647
22648 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
22649
22650         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
22651         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
22652         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
22653         Move these...
22654         (debug_free_queue, debug_nesting, symbol_queue_index):
22655         ...and these...
22656         * dbxout.c: ...to here.  Make static.
22657
22658 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
22659
22660         * gcse.c (modify_pair): Define.  Define a VEC of it.
22661         (canon_modify_mem_list): Convert to an array of VECs.
22662         (free_insn_expr_list_list): Delete.
22663         (clear_modify_mem_tables): Call VEC_free instead.
22664         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
22665         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
22666         (canon_list_insert, compute_transp): Likewise.
22667
22668 2011-04-05  Tom de Vries  <tom@codesourcery.com>
22669
22670         PR target/43920
22671         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
22672         for size.
22673
22674 2011-04-05  Tom de Vries  <tom@codesourcery.com>
22675
22676         PR target/43920
22677         * function.c (emit_use_return_register_into_block): New function.
22678         (thread_prologue_and_epilogue_insns): Use
22679         emit_use_return_register_into_block.
22680
22681 2011-04-05  Tom de Vries  <tom@codesourcery.com>
22682
22683         PR target/43920
22684         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
22685         insn.
22686
22687 2011-04-05  Tom de Vries  <tom@codesourcery.com>
22688
22689         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
22690
22691 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
22692
22693         * config/arm/arm.md (define_constants for unspec): Replace with
22694         define_c_enum.
22695         (define_constants for unspecv): Replace with define_c_enum.
22696         * config/arm/neon.md (define_constants for unspec): Replace with
22697         define_c_enum.
22698
22699 2011-04-04  Richard Henderson  <rth@redhat.com>
22700
22701         PR bootstrap/48400
22702         * dwarf2out.c (output_line_info): Always emit line info from
22703         at least one section.
22704         (dwarf2out_init): Create text_section_line_info here ...
22705         (set_cur_line_info_table): ... not here.
22706
22707 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
22708
22709         PR target/48380
22710         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
22711         not called.
22712
22713         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
22714
22715 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
22716
22717         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
22718         (expr_equiv_p): Remove.
22719         (insert_set_in_table): Look at <dest, src> pair instead of expr.
22720         (hash_scan_set): Update call to insert_set_in_table.
22721         (dump_hash_table): Dump <dest, src> pair.
22722         (lookup_set): Simplify.  Lookup <dest, src> pair.
22723         (compute_transp): Remove, fold heavily simplified code into...
22724         (compute_local_properties): ...here.  Expect COMP and TRANSP
22725         unconditionally.
22726         (find_avail_set): Take set directly from struct expr.
22727         (find_bypass-set): Likewise.
22728         (bypass_block): Likewise.
22729         (cprop_insn): Likewise.  Remove redundant INSN_P test.
22730
22731         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
22732         checks on form of COND from find_implicit_sets to here.
22733         (find_implicit_sets): Cleanup control flow. Split critical edges
22734         if it exposes implicit sets.  Allocate/resize implicit_sets as
22735         necessary.
22736         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
22737         changed something.  Run df_analyze after find_implicit_sets if any
22738         edges were split.  Do not allocate implicit_sets here.
22739
22740         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
22741         (gcse_obstack): Renamed to cprop_obstack.
22742         (GNEW, GNEWVEC, GNEWVAR): Remove.
22743         (gmalloc): Remove.
22744         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
22745         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
22746         (gcse_alloc): Likewise, and rename to cprop_alloc.
22747         (alloc_gcse_men, free_gcse_mem): Remove.
22748         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
22749         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
22750         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
22751
22752         * cprop.c (oprs_not_set_p): Remove.
22753         (mark_set, mark_clobber): Remove.
22754         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
22755         (reg_not_set_p): New function.
22756         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
22757         (cprop_insn): Likewise.
22758         (cprop_jump): Use FOR_EACH_EDGE.
22759
22760 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
22761
22762         PR bootstrap/48403
22763         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
22764         (rank_for_schedule): Use scheduled_insns vector instead of
22765         last_scheduled_insn.
22766         (ok_for_early_queue_removal): Likewise.
22767         (queue_to_ready): Search forward in nonscheduled_insns_begin if
22768         we have a dbg_cnt.
22769         (choose_ready): Likewise.
22770         (commit_schedule): Use VEC_iterate.
22771         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
22772         a dbg_cnt, use it and ensure the first insn is in the ready list.
22773         (haifa_sched_init): Allocate scheduled_insns.
22774         (sched_extend_ready_list): Don't allocate it; reserve space.
22775         (haifa_sched_finish): Free it.
22776
22777 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
22778
22779         * optc-gen.awk: Always remove type from Variable entry before
22780         recording in var_seen.
22781
22782 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
22783
22784         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
22785         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
22786         call to tidy_fallthru_edges.
22787
22788 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
22789
22790         * doc/options.texi (ToLower): Document.
22791         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
22792         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
22793         * opts.h (cl_option): Add cl_tolower field.
22794         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
22795         arguments with lowercase strings.
22796         * config/rx/rx.opt (mcpu=): Add ToLower.
22797         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
22798         argument.
22799
22800 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
22801
22802         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
22803
22804 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
22805
22806         * config/vax/vax.c: Include reload.h.
22807
22808 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
22809
22810         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
22811         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
22812         (sparc_preferred_reload_class): New function.
22813
22814 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
22815
22816         PR debug/48401
22817         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
22818         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
22819
22820 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
22821
22822         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
22823         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
22824
22825 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
22826
22827         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
22828         (ASM_OUTPUT_ALIGNED_BSS): Define.
22829
22830 2011-04-03  Michael Matz  <matz@suse.de>
22831
22832         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
22833         and next_slot members.
22834         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
22835         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
22836         (lto_streamer_cache_append): Declare.
22837         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
22838         unsigned index, remove offset parameter, ensure that we append
22839         or update existing entries.
22840         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
22841         parameter, update next_slot for append.
22842         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
22843         parameter.
22844         (lto_streamer_cache_insert_at): Likewise.
22845         (lto_streamer_cache_append): New function.
22846         (lto_streamer_cache_lookup): Use unsigned index.
22847         (lto_streamer_cache_get): Likewise.
22848         (lto_record_common_node): Don't test tree_node_can_be_shared.
22849         (preload_common_node): Adjust call to lto_streamer_cache_insert.
22850         (lto_streamer_cache_delete): Don't free offsets member.
22851         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
22852         (lto_output_string_with_length): Use lto_output_data_stream.
22853         (lto_output_tree_header): Remove ix parameter, don't write it.
22854         (lto_output_builtin_tree): Likewise.
22855         (lto_write_tree): Adjust callers to above, don't track and write
22856         offset, write unsigned index.
22857         (output_unreferenced_globals): Don't emit all global vars.
22858         (write_global_references): Use unsigned indices.
22859         (lto_output_decl_state_refs): Likewise.
22860         (write_symbol): Likewise.
22861         * lto-streamer-in.c (lto_input_chain): Move earlier.
22862         (input_function): Use unsigned index.
22863         (input_alias_pairs): Don't read and then ignore all global vars.
22864         (lto_materialize_tree): Remove ix_p parameter, don't read index,
22865         don't pass it back, use lto_streamer_cache_append.
22866         (lto_register_var_decl_in_symtab): Use unsigned index.
22867         (lto_register_function_decl_in_symtab): Likewise.
22868         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
22869         index.
22870         (lto_get_builtin_tree): Don't read index, use
22871         lto_streamer_cache_append.
22872         (lto_read_tree): Adjust call to lto_materialize_tree.
22873
22874         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
22875         don't use function calls in arguments to MIN.
22876
22877         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
22878         twice.
22879
22880         * gimple.c (gimple_type_leader_entry): Mark deletable.
22881
22882 2011-04-03  Alan Modra  <amodra@gmail.com>
22883
22884         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
22885
22886 2011-04-03  Michael Matz  <matz@suse.de>
22887
22888         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
22889         an integer.
22890         * tree.h (tree_decl_non_common.vindex): Adjust comment.
22891
22892 2011-04-03  Michael Matz  <matz@suse.de>
22893
22894         * cgraphbuild.c (record_reference): Canonicalize constructor values.
22895         * gimple-fold.c (canonicalize_constructor_val): Accept being called
22896         without function context.
22897         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
22898         current_function_decl and cfun.
22899
22900 2011-04-03  Michael Matz  <matz@suse.de>
22901
22902         * tree.c (decl_init_priority_insert): Don't create entry for
22903         default priority.
22904         (decl_fini_priority_insert): Ditto.
22905         (fields_compatible_p, find_compatible_field): Remove.
22906         * tree.h (fields_compatible_p, find_compatible_field): Remove.
22907         * gimple.c (gimple_compare_field_offset): Adjust block comment.
22908
22909 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
22910
22911         * combine.c (try_combine): Remove useless local variable.
22912
22913 2011-04-03  Richard Guenther  <rguenther@suse.de>
22914             Ira Rosen  <ira.rosen@linaro.org>
22915
22916         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
22917         non-variable offsets and compare the remaining bases of the two
22918         accesses instead of looking for exact same data-ref.
22919
22920 2011-04-02  Kai Tietz  <ktietz@redhat.com>
22921
22922         PR target/48416
22923         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
22924
22925         * i386.c (ix86_is_msabi_thiscall): New helper function.
22926         (ix86_is_type_thiscall): New helper function.
22927         (ix86_comp_type_attributes): Handle thiscall for method-functions
22928         special.
22929         (init_cumulative_args): Likewise.
22930         (find_drap_reg): Likewise.
22931         (ix86_static_chain): Likewise.
22932         (x86_this_parameter): Likewise.
22933         (x86_output_mi_thunk): Likewise.
22934
22935 2011-04-01  Olivier Hainque  <hainque@adacore.com>
22936             Nicolas Setton  <setton@adacore.com>
22937             Eric Botcazou  <ebotcazou@adacore.com>
22938
22939         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
22940         (add_gnat_descriptive_type_attribute): New function.
22941         (gen_array_type_die): Call it.
22942         (gen_enumeration_type_die): Likewise.
22943         (gen_struct_or_union_type_die): Likewise.
22944         (modified_type_die): Likewise.
22945         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
22946         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
22947         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
22948
22949 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
22950
22951         PR bootstrap/48148
22952         * dwarf2out.c (resolve_addr): Don't call force_decl_die
22953         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
22954
22955         Revert:
22956         2011-03-17  Richard Guenther  <rguenther@suse.de>
22957
22958         PR bootstrap/48148
22959         * lto-cgraph.c (input_overwrite_node): Clear the abstract
22960         origin for decls in other ltrans units.
22961         (input_varpool_node): Likewise.
22962
22963 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
22964
22965         PR middle-end/48335
22966         * expr.c (expand_assignment): Handle all possibilities
22967         if TO_RTX is CONCAT.
22968         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
22969         (store_split_bit_field): If SUBREG_REG (op0) or
22970         op0 itself has smaller mode than word, return it
22971         for offset 0 and const0_rtx for out-of-bounds stores.
22972         If word is const0_rtx, skip it.
22973
22974 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
22975
22976         * config/h8300/h8300.c (print_operand_address): Rename to...
22977         (h8300_print_operand_address): ...this. Make static. Adjust comments.
22978         Call h8300_print_operand and h8300_print_operand_address instead of
22979         print_operand and print_operand_address. Declare.
22980         (print_operand): Renake to...
22981         (h8300_print_operand): ...this. Make static. Adjust comments.
22982         Call h8300_print_operand instead of print_operand. Declare.
22983         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
22984         (h8300_register_move_cost): Likewise.
22985         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
22986         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
22987         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
22988         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
22989         * config/h8300/h8300-protos.h (print_operand): Delete.
22990         (print_operand_address): Delete.
22991
22992 2011-04-01  Richard Henderson  <rth@redhat.com>
22993
22994         PR 48400
22995         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
22996         in strict mode before dwarf4.  Re-order tests to early out
22997         before switching sections.
22998
22999 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
23000
23001         * config/h8300/constraints.md: New file.
23002         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
23003         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
23004         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
23005         * config/h8300/predicates.md (bit_operand): Likewise.
23006         (incdec_operand): Use satisfies_constraint_M and
23007         satisfies_constraint_O.  Don't use C code block.
23008         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
23009         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
23010         (compute_mov_length): Use satisfies_constraint_G.
23011         (fix_bit_operand): Use satisfies_constraint_U.
23012         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
23013         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
23014         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
23015         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
23016         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
23017         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
23018         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
23019         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
23020         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
23021         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
23022         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
23023         (EXTRA_MEMORY_CONSTRAINT): Delete.
23024
23025 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
23026             Michael Meissner  <meissner@linux.vnet.ibm.com>
23027
23028         PR target/48262
23029         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
23030         operands, as per the specifications.
23031
23032         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
23033         (vec_extract_evenv4sf): Ditto.
23034         (vec_extract_evenv8hi): Ditto.
23035         (vec_extract_evenv16qi): Ditto.
23036         (vec_extract_oddv4si): Ditto.
23037
23038 2011-03-31  Mark Wielaard  <mjw@redhat.com>
23039
23040         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
23041         high_pc attribute if the CU has no associated code. Only output
23042         DW_AT_entry_pc for CU if not generating strict dwarf and
23043         dwarf_version < 4.
23044
23045 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
23046
23047         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
23048         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
23049         out of ...
23050         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
23051         * final.c (final_start_function): Call the new function rather
23052         than using a NULL argument for dwarf2out_frame_debug.
23053
23054         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
23055         that contains the prologue.
23056
23057         * haifa-sched.c (queue_insn): New arg REASON.  All callers
23058         changed.  Print it in debugging output.
23059
23060         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
23061
23062         * sched-ebb.c (begin_schedule_ready): Remove second argument.
23063         Split most of the code into...
23064         (begin_move_insn): ... here.  New function.
23065         (ebb_sched_info): Add a pointer to it.
23066         * haifa-sched.c (scheduled_insns): New static variable.
23067         (sched_extend_ready_list): Allocate it.
23068         (schedule_block): Use it to record the order of scheduled insns.
23069         Perform RTL changes to move insns only after all scheduling
23070         decisions have been made.
23071         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
23072         begin_move_insn field.
23073         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
23074         * sched-int.h (struct haifa_sched_info): Remove second argument
23075         from begin_schedule_ready hook.  Add new member begin_move_insn.
23076         * sched-rgn.c (begin_schedule_ready): Remove second argument.
23077         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
23078
23079         * haifa-sched.c (prune_ready_list): New function, broken out of
23080         schedule_block.
23081         (schedule_block): Use it.
23082
23083 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
23084
23085         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
23086
23087 2011-04-01  Kai Tietz  <ktietz@redhat.com>
23088
23089         * config.gcc (*-*-mingw*): Allow as option the
23090         posix threading model.
23091         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
23092         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
23093         definition.
23094         (CPP_SPEC): Add pthread/no-pthread handling.
23095         (LIB_SPEC): Likewise.
23096         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
23097         (LIB_SPEC): Likewise.
23098         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
23099         flag to pass -pthread option for shared libgcc build.
23100         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
23101         for shared libgcc build.
23102         * config/i386/t-mingw-pthread: New file.
23103         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
23104         New define to enable use of library pthread by default.
23105         * config/i386/mingw.opt (pthread): New driver option.
23106         (no-pthread): New driver option.
23107         * config/i386/cygming.opt: Make sure trailing empty line is retained.
23108         * config/i386/mingw-w64.opt: Likewise.
23109
23110 2011-04-01  Gary Funck  <gary@intrepid.com>
23111
23112         * c-decl.c (grokdeclarator): Fix formatting.
23113
23114 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
23115
23116         * expr.c (emit_block_move_via_movmem): Use n_generator_args
23117         instead of n_operands.
23118         (set_storage_via_setmem): Likewise.
23119         * optabs.c (maybe_gen_insn): Likewise.
23120         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
23121         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
23122         (mips_expand_builtin_direct): Likewise.
23123         * config/spu/spu.c (expand_builtin_args): Likewise.
23124
23125 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
23126
23127         * recog.h (insn_data_d): Add n_generator_args.
23128         * genoutput.c (data): Likewise.
23129         (output_insn_data): Print it.
23130         (max_opno, num_dups): Delete.
23131         (scan_operands): Just fill in "d->operand[...]".
23132         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
23133
23134 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
23135
23136         * gensupport.h (pattern_stats): New structure.
23137         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
23138         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
23139         (max_operand_1, max_operand_vec): Delete.
23140         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
23141
23142 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
23143
23144         * emit-rtl.c (emit_pattern_after_setloc): New function.
23145         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
23146         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
23147         (emit_pattern_after): New function.
23148         (emit_insn_after, emit_jump_insn_after): Call it.
23149         (emit_call_insn_after, emit_debug_insn_after): Likewise.
23150         (emit_pattern_before_setloc): New function.
23151         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
23152         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
23153         Likewise.
23154         (emit_pattern_before): New function.
23155         (emit_insn_before, emit_jump_insn_before): Call it.
23156         (emit_call_insn_before, emit_debug_insn_before): Likewise.
23157
23158 2011-03-31  Richard Henderson  <rth@redhat.com>
23159
23160         * dwarf2out.c (dw_separate_line_info_ref): Remove.
23161         (dw_separate_line_info_entry): Remove.
23162         (enum dw_line_info_opcode): New.
23163         (dw_line_info_entry): Use it.
23164         (dw_line_info_table, dw_line_info_table_p): New.
23165         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
23166         (line_info_table, line_info_label_num): Remove.
23167         (line_info_table_in_use): Remove.
23168         (separate_line_info_table): Remove.
23169         (separate_line_info_table_allocated): Remove.
23170         (separate_line_info_table_in_use): Remove.
23171         (LINE_INFO_TABLE_INCREMENT): Remove.
23172         (line_info_label_num): New.
23173         (cur_line_info_table): New.
23174         (text_section_line_info, cold_text_section_line_info): New.
23175         (separate_line_info): New.
23176         (SEPARATE_LINE_CODE_LABEL): Remove.
23177         (print_dwarf_line_table): Remove.
23178         (debug_dwarf): Don't dump it.
23179         (output_one_line_info_table): New.
23180         (output_line_info): Use it.
23181         (new_line_info_table): New.
23182         (set_cur_line_info_table): New.
23183         (dwarf2out_switch_text_section): Use it.
23184         (dwarf2out_begin_function): Likewise.
23185         (push_dw_line_info_entry): New.
23186         (dwarf2out_source_line): Rewrite for new line info tables.
23187         (dwarf2out_init): Remove dead initailizations.
23188
23189 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
23190
23191         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
23192         various flags.
23193         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
23194         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
23195         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
23196         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
23197         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
23198         * opt-functions.awk (flag_init, switch_bit_fields): New.
23199         (switch_flags): Don't handle flags moved to bit-fields.  Don't
23200         generate CL_MISSING_OK or CL_SAVE.
23201         * optc-gen.awk: Update to generate bit-field output as well as
23202         flags field.
23203         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
23204         bit-field instead of CL_REJECT_DRIVER flag.
23205         * opts-common.c (generate_canonical_option,
23206         decode_cmdline_option): Use bit-fields instead of CL_* flags.
23207         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
23208         instead of CL_REJECT_NEGATIVE flag.
23209         * toplev.c (print_switch_values): Use cl_report bit-field instead
23210         of CL_REPORT flag.
23211
23212 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
23213
23214         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
23215         a zero minimum index only if it is redundant.
23216
23217 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
23218
23219         PR rtl-optimization/48381
23220         * ira-color.c (assign_hard_reg): Use hard reg set intersection
23221         instead of ira_class_hard_reg_index for calculating conflicting
23222         hard registers.
23223
23224 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
23225
23226         * cprop.c: Clean up hash table building.
23227         (reg_avail_info): Remove.
23228         (oprs_available_p): Remove.
23229         (record_last_reg_set_info): Remove.
23230         (record_last_set_info): Remove.
23231         (reg_available_p): New function.
23232         (gcse_constant_p): Do not treat unfolded conditions as constants.
23233         (make_set_regs_unavailable): New function.
23234         (hash_scan_set): Simplify with new reg_available_p.
23235         (compute_hash_table_work): Traverse insns stream only once.
23236         Do not compute reg_avail_info. Traverse insns in reverse order.
23237         Record implicit sets after recording explicit sets from the block.
23238
23239 2011-03-31  Michael Matz  <matz@suse.de>
23240
23241         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
23242
23243 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
23244
23245         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
23246         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
23247         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
23248         (h8300_mode_dependent_address_p): New function.
23249         (h8300_get_index): Make static.
23250
23251 2011-03-31  Jeff Law  <law@redhat.com>
23252
23253         * reload1.c (elimination_effects): Fix typo in recent change.
23254
23255         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
23256         typo potentially leading to null pointer dereference.
23257
23258         * caller-save.c (new_saved_hard_reg): Eliminate return value.
23259         (setup_save_areas): Corresponding changes to avoid useless
23260         assignments.
23261
23262         * jump.c (reversed_comparison_code_parts): Avoid successive return
23263         statements when REVERSE_CONDITION is defined.
23264
23265         * expr.c (expand_assignment): Avoid useless assignments.
23266         (expand_expr_real_1): Likewise.
23267         (expand_expr_real_2): Avoid useless statements.
23268
23269         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
23270
23271         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
23272
23273         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
23274         statements.
23275
23276         * stmt.c (expand_expr_stmt): Avoid useless assignment.
23277
23278 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
23279
23280         PR target/47109
23281         * doc/tm.texi.in (TARGET_VERSION): Remove.
23282         * doc/tm.texi: Regenerate.
23283         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
23284         * collect2.c (main): Don't use TARGET_VERSION.
23285         * mips-tdump.c (main): Don't use TARGET_VERSION.
23286         * mips-tfile.c (main): Don't use TARGET_VERSION.
23287         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
23288         * config/rs6000/vxworksae.h: Remove.
23289         * config/alpha/alpha.h (TARGET_VERSION): Remove.
23290         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
23291         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
23292         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
23293         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
23294         * config/arm/arm.h (TARGET_VERSION): Remove.
23295         * config/arm/coff.h (TARGET_VERSION): Remove.
23296         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
23297         * config/arm/elf.h (TARGET_VERSION): Remove.
23298         * config/arm/freebsd.h (TARGET_VERSION): Remove.
23299         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
23300         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
23301         * config/arm/pe.h (TARGET_VERSION): Remove.
23302         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
23303         * config/arm/semi.h (TARGET_VERSION): Remove.
23304         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
23305         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
23306         * config/arm/vxworks.h (TARGET_VERSION): Remove.
23307         * config/avr/avr.h (TARGET_VERSION): Remove.
23308         * config/bfin/bfin.h (TARGET_VERSION): Remove.
23309         * config/fr30/fr30.h (TARGET_VERSION): Remove.
23310         * config/frv/frv.h (TARGET_VERSION): Remove.
23311         * config/h8300/h8300.h (TARGET_VERSION): Remove.
23312         * config/i386/cygwin.h (TARGET_VERSION): Remove.
23313         * config/i386/darwin.h (TARGET_VERSION): Remove.
23314         * config/i386/darwin64.h (TARGET_VERSION): Remove.
23315         * config/i386/djgpp.h (TARGET_VERSION): Remove.
23316         * config/i386/freebsd.h (TARGET_VERSION): Remove.
23317         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
23318         * config/i386/gnu.h (TARGET_VERSION): Remove.
23319         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
23320         * config/i386/i386elf.h (TARGET_VERSION): Remove.
23321         * config/i386/linux.h (TARGET_VERSION): Remove.
23322         * config/i386/linux64.h (TARGET_VERSION): Remove.
23323         * config/i386/lynx.h (TARGET_VERSION): Remove.
23324         * config/i386/mingw32.h (TARGET_VERSION): Remove.
23325         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
23326         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
23327         * config/i386/netware.h (TARGET_VERSION): Remove.
23328         * config/i386/nto.h (TARGET_VERSION): Remove.
23329         * config/i386/openbsd.h (TARGET_VERSION): Remove.
23330         * config/i386/vxworks.h (TARGET_VERSION): Remove.
23331         * config/ia64/elf.h (TARGET_VERSION): Remove.
23332         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
23333         * config/ia64/hpux.h (TARGET_VERSION): Remove.
23334         * config/ia64/linux.h (TARGET_VERSION): Remove.
23335         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
23336         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
23337         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
23338         * config/lm32/lm32.h (TARGET_VERSION): Remove.
23339         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
23340         * config/m32c/m32c.h (TARGET_VERSION): Remove.
23341         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
23342         * config/m32r/m32r.h (TARGET_VERSION): Remove.
23343         * config/m68k/linux.h (TARGET_VERSION): Remove.
23344         * config/m68k/m68k.h (TARGET_VERSION): Remove.
23345         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
23346         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
23347         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
23348         * config/mep/mep.h (TARGET_VERSION): Remove.
23349         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
23350         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
23351         * config/mips/iris6.h (MACHINE_TYPE): Remove.
23352         * config/mips/linux.h (TARGET_VERSION): Remove.
23353         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
23354         * config/mips/vxworks.h (TARGET_VERSION): Remove.
23355         * config/mmix/mmix.h (TARGET_VERSION): Remove.
23356         * config/mn10300/linux.h (TARGET_VERSION): Remove.
23357         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
23358         * config/pa/pa.h (TARGET_VERSION): Remove.
23359         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
23360         * config/picochip/picochip.h (TARGET_VERSION): Remove.
23361         * config/rs6000/aix.h (TARGET_VERSION): Remove.
23362         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
23363         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
23364         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
23365         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
23366         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
23367         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
23368         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
23369         * config/rs6000/linux.h (TARGET_VERSION): Remove.
23370         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
23371         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
23372         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
23373         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
23374         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
23375         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
23376         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
23377         * config/s390/linux.h (TARGET_VERSION): Remove.
23378         * config/s390/s390.h (TARGET_VERSION): Remove.
23379         * config/s390/tpf.h (TARGET_VERSION): Remove.
23380         * config/score/score.h (TARGET_VERSION): Remove.
23381         * config/sh/linux.h (TARGET_VERSION): Remove.
23382         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
23383         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
23384         * config/sh/sh.h (TARGET_VERSION): Remove.
23385         * config/sh/sh64.h (TARGET_VERSION): Remove.
23386         * config/sh/superh.h (TARGET_VERSION): Remove.
23387         * config/sh/vxworks.h (TARGET_VERSION): Remove.
23388         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
23389         * config/sparc/linux.h (TARGET_VERSION): Remove.
23390         * config/sparc/linux64.h (TARGET_VERSION): Remove.
23391         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
23392         TARGET_NAME32, TARGET_NAME): Remove.
23393         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
23394         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
23395         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
23396         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
23397         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
23398         * config/spu/spu.h (TARGET_VERSION): Remove.
23399         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
23400         * config/v850/v850.h (TARGET_VERSION): Remove.
23401         * config/vax/linux.h (TARGET_VERSION): Remove.
23402         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
23403         * config/xtensa/elf.h (TARGET_VERSION): Remove.
23404         * config/xtensa/linux.h (TARGET_VERSION): Remove.
23405
23406 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
23407
23408         PR target/48142
23409         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
23410         frame-related from frame-unrelated adjustments to the stack pointer.
23411
23412 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
23413
23414         * common.opt (fdebug-types-section): Move earlier.
23415         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
23416
23417 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
23418
23419         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
23420         var.
23421
23422 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
23423
23424         * tree.h (CASE_CHAIN): Define.
23425         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
23426         (gimple_redirect_edge_and_branch): Likewise.
23427
23428 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
23429
23430         PR middle-end/48367
23431         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
23432         calculation.
23433
23434 2011-03-30  Jeff Law  <law@redhat.com>
23435
23436         * PR bootstrap/48371
23437         * reload1.c (reload): Fix botch in last change.
23438
23439         * reload.h (struct reload): Fix typo introduced in last change.
23440
23441 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
23442
23443         * config/arm/arm.opt (mhard-float, msoft-float): Mark
23444         Undocumented.  Remove help text.
23445         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
23446         -mhard-float.
23447
23448 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
23449
23450         * doc/options.texi (NegativeAlias): Document.
23451         (Alias): Mention NegativeAlias.
23452         * opt-functions.awk: Handle NegativeAlias.
23453         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
23454         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
23455         * opts.h (CL_NEGATIVE_ALIAS): Define.
23456         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
23457         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
23458         OPT_mspe_.
23459         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
23460         Alias entries.
23461         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
23462         mno-spe and mno-isel instead of mspe=no and -misel=no.
23463
23464 2011-03-29  Mark Wielaard  <mjw@redhat.com>
23465
23466         * common.opt (fdebug-types-section): New flag.
23467         * doc/invoke.texi: Document new -fno-debug-types-section flag.
23468         * dwarf2out.c (use_debug_types): New define.
23469         (struct die_struct): Mark die_id with GTY desc use_debug_types.
23470         (print_die): Guard output of type unit signatures using
23471         use_debug_types.
23472         (build_abbrev_table): Replace assert of dwarf_version >= 4
23473         with assert on use_debug_types.
23474         (size_of_die): Likewise.
23475         (unmark_dies): Likewise.
23476         (value_format): Decide AT_ref_external form on use_debug_types.
23477         (output_die): Replace dwarf_version version check guard with
23478         use_debug_types where appropriate.
23479         (modified_type_die): Likewise.
23480         (gen_reference_type_die): Likewise.
23481         (dwarf2out_start_source_file): Likewise.
23482         (dwarf2out_end_source_file): Likewise.
23483         (prune_unused_types_walk_attribs): Likewise.
23484         (dwarf2out_finish): Likewise.
23485
23486 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
23487
23488         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
23489
23490 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
23491
23492         PR rtl-optimization/48332
23493         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
23494         mode of input operand N and modeN to its actual mode.
23495
23496 2011-03-30  Jeff Law  <law@redhat.com>
23497
23498         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
23499         define accessor macro.
23500         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
23501         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
23502         (reg_equiv_init): Likewise.
23503         (reg_equivs_size): New variable.
23504         (reg_equiv_init_size): Remove.
23505         (allocate_initial_values): Move prototype to here from....
23506         * integrate.h (allocate_initial_values): Remove prototype.
23507         * integrate.c: Include reload.h.
23508         (allocate_initial_values): Corresponding changes.
23509         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
23510         (fix_reg_equiv_init, no_equiv): Corresponding changes.
23511         (update_equiv_regs): Corresponding changes.
23512         (ira): Corresponding changes.
23513         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
23514         (push_secondary_reload): Corresponding changes.
23515         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
23516         (make_memloc, find_reloads_address): Corresponding changes.
23517         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
23518         (find_reloads_address_1): Corresponding changes.
23519         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
23520         (refers_to_regno_for_reload_p): Corresponding changes.
23521         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
23522         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
23523         * reload1.c: Include ggc.h.
23524         (grow_reg_equivs): New function.
23525         (replace_pseudos_in, reload): Corresponding changes.
23526         (calculate_needs_all_insns, alter_regs): Corresponding changes.
23527         (eliminate_regs_1, elimination_effects): Corresponding changes.
23528         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
23529         (delete_output_reload): Likewise.
23530         * caller-save.c (mark_referenced_regs): Corresponding changes.
23531         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
23532         * frv/predicates.md (frv_load_operand): Corresponding changes.
23533         * microblaze/microblaze.c (double_memory_operand): Corresponding
23534         changes.
23535         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
23536         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
23537         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
23538         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
23539         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
23540         changes.
23541         * pa/pa.c (emit_move_sequence): Corresponding changes.
23542         * vax/vax.c (nonindexed_address_p): Corresponding changes.
23543
23544 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
23545
23546         PR target/47551
23547         * config/arm/arm.c (coproc_secondary_reload_class): Handle
23548         structure modes.  Don't check neon_vector_mem_operand for
23549         vector or structure modes.
23550
23551 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
23552             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
23553
23554         PR target/43590
23555         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
23556         operand 1 and reshuffle the operands to match.
23557         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
23558
23559 2011-03-30  Christian Schüler  <cschueler@gmx.de>
23560
23561         PR driver/48208
23562         * config/c.opt (F): Added 'Driver' to -F option.
23563
23564         PR driver/48260
23565         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
23566           handler function.
23567         * config/darwin.opt: Added '-arch' option.
23568
23569 2011-03-30  Nick Clifton  <nickc@redhat.com>
23570
23571         * config/rx/rx.md: Add peepholes and patterns to combine
23572         extending loads and simple arithmetic instructions.
23573         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
23574         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
23575         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
23576         modes to use pre-decrement and post-increment addressing.
23577         (rx_is_restricted_memory_address): Add range checking of REG+INT
23578         addresses.
23579         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
23580         (rx_memory_move_cost): Adjust cost of stores.
23581         (rx_adjust_insn_length): New function.
23582
23583 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
23584
23585         PR c/48305
23586         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
23587         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
23588         matching arg00/arg01 types.
23589
23590 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
23591
23592         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
23593         last_location to UNKNOWN_LOCATION.
23594
23595 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
23596
23597         PR target/48349
23598         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
23599         FLOAT_SSE_REGS.
23600
23601 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
23602             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23603
23604         PR bootstrap/48337
23605         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
23606         Init(PROCESSOR_V7).
23607         (sparc_cpu): Likewise.
23608         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
23609         PROCESSOR_V7.
23610
23611 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
23612
23613         PR target/48336
23614         PR middle-end/48342
23615         PR rtl-optimization/48345
23616         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
23617         hard regs for given mode from profitable regs when doing secondary
23618         allocation.
23619
23620 2011-03-29  Jeff Law  <law@redhat.com>
23621
23622         PR bootstrap/48327
23623         * tree-ssa-threadupdate.c (struct redirection_data): Remove
23624         do_not_duplicate field.
23625         (lookup_redirection_data): Corresponding changes.
23626         (create_duplicates): Always create a template block.
23627         (redirect_edges): Remove code which reused the original block
23628         when it was going to become unreachable code.
23629         (thread_block): Don't set do_not_duplicate field.
23630
23631 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
23632
23633         * lto-opts.c (register_user_option_p, lto_register_user_option):
23634         Make type argument unsigned.
23635         * lto-streamer.h (lto_register_user_option): Make type argument
23636         unsigned.
23637         * opth-gen.awk: Make CL_* macros unsigned.
23638         * opts-common.c (find_opt): Make lang_mask argument unsigned.
23639         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
23640         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
23641         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
23642         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
23643         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
23644         (find_opt): Make lang_mask argument unsigned.
23645
23646 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
23647
23648         PR rtl-optimization/48331
23649         PR rtl-optimization/48334
23650         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
23651         for any used algorithm.
23652
23653 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
23654
23655         * ira-conflicts.c (build_object_conflicts): Add unused attribute
23656         to parent_max.
23657
23658 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
23659
23660         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
23661         (alpha_option_override): Don't set alpha_sr_alias_set.
23662         (emit_frame_store_1): Use gen_frame_mem rather than calling
23663         set_mem_alias_set.
23664         (alpha_expand_epilogue): Ditto.
23665
23666 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
23667
23668         PR tree-optimization/48290
23669         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
23670         vectorization, check that relevant phis in the basic block after
23671         the inner loop are really inner loop's exit phis.
23672
23673 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
23674
23675         PR debug/48190
23676         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
23677         (cached_dw_loc_list_def): New structure.
23678         (cached_dw_loc_list): New typedef.
23679         (cached_dw_loc_list_table): New variable.
23680         (cached_dw_loc_list_table_hash): New function.
23681         (cached_dw_loc_list_table_eq): Likewise.
23682         (add_location_or_const_value_attribute): Take a bool cache_p.
23683         Cache the list when the parameter is true.
23684         (gen_formal_parameter_die): Update caller.
23685         (gen_variable_die): Likewise.
23686         (dwarf2out_finish): Likewise.
23687         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
23688         while generating debug info for the decl.
23689         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
23690         (dwarf2out_init): Initialize cached_dw_loc_list_table.
23691         (resolve_addr): Cache the result of resolving a chain of
23692         location lists.
23693
23694 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
23695
23696         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
23697         conflict object hard regset nodes have intersecting hard reg sets.
23698
23699         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
23700         after regstat_init_n_sets_and_refs.
23701
23702         * ira.c: Add more comments at the top.
23703         (setup_stack_reg_pressure_class, setup_pressure_classes):
23704         Add comments how we compute the register pressure classes.
23705         (setup_allocno_and_important_classes): Add more comments.
23706         (setup_class_translate_array, reorder_important_classes)
23707         (setup_reg_class_relations): Add comments.
23708
23709         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
23710         start of the file.
23711
23712         * ira-color.c: Add 2011 to the Copyright line.
23713         (assign_hard_reg):  Add more comments.
23714         (improve_allocation): Ditto.
23715
23716         * ira-costs.c: Add 2011 to the Copyright line.
23717         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
23718         comments.
23719         (setup_regno_cost_classes_by_mode): Ditto.
23720
23721         Initial patches from ira-improv branch:
23722
23723         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
23724
23725         * ira-build.c (ira_create_object): Remove initialization of
23726         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
23727         (ira_create_allocno): Remove initialization of
23728         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
23729         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
23730         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
23731         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
23732         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
23733         Initialize ALLOCNO_ADD_DATA.
23734         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
23735         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
23736         ALLOCNO_REG.
23737         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
23738         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
23739
23740         * ira.c (ira_reallocate): Remove.
23741         (setup_pressure_classes): Call
23742         ira_init_register_move_cost_if_necessary.  Use
23743         ira_register_move_cost instead of ira_get_register_move_cost.
23744         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
23745         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
23746
23747         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
23748         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
23749         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
23750         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
23751         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
23752         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
23753         Fix formatting.
23754         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
23755         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
23756         (struct allocno_color_data): New.
23757         (allocno_color_data_t): New typedef.
23758         (allocno_color_data): New definition.
23759         (ALLOCNO_COLOR_DATA): New macro.
23760         (struct object_color_data): New.
23761         (object_color_data_t): New typedef.
23762         (object_color_data): New definition.
23763         (OBJECT_COLOR_DATA): New macro.
23764         (update_copy_costs, calculate_allocno_spill_cost): Call
23765         ira_init_register_move_cost_if_necessary.  Use
23766         ira_register_move_cost instead of ira_get_register_move_cost.
23767         (move_spill_restore, update_curr_costs): Ditto.
23768         (allocno_spill_priority): Make it inline.
23769         (color_pass): Allocate and free allocno_color_dat and object_color_data.
23770         (struct coalesce_data, coalesce_data_t): New.
23771         (allocno_coalesce_data): New definition.
23772         (ALLOCNO_COALESCE_DATA): New macro.
23773         (merge_allocnos, coalesced_allocno_conflict_p): Use
23774         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
23775         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
23776         (coalesce_allocnos): Ditto.
23777         (setup_coalesced_allocno_costs_and_nums): Ditto.
23778         (collect_spilled_coalesced_allocnos): Ditto.
23779         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
23780         (setup_slot_coalesced_allocno_live_ranges): Ditto.
23781         (coalesce_spill_slots): Ditto.
23782         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
23783         free allocno_coalesce_data.
23784
23785         * ira-conflicts.c: Fix formatting.
23786         (process_regs_for_copy): Call
23787         ira_init_register_move_cost_if_necessary.  Use
23788         ira_register_move_cost instead of ira_get_register_move_cost.
23789         (build_object_conflicts): Optimize.
23790
23791         * ira-costs.c (record_reg_classes): Optimize.  Call
23792         ira_init_register_move_cost_if_necessary.  Use
23793         ira_register_move_cost, ira_may_move_in_cost, and
23794         ira_may_move_out_cost instead of ira_get_register_move_cost and
23795         ira_get_may_move_cost.
23796         (record_address_regs): Ditto.
23797         (scan_one_insn): Optimize.
23798         (find_costs_and_classes): Optimize.
23799         (process_bb_node_for_hard_reg_moves): Call
23800         ira_init_register_move_cost_if_necessary.  Use
23801         ira_register_move_cost instead of ira_get_register_move_cost.
23802
23803         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
23804         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
23805         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
23806         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
23807         definitions.
23808         (ira_initiate_emit_data, ira_finish_emit_data)
23809         (create_new_allocno): New functions.
23810         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
23811         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
23812         Use ira_register_move_cost instead of ira_get_register_move_cost.
23813
23814         * ira-int.h: Fix some comments.
23815         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
23816         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
23817         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
23818         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
23819         add_data.
23820         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
23821         bitfield after mode.  Make hard_regno a short int.  Make
23822         hard_regno short.  Remove first_coalesced_allocno and
23823         next_coalesced_allocno.  Move mem_optimized_dest_p,
23824         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
23825         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
23826         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
23827         temp, colorable_p.  Add new member add_data.
23828         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
23829         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
23830         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
23831         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
23832         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
23833         (ALLOCNO_ADD_DATA): New macro.
23834         (ira_emit_data_t): New typedef.
23835         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
23836         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
23837         from struct ira_allocno.
23838         (ALLOCNO_EMIT_DATA): New macro.
23839         (ira_allocno_emit_data, allocno_emit_reg): New.
23840         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
23841         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
23842         (OBJECT_ADD_DATA): New macro.
23843         (ira_reallocate): Remove.
23844         (ira_initiate_emit_data, ira_finish_emit_data): New.
23845         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
23846         (ira_init_register_move_cost_if_necessary): New.
23847         (ira_object_conflict_iter_next): Merge into
23848         ira_object_conflict_iter_cond.
23849         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
23850
23851         * ira-live.c (process_single_reg_class_operands): Call
23852         ira_init_register_move_cost_if_necessary.  Use
23853         ira_register_move_cost instead of ira_get_register_move_cost.
23854
23855         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
23856
23857         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
23858
23859         * ira-costs.c: Fix formatting.
23860         (cost_classes, cost_classes_num): Remove.
23861         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
23862         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
23863         (cost_classes_del, cost_classes_htab): New.
23864         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
23865         (initiate_regno_cost_classes, setup_cost_classes): New.
23866         (setup_regno_cost_classes_by_aclass): New.
23867         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
23868         (record_reg_classes): Use regno_cost_classes instead of
23869         cost_classes.  Move checking opposite operand up.
23870         (record_address_regs): Use regno_cost_classes
23871         instead of cost_classes.
23872         (scan_one_insn): Ditto.  Use always general register.
23873         (print_allocno_costs): Use regno_cost_classes instead of
23874         cost_classes.
23875         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
23876         (find_costs_and_classes): Set up cost classes for each registers.
23877         Use also their mode for this.  Use regno_cost_classes instead of
23878         cost_classes.
23879         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
23880         cost_classes.
23881         (free_ira_costs, ira_init_costs): Don't use cost_classes.
23882         (ira_costs, ira_set_pseudo_classes): Call
23883         initiate_regno_cost_classes and finish_regno_cost_classes.
23884
23885         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
23886
23887         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
23888
23889         * target.def (ira_cover_classes): Remove.
23890
23891         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
23892
23893         * doc/tm.texi.in: Ditto.
23894
23895         * ira-conflicts.c: Remove mentioning cover classes from the file.
23896         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
23897         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
23898
23899         * targhooks.c (default_ira_cover_classes): Remove.
23900
23901         * targhooks.h (default_ira_cover_classes): Ditto.
23902
23903         * haifa-sched.c: Remove mentioning cover classes from the file.
23904         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
23905         ira_pressure_classes and ira_pressure_classes_num instead of
23906         ira_reg_class_cover_size and ira_reg_class_cover.  Use
23907         sched_regno_pressure_class instead of sched_regno_cover_class.
23908         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
23909         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
23910
23911         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
23912         classes from the file.
23913         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
23914         (struct object_hard_regs, struct object_hard_regs_node): New.
23915         (struct ira_object): New members profitable_hard_regs,
23916         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
23917         (struct ira_allocno): Rename cover_class to aclass.  Rename
23918         cover_class_cost and updated_cover_class_cost to class_cost and
23919         updated_class_cost.  Remove splay_removed_p and
23920         left_conflict_size.  Add new members colorable_p.
23921         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
23922         (ALLOCNO_COLORABLE_P): New macro.
23923         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
23924         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
23925         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
23926         (OBJECT_...): Rename parameter C to O.
23927         (OBJECT_PROFITABLE_HARD_REGS): New macro.
23928         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
23929         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
23930         (struct target_ira_int): New members x_ira_max_memory_move_cost,
23931         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
23932         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
23933         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
23934         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
23935         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
23936         x_ira_reg_class_subunion.
23937         (ira_max_memory_move_cost, ira_max_register_move_cost)
23938         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
23939         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
23940         (ira_important_class_nums, ira_reg_class_superunion): New macros.
23941         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
23942         (ira_reg_class_union): Rename to ira_reg_class_subunion.
23943         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
23944         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
23945         (ira_tune_allocno_costs_and_cover_classes): Rename to
23946         ira_tune_allocno_costs.
23947         (ira_debug_hard_regs_forest): New.
23948         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
23949         (ira_object_conflict_iter_next): Fix comments.
23950         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
23951         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
23952         cover_class to aclass.
23953         (ira_allocate_and_accumulate_costs): Ditto.
23954         (ira_allocate_and_set_or_copy_costs): Ditto.
23955
23956         * opts.c (decode_options): Remove ira_cover_class check.
23957
23958         * ira-color.c: Remove mentioning cover classes from the file.  Use
23959         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
23960         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
23961         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
23962         (splay-tree.h): Remove include.
23963         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
23964         before copy_freq_compare_func.
23965         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
23966         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
23967         New definitions.
23968         (hard_regs_roots, hard_regs_node_vec): Ditto.
23969         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
23970         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
23971         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
23972         (create_new_object_hard_regs_node): Ditto.
23973         (add_new_object_hard_regs_node_to_forest): Ditto.
23974         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
23975         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
23976         Ditto.
23977         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
23978         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
23979         (remove_unused_object_hard_regs_nodes): Ditto.
23980         (enumerate_object_hard_regs_nodes): Ditto.
23981         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
23982         (object_hard_regs_subnode_t): Ditto.
23983         (struct object_hard_regs_subnode): Ditto.
23984         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
23985         (setup_object_hard_regs_subnode_index): Ditto.
23986         (get_object_hard_regs_subnodes_num): Ditto.
23987         (form_object_hard_regs_nodes_forest): Ditto.
23988         (finish_object_hard_regs_nodes_tree): Ditto.
23989         (finish_object_hard_regs_nodes_forest): Ditto.
23990         (allocnos_have_intersected_live_ranges_p): Rename to
23991         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
23992         (pseudos_have_intersected_live_ranges_p): Rename to
23993         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
23994         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
23995         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
23996         (update_copy_costs): Remove assert.  Skip cost update if the hard
23997         reg does not belong the class.
23998         (assign_hard_reg): Process only profitable hard regs.
23999         (uncolorable_allocnos_num): Make it scalar.
24000         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
24001         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
24002         and ira_reg_class_max_nregs.
24003         (bucket_allocno_compare_func): Check frequency first.
24004         (sort_bucket): Add compare function as a parameter.
24005         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
24006         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
24007         (push_allocno_to_stack): Rewrite for checking new allocno
24008         colorability.
24009         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
24010         (push_only_colorable): Pass new parameter to sort_bucket.
24011         (push_allocno_to_spill): Remove.
24012         (allocno_spill_priority_compare): Make it inline and rewrite.
24013         (splay_tree_allocate, splay_tree_free): Remove.
24014         (allocno_spill_sort_compare): New function.
24015         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
24016         build and use splay tree.  Choose first allocno in uncolorable
24017         allocno bucket to spill.  Remove setting spill cost.
24018         (all_conflicting_hard_regs): Remove.
24019         (setup_allocno_available_regs_num): Check only profitable hard
24020         regs.  Print info about hard regs nodes.
24021         (setup_allocno_left_conflicts_size): Remove.
24022         (put_allocno_into_bucket): Don't call
24023         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
24024         (improve_allocation): New.
24025         (color_allocnos): Call setup_profitable_hard_regs,
24026         form_object_hard_regs_nodes_forest, improve_allocation,
24027         finish_object_hard_regs_nodes_forest.  Setup spill cost.
24028         (print_loop_title): Use pressure classes.
24029         (color_allocnso): Ditto.
24030         (do_coloring): Remove allocation and freeing splay_tree_node_pool
24031         and allocnos_for_spilling.
24032         (ira_sort_regnos_for_alter_reg): Don't setup members
24033         {first,next}_coalesced_allocno.
24034         (color): Remove allocating and freeing removed_splay_allocno_vec.
24035         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
24036         prohibited_class_mode_regs.
24037
24038         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
24039         formatting.
24040         (update_allocno_pressure_excess_length): Use pressure classes.
24041         (inc_register_pressure, dec_register_pressure): Check for pressure
24042         class.
24043         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
24044         pressure class.  Use ira_reg_class_nregs instead of
24045         ira_reg_class_max_nregs.
24046         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
24047         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
24048         (single_reg_class): Use ira_reg_class_nregs instead of
24049         ira_reg_class_max_nregs.
24050         (process_bb_node_lives): Use pressure classes.
24051
24052         * ira-emit.c: Remove mentioning cover classes from the file.  Use
24053         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
24054         (change_loop): Use pressure classes.
24055         (modify_move_list): Call ira_set_allocno_class instead of
24056         ira_set_allocno_cover_class.
24057
24058         * ira-build.c: Remove mentioning cover classes from the file.  Use
24059         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
24060         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
24061         ALLOCNO_UPDATED_CLASS_COST instead of
24062         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
24063         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
24064         (ira_create_allocno): Remove initialization of
24065         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
24066         ALLOCNO_COLORABLE_P.
24067         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
24068         Update conflict regs for the objects.
24069         (create_cap_allocno): Remove assert.  Don't propagate
24070         ALLOCNO_AVAILABLE_REGS_NUM.
24071         (ira_free_allocno_costs): New function.
24072         (finish_allocno): Change a part of code into call of
24073         ira_free_allocno_costs.
24074         (low_pressure_loop_node_p): Use pressure classes.
24075         (object_range_compare_func): Don't compare classes.
24076         (setup_min_max_conflict_allocno_ids): Ditto.
24077
24078         * loop-invariant.c: Remove mentioning cover classes from the file.
24079         Use ira_pressure_classes and ira_pressure_classes_num instead of
24080         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
24081         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
24082         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
24083         Use reg_allocno_class instead of reg_cover_class.
24084         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
24085         STACK_REG_COVER_CLASS.
24086         (get_regno_cover_class): Rename to get_regno_pressure_class.
24087         (move_loop_invariants): Initialize and finalize regstat.
24088
24089         * ira.c: Remove mentioning cover classes from the file.  Add
24090         comments about coloring without cover classes.  Use ALLOCNO_CLASS
24091         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
24092         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
24093         setup_class_subset_and_memory_move_costs.
24094         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
24095         (setup_cover_and_important_classes): Rename to
24096         setup_allocno_and_important_classes.
24097         (setup_class_translate_array): New.
24098         (setup_class_translate): Call it for allocno and pressure classes.
24099         (cover_class_order): Rename to allocno_class_order.
24100         (comp_reg_classes_func): Use ira_allocno_class_translate instead
24101         of ira_class_translate.
24102         (reorder_important_classes): Set up ira_important_class_nums.
24103         (setup_reg_class_relations): Set up ira_reg_class_superunion.
24104         (print_class_cover): Rename to print_classes.  Add parameter.
24105         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
24106         Print pressure classes too.
24107         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
24108         setup_reg_subclasses.
24109         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
24110         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
24111         (setup_prohibited_class_mode_regs): Use
24112         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
24113         (clarify_prohibited_class_mode_regs): New function.
24114         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
24115         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
24116         (ira_init_once): Initialize them.
24117         (free_register_move_costs): Process them.
24118         (ira_init): Move calls of find_reg_classes and
24119         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
24120         Call clarify_prohibited_class_mode_regs.
24121         (ira_no_alloc_reg): Remove.
24122         (too_high_register_pressure_p): Use pressure classes.
24123
24124         * sched-deps.c: Remove mentioning cover classes from the file.
24125         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
24126         ira_pressure_classes and ira_pressure_classes_num instead of
24127         ira_reg_class_cover_size and ira_reg_class_cover.
24128         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
24129         sched_regno_pressure_class instead of sched_regno_cover_class.
24130         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
24131         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
24132
24133         * ira.h: Add 2010 to Copyright.
24134         (ira_no_alloc_reg): Remove external.
24135         (struct target_ira): Rename x_ira_hard_regno_cover_class,
24136         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
24137         x_ira_class_translate to x_ira_hard_regno_allocno_class,
24138         x_ira_allocno_classes_num, x_ira_allocno_classes, and
24139         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
24140         x_ira_pressure_classes, x_ira_pressure_class_translate, and
24141         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
24142         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
24143         x_ira_no_alloc_regs.
24144         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
24145         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
24146         ira_allocno_classes_num and ira_allocno_classes.
24147         (ira_class_translate): Rename to ira_allocno_class_translate.
24148         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
24149         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
24150         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
24151         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
24152         (ira_no_alloc_regs): New.
24153
24154         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
24155         classes from the file.  Use ALLOCNO_CLASS instead of
24156         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
24157         ALLOCNO_COVER_CLASS_COST.
24158         (regno_cover_class): Rename to regno_aclass.
24159         (record_reg_classes): Use ira_reg_class_subunion instead of
24160         ira_reg_class_union.
24161         (record_address_regs): Check overflow.
24162         (scan_one_insn): Ditto.
24163         (print_allocno_costs): Print total mem cost fore regional allocation.
24164         (print_pseudo_costs): Use REG_N_REFS.
24165         (find_costs_and_classes): Use classes intersected with them on the
24166         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
24167         ira_reg_class_union.  Use ira_allocno_class_translate and
24168         regno_aclass instead of ira_class_translate and regno_cover_class.
24169         Modify code for finding regno_aclass.  Setup preferred classes for
24170         the next pass.
24171         (setup_allocno_cover_class_and_costs): Rename to
24172         setup_allocno_class_and_costs.  Use regno_aclass instead of
24173         regno_cover_class.  Use ira_set_allocno_class instead of
24174         ira_set_allocno_cover_class.
24175         (init_costs, finish_costs): Use regno_aclass instead of
24176         regno_cover_class.
24177         (ira_costs): Use setup_allocno_class_and_costs instead of
24178         setup_allocno_cover_class_and_costs.
24179         (ira_tune_allocno_costs_and_cover_classes): Rename to
24180         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
24181         by processing objects.  Use ira_reg_class_max_nregs instead of
24182         ira_reg_class_nregs.
24183
24184         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
24185
24186         * sched-int.h: Remove mentioning cover classes from the file.
24187         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
24188
24189         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
24190         classes from the file.
24191         (struct reg_pref): Rename coverclass into allocnoclass.
24192         (reg_cover_class): Rename to reg_allocno_class.
24193
24194         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
24195
24196         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
24197
24198         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
24199
24200         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
24201
24202         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
24203
24204         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
24205
24206         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
24207
24208         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
24209
24210         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
24211
24212         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
24213
24214         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
24215         (i386_ira_cover_classes): Ditto.
24216
24217         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
24218
24219         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
24220
24221         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
24222
24223         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
24224
24225         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
24226
24227         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
24228
24229         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
24230         (mips_ira_cover_classes): Ditto.
24231
24232         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
24233
24234         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
24235
24236         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
24237
24238         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
24239
24240         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
24241
24242         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
24243         (IRA_COVER_CLASSES_VSX): Ditto.
24244
24245         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
24246         (rs6000_ira_cover_classes): Ditto.
24247
24248         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
24249
24250         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
24251
24252         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
24253
24254         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
24255
24256         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
24257
24258         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
24259
24260         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
24261
24262         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
24263
24264         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
24265
24266         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
24267
24268 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
24269
24270         PR debug/48253
24271         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
24272         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
24273         dw_fde_unlikely_section_end_label, cold_in_std_section,
24274         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
24275         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
24276         fields.
24277         (output_fde): Use dw_fde_second_{begin,end} if second is
24278         true, otherwise dw_fde_{begin,end}.
24279         (output_call_frame_info): Test dw_fde_second_begin != NULL
24280         instead of dw_fde_switched_sections.
24281         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
24282         fields, initialize new fields.  Initialize in_std_section
24283         unconditionally from the first partition.
24284         (dwarf2out_end_epilogue): Don't override dw_fde_end when
24285         dw_fde_second_begin is non-NULL.
24286         (dwarf2out_switch_text_section): Stop initializing removed
24287         dw_fde_struct fields, initialize new fields, initialize
24288         also dw_fde_end here.  Set dw_fde_switch_cfi even when
24289         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
24290         (struct var_loc_list_def): Add last_before_switch field.
24291         (arange_table, arange_table_allocated, arange_table_in_use,
24292         ARANGE_TABLE_INCREMENT, add_arange): Removed.
24293         (size_of_aranges): Count !in_std_section and !second_in_std_section
24294         hunks in fdes, instead of looking at arange_table_in_use.
24295         (output_aranges): Add aranges_length argument, don't call
24296         size_of_aranges here.  Instead of using aranges_table*
24297         emit ranges for fdes when !in_std_section resp.
24298         !second_in_std_section.
24299         (dw_loc_list): Break ranges crossing section switch.
24300         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
24301         use dw_fde_second_end instead of dw_fde_end as end of last range.
24302         (gen_subprogram_die): Don't call add_arange.  Use
24303         dw_fde_{begin,end} for first partition and if switched
24304         section dw_fde_second_{begin,end} for the second.
24305         (var_location_switch_text_section_1,
24306         var_location_switch_text_section): New functions.
24307         (dwarf2out_begin_function): Initialize cold_text_section even
24308         when function_section () isn't text_section.
24309         (prune_unused_types): Don't walk arange_table.
24310         (dwarf2out_finish): Don't needlessly test
24311         flag_reorder_blocks_and_partition when testing cold_text_section_used.
24312         If info_section_emitted, call size_of_aranges and if it indicates
24313         non-empty .debug_aranges, call output_aranges with the computed
24314         size.  Stop using removed dw_fde_struct fields, use
24315         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
24316         for second.
24317
24318         PR debug/48203
24319         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
24320         create ENTRY_VALUE if incoming or address of incoming's MEM
24321         is a hard REG.
24322         * dwarf2out.c (mem_loc_descriptor): Don't emit
24323         DW_OP_GNU_entry_value of DW_OP_fbreg.
24324         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
24325         on ENTRY_VALUE is able to find the canonical parameter VALUE.
24326         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
24327         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
24328         ENTRY_VALUE_EXPs.
24329         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
24330         is a REG_P or MEM_P with REG_P address, compute hash directly
24331         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
24332         (preserve_only_constants): Don't clear VALUES forwaring
24333         ENTRY_VALUE to some other VALUE.
24334
24335 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
24336
24337         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
24338         instead of GEN_INT.
24339
24340 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
24341
24342         * cfgexpand.c (expand_gimple_cond): Always set the source location and
24343         block before expanding the statement.
24344         (expand_gimple_stmt_1): Likewise.  Set them here...
24345         (expand_gimple_stmt): ...and not here.  Tidy.
24346         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
24347         unknown.
24348
24349 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
24350
24351         * Makefile.in: New rule for cprop.o.
24352         * gcse.c: Move constant/copy propagation to cprop.c.
24353         (compute_local_properties): Only handle expression tables.
24354         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
24355         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
24356         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
24357         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
24358         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
24359         compute_cprop_data, find_used_regs, try_replace_reg,
24360         find_avail_set, cprop_jump, constprop_register, cprop_insn,
24361         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
24362         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
24363         find_bypass_set, reg_killed_on_edge, bypass_block,
24364         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
24365         execute_rtl_cprop, pass_rtl_cprop): Move to...
24366         * cprop.c: ...here.  New file, constant/copy propagation for RTL
24367         moved from gcse.c to here with minor cleanups in duplicated code.
24368
24369 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
24370
24371         * config/i386/i386.c (flag_opts): Fix a typo in
24372         -mavx256-split-unaligned-store.
24373
24374 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
24375
24376         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
24377         LIBCALL_VALUE): Remove macros.
24378         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
24379         TARGET_FUNCTION_VALUE_REGNO_P): Define.
24380         (h8300_function_value, h8300_libcall_value,
24381         h8300_function_value_regno_p): New functions.
24382
24383 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
24384
24385         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
24386
24387 2011-03-28  Jeff Law  <law@redhat.com>
24388
24389         * tree-ssa-threadupdate.c (redirect_edges): Call
24390         create_edge_and_update_destination_phis as needed.
24391         (create_edge_and_update_destination_phis): Accept new BB argument.
24392         All callers updated.
24393         (thread_block): Do not update the profile when threading around
24394         intermediate blocks.
24395         (thread_single_edge): Likewise.
24396         (determine_bb_domination_status): If BB is not a successor of the
24397         loop header, return NONDOMINATING.
24398         (register_jump_thread): Note when we register a jump thread around
24399         an intermediate block.
24400         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
24401         (thread_across_edge): Use it.
24402
24403 2011-03-28  Tristan Gingold  <gingold@adacore.com>
24404
24405         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
24406         when for_return is 2.
24407
24408 2011-03-28  Jeff Law  <law@redhat.com>
24409
24410         * var-tracking.c (canonicalize_values_mark): Delete unused
24411         lhs assignment.
24412         (canonicalize_values_star, set_variable_part): Likewise.
24413         (clobber_variable_part, delete_variable_part): Likewise.
24414
24415 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
24416
24417         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
24418
24419 2011-03-28  Martin Jambor  <mjambor@suse.cz>
24420
24421         * tree-inline.c (expand_call_inline): Do not check that destination
24422         node is analyzed.
24423         (optimize_inline_calls): Assert that destination node is analyzed.
24424         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
24425         not call tree_lowering_passes.
24426         * cgraph.h (cgraph_analyze_function): Declare.
24427         * cgraphunit.c (cgraph_analyze_function): Make public.
24428
24429 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
24430
24431         * config/sparc/sparc-opts.h: New.
24432         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
24433         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
24434         (sparc_option_override): Store processor_type enumeration rather
24435         than string in cpu_default.  Remove name and enumeration from
24436         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
24437         without using sparc_select.  Use target_flags_explicit instead of
24438         fpu_option_set.
24439         * config/sparc/sparc.h (enum processor_type): Move to
24440         sparc-opts.h.
24441         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
24442         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
24443         HeaderInclude entry.
24444         (mcpu=, mtune=): Use Var and Enum.
24445         (sparc_processor_type): New Enum and EnumValue entries.
24446
24447 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24448             Iain Sandoe  <iains@gcc.gnu.org>
24449
24450         PR target/48245
24451         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
24452
24453 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
24454
24455         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
24456         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
24457         Insert new statements at it in lieu of STMT.
24458         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
24459         * tree-vect-stmts.c (vectorizable_store): Likewise.
24460         (vectorizable_load): Likewise.
24461
24462 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
24463
24464         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
24465         (divtf3): Ditto.
24466         (multf3): Ditto.
24467         (subtf3): Ditto.
24468
24469 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
24470
24471         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
24472         unaligned 256bit load/store.
24473         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
24474         (*avx_movdqu<avxmodesuffix>): Likewise.
24475
24476 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24477
24478         PR target/48288
24479         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
24480         * config/pa/pa.md (iordi3): Use new predicate in expander.
24481         (iorsi3): Likewise.
24482
24483 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
24484
24485         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
24486         FUNCTION_VALUE_REGNO_P): Remove macros.
24487         * config/mips/mips-protos.h (mips_function_value): Remove.
24488         * config/mips/mips.c (mips_function_value): Rename to...
24489         (mips_function_value_1): ... this. Make static.  Handle receiving
24490         the function type in 'fn_decl_or_type' argument.
24491         (mips_function_value, mips_libcall_value,
24492         mips_function_value_regno_p): New function.
24493         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
24494         TARGET_FUNCTION_VALUE_REGNO_P): Define.
24495
24496 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
24497
24498         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
24499         and -mavx256-split-unaligned-store.
24500         (ix86_option_override_internal): Split 32-byte AVX unaligned
24501         load/store by default.
24502         (ix86_avx256_split_vector_move_misalign): New.
24503         (ix86_expand_vector_move_misalign): Use it.
24504
24505         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
24506         -mavx256-split-unaligned-store.
24507
24508         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
24509         256bit load/store.  Generate unaligned store on misaligned memory
24510         operand.
24511         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
24512         256bit load/store.
24513         (*avx_movdqu<avxmodesuffix>): Likewise.
24514
24515         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
24516         -mavx256-split-unaligned-store.
24517
24518 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
24519
24520         PR target/38598
24521         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
24522         Update commentary.
24523
24524 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
24525
24526         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
24527         opno arguments with an expand_operand.  Use create_input_operand.
24528         (mips_prepare_builtin_target): Delete.
24529         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
24530         functions.
24531         (mips_expand_builtin_direct): Use create_output_operand and
24532         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
24533         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
24534         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
24535
24536 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
24537
24538         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
24539         function.
24540         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
24541
24542 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
24543
24544         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
24545         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
24546         basic blocks and call commit_edge_insertions directly.
24547         (fixup_abnormal_edges): Move from here to...
24548         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
24549         on the edges and return whether some have actually been inserted.
24550         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
24551         compensation code.
24552
24553 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
24554
24555         PR rtl-optimization/48144
24556         * sel-sched-ir.c (merge_history_vect): Factor out from ...
24557         (merge_expr_data): ... here.
24558         (av_set_intersect): Rename to av_set_code_motion_filter.
24559         Update all callers.  Call merge_history_vect when an expression
24560         is found in both sets.
24561         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
24562
24563 2011-03-26  Alan Modra  <amodra@gmail.com>
24564
24565         * config/rs6000/predicates.md (word_offset_memref_op): Handle
24566         cmodel medium addresses.
24567         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
24568         64-bit gpr loads and stores.
24569         (rs6000_secondary_reload_ppc64): New function.
24570         * config/rs6000/rs6000-protos.h: Declare it.
24571         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
24572
24573 2011-03-26  Alan Modra  <amodra@gmail.com>
24574
24575         PR target/47487
24576         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
24577         GNU Go in traceback table.
24578
24579 2011-03-25  Richard Henderson  <rth@redhat.com>
24580
24581         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
24582         if there are exactly 6 operands.
24583         (set_storage_via_setmem): Similarly.
24584
24585 2011-03-25  Kai Tietz  <ktietz@redhat.com>
24586
24587         * collect2.c (write_c_file_stat): Handle backslash
24588         as right-hand directory separator.
24589         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
24590         checking just for slash.
24591         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
24592         instead of checking for trailing slash.
24593         * gcc.c (record_temp_file): Use filename_cmp instead
24594         of strcmp.
24595         (do_spec_1): Likewise.
24596         (replace_outfile_spec_function): Likewise.
24597         (is_directory): Use filename_ncmp instead of strncmp.
24598         (print_multilib_info): Likewise.
24599         * gcov.c (find_source): Use filename_cmp instead
24600         instead of strcmp.
24601         (make_gcov_file_name): Fix order of slash/backslash
24602         checks.
24603         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
24604         (add_standard_paths): Likewise.
24605         * mips-tfile.c (saber_stop): Handle backslash.
24606         * prefix.c (update_path): Use filename_ncmp instead of
24607         strncmp.
24608         * profile.c (output_location): Use filename_cmp instead
24609         of strcmp.
24610         * read-md.c (handle_toplevel_file): Handle backslash.
24611         * tlink.c (frob_extension):  Likewise.
24612         * tree-cfg.c (same_line_p): Use filename_cmp instead of
24613         strcmp.
24614         * tree-dump.c (dequeue_and_dump): Handle backslash.
24615         * tree.c (get_file_function_name): Likewise.
24616         * gengtype.c (read_input_list): Likewise.
24617         (get_file_realbasename): Likewise.
24618         (get_output_file_with_visibility): Use filename_cmp
24619         instead of strcmp.
24620
24621 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
24622
24623         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
24624         case to VFPv1.
24625
24626 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
24627
24628         * fold-const.c (expr_location_or): New function.
24629         (fold_truth_not_expr): Call it.
24630
24631 2011-03-25  Jeff Law  <law@redhat.com>
24632
24633         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
24634         va_end.
24635         * c-family/c-common.c (def_fn_type): Likewise.
24636         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
24637         * emit-rtl.c (gen_rtvec): Likewise.
24638         * lto/lto-lang.c (def_fn_type): Likewise.
24639
24640 2011-03-25  Richard Guenther  <rguenther@suse.de>
24641
24642         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
24643         also generate copies.
24644         (fini_copy_prop): Handle constant values properly.
24645
24646 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
24647
24648         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
24649         mode size instead of bitsize with DWARF2_ADDR_SIZE.
24650         (hash_loc_operands, compare_loc_operands): Handle
24651         DW_OP_GNU_entry_value.
24652
24653 2011-03-25  Kai Tietz  <ktietz@redhat.com>
24654
24655         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
24656         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
24657         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
24658         comment and use macro TARGET_64BIT_MS_ABI instead.
24659         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
24660         and change default behavior for 32-bit MS_ABI.
24661         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
24662         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
24663         32-bit, too.
24664         (ix86_cfun_abi): Likewise.
24665         (ix86_maybe_switch_abi): Adjust comment.
24666         (init_cumulative_args): Check for bit-ness in MS_ABI case.
24667         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
24668         instead of checking for SYSV_ABI.
24669         (ix86_nsaved_sseregs): Likewise.
24670         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
24671         to 16 bytes.
24672         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
24673         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
24674         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
24675         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
24676         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
24677
24678 2011-03-25  Richard Guenther  <rguenther@suse.de>
24679
24680         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
24681         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
24682         (verify_gimple): Remove.
24683         * tree-cfg.c (verify_gimple_call): Merge verification
24684         from verify_stmts.
24685         (verify_gimple_phi): Merge verification from verify_stmts.
24686         (verify_gimple_label): New function.
24687         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
24688         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
24689         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
24690         (verify_stmts): Rename to verify_gimple_in_cfg.
24691         (verify_gimple_in_cfg): New function.
24692         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
24693         * tree-ssa.c (verify_ssa): Likewise.
24694         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
24695
24696 2011-03-25  Richard Guenther  <rguenther@suse.de>
24697
24698         * passes.c (init_optimization_passes): Add FRE pass after
24699         early SRA.
24700
24701 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
24702             Andrew Stubbs  <ams@codesourcery.com>
24703
24704         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
24705         for Cortex-A8.
24706         (arm_movdi_vfp_cortexa8): New pattern.
24707         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
24708         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
24709         instructions when tuning for Cortex-A8.  Set attribute "arch".
24710         * config/arm/arm.md: Move include arm-tune.md up a bit.
24711         (define_attr "arch"): Add "onlya8" and "nota8" values.
24712         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
24713
24714 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
24715
24716         PR bootstrap/48282
24717         Revert:
24718         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
24719
24720         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
24721         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
24722         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
24723         * passes.c (init_optimization_passes): Move
24724         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
24725
24726 2011-03-25  Kai Tietz  <ktietz@redhat.com>
24727
24728         * c-typeck.c (comptypes_internal): Replace target
24729         hook call of comp_type_attributes by version in tree.c file.
24730         * gimple.c (gimple_types_compatible_p_1): Likewise.
24731         * tree-ssa.c (useless_type_conversion_p): Likewise.
24732         * tree.c (build_type_attribute_qual_variant): Likewise.
24733         (attribute_value_equal): New static helper function.
24734         (comp_type_attributes): New function.
24735         (merge_attributes): Use attribute_value_equal for comparison.
24736         (attribute_list_contained): Likewise.
24737         * tree.h (comp_type_attributes): New prototype.
24738
24739 2011-03-25  Richard Guenther  <rguenther@suse.de>
24740
24741         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
24742         of complex types at -O0.
24743         (verify_gimple_assign_binary): Likewise.
24744         (verify_gimple_assign_ternary): Likewise.
24745
24746 2011-03-24  Mark Wielaard  <mjw@redhat.com>
24747
24748         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
24749         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
24750
24751 2011-03-24  Mark Wielaard  <mjw@redhat.com>
24752
24753         PR debug/48041
24754         * dwarf2out.c (output_abbrev_section): Only write table when
24755         abbrev_die_table_in_use > 1.
24756
24757 2011-02-24  Richard Henderson  <rth@redhat.com>
24758
24759         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
24760         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
24761         (alpha_expand_unaligned_load_words): Use extql.
24762         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
24763         (emit_insxl): Handle all modes for consistency.
24764
24765 2011-02-24  Richard Henderson  <rth@redhat.com>
24766
24767         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
24768         (alpha_expand_unaligned_load): Likewise.
24769         (alpha_expand_unaligned_store): Likewise.
24770         (alpha_expand_unaligned_load_words): Likewise.
24771         (alpha_expand_unaligned_store_words): Likewise.
24772         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
24773         (alpha_split_lock_test_and_set_12): Likewise.
24774         (print_operand, alpha_fold_builtin_extxx): Likewise.
24775         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
24776         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
24777         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
24778         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
24779         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
24780         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
24781         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
24782         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
24783         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
24784         (extwl, extll, extql): Similarly.
24785         (inswh, inslh, insqh): Similarly.
24786         (mskbl, mskwl, mskll, mskql): Similarly.
24787         (mskwh, msklh, mskqh): Similarly.
24788
24789 2011-02-24  Richard Henderson  <rth@redhat.com>
24790
24791         * config/alpha/alpha.md (attribute isa): Add er, ner.
24792         (attribute enabled): Handle them.
24793         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
24794
24795 2011-02-24  Richard Henderson  <rth@redhat.com>
24796
24797         * config/alpha/alpha.md (attribute isa): Add vms.
24798         (attribute enabled): Handle it.
24799         (*movsf): Merge *movsf_{nofix,fix,nofp}.
24800         (*movdf): Merge *movdf_{nofix,fix,nofp}.
24801         (*movtf): Rename from *movtf_internal for consistency.
24802         (*movsi): Merge with *movsi_nt_vms.
24803         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
24804         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
24805         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
24806         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
24807
24808 2011-02-24  Richard Henderson  <rth@redhat.com>
24809
24810         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
24811         (extendqisi2, extendhisi2): Likewise.
24812         (extendqidi2): Simplify BWX/non-BWX expansions.
24813         (extendhidi2): Similarly.
24814
24815 2011-02-24  Richard Henderson  <rth@redhat.com>
24816
24817         * config/alpha/alpha.md (attribute isa): New.
24818         (attribute enabled): New.
24819         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
24820         (zero_extendqisi2, zero_extendqidi2): Similarly.
24821         (zero_extendhisi2, zero_extendhidi2): Similarly.
24822         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
24823
24824 2011-02-24  Richard Henderson  <rth@redhat.com>
24825
24826         * config/alpha/predicates.md (input_operand): Revert last change;
24827         update comment to mention 32-bit VMS rather than Windows.
24828
24829 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
24830
24831         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
24832         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
24833         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
24834         * passes.c (init_optimization_passes): Move
24835         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
24836
24837 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
24838
24839         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
24840
24841 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
24842
24843         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
24844         correctly.
24845
24846 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
24847
24848         PR debug/48204
24849         * simplify-rtx.c (simplify_const_unary_operation): Call
24850         real_convert when changing mode class with FLOAT_EXTEND.
24851
24852 2011-03-24  Nick Clifton  <nickc@redhat.com>
24853
24854         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
24855         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
24856         * config/rx/rx.c (rx_option_override): Set align_jumps,
24857         align_loops and align_labels if not set by the user.
24858         (rx_align_for_label): New function.
24859         (rx_max_skip_for_label): New function.
24860         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
24861         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
24862         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
24863         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
24864         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
24865
24866 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
24867
24868         PR rtl-optimization/48263
24869         * optabs.c (expand_binop_directly): Reinstate convert_modes code
24870         and original commutative_p handling.  Use maybe_gen_insn.
24871
24872 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
24873
24874         * reload.c (find_reloads_subreg_address): Add address_reloaded
24875         parameter and return true there if the full address has been
24876         reloaded.
24877         (find_reloads_toplev): Pass address_reloaded flag.
24878         (find_reloads_address_1): Don't use address_reloaded parameter.
24879
24880 2011-03-24  Jeff Law  <law@redhat.com>
24881
24882         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
24883         unused variable "ann".
24884         (remove_unused_locals): Likewise.
24885
24886         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
24887         statement.
24888
24889         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
24890         after it is freed.
24891
24892 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
24893
24894         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
24895         for invalid symbolic addresses.
24896         (s390_secondary_reload): Don't use s390_check_symref_alignment for
24897         larl operands.
24898
24899 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
24900
24901         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
24902         the argument in calls to fold_truth_not_expr.
24903
24904 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
24905
24906         * tree.c (record_node_allocation_statistics): New function.
24907         (make_node_stat, copy_node_stat, build_string): Call it.
24908         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
24909         (build1_stat, build_omp_clause): Likewise.
24910
24911 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
24912
24913         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
24914         last commit.
24915
24916 2011-03-24  Richard Guenther  <rguenther@suse.de>
24917
24918         PR tree-optimization/48271
24919         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
24920         blocks that still exist.
24921
24922 2011-03-24  Richard Guenther  <rguenther@suse.de>
24923
24924         PR tree-optimization/48270
24925         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
24926         not free datarefs before ddrs.
24927
24928 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
24929
24930         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
24931         from the address built for a reference with variable offset.
24932
24933 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
24934
24935         PR target/48237
24936         * config/i386/i386.md (*movdf_internal_rex64): Do not split
24937         alternatives that can be handled with movq or movabsq insn.
24938         (*movdf_internal): Disable for !TARGET_64BIT.
24939         (*movdf_internal_nointeger): Ditto.
24940         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
24941
24942 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
24943
24944         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
24945         (FUNCTION_ARG_ADVANCE): Likewise.
24946         * tm.texi.in: Change references to them to hook references.
24947         * tm.texi: Regenerate.
24948         * targhooks.c (default_function_arg): Eliminate check for target macro.
24949         (default_function_incoming_arg): Likewise.
24950         (default_function_arg_advance): Likewise.
24951         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
24952         (function_arg_advance): Likewise.
24953         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
24954
24955 2011-03-24  Richard Guenther  <rguenther@suse.de>
24956
24957         PR middle-end/48269
24958         * tree-object-size.c (addr_object_size): Do not double-account
24959         for MEM_REF offsets.
24960
24961 2011-03-24  Diego Novillo  <dnovillo@google.com>
24962
24963         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
24964         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
24965         (lto_input_data_block): Move from lto-opts.c.  Make extern.
24966         Update all users.
24967         (lto_input_string): Rename from input_string.  Make extern.
24968         Update all users.
24969         * lto-streamer-out.c (lto_output_string_with_length): Rename from
24970         output_string_with_length.
24971         Output 0 to indicate a non-NULL string.  Update all callers to
24972         not emit 0.
24973         (lto_output_string): Rename from output_string.  Make extern.
24974         Update all users.
24975         (lto_output_decl_state_streams): Make extern.
24976         (lto_output_decl_state_refs): Make extern.
24977         * lto-streamer.h (lto_input_string): Declare.
24978         (lto_input_data_block): Declare.
24979         (lto_output_string): Declare.
24980         (lto_output_string_with_length): Declare.
24981         (lto_output_decl_state_streams): Declare.
24982         (lto_output_decl_state_refs): Declare.
24983
24984 2011-03-24  Richard Guenther  <rguenther@suse.de>
24985
24986         PR tree-optimization/46562
24987         * tree.c (build_invariant_address): New function.
24988         * tree.h (build_invariant_address): Declare.
24989         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
24990         a renamed function moved ...
24991         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
24992         Take valueization callback parameter.
24993         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
24994         * gimple-fold.h: New file.
24995         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
24996         (ccp_fold, fold_const_aggregate_ref,
24997         fold_ctor_reference, fold_nonarray_ctor_reference,
24998         fold_array_ctor_reference, fold_string_cst_ctor_reference,
24999         get_base_constructor): Move ...
25000         * gimple-fold.c: ... here.
25001         (gimple_fold_stmt_to_constant_1): New function
25002         split out from ccp_fold.  Take a valueization callback parameter.
25003         Valueize all operands.
25004         (gimple_fold_stmt_to_constant): New wrapper function.
25005         (fold_const_aggregate_ref_1): New function split out from
25006         fold_const_aggregate_ref.  Take a valueization callback parameter.
25007         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
25008         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
25009         invariant POINTER_PLUS_EXPRs to invariant form.
25010         (vn_valueize): New function.
25011         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
25012         * tree-vrp.c (vrp_valueize): New function.
25013         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
25014         to fold statements to constants.
25015         * tree-ssa-pre.c (eliminate): Properly guard propagation of
25016         function declarations.
25017         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
25018         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
25019
25020 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
25021
25022         * config/h8300/predicates.md (jump_address_operand): Fix register
25023         mode check.
25024
25025 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
25026
25027         * doc/invoke.texi (max-stores-to-sink): Document.
25028         * params.h (MAX_STORES_TO_SINK): Define.
25029         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
25030         if either vectorization or if-conversion is disabled.
25031         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
25032         tree-vect-data-refs.c vect_equal_offsets.
25033         (dr_equal_offsets_p): New function.
25034         (find_data_references_in_bb): Remove static.
25035         * tree-data-ref.h (find_data_references_in_bb): Declare.
25036         (dr_equal_offsets_p): Likewise.
25037         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
25038         (vect_drs_dependent_in_basic_block): Update calls to
25039         vect_equal_offsets.
25040         (vect_check_interleaving): Likewise.
25041         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
25042         (cond_if_else_store_replacement): Rename to...
25043         (cond_if_else_store_replacement_1): ... this.  Change arguments and
25044         documentation.
25045         (cond_if_else_store_replacement): New function.
25046         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
25047         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
25048
25049 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
25050
25051         PR target/46934
25052         * config/arm/arm.md (casesi): Use the gen_int_mode() function
25053         to subtract lower bound instead of GEN_INT().
25054
25055 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
25056
25057         PR other/48179
25058         PR other/48221
25059         PR other/48234
25060         * doc/extend.texi (Alignment): Move section to match order in TOC.
25061         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
25062         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
25063
25064 2011-03-23  Jeff Law  <law@redhat.com>
25065
25066         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
25067         before removing the edge.
25068
25069         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
25070         it may have been freed by redirect_branch_edge or
25071         redirect_edge_succ_nodup.
25072
25073 2011-03-23  Richard Guenther  <rguenther@suse.de>
25074
25075         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
25076         (check_va_list_escapes): Likewise.
25077         (check_all_va_list_escapes): Likewise.
25078
25079 2011-03-23  Richard Guenther  <rguenther@suse.de>
25080
25081         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
25082         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
25083         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
25084         (alias.o): Likewise.
25085         (ipa-type-escape.o): Remove.
25086         (ipa-struct-reorg.o): Likewise.
25087         (GTFILES): Remove ipa-struct-reorg.c.
25088         * alias.c: Do not include ipa-type-escape.h.
25089         * tree-ssa-alias.c: Likewise.
25090         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
25091         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
25092         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
25093         and ipa-type-escape passes.
25094         * tree-pass.h (pass_ipa_type_escape): Remove.
25095         (pass_ipa_struct_reorg): Likewise.
25096         * ipa-struct-reorg.h: Remove.
25097         * ipa-struct-reorg.c: Likewise.
25098         * ipa-type-escape.h: Likewise.
25099         * ipa-type-escape.c: Likewise.
25100         * doc/invoke.texi (-fipa-struct-reorg): Remove.
25101         (--param struct-reorg-cold-struct-ratio): Likewise.
25102         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
25103         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
25104         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
25105
25106 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25107
25108         * config/s390/2084.md: Enable all insn reservations also for z9_ec
25109         cpu attribute value.
25110         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
25111         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
25112         * config/s390/s390.c (processor_flags_table): New constant array.
25113         (s390_handle_arch_option): Remove.
25114         (s390_handle_option): Remove s390_handle_arch_option invocations
25115         and OPT_mwarn_framesize_ handling.
25116         (s390_option_override): Remove s390_handle_arch_option invocation.
25117         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
25118         warnings.
25119         * config/s390/s390.md (cpu attribute): Add z9_ec value.
25120         * config/s390/s390.opt (s390_tune, s390_arch)
25121         (march=): Replace s390_arch_option enum and values with
25122         processor_type.  Set variable name to s390_arch.  Set
25123         initialization value.
25124         (mtune=): Replace s390_arch_option with processor_type.  Set
25125         variable name to s390_tune.  Set initialization value.
25126
25127 2011-03-23  Julian Brown  <julian@codesourcery.com>
25128
25129         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
25130         accesses which are not naturally aligned.
25131
25132 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
25133
25134         PR target/47553
25135         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
25136
25137 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
25138
25139         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
25140         parameter from "int" to "enum insn_code".
25141         (expand_operand_type): New enum.
25142         (expand_operand): New structure.
25143         (create_expand_operand): New function.
25144         (create_fixed_operand, create_output_operand): Likewise
25145         (create_input_operand, create_convert_operand_to): Likewise.
25146         (create_convert_operand_from, create_address_operand): Likewise.
25147         (create_integer_operand): Likewise.
25148         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
25149         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
25150         (expand_insn, expand_jump_insn): Likewise.
25151         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
25152         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
25153         (expand_movstr, expand_builtin___clear_cache): Likewise.
25154         (expand_builtin_lock_release): Likewise.
25155         * explow.c (allocate_dynamic_stack_space): Likewise.
25156         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
25157         and use the default handling in that case.
25158         * expmed.c (check_predicate_volatile_ok): Delete.
25159         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
25160         (emit_cstore): Likewise.
25161         * expr.c (emit_block_move_via_movmem): Likewise.
25162         (set_storage_via_setmem, expand_assignment): Likewise.
25163         (emit_storent_insn, try_casesi): Likewise.
25164         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
25165         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
25166         (expand_vec_shift_expr, expand_binop_directly): Likewise.
25167         (expand_twoval_unop, expand_twoval_binop): Likewise.
25168         (expand_unop_direct, emit_indirect_jump): Likewise.
25169         (emit_conditional_move, vector_compare_rtx): Likewise.
25170         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
25171         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
25172         (expand_sync_lock_test_and_set): Likewise.
25173         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
25174         (emit_unop_insn): Likewise.
25175         (expand_copysign_absneg): Change icode to an insn_code.
25176         (create_convert_operand_from_type): New function.
25177         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
25178         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
25179         (expand_insn, expand_jump_insn): Likewise.
25180         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
25181         than const_int_operand for operand 2.
25182
25183 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25184
25185         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
25186         if possible.
25187
25188 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
25189
25190         * emit-rtl.c (emit_pattern_before_noloc): New function.
25191         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
25192         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
25193         (emit_pattern_after_noloc): New function.
25194         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
25195         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
25196
25197 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
25198
25199         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
25200         (__ffsDI2): Likewise.
25201
25202 2011-03-22  Richard Henderson  <rth@redhat.com>
25203
25204         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
25205         of !TARGET_ABI_OPEN_VMS.
25206         (alpha_trampoline_init, alpha_start_function): Likewise.
25207         (alpha_expand_epilogue, alpha_file_start): Likewise.
25208         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
25209         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
25210         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
25211         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
25212         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
25213
25214 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25215
25216         * config/s390/s390-opts.h: New.
25217         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
25218         s390_arch_flags, s390_warn_framesize, s390_stack_size,
25219         s390_stack_guard): Remove.
25220         (s390_handle_arch_option): Return void.  Take enum
25221         s390_arch_option value instead of string and searching array.
25222         (s390_handle_option): Don't assert that global structures are in
25223         use.  Access variables via opts pointer.  Use error_at.  Don't use
25224         sscanf for -mstack-guard= or -mstack-size=.  Update call to
25225         s390_handle_arch_option.
25226         (s390_option_override): Update call to s390_handle_arch_option.
25227         (s390_emit_prologue): Use %d format for s390_stack_size in
25228         diagnostic.  Use %wd for HOST_WIDE_INT.
25229         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
25230         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
25231         * config/s390/s390.opt (config/s390/s390-opts.h): New
25232         HeaderInclude entry.
25233         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
25234         s390_arch_flags, s390_warn_framesize): New Variable entries.
25235         (s390_arch_option): New Enum and EnumValue entries.
25236         (march=): Use Enum instead of Var.
25237         (mstack-guard=, mstack-size=): Use UInteger and Var.
25238         (mtune=): Use Enum.
25239
25240 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25241
25242         * config/score/score.c (score_handle_option): Don't assert that
25243         global structures are in use.  Access target_flags via opts
25244         pointer.  Use value of -march= option to determine target_flags
25245         settings.
25246         * config/score/score.opt (march=): Use Enum.
25247         (score_arch): New Enum and EnumValue entries.
25248
25249 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25250
25251         * config/mep/mep.c (option_mtiny_specified): Remove.
25252         (mep_option_override): Move register handling for -mivc2 from
25253         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
25254         instead of option_mtiny_specified.
25255         (mep_handle_option): Access target_flags via opts pointer.  Don't
25256         assert that global structures are in use.  Defer part of -mivc2
25257         handling and move it to mep_option_override.
25258         * config/mep/mep.opt (IVC2): New Mask entry.
25259         (mivc2): Use Var and Defer instead of Mask.
25260
25261 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25262
25263         * config/v850/v850-opts.h: New.
25264         * config/v850/v850.c (small_memory): Replace with
25265         small_memory_physical_max array.  Make that array static const.
25266         (v850_handle_memory_option): Take integer value of argument.  Take
25267         gcc_options pointer, option text and location.  Return void.
25268         Update for changes to small memory structures.
25269         (v850_handle_option): Access target_flags via opts pointer.  Don't
25270         assert that global structures are in use.  Update calls to
25271         v850_handle_memory_option.
25272         (v850_encode_data_area): Update references to small memory settings.
25273         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
25274         (enum small_memory_type): Move to v850-opts.h.
25275         * config/v850/v850.opt (config/v850/v850-opts.h): New
25276         HeaderInclude entry.
25277         (small_memory_max): New Variable entry.
25278         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
25279         (mtda, mzda): Likewise.
25280
25281 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25282
25283         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
25284         pointer.  Don't assert that global structures are in use.
25285
25286 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25287
25288         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
25289         via opts pointer.  Don't assert that global structures are in use.
25290
25291 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25292
25293         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
25294         (munix=93): Use Var.
25295         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
25296         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
25297         * config/pa/pa-opts.h: New.
25298         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
25299         (pa_handle_option): Don't assert that global structures are in
25300         use.  Access target_flags via opts pointer.  Don't handle
25301         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
25302         OPT_munix_98 here.
25303         (pa_option_override): Handle deferred OPT_mfixed_range_.
25304
25305 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25306
25307         * config/mn10300/mn10300-opts.h: New.
25308         * config/mn10300/mn10300.c (mn10300_processor,
25309         mn10300_tune_string): Remove.
25310         (mn10300_handle_option): Don't assert that global structures are
25311         in use.  Access mn10300_processor via opts pointer.  Don't handle
25312         OPT_mtune_ here.
25313         * config/mn10300/mn10300.h (enum processor_type): Move to
25314         mn10300-opts.h.
25315         (mn10300_processor): Remove.
25316         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
25317         HeaderInclude entry.
25318         (mn10300_processor): New Variable entry.
25319         (mtune=): Use Var.
25320
25321 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25322
25323         * config/microblaze/microblaze.c: Don't include opts.h.
25324         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
25325         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
25326         (mno-clearbss): Use Var and Warn.
25327
25328 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25329
25330         * config/m32r/m32r-opts.h: New.
25331         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
25332         (m32r_handle_option): Don't assert that global structures are in
25333         use.  Access target_flags and m32r_cache_flush_func via opts
25334         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
25335         OPT_mno_flush_trap here.
25336         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
25337         include of m32r-opts.h.
25338         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
25339         HeaderInclude entry.
25340         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
25341         (mmodel=): Use Enum and Var.
25342         (m32r_model): New Enum and EnumValue entries.
25343         (mno-flush-trap): Use Var.
25344         (msdata=): Use Enum and Var.
25345         (m32r_sdata): New Enum and EnumValue entries.
25346
25347 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25348
25349         * config/m32c/m32c.c: Don't include opts.h.
25350         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
25351         m32c_handle_option): Remove.
25352         (m32c_option_override): Check global_options_set.x_target_memregs
25353         instead of target_memregs_set.
25354         * config/m32c/m32c.h (target_memregs): Remove.
25355         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
25356         variable.
25357
25358 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25359
25360         * config/iq2000/iq2000-opts.h: New.
25361         * config/iq2000/iq2000.c: Don't include opts.h.
25362         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
25363         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
25364         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
25365         HeaderInclude entry.
25366         (iq2000_tune): New Variable entry.
25367         (march=): Add comment.  Use Enum.
25368         (iq2000_arch): New Enum and EnumValue entries.
25369         (mcpu=): Use Enum and Var.
25370         (iq2000_tune): New Enum and EnumValue entries.
25371
25372 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25373
25374         * config/ia64/ia64-opts.h: New.
25375         * config/ia64/ia64.c (ia64_tune): Remove.
25376         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
25377         here.  Use error_at.
25378         (ia64_option_override): Handle deferred OPT_mfixed_range_.
25379         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
25380         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
25381         HeaderInclude entry.
25382         (ia64_tune): New Variable entry.
25383         (mfixed-range=): Use Defer and Var.
25384         (mtune=): Use Enum and Var.
25385         (ia64_tune): New Enum and EnumValue entries.
25386
25387 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25388
25389         * config/frv/frv-opts.h: New.
25390         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
25391         frv-opts.h.
25392         (frv_cpu_type): Remove.
25393         * config/frv/frv.c: Don't include opts.h.
25394         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
25395         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
25396         (frv_cpu_type): New Variable entry.
25397         (frv_cpu): New Enum and EnumValue entries.
25398
25399 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25400
25401         * config/cris/cris.c (cris_handle_option): Access target_flags via
25402         opts pointer.  Don't assert that global structures are in use.
25403         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
25404         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
25405
25406 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25407
25408         * config/bfin/bfin-opts.h: New.
25409         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
25410         bfin_si_revision, bfin_workarounds): Remove.
25411         (bfin_cpus): Make static const.
25412         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
25413         not bfin_lib_id_given.
25414         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
25415         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
25416         pointer. Use error_at.  Don't assert that global structures are in use.
25417         * config/bfin/bfin.h: Include bfin-opts.h.
25418         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
25419         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
25420         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
25421         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
25422         entries.
25423
25424 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25425
25426         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
25427         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
25428         or -msoft-float here.
25429         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
25430         -msoft-float and -mhard-float.
25431         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
25432         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
25433         msoft-float.
25434         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
25435         -msoft-float.
25436         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
25437         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
25438         not mhard-float.
25439         (LIBGCC_SPEC): Don't handle -msoft-float.
25440         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
25441         -mhard-float.
25442         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
25443         msoft-float.
25444         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
25445         -mfloat-abi=*, not -msoft-float and -mhard-float.
25446         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
25447         -msoft-float.
25448         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
25449         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
25450         mhard-float and msoft-float.
25451         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
25452         mfloat-abi=soft in comments, not mhard-float and msoft-float.
25453         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
25454         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
25455         mhard-float.
25456         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
25457         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
25458         msoft-float.
25459         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
25460         not mhard-float.
25461         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
25462         not msoft-float.
25463
25464 2011-03-22  Richard Henderson  <rth@redhat.com>
25465
25466         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
25467         TARGET_ABI_WINDOWS_NT.
25468         (alpha_output_function_end_prologue): Likewise.
25469         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
25470         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
25471         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
25472         (trap, *movsi_nt_vms): Likewise.
25473         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
25474         (*tablejump_osf_nt_internal): Remove.
25475         * config/alpha/predicates.md (input_operand): Only test Pmode.
25476
25477 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25478
25479         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
25480         via opts pointer.  Use error_at.  Don't assert that global
25481         structures are in use.
25482
25483 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25484
25485         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
25486         (ix86_handle_option): Access ix86_isa_flags and
25487         ix86_isa_flags_explicit via opts pointer.  Don't assert that
25488         global structures are in use.
25489         (ix86_function_specific_save, ix86_function_specific_restore):
25490         Update ix86_isa_flags_explicit field name.
25491         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
25492         (ix86_isa_flags_explicit): Rename TargetSave entry to
25493         x_ix86_isa_flags_explicit.
25494
25495 2011-03-22  Richard Henderson  <rth@redhat.com>
25496
25497         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
25498         (alpha_option_override, direct_return): Likewise.
25499         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
25500         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
25501         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
25502         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
25503         (alpha_expand_epilogue, alpha_end_function): Likewise.
25504         (alpha_init_libfuncs): Likewise.
25505         (struct machine_function): Remove unicosmk members.
25506         (print_operand) ['t']: Remove.
25507         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
25508         unicosmk_output_module_name, unicosmk_output_common,
25509         current_section_align, unicosmk_output_text_section_asm_op,
25510         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
25511         unicosmk_section_type_flags, unicosmk_unique_section,
25512         unicosmk_asm_named_section, unicosmk_insert_attributes,
25513         unicosmk_output_align, unicosmk_defer_case_vector,
25514         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
25515         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
25516         unicosmk_output_ssib, unicosmk_add_call_info_word,
25517         unicosmk_extern_head, unicosmk_output_default_externs,
25518         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
25519         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
25520         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
25521         * config/alpha/alpha-protos.h: Update.
25522         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
25523         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
25524         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
25525         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
25526         (*mulsi_se, mulvsi3): Likewise.
25527         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
25528         (*divmodsi_internal, call, call_value, realign): Likewise.
25529         (moddi3, umoddi3): Likewise; remove duplicate expander.
25530         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
25531         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
25532         (*movdi_nofix): Remove r/U alternative.
25533         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
25534         * config/alpha/constraints.md ("U"): Remove.
25535         * config/alpha/predicates.md (call_operand"): Don't test
25536         TARGET_ABI_UNICOSMK.
25537
25538 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25539
25540         * target.def (handle_option): Take gcc_options and
25541         cl_decoded_option pointers and location_t.
25542         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
25543         * doc/tm.texi: Regenerate.
25544         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
25545         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
25546         * lto-opts.c (lto_reissue_options): Generate option structure for
25547         targetm.handle_option call.
25548         * opts.c (target_handle_option): Update call to
25549         targetm.handle_option.  Remove assertions about values now passed
25550         down to hook.
25551         * targhooks.c (default_target_handle_option): New.
25552         * targhooks.h (default_target_handle_option): Declare.
25553         * config/alpha/alpha.c: Include opts.h.
25554         (alpha_handle_option): Update to new hook interface.
25555         * config/arm/arm.c: Include opts.h.
25556         (arm_handle_option): Update to new hook interface.
25557         * config/arm/t-arm (arm.o): Update dependencies.
25558         * config/bfin/bfin.c: Include opts.h.
25559         (bfin_handle_option): Update to new hook interface.
25560         * config/cris/cris.c: Include opts.h.
25561         (cris_handle_option): Update to new hook interface.
25562         * config/frv/frv.c: Include opts.h.
25563         (frv_handle_option): Update to new hook interface.
25564         * config/i386/i386.c: Include opts.h.
25565         (ix86_handle_option): Update to new hook interface.
25566         (ix86_valid_target_attribute_inner_p): Generate option structure
25567         for call to ix86_handle_option.
25568         * config/i386/t-i386 (i386.o): Update dependencies.
25569         * config/ia64/ia64.c: Include opts.h.
25570         (ia64_handle_option): Update to new hook interface.
25571         * config/ia64/t-ia64 (ia64.o): Update dependencies.
25572         * config/iq2000/iq2000.c: Include opts.h.
25573         (iq2000_handle_option): Update to new hook interface.
25574         * config/m32c/m32c.c: Include opts.h.
25575         (m32c_handle_option): Update to new hook interface.
25576         * config/m32r/m32r.c: Include opts.h.
25577         (m32r_handle_option): Update to new hook interface.
25578         * config/m68k/m68k.c: Include opts.h.
25579         (m68k_handle_option): Update to new hook interface.
25580         * config/mep/mep.c: Include opts.h.
25581         (mep_handle_option): Update to new hook interface.
25582         * config/microblaze/microblaze.c: Include opts.h.
25583         (microblaze_handle_option): Update to new hook interface.
25584         * config/mips/mips.c: Include opts.h.
25585         (mips_handle_option): Update to new hook interface.
25586         * config/mn10300/mn10300.c: Include opts.h.
25587         (mn10300_handle_option): Update to new hook interface.
25588         * config/pa/pa.c: Include opts.h.
25589         (pa_handle_option): Update to new hook interface.
25590         * config/pdp11/pdp11.c: Include opts.h.
25591         (pdp11_handle_option): Update to new hook interface.
25592         * config/rs6000/rs6000.c: Include opts.h.
25593         (rs6000_handle_option): Update to new hook interface.
25594         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
25595         * config/rx/rx.c: Include opts.h.
25596         (rx_handle_option): Update to new hook interface.
25597         * config/s390/s390.c: Include opts.h.
25598         (s390_handle_option): Update to new hook interface.
25599         * config/score/score.c: Include opts.h.
25600         (score_handle_option): Update to new hook interface.
25601         * config/sh/sh.c: Include opts.h.
25602         (sh_handle_option): Update to new hook interface.
25603         * config/sparc/sparc.c: Include opts.h.
25604         (sparc_handle_option): Update to new hook interface.
25605         * config/v850/v850.c: Include opts.h.
25606         (v850_handle_option): Update to new hook interface.
25607
25608 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25609
25610         * gcc.c (driver_unknown_option_callback): Only permit and save
25611         unknown -Wno- options.
25612         (driver_wrong_lang_callback): Save options directly instead of via
25613         driver_unknown_option_callback.
25614
25615 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
25616
25617         * combine.c (simplify_set): Try harder to find the best CC mode when
25618         simplifying a nested COMPARE on the RHS.
25619
25620 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25621
25622         * config/alpha/gnu.h: Remove.
25623         * config/arc: Remove directory.
25624         * config/arm/netbsd.h: Remove.
25625         * config/arm/t-pe: Remove.
25626         * config/crx: Remove directory.
25627         * config/i386/netbsd.h: Remove.
25628         * config/m68hc11: Remove directory.
25629         * config/m68k/uclinux-oldabi.h: Remove.
25630         * config/mcore/mcore-pe.h: Remove.
25631         * config/mcore/t-mcore-pe: Remove.
25632         * config/netbsd-aout.h: Remove.
25633         * config/rs6000/gnu.h: Remove.
25634         * config/sh/sh-symbian.h: Remove.
25635         * config/sh/symbian-base.c: Remove.
25636         * config/sh/symbian-c.c: Remove.
25637         * config/sh/symbian-cxx.c: Remove.
25638         * config/sh/symbian-post.h: Remove.
25639         * config/sh/symbian-pre.h: Remove.
25640         * config/sh/t-symbian: Remove.
25641         * config/svr3.h: Remove.
25642         * config/vax/netbsd.h: Remove.
25643         * config.build: Don't handle i[34567]86-*-pe.
25644         * config.gcc: Remove handling of deprecations for most deprecated
25645         targets.
25646         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
25647         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
25648         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
25649         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
25650         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
25651         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
25652         Remove cases.
25653         * config.host: Don't handle i[34567]86-*-pe.
25654         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
25655         (ASM_SPEC32): Don't handle -mcall-gnu.
25656         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
25657         -mcall-gnu.
25658         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
25659         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
25660         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
25661         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
25662         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
25663         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
25664         conditional on SYMBIAN.
25665         * configure.ac: Don't handle powerpc*-*-gnu*.
25666         * configure: Regenerate.
25667         * doc/extend.texi (interrupt attribute): Don't mention CRX.
25668         * doc/install-old.texi (m6811, m6812): Don't mention.
25669         * doc/install.texi (arc-*-elf*): Don't document multilib option.
25670         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
25671         (m68k-uclinuxoldabi): Don't mention.
25672         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
25673         Remove.
25674         (-mcall-gnu): Remove.
25675         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
25676         families): Remove constraint documentation.
25677
25678 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
25679
25680         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
25681         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
25682         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
25683
25684 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
25685
25686         PR target/48226
25687         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
25688         vector when peeking at the next token for vector, don't expand the
25689         keywords.
25690
25691 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
25692
25693         * config/avr/avr-protos.h (expand_epilogue): Change prototype
25694         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
25695         * config/avr/avr.c (init_cumulative_args)
25696         (avr_function_arg_advance): Use it.
25697         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
25698         sibcall epilogues.
25699         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
25700         (avr_function_ok_for_sibcall): ...this new function.
25701         (avr_lookup_function_attribute1): New static Function.
25702         (avr_naked_function_p, interrupt_function_p)
25703         (signal_function_p, avr_OS_task_function_p)
25704         (avr_OS_main_function_p): Use it.
25705         * config/avr/avr.md ("sibcall", "sibcall_value")
25706         ("sibcall_epilogue"): New expander.
25707         ("*call_insn", "*call_value_insn"): New insn.
25708         ("call_insn", "call_value_insn"): Remove
25709         ("call", "call_value", "epilogue"): Change expander to handle
25710         sibling calls.
25711
25712 2011-03-21  Nick Clifton  <nickc@redhat.com>
25713
25714         * doc/invoke.texi (Overall Options): Move closing brace to end of
25715         options list.
25716         (Optimization Options): Add missing @gol.
25717         (Directory Options): Likewise.
25718         (i386 and x86-64 Options): Likewise.
25719         (RS6000 and PowerPC Options): Likewise.
25720         (i386 and x86-64 Windows Options): Likewise.
25721         (V850 Options): Add text missing from descriptions.
25722
25723 2011-03-22  Richard Henderson  <rth@redhat.com>
25724
25725         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
25726         (avr_incoming_return_addr_rtx): New.
25727         (emit_push_byte): New.
25728         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
25729         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
25730         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
25731         (emit_pop_byte): New.
25732         (expand_epilogue): Use it.  Pop frame pointer by bytes.
25733         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
25734         (INCOMING_RETURN_ADDR_RTX): New.
25735         (INCOMING_FRAME_SP_OFFSET): New.
25736         (ARG_POINTER_CFA_OFFSET): New.
25737         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
25738         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
25739         (pophi): Remove.
25740
25741         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
25742
25743 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
25744
25745         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
25746         (FUNCTION_ARG_ADVANCE): Likewise.
25747         * tm.texi.in: Change references to them to hook references.
25748         * tm.texi: Regenerate.
25749         * targhooks.c (default_function_arg): Eliminate check for target
25750         macro.
25751         (default_function_incoming_arg): Likewise.
25752         (default_function_arg_advance): Likewise.
25753         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
25754         (function_arg_advance): Likewise.
25755         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
25756
25757 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
25758
25759         * tree.c (build_call_1): New function.
25760         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
25761
25762 2011-03-22  Richard Guenther  <rguenther@suse.de>
25763
25764         PR tree-optimization/48228
25765         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
25766         for single-arg PHIs.
25767
25768 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
25769
25770         PR rtl-optimization/48143
25771         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
25772         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
25773         sse2_cvtps2pd): Likewise.
25774
25775 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25776
25777         * recog.c (canonicalize_change_group): Use validate_unshare_change.
25778
25779 2011-03-22  Richard Guenther  <rguenther@suse.de>
25780
25781         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
25782         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
25783         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
25784         and REALIGN_LOAD_EXPR.
25785         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
25786         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
25787         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
25788         DOT_PROD_EXPR case ...
25789         (expand_expr_real_2): ... here.
25790         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
25791         and REALIGN_LOAD_EXPR.
25792         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
25793         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
25794         (vect_create_epilog_for_reduction): Likewise.
25795         (vectorizable_reduction): Likewise.
25796         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
25797         * tree-vect-stmts.c (vectorizable_load): Likewise.
25798
25799 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
25800
25801         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
25802
25803 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25804
25805         * config/s390/s390.c (s390_delegitimize_address): Fix offset
25806         handling for PLTOFF/GOTOFF.
25807
25808 2011-03-22  Nick Clifton  <nickc@redhat.com>
25809
25810         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
25811         trailing backslash from the end of the macro definition.
25812
25813 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25814
25815         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
25816         and PLT unspecs.
25817
25818 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
25819
25820         * expr.h (prepare_operand): Move to...
25821         * optabs.h (prepare_operand): ...here and change the insn code
25822         parameter from "int" to "enum insn_code".
25823         (insn_operand_matches): Declare.
25824         * expr.c (init_expr_target): Use insn_operand_matches.
25825         (compress_float_constant): Likewise.
25826         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
25827         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
25828         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
25829         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
25830         Likewise.
25831         (gen_cond_trap): Likewise.
25832         (prepare_operand): Likewise.  Change icode to an insn_code.
25833         (insn_operand_matches): New function.
25834         * reload.c (find_reloads_address_1): Use insn_operand_matches.
25835         * reload1.c (gen_reload): Likewise.
25836         * targhooks.c (default_secondary_reload): Likewise.
25837
25838 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
25839
25840         * config/alpha/alpha.md (unspec): New define_c_enum.
25841         (unspecv): Ditto.
25842
25843 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
25844
25845         PR debug/48214
25846         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
25847         between a call and its CALL_ARG_LOCATION note.
25848
25849 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
25850
25851         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
25852
25853 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
25854
25855         PR c/42544
25856         PR c/48197
25857         * c-common.c (shorten_compare): If primopN is first sign-extended
25858         to opN and then zero-extended to result type, set primopN to opN.
25859
25860 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
25861
25862         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
25863         for barrier handlers.
25864
25865 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
25866
25867         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
25868         UNSPEC constants to be in the unspec enumeration, and redefine
25869         all UNSPECV constants to be in the unspecv enumeration, so that
25870         dumps print which unspec/unspec_volatile this is.
25871         * config/rs6000/vector.md (UNSPEC_*): Ditto.
25872         * config/rs6000/paired.md (UNSPEC_*): Ditto.
25873         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
25874         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
25875         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
25876
25877         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
25878         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
25879         UNSPECV_LWSYNC, since these are used as unspec_volatile.
25880         * config/rs6000/sync.md (isync, lwsync): Ditto.
25881
25882 2011-03-21  Richard Guenther  <rguenther@suse.de>
25883
25884         * params.def (lto-min-partition): Fix typo.
25885
25886 2011-03-21  Richard Guenther  <rguenther@suse.de>
25887
25888         PR c/47939
25889         * c-decl.c (grokdeclarator): Drop to the main variant only
25890         for array types.  Drop flag_gen_aux_info check.
25891
25892 2011-03-21  Richard Guenther  <rguenther@suse.de>
25893
25894         PR translation/47911
25895         * params.def (lto-partitions): Fix typo.
25896         (lto-min-partition): Fix wording.
25897
25898 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
25899
25900         * config/rs6000/t-freebsd: Remove duplication from file.
25901
25902 2011-03-21  Richard Guenther  <rguenther@suse.de>
25903
25904         PR middle-end/47661
25905         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
25906
25907 2011-03-21  Richard Guenther  <rguenther@suse.de>
25908
25909         PR lto/48210
25910         * params.def (lto-partitions): Require at least 1 partition.
25911
25912 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25913
25914         * gthr-solaris.h: Remove.
25915         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
25916         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
25917         (LIB_SPEC): Likewise.
25918         * config/sol2.opt (threads): Remove.
25919         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
25920         (sparc*-*-solaris2*): Likewise.
25921         * configure.ac (enable_threads): Enable solaris support.
25922         * configure: Regenerate.
25923         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
25924         * doc/install.texi (Configuration, --enable-threads=lib): Remove
25925         solaris.
25926
25927 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25928
25929         * config.gcc: Obsolete *-*-solaris2.8*.
25930         * doc/install.texi (Specific, *-*-solaris2*): Document it.
25931
25932 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25933
25934         PR bootstrap/48135
25935         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
25936         reference.  Solaris 8 perl works.
25937
25938 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25939
25940         PR bootstrap/48135
25941         * doc/install.texi (Prerequisites): Move jar etc. up.
25942         Explain support library version requirements.
25943
25944 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25945
25946         PR bootstrap/48135
25947         * doc/install.texi (Prerequisites): Move Perl to build
25948         requirements.  Always necessary on Solaris 2 with Sun ld.
25949
25950 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25951
25952         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
25953         binutils 2.21.
25954         (Specific, i?86-*-solaris2.[89]): Likewise.
25955         (Specific, i?86-*-solaris2.10): Likewise.
25956         (Specific, mips-sgi-irix6): Likewise.
25957         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
25958         Update for binutils 2.21.
25959
25960 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25961
25962         * configure.ac (gcc_cv_lto_plugin): Fix typo.
25963         Allow -fuse-linker-plugin for non-default plugin linker.
25964         * configure: Regenerate.
25965
25966 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
25967
25968         PR bootstrap/48167
25969         * gengtype.c (files_rules): Added rule for cp/parser.h.
25970
25971 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
25972
25973         PR target/48213
25974         * config/s390/s390.c (s390_delegitimize_address): Don't call
25975         lowpart_subreg if orig_x has BLKmode.
25976
25977 2011-03-21  Kai Tietz  <ktietz@redhat.com>
25978
25979         PR target/12171
25980         * doc/plugins.texi: Adjust documentation for plugin register_callback.
25981         * tree.h (attribute_spec): Add new member affects_type_identity.
25982         * attribs.c (empty_attribute_table): Adjust attribute_spec
25983         initializers.
25984         * config/alpha/alpha.c: Likewise.
25985         * config/arc/arc.c: Likewise.
25986         * config/arm/arm.c: Likewise.
25987         * config/avr/avr.c: Likewise.
25988         * config/bfin/bfin.c: Likewise.
25989         * config/crx/crx.c: Likewise.
25990         * config/darwin.h: Likewise.
25991         * config/h8300/h8300.c: Likewise.
25992         * config/i386/cygming.h: Likewise.
25993         * config/i386/i386.c: Likewise.
25994         * config/ia64/ia64.c: Likewise.
25995         * config/m32c/m32c.c: Likewise.
25996         * config/m32r/m32r.c: Likewise.
25997         * config/m68hc11/m68hc11.c: Likewise.
25998         * config/m68k/m68k.c: Likewise.
25999         * config/mcore/mcore.c: Likewise.
26000         * config/mep/mep.c: Likewise.
26001         * config/microblaze/microblaze.c: Likewise.
26002         * config/mips/mips.c: Likewise.
26003         * config/rs6000/rs6000.c: Likewise.
26004         * config/rx/rx.c: Likewise.
26005         * config/sh/sh.c: Likewise.
26006         * config/sol2.h: Likewise.
26007         * config/sparc/sparc.c: Likewise.
26008         * config/spu/spu.c: Likewise.
26009         * config/stormy16/stormy16.c: Likewise.
26010         * config/v850/v850.c: Likewise.
26011
26012 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
26013
26014         * simplify-rtx.c (simplify_binary_operation_1): Handle
26015         (xor (and A B) C) case when B and C are both constants.
26016
26017 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
26018
26019         * tree-dfa.c (add_referenced_var): Fix typo in comment.
26020
26021 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
26022
26023         PR bootstrap/48168
26024         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
26025
26026 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
26027
26028         PR rtl-optimization/48156
26029         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
26030         assume df and df_lr are not NULL.
26031
26032 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
26033
26034         PR debug/48023
26035         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
26036         between a call and its CALL_ARG_LOCATION note.
26037
26038 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
26039
26040         PR debug/48178
26041         * config/sh/sh.c (find_barrier): Don't emit a constant pool
26042         between a call and its corresponding CALL_ARG_LOCATION note.
26043
26044 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
26045
26046         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
26047         instead of loop. Use HARD_REGISTER_NUM_P predicate.
26048         * haifa-sched.c (setup_ref_regs): Ditto.
26049         * caller-save.c (add_used_regs_1): Ditto.
26050         * dse.c (look_for_hardregs): Ditto.
26051         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
26052         * sched-rgn.c (check_live_1): Ditto.
26053
26054 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
26055
26056         * c-decl.c (diagnose_mismatched_decls): Give an error for
26057         redefining a typedef with variably modified type.
26058
26059 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
26060
26061         * c-decl.c (grokfield): Don't allow typedefs for structures or
26062         unions with no tag by default.
26063         * doc/extend.texi (Unnamed Fields): Update.
26064
26065 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
26066
26067         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
26068         Rewrite using indirect functions.
26069         (lwp_slwpcb): Ditto.
26070         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
26071         (avx_vinsertf128<mode>): Ditto.
26072
26073 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26074
26075         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
26076         unspecs.
26077
26078 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26079
26080         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
26081         splitting between a call and its corresponding CALL_ARG_LOCATION note.
26082
26083 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
26084
26085         PR rtl-optimization/48170
26086         * gcse.c (hoist_code): Remove bogus asserts.
26087
26088 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
26089
26090         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
26091         computation for prologue/epilogue.
26092
26093 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26094
26095         * Makefile.in (check-consistency): Remove.
26096
26097 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
26098
26099         PR debug/48176
26100         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
26101         arange_table_in_use is 0, but either text_section_used or
26102         cold_text_section_used is true.  Don't call it if
26103         !info_section_emitted.
26104
26105 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
26106
26107         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
26108         FUNCTION_VALUE_REGNO_P): Remove.
26109         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
26110         Remove.
26111         * config/avr/avr.c (avr_ret_register): Make static inline.
26112         (avr_function_value_regno_p): New function.
26113         (avr_libcall_value): Make static. Add 'func' argument.
26114         (avr_function_value): Make static. Rename 'func' argument to
26115         'fn_decl_or_type', forward it to avr_libcall_value. Call
26116         avr_ret_register function instead of RET_REGISTER macro.
26117         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
26118
26119 2011-03-18  Jason Merrill  <jason@redhat.com>
26120
26121         PR c++/23372
26122         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
26123
26124 2011-03-18  Richard Guenther  <rguenther@suse.de>
26125
26126         * doc/install.texi (--enable-gold): Remove.
26127         (--with-plugin-ld): Document.
26128         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
26129
26130 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
26131
26132         PR middle-end/47790
26133         * expr.c (optimize_bitfield_assignment_op): Revamp to work
26134         again after expansion changes.
26135
26136 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
26137
26138         * combine.c (try_combine): Do simplification only call of
26139         subst() on i2 even when i1 is present. Update comments.
26140
26141 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
26142
26143         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
26144         and UNSPEC_PCREL_SYMOFF.
26145
26146 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26147
26148         * config/s390/s390.md: Use define_c_enum for the unspec constant
26149         definitions.
26150
26151 2011-03-18  Richard Henderson  <rth@redhat.com>
26152             Jakub Jelinek  <jakub@redhat.com>
26153
26154         PR bootstrap/48161
26155         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
26156         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
26157
26158 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
26159
26160         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
26161         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
26162         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
26163         Change return type to bool.
26164         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
26165
26166 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
26167
26168         PR debug/48163
26169         * var-tracking.c (prepare_call_arguments): If CALL target
26170         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
26171         pc instead of looking it up using cselib_lookup and use
26172         Pmode for it if x has VOIDmode.
26173         * dwarf2out.c (gen_subprogram_die): If also both first and
26174         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
26175
26176         PR debug/48163
26177         * function.c (assign_parms): For data.passed_pointer parms
26178         use MEM of data.entry_parm instead of data.entry_parm itself
26179         as DECL_INCOMING_RTL.
26180         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
26181         also when passed and declared mode is the same, DECL_RTL
26182         is a MEM with pseudo as address and DECL_INCOMING_RTL is
26183         a MEM too.
26184
26185 2011-03-16  Jeff Law  <law@redhat.com>
26186
26187         PR rtl-optimization/37273
26188         * ira-costs.c (scan_one_insn): Detect constants living in memory and
26189         handle them like argument loads from stack slots.  Do not double
26190         count memory for memory constants and argument loads from stack slots.
26191
26192 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
26193
26194         PR debug/48160
26195         * var-tracking.c (prepare_call_arguments): Check SUBREG.
26196
26197 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
26198
26199         PR target/48171
26200         * config/i386/i386.opt: Add Save to -mavx and -mfma.
26201
26202 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
26203
26204         PR bootstrap/48153
26205         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
26206         if dwarf_strict.
26207         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
26208         Clear call_arg_locations and call_arg_loc_last always.
26209
26210         PR middle-end/48152
26211         * var-tracking.c (prepare_call_arguments): If argument needs to be
26212         passed by reference, adjust argtype and mode.
26213
26214 2011-03-17  Richard Guenther  <rguenther@suse.de>
26215
26216         PR middle-end/48134
26217         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
26218         a value make sure to fold the statement.
26219
26220 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
26221
26222         PR target/43872
26223         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
26224         return condition with !cfun->calls_alloca.
26225
26226 2011-03-17  Richard Guenther  <rguenther@suse.de>
26227
26228         PR bootstrap/48148
26229         * lto-cgraph.c (input_overwrite_node): Clear the abstract
26230         origin for decls in other ltrans units.
26231         (input_varpool_node): Likewise.
26232
26233 2011-03-17  Richard Guenther  <rguenther@suse.de>
26234
26235         PR middle-end/48165
26236         * tree-object-size.c (compute_object_offset): Properly return
26237         the offset operand of MEM_REFs as sizetype.
26238
26239 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
26240
26241         PR rtl-optimization/48141
26242         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
26243         * dse.c: Include params.h.
26244         (active_local_stores_len): New variable.
26245         (add_wild_read, dse_step1): Clear it when setting active_local_stores
26246         to NULL.
26247         (record_store, check_mem_read_rtx): Decrease it when removing
26248         from the chain.
26249         (scan_insn): Likewise.  Increase it when adding to chain, if it
26250         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
26251         set active_local_stores to NULL before the addition.
26252         * Makefile.in (dse.o): Depend on $(PARAMS_H).
26253
26254         PR rtl-optimization/48141
26255         * dse.c (record_store): If no positions are needed in an insn
26256         that cannot be deleted, at least unchain it from active_local_stores.
26257
26258 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
26259
26260         PR debug/47510
26261         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
26262         (lookup_type_die_strip_naming_typedef): ... here.
26263         (get_context_die): Use it.
26264         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
26265         the anonymous struct named by the naming typedef.
26266
26267 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
26268
26269         PR target/48154
26270         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
26271         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
26272
26273 2011-03-16  Jeff Law  <law@redhat.com>
26274
26275         * tree-vrp.c (identify_jump_threads): Slightly simplify type
26276         check for operands of conditional.  Allow type to be a pointer.
26277
26278 2011-03-16  Richard Guenther  <rguenther@suse.de>
26279
26280         PR tree-optimization/48149
26281         * fold-const.c (fold_binary_loc): Fold
26282         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
26283
26284 2011-03-16  Richard Guenther  <rguenther@suse.de>
26285
26286         PR tree-optimization/26134
26287         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
26288         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
26289         (non_rewritable_mem_ref_base): Handle complex type component
26290         accesses, constrain offsets for vector and complex extracts
26291         more properly.
26292
26293 2011-03-16  Richard Guenther  <rguenther@suse.de>
26294
26295         PR tree-optimization/48146
26296         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
26297         operands avoiding the need for renaming.
26298
26299 2011-03-16  Richard Guenther  <rguenther@suse.de>
26300
26301         * gimple-fold.c (maybe_fold_reference): Open-code relevant
26302         constant folding.  Move MEM_REF canonicalization first.
26303         Rely on fold_const_aggregate_ref for initializer folding.
26304         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
26305
26306 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
26307
26308         PR middle-end/48136
26309         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
26310         arg0/arg1 or their arguments are always fold converted to matching
26311         types.
26312
26313         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
26314         to nargs.
26315
26316 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26317
26318         PR lto/46944
26319         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
26320         Handle in-tree gold.
26321         (ld_vers): Extract binutils version for gold.
26322         (gcc_cv_ld_hidden): Handle gold here.
26323         (gcc_cv_lto_plugin): Determine level of linker plugin support.
26324         * configure: Regenerate.
26325         * config.in: Regenerate.
26326         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
26327         -fuse-linker-plugin otherwise.
26328         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
26329         (LINK_COMMAND_SPEC): Use it.
26330         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
26331
26332 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
26333
26334         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
26335         * calls.c: Remove debug.h include.
26336         (emit_call_1): Don't call virtual_call_token debug hook.
26337         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
26338         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
26339         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
26340         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
26341         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
26342         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
26343         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
26344         dwarf2out_virtual_call): Remove.
26345         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
26346         copy_call_info and virtual_call hooks.
26347         (dwarf2out_init): Don't initialize vcall_insn_table,
26348         debug_dcall_section and debug_vcall_section.
26349         (prune_unused_types): Don't mark nodes from dcall_table.
26350         (dwarf2out_finish): Don't output dcall or vcall tables.
26351         * final.c (final_scan_insn): Don't call direct_call or
26352         virtual_call debug hooks.
26353         * debug.h (struct gcc_debug_hooks): Remove direct_call,
26354         virtual_call_token, copy_call_info and virtual_call hooks.
26355         (debug_nothing_uid): Remove prototype.
26356         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
26357         copy_call_info and virtual_call hooks.
26358         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
26359         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
26360         * debug.c (do_nothing_debug_hooks): Likewise.
26361         (debug_nothing_uid): Remove.
26362         * doc/invoke.texi (-fenable-icf-debug): Remove.
26363         * common.opt (-fenable-icf-debug): Likewise.
26364
26365         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
26366         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
26367         call's MEM.  Handle functions returning aggregate through a hidden
26368         first pointer.  For virtual calls add clobbered pc to call arguments
26369         chain.
26370         * dwarf2out.c (gen_subprogram_die): Emit
26371         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
26372         can't be emitted.
26373
26374         PR debug/45882
26375         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
26376         * rtl.h (ENTRY_VALUE_EXP): Define.
26377         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
26378         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
26379         * print-rtl.c (print_rtx): Likewise.
26380         * gengtype.c (adjust_field_rtx_def): Likewise.
26381         * var-tracking.c (vt_add_function_parameter): Adjust
26382         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
26383         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
26384         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
26385         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
26386         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
26387
26388         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
26389         Call var_location debug hook even on CALL_INSNs.
26390         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
26391         * rtl.def (ENTRY_VALUE): New.
26392         * dwarf2out.c: Include cfglayout.h.
26393         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
26394         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
26395         (struct call_arg_loc_node): New type.
26396         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
26397         tail_call_site_count): New variables.
26398         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
26399         DW_TAG_GNU_call_site_parameter.
26400         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
26401         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
26402         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
26403         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
26404         and DW_AT_GNU_all_source_call_sites.
26405         (mem_loc_descriptor): Handle ENTRY_VALUE.
26406         (add_src_coords_attributes): Don't add enything if
26407         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
26408         (dwarf2out_abstract_function): Save and clear call_arg_location,
26409         call_site_count and tail_call_site_count around dwarf2out_decl call.
26410         (gen_call_site_die): New function.
26411         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
26412         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
26413         (dwarf2out_function_decl): Clear call_arg_locations,
26414         call_arg_loc_last, set call_site_count and tail_call_site_count
26415         to -1 and free block_map.
26416         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
26417         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
26418         followed by any real instructions.
26419         (dwarf2out_begin_function): Set call_site_count and
26420         tail_call_site_count to 0.
26421         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
26422         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
26423         attempt to force a DIE for it and worst case remove the attribute.
26424         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
26425         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
26426         the decl itself.
26427         * var-tracking.c: Include tm_p.h.
26428         (vt_stack_adjustments): For calls call note_register_arguments.
26429         (argument_reg_set): New variable.
26430         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
26431         ensure the VALUE is resolved.
26432         (call_arguments): New variable.
26433         (prepare_call_arguments): New function.
26434         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
26435         (struct expand_loc_callback_data): Add ignore_cur_loc field.
26436         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
26437         always use the best expression.
26438         (vt_expand_loc): Add ignore_cur_loc argument.
26439         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
26440         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
26441         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
26442         note for all calls.
26443         (vt_add_function_parameter): Use cselib_lookup_from_insn.
26444         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
26445         argument.  Don't call cselib_preserve_only_values and
26446         cselib_reset_table.
26447         (note_register_arguments): New function.
26448         (vt_initialize): Compute argument_reg_set.  Call
26449         vt_add_function_parameters before processing basic blocks instead of
26450         afterwards.  For calls call prepare_call_arguments before calling
26451         cselib_process_insn.
26452         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
26453         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
26454         (var-tracking.o): Depend on $(TM_P_H).
26455         * cfglayout.h (insn_scope): New prototype.
26456         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
26457         * cfglayout.c (insn_scope): No longer static.
26458         * insn-notes.def (CALL_ARG_LOCATION): New.
26459         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
26460         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
26461         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
26462         nothing for DECL_EXTERNAL BLOCK_VARS.
26463
26464 2011-03-16  Alan Modra  <amodra@gmail.com>
26465
26466         PR target/45844
26467         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
26468         create invalid offset address for vsx splat insn.
26469         * config/rs6000/predicates.md (splat_input_operand): New.
26470         * config/rs6000/vsx.md (vsx_splat_*): Use it.
26471
26472 2011-03-15  Xinliang David Li  <davidxl@google.com>
26473
26474         PR c/47837
26475         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
26476         (normalize_preds): New function.
26477         (is_use_properly_guarded): Normalize def predicates.
26478
26479 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
26480
26481         PR target/46788
26482         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
26483         in the output template.
26484
26485 2011-03-15  Richard Guenther  <rguenther@suse.de>
26486
26487         PR middle-end/47650
26488         * tree-pretty-print.c (dump_function_declaration): Properly
26489         dump unprototyped and varargs function types.
26490
26491 2011-03-15  Richard Guenther  <rguenther@suse.de>
26492
26493         PR tree-optimization/13954
26494         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
26495         and friends.
26496
26497 2011-03-15  Richard Guenther  <rguenther@suse.de>
26498
26499         PR tree-optimization/48037
26500         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
26501         selects into BIT_FIELD_REFs.
26502         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
26503         vector select.
26504
26505 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
26506
26507         PR tree-optimization/48129
26508         * builtins.c (fold_builtin_snprintf): Convert to type of
26509         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
26510         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
26511
26512 2011-03-15  Richard Guenther  <rguenther@suse.de>
26513
26514         PR tree-optimization/41490
26515         * tree-ssa-dce.c (propagate_necessity): Handle returns without
26516         value but with VUSE.
26517         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
26518         return statements.
26519         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
26520         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
26521         * tree-tailcall.c (find_tail_calls): Ignore returns.
26522
26523 2011-03-15  Richard Guenther  <rguenther@suse.de>
26524
26525         PR middle-end/48031
26526         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
26527         or variable-indexed array accesses when in gimple form.
26528
26529 2011-03-15  Richard Guenther  <rguenther@suse.de>
26530
26531         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
26532
26533 2011-03-15  Alan Modra  <amodra@gmail.com>
26534
26535         PR target/48032
26536         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
26537         presume symbol_refs without a symbol_ref_decl are suitably
26538         aligned, nor other trees we may see here.  Handle anchor symbols.
26539         (legitimate_constant_pool_address_p): Comment.  Add mode param.
26540         Check cmodel=medium addresses.  Adjust all calls.
26541         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
26542         creating cmodel=medium optimized access to locals.
26543         * config/rs6000/constraints.md (R): Pass QImode to
26544         legitimate_constant_pool_address_p.
26545         * config/rs6000/predicates.md (input_operand): Pass mode to
26546         legitimate_constant_pool_address_p.
26547         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
26548         Update prototype.
26549
26550 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
26551
26552         PR target/48053
26553         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
26554         64-bit constants being loaded into registers other than GPRs such
26555         as loading 0 into a VSX register.
26556
26557 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26558
26559         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
26560
26561 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
26562
26563         PR middle-end/47917
26564         * builtins.c (fold_builtin_snprintf): New function.
26565         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
26566         (fold_builtin_4): Likewise.
26567
26568         PR middle-end/38878
26569         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
26570         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
26571         and C - X == X also strip nops from +/-/p+ operand.
26572         When optimizing -X == C, fold C to arg0's type.
26573
26574         PR debug/47946
26575         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
26576         emit it as add_AT_int instead of add_AT_unsigned.
26577
26578 2011-03-14  Tom Tromey  <tromey@redhat.com>
26579
26580         * unwind-dw2.c: Include sys/sdt.h if it exists.
26581         (_Unwind_DebugHook): Use STAP_PROBE2.
26582         * config.in, configure: Rebuild.
26583         * configure.ac: Check for sys/sdt.h.
26584
26585 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
26586
26587         * config/i386/i386.md (ROUND_FLOOR): New constant.
26588         (ROUND_CEIL): Ditto.
26589         (ROUND_TRUNC): Ditto.
26590         (ROUND_MXCSR): Ditto.
26591         (ROUND_NO_EXC): Ditto.
26592         (rint<mode>2): Use new defines instead of numerical constants.
26593         (floor<mode>2): Ditto.
26594         (ceil<mode>2): Ditto.
26595         (btrunc<mode>2): Ditto.
26596         * config/i386/i386-builtin-types.def: Define ROUND function type
26597         aliases.
26598         * config/i386/i386.c (enum ix86_builtins): Add
26599         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
26600         (struct builtin_description): Add
26601         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
26602         (ix86_expand_sse_round): New static function.
26603         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
26604         function types.
26605         (ix86_builtin_vectorized_function): Handle
26606         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
26607
26608 2011-03-14  Tom Tromey  <tromey@redhat.com>
26609
26610         * c-parser.c (c_parser_asm_string_literal): Clear
26611         warn_overlength_strings.
26612
26613 2011-03-14  Tom Tromey  <tromey@redhat.com>
26614
26615         * c-parser.c (disable_extension_diagnostics): Save
26616         warn_overlength_strings.
26617         (restore_extension_diagnostics): Restore warn_overlength_strings.
26618
26619 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
26620
26621         * BASE-VER: Change to 4.7.0.
26622
26623 2011-03-14  Richard Guenther  <rguenther@suse.de>
26624
26625         PR middle-end/48098
26626         * tree.c (build_vector_from_val): Adjust assert to requirements
26627         and reality.
26628
26629 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
26630
26631         PR bootstrap/48102
26632         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
26633
26634 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
26635
26636         * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
26637         terms of target_flags_explicit. Adjust copyright year.
26638
26639         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
26640         * config/rs6000/t-freebsd: New file. Add override for
26641         LIB2FUNCS_EXTRA.
26642
26643 2011-03-13  Chris Demetriou  <cgd@google.com>
26644
26645         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
26646         (-fno-diagnostics-show-option): this, to reflect current default.
26647         (-Werror=): Update text about -fno-diagnostics-show-option.
26648
26649 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
26650
26651         PR target/48053
26652         * config/rs6000/predicates.md (easy_vector_constant_add_self,
26653         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
26654         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
26655         mode is not V2DImode or V2DFmode.
26656         (vspltis_constant): Do not handle V2DImode and V2DFmode.
26657         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
26658         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
26659         registers to 0.
26660         (movdi_internal64): Likewise.
26661
26662 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
26663
26664         PR tree-optimization/47127
26665         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
26666         parameter.
26667         (set_cloog_options): Same.
26668         (scop_to_clast): Same.
26669         (print_clast_stmt): Do not call cloog_state_malloc and
26670         cloog_state_free.
26671         (print_generated_program): Same.
26672         (gloog): Same.
26673         * graphite-clast-to-gimple.h (cloog_state): Declared.
26674         (scop_to_clast): Adjust declaration.
26675         * graphite.c (cloog_state): Defined here.
26676         (graphite_initialize): Call cloog_state_malloc.
26677         (graphite_finalize): Call cloog_state_free.
26678
26679 2011-03-11  Jason Merrill  <jason@redhat.com>
26680
26681         * attribs.c (lookup_attribute_spec): Take const_tree.
26682         * tree.h: Adjust.
26683
26684 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
26685
26686         * config/sparc/sparc.c (sparc_option_override): Use
26687         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
26688
26689 2011-03-11  Richard Guenther  <rguenther@suse.de>
26690
26691         PR tree-optimization/48067
26692         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
26693         multiplication result will be only used once on the target
26694         stmt.
26695
26696 2011-03-11  Richard Guenther  <rguenther@suse.de>
26697
26698         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
26699
26700 2011-03-11  Richard Guenther  <rguenther@suse.de>
26701
26702         PR lto/48073
26703         * tree.c (find_decls_types_r): Do not walk types only reachable
26704         from IDENTIFIER_NODEs.
26705
26706 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
26707
26708         PR middle-end/48044
26709         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
26710         all vnode->force_output nodes as needed.
26711
26712 2011-03-11  Jason Merrill  <jason@redhat.com>
26713
26714         PR c++/48069
26715         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
26716         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
26717
26718 2011-03-11  Martin Jambor  <mjambor@suse.cz>
26719
26720         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
26721         cgraph_node.
26722
26723 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
26724
26725         PR tree-optimization/48063
26726         * ipa-inline.c (cgraph_decide_inlining): Don't try to
26727         inline functions called once if !tree_can_inline_p (node->callers).
26728
26729 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
26730
26731         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
26732         extra_objs.
26733         * config/score/score3.c: Delete.
26734         * config/score/score3.h: Delete.
26735         * config/score/mul-div.S: Delete.
26736         * config/score/sfp-machine.h: Add new file.
26737         * config/score/constraints.md: Add new file.
26738         * config/score/t-score-softfp: Add new file.
26739         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
26740         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
26741         (score7_extra_constraint): Delete.
26742         (score7_option_override): Remove unused code.
26743         * config/score/score.c: Remove score3 and score5 define and code.
26744         * config/score/score.h: Remove score3 and score5 define and code.
26745         * config/score/score.md: Remove score3 template and unusual insn.
26746         * config/score/score.opt: Remove score3 and score5 options.
26747
26748 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
26749
26750         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
26751         when _HPUX_SOURCE is defined.
26752         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
26753
26754 2011-03-10  Jason Merrill  <jason@redhat.com>
26755
26756         PR c++/48029
26757         * stor-layout.c (layout_type): Don't set structural equality
26758         on arrays of incomplete type.
26759         * tree.c (type_hash_eq): Handle comparing them properly.
26760
26761 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
26762
26763         PR debug/48043
26764         * config/s390/s390.c (s390_delegitimize_address): Make sure the
26765         result mode matches original rtl mode.
26766
26767 2011-03-10  Nick Clifton  <nickc@redhat.com>
26768
26769         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
26770         (andsi3, andsi3_flags): Fix timings for three operand alternative.
26771
26772 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
26773
26774         PR rtl-optimization/47866
26775         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
26776         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
26777         if target wasn't scalar.
26778         * function.c (assign_stack_temp_for_type): Assert that neither
26779         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
26780         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
26781         macro.
26782         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
26783
26784 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26785
26786         * config/s390/s390-protos.h (s390_label_align): New prototype.
26787         * config/s390/s390.c (s390_label_align): New function.
26788         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
26789
26790 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
26791
26792         PR target/47755
26793         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
26794         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
26795         (output_vec_const_move): Ditto.
26796
26797 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
26798
26799         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
26800         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
26801         * config/mips/mips.c (mips_preferred_reload_class): Make static.
26802         Change 'rclass' argument and result type to reg_class_t.
26803         (TARGET_PREFERRED_RELOAD_CLASS): Define.
26804
26805 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
26806
26807         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
26808         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
26809         (TARGET_MEMORY_MOVE_COST): Define.
26810         (avr_register_move_cost, avr_memory_move_cost): New Functions.
26811
26812 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
26813
26814         PR debug/47881
26815         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
26816         removed anything.
26817
26818         PR tree-optimization/48022
26819         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
26820         for EQ/NE_EXPR.
26821
26822 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
26823
26824         PR debug/47991
26825         * var-tracking.c (find_use_val): Return NULL for
26826         cui->sets && cui->store_p BLKmode MEMs.
26827
26828 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
26829
26830         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
26831         Remove.
26832         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
26833         xstormy16_print_operand_address): Remove.
26834         * config/stormy16/stormy16.c (xstormy16_print_operand,
26835         xstormy16_print_operand_address): Make static.
26836         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
26837
26838 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
26839
26840         PR target/47862
26841         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
26842         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
26843         before definition.
26844
26845 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
26846
26847         PR bootstrap/48000
26848         * cfgloopmanip.c (fix_bb_placements): Return immediately
26849         if FROM is BASE_LOOP's header.
26850
26851 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
26852
26853         * gimplify.c (gimplify_function_tree): Fix building calls
26854         to __builtin_return_address.
26855
26856 2011-03-07  Alan Modra  <amodra@gmail.com>
26857
26858         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
26859         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
26860         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
26861         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
26862         return_mode args.
26863         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
26864         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
26865         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
26866         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
26867         * config/rs6000/rs6000.c
26868         (rs6000_elf_end_indicate_exec_stack): Rename to..
26869         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
26870         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
26871         (rs6000_file_start): ..here.
26872         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
26873         file scope variables.
26874         (call_ABI_of_interest): New function.
26875         (init_cumulative_args): Set above vars when function return value
26876         is a float, vector, or small struct.
26877         (rs6000_function_arg_advance_1): Likewise for function args.
26878         (rs6000_va_start): Set rs6000_passes_float if variable arg function
26879         references float args.
26880
26881 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
26882
26883         * doc/cfg.texi: Remove "See" before @ref.
26884         * doc/invoke.texi: Likewise.
26885
26886 2011-03-05  Jason Merrill  <jason@redhat.com>
26887
26888         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
26889
26890 2011-03-05  Anthony Green  <green@moxielogic.com>
26891
26892         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
26893
26894 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
26895
26896         PR rtl-optimization/47899
26897         * cfgloopmanip.c (fix_bb_placements): Fix first argument
26898         to flow_loop_nested_p when moving the loop upward.
26899
26900 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
26901
26902         PR target/47719
26903         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
26904
26905 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
26906
26907         PR tree-optimization/47967
26908         * ipa-cp.c (build_const_val): Return NULL instead of creating
26909         VIEW_CONVERT_EXPR for mismatching sizes.
26910         (ipcp_create_replace_map): Return NULL if build_const_val failed.
26911         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
26912         give up on versioning.
26913
26914 2011-03-05  Alan Modra  <amodra@gmail.com>
26915
26916         PR target/47986
26917         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
26918         full cmodel medium/large lo_sum + high addresses.
26919
26920 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26921
26922         * config/s390/s390.c (s390_decompose_address): Reject non-literal
26923         pool references in UNSPEC_LTREL_OFFSET.
26924
26925 2011-03-04  Jan Hubicka  <jh@suse.cz>
26926
26927         PR lto/47497
26928         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
26929         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
26930         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
26931         Add node pointers.
26932         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
26933         cgraph_add_thunk): Add node pointers.
26934         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
26935         associated to right node.
26936         (input_node): Update use of cgraph_same_body_alias
26937         and cgraph_add_thunk.
26938
26939 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
26940
26941         * config/i386/i386.opt (mprefer-avx128): New flag.
26942         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
26943         modes when the flag -mprefer-avx128 is on.
26944
26945 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
26946
26947         * dwarf2out.c (compare_loc_operands): Fix address handling.
26948
26949 2011-03-04  Alan Modra  <amodra@gmail.com>
26950
26951         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
26952
26953 2011-03-04  Richard Guenther  <rguenther@suse.de>
26954
26955         PR middle-end/47968
26956         * expmed.c (extract_bit_field_1): Prefer vector modes that
26957         vec_extract patterns can handle.
26958
26959 2011-03-04  Richard Guenther  <rguenther@suse.de>
26960
26961         PR middle-end/47975
26962         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
26963
26964 2011-03-04  Richard Henderson  <rth@redhat.com>
26965
26966         * explow.c (emit_stack_save): Remove 'after' parameter.
26967         (emit_stack_restore): Likewise.
26968         * expr.h: Update to match.
26969         * builtins.c, calls.c, stmt.c: Likewise.
26970         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
26971         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
26972         * function.c (expand_function_end): Insert the emit_stack_save
26973         sequence before parm_birth_insn instead of after.
26974
26975 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
26976
26977         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
26978         (ssse3_pmaddubsw128): Ditto.
26979         (ssse3_pmaddubsw): Ditto.
26980
26981 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
26982
26983         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
26984
26985 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
26986
26987         PR c/47963
26988         * gimplify.c (omp_add_variable): Only call omp_notice_variable
26989         on TYPE_SIZE_UNIT if it is a DECL.
26990
26991         PR debug/47283
26992         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
26993         first operand is not is_gimple_mem_ref_addr, try to fold it.
26994         If the operand still isn't is_gimple_mem_ref_addr, clear
26995         MEM_EXPR on op0.
26996
26997 2011-03-03  Richard Guenther  <rguenther@suse.de>
26998
26999         PR middle-end/47283
27000         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
27001         match comment.
27002         (refs_may_alias_p_1): For release branches return true if
27003         we are confused by our input.
27004
27005 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27006
27007         * config/s390/s390.c (s390_function_value): Rename to ...
27008         (s390_function_and_libcall_value): ... this.
27009         (s390_function_value): New function.
27010         (s390_libcall_value): New function.
27011         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
27012         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
27013         target macro definitions.
27014         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
27015
27016 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
27017
27018         * config/i386/freebsd64.h (CC1_SPEC): Define.
27019         * config/i386/linux64.h (CC1_SPEC): Define.
27020         * config/i386/x86-64.h (CC1_SPEC): Don't define.
27021
27022 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
27023
27024         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
27025         Remove.
27026         * config/stormy16/stormy16.c: Include reload.h.
27027         (xstormy16_memory_move_cost): New function.
27028         (TARGET_MEMORY_MOVE_COST): Define.
27029
27030 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
27031
27032         PR rtl-optimization/47925
27033         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
27034         with side effects.  Remove the more-specific check for volatile asms.
27035
27036 2011-03-02  Alan Modra  <amodra@gmail.com>
27037
27038         PR target/47935
27039         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
27040         toc relative addresses for valid offsets.
27041
27042 2011-03-01  Richard Guenther  <rguenther@suse.de>
27043
27044         PR tree-optimization/47890
27045         * tree-vect-loop.c (get_initial_def_for_induction): Set
27046         related stmt properly.
27047
27048 2011-03-01  Richard Guenther  <rguenther@suse.de>
27049
27050         PR lto/47924
27051         * lto-streamer.c (lto_record_common_node): Also register
27052         the canonical type.
27053
27054 2011-03-01  Richard Guenther  <rguenther@suse.de>
27055
27056         PR lto/46911
27057         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
27058         Do not stream DECL_ABSTRACT_ORIGIN.
27059         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
27060         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
27061         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
27062         Do not stream DECL_ABSTRACT_ORIGIN.
27063         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
27064         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
27065
27066 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
27067
27068         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
27069         FUNCTION_VALUE_REGNO_P): Remove.
27070         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
27071         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
27072         Add 'outgoing' argument.
27073         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
27074         function.
27075         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
27076         TARGET_FUNCTION_VALUE_REGNO_P): Define.
27077
27078 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
27079
27080         PR debug/28047
27081         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
27082         (lookup_filename): Likewise.
27083         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
27084
27085 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
27086             Jakub Jelinek  <jakub@redhat.com>
27087
27088         PR middle-end/47893
27089         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
27090         (assign_stack_local_1): Change last argument type to int.
27091         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
27092         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
27093         don't record padding space into frame_space_list nor use those areas.
27094         (assign_stack_local): Adjust caller.
27095         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
27096         of assign_stack_local, pass 0 as last argument.
27097         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
27098         callers.
27099
27100 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
27101
27102         PR debug/47283
27103         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
27104         Use target address_mode and pointer_mode hooks instead of hardcoded
27105         Pmode and ptr_mode.  Handle some simple cases of extending if
27106         POINTERS_EXTEND_UNSIGNED < 0.
27107         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
27108         Call convert_debug_memory_address.
27109         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
27110         convert_debug_memory_address.
27111
27112         PR middle-end/46790
27113         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
27114         * configure: Regenerated.
27115         * config.in: Regenerated.
27116         * varasm.c (default_function_section): Return NULL
27117         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
27118
27119 2011-02-28  Martin Jambor  <mjambor@suse.cz>
27120
27121         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
27122         the description to match the printed values.
27123
27124 2011-02-28  Richard Guenther  <rguenther@suse.de>
27125
27126         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
27127         of the copied scope tree.
27128
27129 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27130
27131         * doc/extend.texi (Function Attributes): Avoid deeply (and
27132         wrongly) nested tables.
27133
27134 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
27135
27136         PR middle-end/47903
27137         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
27138         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
27139         r isn't op0 nor op1.
27140
27141 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
27142
27143         * config/avr/avr.md: Remove magic comment for emacs.
27144
27145 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
27146
27147         PR target/45261
27148         * config/avr/avr.c (avr_option_override): Use error on bad options.
27149         (avr_help): New function.
27150         (TARGET_HELP): Define.
27151
27152 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
27153
27154         PR target/42240
27155         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
27156         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
27157
27158 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
27159
27160         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
27161         (ARM Options): Ditto.
27162         (i386 and x86-64 Options): Ditto.
27163         (RX Options): Ditto.
27164         (SPARC Options): Ditto.
27165
27166 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
27167
27168         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
27169         FreeBSD 6 and later.  Generally use cpu generic.
27170
27171 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
27172
27173         * doc/cpp.texi: Update copyright years.
27174
27175 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
27176
27177         PR target/46898
27178         * config/lm32/lm32.md (ashrsi3): Added needed variable.
27179
27180 2011-02-25  Jon Beniston  <jon@beniston.com>
27181
27182         PR target/46898
27183         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
27184         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
27185         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
27186         (lm32_block_move_inline): Add type cast to remove warning.
27187         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
27188         (gen_int_relational): Move declarations to start of function.
27189
27190 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
27191
27192         PR tree-optimization/45470
27193         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
27194         can throw internally only.
27195         * tree-vect-stmts.c (vectorizable_call): Likewise.
27196
27197 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
27198
27199         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
27200         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
27201         * config/stormy16/stormy16-protos.h
27202         (xstormy16_preferred_reload_class): Remove.
27203         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
27204         static. Change 'rclass' argument and return type to reg_class_t.
27205         (TARGET_PREFERRED_RELOAD_CLASS,
27206         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
27207
27208 2011-02-24  Richard Guenther  <rguenther@suse.de>
27209
27210         * lto-streamer-in.c (input_bb): Do not find referenced vars
27211         in debug statements.
27212
27213 2011-02-23  Jason Merrill  <jason@redhat.com>
27214
27215         * common.opt (fabi-version): Document v5 and v6.
27216
27217 2011-02-23  Richard Guenther  <rguenther@suse.de>
27218
27219         PR tree-optimization/47849
27220         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
27221
27222 2011-02-23  Jie Zhang  <jie@codesourcery.com>
27223
27224         * opts-common.c (decode_cmdline_option): Print empty string
27225         argument as "" in decoded->orig_option_with_args_text.
27226         * gcc.c (execute): Print empty string argument as ""
27227         in the verbose output.
27228         (do_spec_1): Keep empty string argument.
27229
27230 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
27231
27232         * config.gcc: Declare score-* and crx-* obsolete.
27233
27234 2011-02-23  Jie Zhang  <jie@codesourcery.com>
27235
27236         PR rtl-optimization/47763
27237         * web.c (web_main): Ignore naked clobber when replacing register.
27238
27239 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
27240
27241         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
27242         Remove.
27243
27244 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
27245
27246         PR doc/47848
27247         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
27248
27249 2011-02-22  Mike Stump  <mikestump@comcast.net>
27250
27251         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
27252         assembler.
27253         * configure: Regenerate.
27254
27255 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
27256
27257         PR rtl-optimization/46002
27258         * ira-color.c (update_copy_costs): Change class intersection
27259         test to reg_class_contents[] test of 'hard_regno'.
27260
27261 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
27262
27263         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
27264         than Driver option.
27265         * config/hpux11.opt (mt): Likewise.
27266         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
27267         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
27268         * config/vax/elf.opt (mno-asm-pic): Likewise.
27269         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
27270
27271 2011-02-21  Mike Stump  <mikestump@comcast.net>
27272
27273         PR target/47822
27274         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
27275         tree so we can get save the type.
27276         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
27277         for CFString instead of trying to use past the end of the builtins.
27278         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
27279         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
27280         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
27281         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
27282         Rename to darwin_builtin_cfstring.
27283         (darwin_init_cfstring_builtins): Return the built type.
27284
27285 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
27286
27287         PR target/47840
27288         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
27289         (_mm256_insert_epi64): Use _mm_insert_epi64.
27290
27291 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
27292
27293         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
27294         * config/stormy16/stormy16-protos.h
27295         (xstormy16_mode_dependent_address_p): Remove.
27296         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
27297         Make static. Change return type to bool. Change argument type to
27298         const_rtx. Remove dead code.
27299         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
27300
27301 2011-02-21  Richard Guenther  <rguenther@suse.de>
27302
27303         PR lto/47820
27304         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
27305         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
27306         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
27307         TUs context.
27308         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
27309         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
27310
27311 2011-02-20  Richard Guenther  <rguenther@suse.de>
27312
27313         PR lto/47822
27314         * tree.c (free_lang_data_in_decl): Clean builtins from
27315         the TU decl BLOCK_VARS.
27316
27317 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
27318
27319         PR debug/47620
27320         PR debug/47630
27321         * haifa-sched.c (fix_tick_ready): Skip tick computation
27322         for debug insns.
27323
27324 2011-02-19  Richard Guenther  <rguenther@suse.de>
27325
27326         PR lto/47647
27327         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
27328         Remove lazy BLOCK_VARS streaming.
27329         (lto_input_ts_block_tree_pointers): Likewise.
27330         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
27331
27332 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
27333
27334         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
27335
27336 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
27337
27338         * config/i386/biarch32.h, config/i386/mach.h,
27339         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
27340
27341 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
27342
27343         PR target/47800
27344         * config/i386/i386.md (peephole2 for shift and plus): Use
27345         operands[1] original mode in the first insn.
27346
27347 2011-02-18  Mike Stump  <mikestump@comcast.net>
27348
27349         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
27350
27351 2011-02-18  Jan Hubicka  <jh@suse.cz>
27352
27353         PR middle-end/47788
27354         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
27355         to zero when the function is not inlinable at all.
27356
27357 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
27358
27359         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
27360         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
27361         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
27362         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
27363         * config/pa/t-pa64: Likewise.
27364         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
27365
27366 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
27367
27368         PR driver/47787
27369         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
27370
27371 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
27372
27373         PR target/47792
27374         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
27375
27376 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
27377
27378         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
27379         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
27380         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
27381         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
27382         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
27383         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
27384         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
27385         m32r_load_postinc_p, m32r_store_preinc_predec_p,
27386         m32r_legitimate_address_p): New functions.
27387         * config/m32r/constraints.md (constraint "S"): Don't use
27388         STORE_PREINC_PREDEC_P.
27389         (constraint "U"): Don't use LOAD_POSTINC_P.
27390
27391 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
27392
27393         PR rtl-optimization/46178
27394         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
27395         compute ira_hard_regno_cover_class[].
27396
27397 2011-02-18  Richard Guenther  <rguenther@suse.de>
27398
27399         PR lto/47798
27400         * lto-streamer.h (lto_global_var_decls): Declare.
27401         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
27402         statics for global var processing.
27403
27404 2011-02-18  Richard Guenther  <rguenther@suse.de>
27405
27406         PR tree-optimization/47737
27407         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
27408         edge dominance check.
27409
27410 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
27411
27412         PR debug/47780
27413         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
27414         avoid invalid rtx sharing.
27415
27416 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
27417
27418         * doc/cpp.texi (Obsolete Features): Add background on the
27419         origin of assertions.
27420
27421 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
27422
27423         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
27424         objc_abi == 2.
27425         * config/darwin.c (output_objc_section_asm_op): Added support for
27426         ABI v1 and v2.
27427         (is_objc_metadata): New.
27428         (darwin_objc2_section): New.
27429         (darwin_objc1_section): New.
27430         (machopic_select_section): Added support for ABI v1 and v2.
27431         (darwin_emit_objc_zeroed): New.
27432         (darwin_output_aligned_bss): Detect objc metadata and treat it
27433         appropriately.
27434         (darwin_asm_output_aligned_decl_common): Same.
27435         (darwin_asm_output_aligned_decl_local): Same.
27436         * config/darwin-sections.def: Updated for ABI v1 and v2.
27437         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
27438         compiling Objective-C code for the NeXT runtime, default to using
27439         ABI version 0 for 32-bit, and version 2 for 64-bit.
27440
27441 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
27442
27443         * common.opt (optimize_fast): New Variable.
27444         * opts.c (default_options_optimization): Use opts->x_optimize_fast
27445         instead of local variable ofast.
27446
27447 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
27448
27449         * doc/invoke.texi (fobjc-abi-version): Documented.
27450         (fobjc-nilcheck): Documented.
27451         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
27452         version.
27453
27454 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
27455
27456         PR driver/47390
27457         * common.opt (export-dynamic): New Driver option.
27458         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
27459
27460 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
27461
27462         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
27463
27464 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
27465             Jan Hubicka  <jh@suse.cz>
27466
27467         PR debug/47106
27468         PR debug/47402
27469         * cfgexpand.c (account_used_vars_for_block): Remove.
27470         (estimated_stack_frame_size): Use referenced vars.
27471         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
27472         that were referenced in the original function.  Test src_fn
27473         rather than cfun.  Drop redundant get_var_ann.
27474         (setup_one_parameter): Drop redundant get_var_ann.
27475         (declare_return_variable): Likewise.
27476         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
27477         (copy_arguments_for_versioning): Drop redundant get_var_ann.
27478         * ipa-inline.c (compute_inline_parameters): Do not compute
27479         disregard_inline_limits here.
27480         (compute_inlinable_for_current, pass_inlinable): New.
27481         (pass_inline_parameters): Require PROP_referenced_vars.
27482         * cgraphunit.c (cgraph_process_new_functions): Don't run
27483         compute_inline_parameters explicitly unless function is in SSA form.
27484         (cgraph_analyze_function): Set .disregard_inline_limits.
27485         * tree-sra.c (convert_callers): Compute inliner parameters
27486         only for functions already in SSA form.
27487
27488 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
27489
27490         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
27491         -mlittle-endian-data.
27492
27493 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
27494
27495         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
27496         -mno-fpu, not -fpu and -no-fpu.
27497         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
27498         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
27499
27500 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
27501
27502         PR target/43653
27503         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
27504         input reload with PLUS RTX.
27505
27506 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
27507
27508         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
27509         of InverseVar(MDMX).
27510
27511 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
27512
27513         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
27514         --m4-340.
27515
27516 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
27517
27518         * config/mn10300/mn10300.opt (mno-crt0): New.
27519
27520 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
27521
27522         * config/m68k/uclinux.opt (static-libc): New Driver option.
27523
27524 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
27525
27526         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
27527
27528 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
27529
27530         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
27531         %{muser-extend-enabled}.
27532
27533 2011-02-16  Richard Guenther  <rguenther@suse.de>
27534
27535         PR tree-optimization/47738
27536         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
27537         the TODO from tree_predictive_commoning.
27538
27539 2011-02-15  Jeff Law  <law@redhat.com>
27540
27541         Revert
27542         2011-01-25  Jeff Law  <law@redhat.com>
27543
27544         PR rtl-optimization/37273
27545         * ira-costs.c (scan_one_insn): Detect constants living in memory and
27546         handle them like argument loads from stack slots.  Do not double
27547         count memory for memory constants and argument loads from stack slots.
27548
27549 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
27550
27551         PR target/47755
27552         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
27553         mode for vector constants.  Remove code that checks for TImode.
27554
27555 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
27556
27557         PR debug/47106
27558         PR debug/47402
27559         * cgraph.h (compute_inline_parameters): Return void.
27560         * ipa-inline.c (compute_inline_parameters): Adjust.
27561
27562 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
27563
27564         PR debug/47106
27565         PR debug/47402
27566         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
27567         rather than decl.
27568         * cfgexpand.c (estimated_stack_frame_size): Likewise.
27569         * ipa-inline.c (compute_inline_parameters): Adjust.
27570
27571 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
27572
27573         PR debug/47106
27574         PR debug/47402
27575         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
27576         Adjust all users.  Pass FN to...
27577         * tree-flow-inline.h (first_referenced_var): ... this.  Add
27578         fn argument.
27579         * ipa-struct-reorg.c: Adjust.
27580         * tree-dfa.c: Adjust.
27581         * tree-into-ssa.c: Adjust.
27582         * tree-sra.c: Adjust.
27583         * tree-ssa-alias.c: Adjust.
27584         * tree-ssa-live.c: Adjust.
27585         * tree-ssa.c: Adjust.
27586         * tree-ssanames.c: Adjust.
27587         * tree-tailcall.c: Adjust.
27588
27589 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
27590
27591         PR debug/47106
27592         PR debug/47402
27593         * tree-flow.h (referenced_var_lookup): Add fn parameter.
27594         Adjust all callers.
27595         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
27596         * tree-flow-inline.h: Adjust.
27597         * gimple-pretty-print.c: Adjust.
27598         * tree-into-ssa.c: Adjust.
27599         * tree-ssa.c: Adjust.
27600         * cfgexpand.c: Adjust.
27601
27602 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
27603
27604         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
27605         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
27606         (EXTRA_CONSTRAINT): Delete.
27607         * config/iq2000/constraints.md: New file.
27608         * config/iq2000/iq2000.md: Include it.
27609         (define_insn ""): Delete.
27610         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
27611         unsupported constraint letters from patterns.
27612         (call_value, call_value_internal1): Likewise.
27613         (call_value_multiple_internal1): Likewise.
27614
27615 2011-02-15  Nick Clifton  <nickc@redhat.com>
27616
27617         * config/mn10300/mn10300.c: Include tm-constrs.h.
27618         (struct liw_data): New data structure describing an LIW candidate
27619         instruction.
27620         (extract_bundle): Use struct liw_data.  Allow small integer
27621         operands for some instructions.
27622         (check_liw_constraints): Use struct liw_data.  Remove swapped
27623         parameter.  Add comments describing the checks.  Fix bug when
27624         assigning the source of liw1 to the source of liw2.
27625         (liw_candidate): Delete.  Code moved into extract_bundle.
27626         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
27627         before swapping.
27628         * config/mn10300/predicates.md (liw_operand): New predicate.
27629         Allows registers and small integer constants.
27630         * config/mn10300/constraints.md (O): New constraint.  Accetps
27631         integers in the range -8 to +7 inclusive.
27632         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
27633         for moving a small integer into a register.  Give this alternative
27634         LIW attributes.
27635         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
27636         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
27637         using the J,K,L and M constraints,
27638         (liw): Remove SI mode on second operands to allow for HI and QI
27639         mode values.
27640         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
27641         instruction.
27642
27643 2011-02-15  Richard Guenther  <rguenther@suse.de>
27644
27645         PR tree-optimization/47743
27646         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
27647         for a non-type-compatible VN lookup bail out.
27648
27649 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
27650
27651         * config/fr30/constraints.md: New file.
27652         * config/fr30/fr30.md: Include it.
27653         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
27654         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
27655         (EXTRA_CONSTRAINT): Delete.
27656
27657 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
27658
27659         * config/frv/constraints.md: New file.
27660         * config/frv/predicates.md: Include it.
27661         * config/frv/frv.c (reg_class_from_letter): Delete.
27662         (frv_option_override): Don't initialize it.
27663         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
27664         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
27665         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
27666         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
27667         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
27668         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
27669         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
27670         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
27671         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
27672         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
27673         (REG_CLASS_FROM_CONSTRAINT): Delete.
27674
27675 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
27676
27677         PR middle-end/47581
27678         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
27679         if frame size is 0 in a leaf function.
27680
27681 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27682
27683         PR pch/14940
27684         * config/alpha/host-osf.c: New file.
27685         * config/alpha/x-osf: New file.
27686         * config.host (alpha*-dec-osf*): Use it.
27687
27688 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
27689
27690         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
27691         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
27692         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
27693         (rx_mode_dependent_address_p): ...this. Make static. Change argument
27694         type to const_rtx.
27695         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
27696
27697 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
27698
27699         * config/stormy16/constraints.md: New file.
27700         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
27701         Use satisfies_constraint_Q and satisfies_constraint_R.
27702         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
27703         Delete.
27704         (xstormy16_legitiamte_address_p): Declare.
27705         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
27706         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
27707         (EXTRA_CONSTRAINT): Delete.
27708         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
27709         Un-staticize.
27710         (xstormy16_extra_constraint_p): Delete.
27711
27712 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
27713
27714         PR tree-optimization/46494
27715         * loop-unroll.c (split_edge_and_insert): Adjust comment.
27716         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
27717         (pass_rtl_loop_done): Add TODO_verify_flow.
27718         * fwprop.c (pass_rtl_fwprop): Likewise.
27719         * modulo-sched.c (pass_sms): Likewise.
27720         * tree-ssa-dom.c (pass_dominator): Likewise.
27721         * tree-ssa-loop-ch.c (pass_ch): Likewise.
27722         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
27723         (pass_tree_loop_done): Likewise.
27724         * tree-ssa-pre.c (execute_pre): Likewise.
27725         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
27726         * tree-ssa-sink.c (pass_sink_code): Likewise.
27727         * tree-vrp.c (pass_vrp): Likewise.
27728
27729 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
27730
27731         * config/v850/constraints.md: New file.
27732         * config/v850/v850.md: Include it.
27733         * config/v850/predicates.md (reg_or_0_operand): Use
27734         satisfies_constraint_G.
27735         (special_symbolref_operand): Use satisfies_constraint_K.
27736         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
27737         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
27738         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
27739         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
27740         (EXTRA_CONSTRAINT): Delete.
27741         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
27742         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
27743         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
27744
27745 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
27746
27747         PR target/47696
27748         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
27749         description.
27750
27751 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
27752
27753         * config/mcore/constraints.md: New file.
27754         * config/mcore/mcore.md: Include it.
27755         * config/mcore/mcore.c (reg_class_from_letter): Delete.
27756         * config/mcore/mcore.h (reg_class_from_letter): Delete.
27757         (REG_CLASS_FROM_LETTER): Delete.
27758         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
27759         insn_const_int_ok_for_constraint.
27760         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
27761         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
27762         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
27763         (EXTRA_CONSTRAINT): Delete.
27764
27765 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27766
27767         PR ada/41929
27768         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
27769         (IS_SIGHANDLER): Define.
27770         (sparc64_is_sighandler): New function, split off from
27771         sparc64_fallback_frame_state.
27772         (sparc_is_sighandler): New function, split off from
27773         sparc_fallback_frame_state.
27774         (sparc64_fallback_frame_state): Merge with ...
27775         (sparc_fallback_frame_state): ... this into ...
27776         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
27777         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
27778         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
27779         stack instead of hardcoded offsets.
27780
27781 2011-02-14  Andriy Gapon  <avg@freebsd.org>
27782
27783         PR target/45808
27784         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
27785
27786 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27787
27788         * configure: Regenerate.
27789
27790 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
27791
27792         PR driver/45731
27793         * gcc.c (asm_options): Correct spec matching --target-help.
27794
27795 2011-02-12  Martin Jambor  <mjambor@suse.cz>
27796
27797         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
27798         to gimple call error.
27799
27800 2011-02-12  Mike Stump  <mikestump@comcast.net>
27801
27802         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
27803         comments in backslash regions.
27804
27805 2011-02-12  Mike Stump  <mikestump@comcast.net>
27806             Jakub Jelinek  <jakub@redhat.com>
27807             Iain Sandoe  <iains@gcc.gnu.org>
27808
27809         PR target/47324
27810         * dwarf2out.c (output_cfa_loc): When required, apply the
27811         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
27812         (output_loc_sequence): Likewise.
27813         (output_loc_operands_raw): Likewise.
27814         (output_loc_sequence_raw): Likewise.
27815         (output_cfa_loc): Likewise.
27816         (output_loc_list): Suppress register number adjustment when
27817         calling output_loc_sequence()
27818         (output_die): Likewise.
27819
27820 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
27821
27822         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
27823         Remove macros.
27824         * config/xtensa/xtensa.c (xtensa_register_move_cost,
27825         xtensa_memory_move_cost): New functions.
27826         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
27827
27828 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
27829
27830         PR lto/47225
27831         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
27832         in the current directory.
27833         * configure: Rebuilt.
27834
27835 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
27836
27837         * config/darwin.c (darwin_override_options): Add a hunk missed
27838         from the commit of r168571.  Trim comment line lengths and
27839         correct indents of the preceding block.
27840
27841 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
27842
27843         * gcc.c (driver_handle_option): Concatenate the argument to -F with
27844         the switch.
27845
27846 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
27847
27848         * common.opt (nostartfiles): New Driver option.
27849
27850 2011-02-11  Xinliang David Li  <davidxl@google.com>
27851
27852         PR tree-optimization/47707
27853         * tree-chrec.c (convert_affine_scev): Keep type precision.
27854
27855 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
27856
27857         PR tree-optimization/47420
27858         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
27859
27860 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
27861
27862         PR rtl-optimization/47614
27863         * rtl.h (check_for_inc_dec): Declare.
27864         * dse.c (check_for_inc_dec): Externalize...
27865         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
27866         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
27867
27868 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
27869
27870         PR driver/47678
27871         * gcc.c (main): Do not compile inputs if there were errors in
27872         option handling.
27873         * opts-common.c (read_cmdline_option): Check for wrong language
27874         after other error checks.
27875
27876 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
27877
27878         * cgraph.c: Fix comment typos.
27879         * cgraph.h: Likewise.
27880         * cgraphunit.c: Likewise.
27881         * ipa-cp.c: Likewise.
27882         * ipa-inline.c: Likewise.
27883         * ipa-prop.c: Likewise.
27884         * ipa-pure-const.c: Likewise.
27885         * ipa-ref.c: Likewise.
27886         * ipa-reference.c: Likewise.
27887
27888 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
27889
27890         PR debug/47684
27891         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
27892
27893 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27894
27895         PR testsuite/47400
27896         * doc/sourcebuild.texi (Require Support): Document
27897         dg-require-ascii-locale.
27898
27899 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
27900
27901         * doc/lto.texi (Write summary): Fix missing parentheses.
27902
27903 2011-02-10  DJ Delorie  <dj@redhat.com>
27904
27905         * config/m32c/m32c.c (m32c_option_override): Disable
27906         -fcombine-stack-adjustments until flag value tracking and compare
27907         optimization can be rewritten.
27908
27909 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
27910
27911         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
27912         PROCESSOR_POWER7.
27913         (PROCESSOR_DEFAULT64): Likewise.
27914
27915 2011-02-10  Richard Henderson  <rth@redhat.com>
27916
27917         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
27918         change from 2011-02-03.
27919         * config/rx/rx.c (flags_from_code): Likewise.
27920         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
27921         is valid, n/pz otherwise.
27922         (rx_select_cc_mode): Return CCmode if Y is not zero.
27923
27924 2011-02-10  Richard Guenther  <rguenther@suse.de>
27925
27926         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
27927
27928 2011-02-10  Richard Guenther  <rguenther@suse.de>
27929
27930         PR tree-optimization/47677
27931         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
27932
27933 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
27934
27935         PR target/47665
27936         * combine.c (make_compound_operation): Only change shifts into
27937         multiplication for SCALAR_INT_MODE_P.
27938
27939 2011-02-10  Jie Zhang  <jie@codesourcery.com>
27940
27941         PR testsuite/47622
27942         Revert
27943         2011-02-05  Jie Zhang  <jie@codesourcery.com>
27944         PR debug/42631
27945         * web.c (entry_register): Don't clobber the number of the
27946         first uninitialized reference in used[].
27947
27948 2011-02-09  Richard Guenther  <rguenther@suse.de>
27949
27950         PR tree-optimization/47664
27951         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
27952         all edges again.
27953
27954 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
27955
27956         PR target/46481
27957         PR target/47032
27958         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
27959         PROCESSOR_POWER7.
27960         (PROCESSOR_DEFAULT64): Same.
27961         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
27962
27963 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27964
27965         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
27966
27967 2011-02-09  Martin Jambor  <mjambor@suse.cz>
27968
27969         PR middle-end/45505
27970         * tree-sra.c (struct access): New flags grp_scalar_read and
27971         grp_scalar_write.  Changed description of assignment read and write
27972         flags.
27973         (dump_access): Dump new flags, reorder all of them.
27974         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
27975         to detect multiple scalar reads.
27976         (analyze_access_subtree): Use the new scalar read write flags instead
27977         of the old flags.  Adjusted comments.
27978
27979 2011-02-08  DJ Delorie  <dj@redhat.com>
27980
27981         PR target/47548
27982         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
27983         patterns.
27984
27985 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
27986
27987         * config/m68k/uclinux.opt: New.
27988         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
27989
27990 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
27991
27992         * config/cris/elf.opt (sim): New Driver option.
27993
27994 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
27995
27996         * config/xtensa/elf.opt: New.
27997         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
27998
27999 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
28000
28001         * config/vax/elf.opt: New.
28002         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
28003
28004 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
28005
28006         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
28007
28008 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
28009
28010         * config/gnu-user.opt: New.
28011         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
28012         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
28013         *-*-uclinux*): Use gnu-user.opt.
28014
28015 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
28016
28017         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
28018         * config/i386/gnu.h (CPP_SPEC): Likewise.
28019
28020 2011-02-08  Ian Lance Taylor  <iant@google.com>
28021
28022         * common.opt (fcx-limited-range): Add SetByCombined flag.
28023         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
28024         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
28025         (fassociative-math, freciprocal-math): Likewise.
28026         (funsafe-math-optimizations): Likewise.
28027         * opth-gen.awk: Handle SetByCombined.
28028         * optc-gen.awk: Likewise.
28029         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
28030         (set_unsafe_math_optimizations_flags): Likewise.
28031         * doc/options.texi (Option properties): Document SetByCombined.
28032
28033 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
28034
28035         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
28036         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
28037         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
28038         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
28039         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
28040
28041 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
28042
28043         PR tree-optimization/46834
28044         PR tree-optimization/46994
28045         PR tree-optimization/46995
28046         * graphite-sese-to-poly.c (used_outside_reduction): New.
28047         (detect_commutative_reduction): Call used_outside_reduction.
28048         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
28049         translate_scalar_reduction_to_array only when at least one
28050         loop-phi/close-phi tuple has been detected.
28051
28052 2011-02-08  Richard Guenther  <rguenther@suse.de>
28053
28054         PR middle-end/47639
28055         * tree-vect-generic.c (expand_vector_operations_1): Update
28056         stmts here ...
28057         (expand_vector_operations): ... not here.  Cleanup EH info
28058         and the CFG if required.
28059
28060 2011-02-08  Richard Guenther  <rguenther@suse.de>
28061
28062         PR tree-optimization/47641
28063         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
28064         require type compatibility.
28065
28066 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28067
28068         * gimple-low.c (lower_function_body): Don't remove the location of
28069         the return statement here.
28070         (lower_gimple_return): Do it here instead but only if the return
28071         statement is actually used twice.
28072
28073 2011-02-08  Richard Guenther  <rguenther@suse.de>
28074
28075         PR tree-optimization/47632
28076         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
28077         unused up_to_stmt parameter, return whether cfg-cleanup is
28078         necessary, remove EH info properly.
28079         (forward_propagate_into_gimple_cond): Adjust caller.
28080         (forward_propagate_into_cond): Likewise.
28081         (forward_propagate_comparison): Likewise.
28082         (tree_ssa_forward_propagate_single_use_vars): Make
28083         forward_propagate_comparison case similar to the two others.
28084
28085 2011-02-08  Nick Clifton  <nickc@redhat.com>
28086
28087         * config/mn10300/mn10300.opt (mliw): New command line option.
28088         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
28089         (liw_bundling): New automaton.
28090         (liw): New attribute.
28091         (liw_op): New attribute.
28092         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
28093         (movsi_internal): Add LIW attributes.
28094         (andsi3): Likewise.
28095         (iorsi3): Likewise.
28096         (xorsi3): Likewise.
28097         (addsi3): Separate register and immediate alternatives.
28098         Add LIW attributes.
28099         (subsi3): Likewise.
28100         (cmpsi): Likewise.
28101         (aslsi3): Likewise.
28102         (lshrsi3): Likewise.
28103         (ashrsi3): Likewise.
28104         (liw): New pattern.
28105         * config/mn10300/mn10300.c (liw_op_names): New
28106         (mn10300_print_operand): Handle 'W' operand descriptor.
28107         (extract_bundle): New function.
28108         (check_liw_constraints): New function.
28109         (liw_candidate): New function.
28110         (mn10300_bundle_liw): New function.
28111         (mn10300_reorg): New function.
28112         (TARGET_MACHINE_DEPENDENT_REORG): Define.
28113         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
28114         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
28115         __LIW__ or __NO_LIW__.
28116         * doc/invoke.texi: Describe the -mliw command line option.
28117
28118 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
28119
28120         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
28121         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
28122         pthread_mutex_unlock): Remove.
28123         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
28124         * config/pa/t-pa64: Likewise.
28125         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
28126         shared libc if not linking against libpthread.
28127         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
28128
28129 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
28130
28131         PR target/47558
28132         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
28133         on 10.6 and later to ensure that we always use the unwinder from
28134         the system.  Only add -no_compact_unwind when tarteting darwin
28135         10.6 or later.
28136
28137 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
28138
28139         PR target/46997
28140         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
28141         (vec_interleave_lowv2sf): Ditto.
28142         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
28143         (vec_extract_oddv2sf): Ditto.
28144
28145 2011-02-07  Mike Stump  <mikestump@comcast.net>
28146
28147         PR target/42333
28148         Add __ieee_divdc3 entry point.
28149         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
28150         entry point.
28151         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
28152         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
28153         * config/darwin.c (darwin_rename_builtins): Add.
28154         * config/darwin-protos.h (darwin_rename_builtins): Add.
28155
28156 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
28157
28158         PR target/47636
28159         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
28160         for the condition.
28161
28162 2011-02-07  Mike Stump  <mikestump@comcast.net>
28163
28164         * config/darwin.opt (mmacosx-version-min): Update default OS version.
28165
28166 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
28167
28168         PR target/47534
28169         * config/avr/libgcc.S (exit): Move .endfunc
28170
28171 2011-02-07  Richard Guenther  <rguenther@suse.de>
28172
28173         PR tree-optimization/47615
28174         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
28175         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
28176         (run_scc_vn): Initialize it.
28177         (visit_reference_op_load): Use it.
28178         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
28179
28180 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
28181
28182         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
28183         DImode trapping arithmetic libfuncs.
28184
28185 2011-02-07  Richard Guenther  <rguenther@suse.de>
28186
28187         PR tree-optimization/47621
28188         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
28189         two duplicates ...
28190         (execute_update_addresses_taken): ... here.  Make it more
28191         conservative in what we accept.
28192
28193 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
28194
28195         * config/sparc/freebsd.h (ASM_SPEC): Define.
28196         * config/sparc/vxworks.h (ASM_SPEC): Define.
28197
28198 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
28199
28200         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
28201
28202 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
28203
28204         * doc/invoke.texi: Remove reference to compiler internals from
28205         user documentation.
28206
28207         * reg-notes.def: Remove REG_VALUE_PROFILE.
28208         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
28209
28210 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
28211
28212         PR middle-end/47610
28213         * varasm.c (default_section_type_flags): If decl is NULL,
28214         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
28215
28216 2011-02-05  Jie Zhang  <jie@codesourcery.com>
28217
28218         PR debug/42631
28219         * web.c (entry_register): Don't clobber the number of the
28220         first uninitialized reference in used[].
28221
28222 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
28223
28224         PR tree-optimization/46194
28225         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
28226         (build_classic_dist_vector_1): Do not represent classic distance
28227         vectors when the access functions are variating in different loops.
28228
28229 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
28230
28231         * config/mips/iris6.opt: New.
28232         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
28233
28234 2011-02-04  Richard Henderson  <rth@redhat.com>
28235             Steve Ellcey  <sje@cup.hp.com>
28236
28237         PR target/46997
28238         * config/ia64/predicates.md (mux1_brcst_element): New.
28239         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
28240         * config/ia64/ia64.c (ia64_unpack_assemble): New.
28241         (ia64_unpack_sign): New.
28242         (ia64_expand_unpack): Rewrite using new routines.
28243         (ia64_expand_widen_sum): Ditto.
28244         (ia64_expand_dot_prod_v8qi): Ditto.
28245         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
28246         routines, add endian check.
28247         (pmpy2_even): Rename from pmpy2_r, add endian check.
28248         (pmpy2_odd): Rename from pmpy2_l, add endian check.
28249         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
28250         (vec_widen_smult_hi_v4hi): Ditto.
28251         (vec_widen_umult_lo_v4hi): Ditto.
28252         (vec_widen_umult_hi_v4hi): Ditto.
28253         (mulv2si3): Change endian checks.
28254         (sdot_prodv4hi): Rewrite with new calls.
28255         (udot_prodv4hi): New.
28256         (vec_pack_ssat_v4hi): Add endian check.
28257         (vec_pack_usat_v4hi): Ditto.
28258         (vec_pack_ssat_v2si): Ditto.
28259         (max1_even): Rename from max1_r, add endian check.
28260         (max1_odd): Rename from max1_l, add endian check.
28261         (*mux1_rev): Format change.
28262         (*mux1_mix): Ditto.
28263         (*mux1_shuf): Ditto.
28264         (*mux1_alt): Ditto.
28265         (*mux1_brcst_v8qi): Use new predicate.
28266         (vec_extract_evenv8qi): Remove endian check.
28267         (vec_extract_oddv8qi): Ditto.
28268         (vec_interleave_lowv4hi): Format change.
28269         (vec_interleave_highv4hi): Ditto.
28270         (mix2_even): Rename from mix2_r, add endian check.
28271         (mix2_odd): Rename from mux2_l, add endian check.
28272         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
28273         (vec_extract_evenodd_helper): Format change.
28274         (vec_extract_evenv4hi): Remove endian check.
28275         (vec_extract_oddv4hi): Remove endian check.
28276         (vec_interleave_lowv2si): Format change.
28277         (vec_interleave_highv2si): Format change.
28278         (vec_initv2si): Remove endian check.
28279         (vecinit_v2si): Add endian check.
28280         (reduc_splus_v2sf): Add endian check.
28281         (reduc_smax_v2sf): Ditto.
28282         (reduc_smin_v2sf): Ditto.
28283         (vec_initv2sf): Remove endian check.
28284         (fpack): Add endian check.
28285         (fswap): Add endian check.
28286         (vec_interleave_highv2sf): Add endian check.
28287         (vec_interleave_lowv2sf): Add endian check.
28288         (fmix_lr): Add endian check.
28289         (vec_setv2sf): Format change.
28290         (*vec_extractv2sf_0_be): Use shift to extract operand.
28291         (*vec_extractv2sf_1_be): New.
28292         (vec_pack_trunc_v4hi): Add endian check.
28293         (vec_pack_trunc_v2si): Format change.
28294
28295 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
28296
28297         PR inline-asm/23200
28298         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
28299         do bb, locus and block comparison and disallow loads if it is not set.
28300         (stmt_is_replaceable_p): New function.
28301         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
28302         callers.
28303         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
28304         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
28305         SSA_NAME_DEF_STMT.
28306         * tree-flow.h (stmt_is_replaceable_p): New prototype.
28307
28308 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
28309
28310         * config/rs6000/xilinx.opt: New.
28311         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
28312
28313 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
28314
28315         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
28316
28317 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
28318
28319         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
28320         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
28321         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
28322         secondary_reload_info, xtensa_secondary_reload): Remove.
28323         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
28324         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
28325         (xtensa_preferred_reload_class): Make static. Change return and
28326         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
28327         Use CONST_DOUBLE_P predicate.
28328         (xtensa_preferred_output_reload_class): New function.
28329         (xtensa_secondary_reload): Make static.
28330
28331 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
28332
28333         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
28334         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
28335         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
28336
28337 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
28338
28339         PR middle-end/31490
28340         * output.h (SECTION_RELRO): Define.
28341         (SECTION_MACH_DEP): Adjust.
28342         (get_variable_section): New prototype.
28343         * varpool.c (varpool_finalize_named_section_flags): New function.
28344         (varpool_assemble_pending_decls): Call it.
28345         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
28346         * cgraphunit.c (cgraph_output_in_order): Call
28347         varpool_finalize_named_section_flags.
28348         * varasm.c (get_section): Allow section flags conflicts between
28349         relro and read-only sections if the section hasn't been declared yet.
28350         Set SECTION_OVERRIDE after diagnosing section type conflict.
28351         (get_variable_section): No longer static.
28352         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
28353         readonly sections that need relocations.
28354         (decl_readonly_section_1): New function.
28355         (decl_readonly_section): Use it.
28356
28357         Revert:
28358         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
28359                     Steve Ellcey  <sje@cup.hp.com>
28360
28361         PR middle-end/31490
28362         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
28363         if section attribute used.
28364
28365 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
28366
28367         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
28368         * config/darwin.c (SECTION_NO_ANCHOR): Define.
28369         (darwin_init_sections): Remove assertion.
28370
28371 2011-02-03  Nick Clifton  <nickc@redhat.com>
28372
28373         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
28374         lt and ge.
28375         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
28376         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
28377         instead of "n" and "pz".
28378         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
28379         CC_FLAG_S.
28380
28381 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
28382
28383         PR target/47312
28384         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
28385         fma, expand FMA_EXPR as fma{,f,l} call.
28386
28387         PR lto/47274
28388         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
28389         copy them into a unsigned char variable and pass address of it to
28390         lto_output_data_stream.
28391
28392         PR target/47564
28393         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
28394         around backend_init_target and lang_dependent_init_target calls.
28395         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
28396         (verify_cgraph_node): Don't call set_cfun here.  Use
28397         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
28398         Set error_found for incorrectly represented calls to thunks.
28399
28400 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
28401
28402         PR debug/43092
28403         PR rtl-optimization/43494
28404         * rtl.h (for_each_inc_dec_fn): New type.
28405         (for_each_inc_dec): Declare.
28406         * rtlanal.c (struct for_each_inc_dec_ops): New type.
28407         (for_each_inc_dec_find_inc_dec): New fn.
28408         (for_each_inc_dec_find_mem): New fn.
28409         (for_each_inc_dec): New fn.
28410         * dse.c (struct insn_size): Remove.
28411         (replace_inc_dec, replace_inc_dec_mem): Remove.
28412         (emit_inc_dec_insn_before): New fn.
28413         (check_for_inc_dec): Use it, along with for_each_inc_dec.
28414         (canon_address): Pass mem modes to cselib_lookup.
28415         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
28416         (cselib_lookup_from_insn): Likewise.
28417         (cselib_subst_to_values): Likewise.
28418         * cselib.c (find_slot_memmode): New var.
28419         (cselib_find_slot): New fn.  Use it instead of
28420         htab_find_slot_with_hash everywhere.
28421         (entry_and_rtx_equal_p): Use find_slot_memmode.
28422         (autoinc_split): New fn.
28423         (rtx_equal_for_cselib_p): Rename and implement in terms of...
28424         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
28425         Deal with autoinc.  Special-case recursion into MEMs.
28426         (cselib_hash_rtx): Likewise.
28427         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
28428         address and MEM modes.
28429         (cselib_subst_to_values): Add memmode, pass it on.
28430         Deal with autoinc.
28431         (cselib_lookup): Add memmode argument, pass it on.
28432         (cselib_lookup_from_insn): Add memmode.
28433         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
28434         (struct cselib_record_autoinc_data): New.
28435         (cselib_record_autoinc_cb): New fn.
28436         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
28437         mode to cselib_lookup.  Reset autoinced REGs here instead of...
28438         (cselib_process_insn): ... here.
28439         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
28440         to cselib_lookup.
28441         (add_uses): Likewise, also to cselib_subst_to_values.
28442         (add_stores): Likewise.
28443         * sched-deps.c (add_insn_mem_dependence): Pass mode to
28444         cselib_subst_to_values.
28445         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
28446         * gcse.c (do_local_cprop): Adjusted.
28447         * postreload.c (reload_cse_simplify_set): Adjusted.
28448         (reload_cse_simplify_operands): Adjusted.
28449         * sel-sched-dump (debug_mem_addr_value): Pass mode.
28450
28451 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
28452
28453         PR tree-optimization/45122
28454         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
28455         unsafe assumptions when there's more than one loop exit.
28456
28457 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
28458
28459         PR target/47272
28460         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
28461         Document using vector double with the load/store builtins, and
28462         that the load/store builtins always use Altivec instructions.
28463
28464         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
28465         to use altivec memory instructions, even on VSX.
28466         (vector_altivec_store_<mode>): Ditto.
28467
28468         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
28469         function.
28470
28471         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
28472         V2DF, V2DI support to load/store overloaded builtins.
28473
28474         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
28475         altivec load/store builtins for V2DF/V2DI types.
28476
28477         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
28478         set avoid indexed addresses on power6 if -maltivec.
28479         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
28480         vector_altivec_load/vector_altivec_store builtins.
28481         (altivec_expand_st_builtin): Ditto.
28482         (altivec_expand_builtin): Add VSX memory builtins.
28483         (rs6000_init_builtins): Add V2DI types to internal types.
28484         (altivec_init_builtins): Add support for V2DF/V2DI altivec
28485         load/store builtins.
28486         (rs6000_address_for_altivec): Insure memory address is appropriate
28487         for Altivec.
28488
28489         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
28490         vec_vsx_ld and vec_vsx_st.
28491         (vsx_store_<mode>): Ditto.
28492
28493         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
28494         variables to hold long long types for VSX vector memory builtins.
28495         (RS6000_BTI_unsigned_long_long): Ditto.
28496         (long_long_integer_type_internal_node): Ditti.
28497         (long_long_unsigned_type_internal_node): Ditti.
28498
28499         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
28500         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
28501         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
28502
28503         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
28504         short cuts.
28505         (vec_vsx_st): Ditto.
28506
28507 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
28508
28509         * config/pa/pa-hpux10.opt: New.
28510         * config/hpux11.opt (pthread): New Driver option.
28511         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
28512         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
28513
28514 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
28515
28516         * config/ia64/vms.opt: New.
28517         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
28518
28519 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
28520
28521         PR target/47580
28522         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
28523         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
28524         generator functions.
28525         (vsx_floatuns<VSi><mode>2): Ditto.
28526         (vsx_fix_trunc<mode><VSi>2): Ditto.
28527         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
28528
28529 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
28530
28531         * config/i386/djgpp.opt (posix): New Driver option.
28532
28533 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
28534
28535         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
28536         Move to the unsupported targets list.
28537
28538 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
28539
28540         PR rtl-optimization/47525
28541         * df-scan.c: Update copyright years.
28542         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
28543         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
28544
28545 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28546
28547         * config/i386/sysv4.h (TARGET_VERSION): Remove.
28548         (SUBTARGET_RETURN_IN_MEMORY): Remove.
28549         (ASM_OUTPUT_ASCII): Remove.
28550         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
28551
28552 2011-02-02  Jeff Law  <law@redhat.com>
28553
28554         PR middle-end/47543
28555         * reload.c (find_reloads_address): Handle reg+d address where both
28556         components are invalid by reloading the entire address.
28557
28558 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
28559             Richard Guenther  <rguenther@suse.de>
28560
28561         PR tree-optimization/40979
28562         PR bootstrap/47044
28563         * passes.c (init_optimization_passes): After LIM call copy_prop
28564         and DCE to clean up.
28565         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
28566
28567 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
28568
28569         PR tree-optimization/47576
28570         PR tree-optimization/47555
28571         * doc/invoke.texi (scev-max-expr-complexity): Documented.
28572         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
28573         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
28574         * tree-scalar-evolution.c (follow_ssa_edge): Use
28575         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
28576
28577 2011-02-02  Richard Guenther  <rguenther@suse.de>
28578
28579         PR tree-optimization/47566
28580         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
28581
28582 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
28583
28584         PR debug/47106
28585         PR debug/47402
28586         * tree-inline.c (declare_return_variable): Remove unused caller
28587         variable.
28588
28589         PR debug/47106
28590         PR debug/47402
28591         * tree-flow-inline.h (clear_is_used, is_used_p): New.
28592         * cfgexpand.c (account_used_vars_for_block): Use them.
28593         * tree-nrv.c (tree_nrv): Likewise.
28594         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
28595         (dump_scope_block): Likewise.
28596         (remove_unused_locals): Likewise.
28597
28598         PR debug/47106
28599         PR debug/47402
28600         * tree-inline.c (declare_return_variable): Add result decl to
28601         local decls only once.
28602         * gimple-low.c (record_vars_into): Mark newly-created variables
28603         as referenced.
28604
28605 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
28606
28607         PR debug/47498
28608         PR debug/47501
28609         PR debug/45136
28610         PR debug/45130
28611         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
28612         debug insns.
28613         (no_real_insns_p, schedule_block, set_priorities): Drop special
28614         treatment of boundary debug insns.
28615         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
28616         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
28617         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
28618         (BOUNDARY_DEBUG_INSN_P): Likewise.
28619         (SCHEDULE_DEBUG_INSN_P): Likewise.
28620         * sched-rgn.c (init_ready_list): Drop special treatment of
28621         boundary debug insns.
28622         * final.c (rest_of_clean_state): Clear notes' BB.
28623
28624 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
28625
28626         * config/openbsd.opt (assert=): New Driver option.
28627
28628 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
28629
28630         * config/i386/nto.opt: New.
28631         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
28632
28633 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
28634
28635         * config/i386/netware.opt: New.
28636         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
28637
28638 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
28639
28640         * config/interix.opt (posix): New Driver option.
28641
28642 2011-02-01  DJ Delorie  <dj@redhat.com>
28643
28644         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
28645
28646         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
28647         class for A0/A1.
28648
28649 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
28650
28651         PR tree-optimization/47561
28652         * toplev.c (process_options): Print the Graphite flags.  Add
28653         flag_loop_flatten to the list of options requiring Graphite.
28654
28655 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
28656
28657         * config/i386/cygming.opt (posix): New Driver option.
28658
28659 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
28660
28661         * config/arm/vxworks.opt: New.
28662         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
28663
28664 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
28665
28666         * config/alpha/elf.opt: New.
28667         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
28668         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
28669
28670 2011-02-01  Richard Guenther  <rguenther@suse.de>
28671
28672         PR tree-optimization/47559
28673         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
28674         store-motion on references that can throw.
28675
28676 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
28677
28678         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
28679         * tree-pass.h (TDF_CSELIB): New macro.
28680         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
28681         cselib_lookup): Check for it rather than for TDF_DETAILS.
28682
28683 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
28684
28685         PR driver/47547
28686         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
28687         is HOST_BIT_BUCKET.
28688
28689         * opts.c (finish_options): Don't add x_aux_base_name if it is
28690         HOST_BIT_BUCKET.
28691
28692 2011-02-01  Richard Guenther  <rguenther@suse.de>
28693
28694         PR tree-optimization/47555
28695         Revert
28696         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
28697
28698         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
28699
28700 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
28701
28702         PR gcc/46692
28703         * config/lm32/t-lm32: Add multilib for all CPU options.
28704
28705 2011-02-01  Richard Guenther  <rguenther@suse.de>
28706
28707         PR tree-optimization/47541
28708         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
28709         sure to have a field at offset zero.
28710
28711 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
28712
28713         * config/arc/arc.opt (EB, EL): New Driver options.
28714
28715 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
28716
28717         * config/alpha/osf5.opt: New.
28718         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
28719
28720 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
28721
28722         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
28723
28724 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
28725
28726         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
28727         -floop-interchange.
28728         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
28729         is an alias of -floop-interchange and that it requires the
28730         Graphite infrastructure.
28731         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
28732         flag_loop_interchange based on the value of flag_tree_loop_linear.
28733
28734 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
28735             Richard Guenther  <rguenther@suse.de>
28736
28737         PR tree-optimization/47538
28738         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
28739         type instead of r1type, except for comparisons.  For right
28740         shifts and comparisons punt if there are mismatches in
28741         sizetype vs. non-sizetype types.
28742
28743 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28744
28745         * doc/sourcebuild.texi (Effective-Target Keywords): Document
28746         avx_runtime.
28747
28748 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28749
28750         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
28751         version number.
28752         * configure: Regenerate.
28753
28754 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28755
28756         * configure.ac (gcc_cv_ld_static_option): Define.
28757         (gcc_cv_ld_dynamic_option): Define.
28758         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
28759         instead.
28760         (HAVE_LD_STATIC_DYNAMIC): Update message.
28761         (LD_STATIC_OPTION): Define.
28762         (LD_DYNAMIC_OPTION): Define.
28763         * configure: Regenerate.
28764         * config.in: Regenerate.
28765         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
28766         HAVE_LD_STATIC_DYNAMIC]: Use them.
28767
28768 2011-01-31  Nick Clifton  <nickc@redhat.com>
28769
28770         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
28771         registers inside interrupt handlers if the handler is not a leaf
28772         function.
28773
28774 2011-01-31  Nick Clifton  <nickc@redhat.com>
28775
28776         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
28777         reg_renumber returning an INVALID_REGNUM.
28778
28779 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
28780
28781         PR libgcj/44341
28782         * doc/install.texi: Document host options discarded when cross
28783         configuring target libraries.
28784
28785 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
28786
28787         Reverted:
28788         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
28789         PR debug/45136
28790         PR debug/45130
28791         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
28792         debug insns.
28793         (no_real_insns_p, schedule_block, set_priorities): Drop special
28794         treatment of boundary debug insns.
28795         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
28796         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
28797         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
28798         (BOUNDARY_DEBUG_INSN_P): Likewise.
28799         (SCHEDULE_DEBUG_INSN_P): Likewise.
28800         * sched-rgn.c (init_ready_list): Drop special treatment of
28801         boundary debug insns.
28802         * final.c (rest_of_clean-state): Clear notes' BB.
28803
28804 2011-01-31  Alan Modra  <amodra@gmail.com>
28805
28806         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
28807         toc relative expressions as we do in print_operand_address.
28808
28809 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
28810
28811         * doc/extend.texi: Follow spelling conventions.
28812         * doc/invoke.texi: Fix a typo.
28813
28814 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
28815
28816         * config/hpux11.opt: New.
28817         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
28818         ia64*-*-hpux*): Use hpux11.opt.
28819
28820 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
28821
28822         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
28823         to tmake_file.
28824
28825 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
28826
28827         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
28828         support sites.
28829
28830 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
28831
28832         * doc/install.texi (Binaries): Remove outdated reference for
28833         Motorola 68HC11/68HC12 downloads.
28834
28835 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
28836
28837         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
28838         Drepper's paper.
28839
28840 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
28841
28842         PR bootstrap/47147
28843         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
28844         used by NetBSD.
28845
28846 2011-01-28  Ahmad Sharif  <asharif@google.com>
28847
28848         * value-prof.c (check_counter): Corrected error message.
28849
28850 2011-01-29  Jie Zhang  <jie@codesourcery.com>
28851
28852         * config/arm/arm.c (arm_legitimize_reload_address): New.
28853         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
28854         arm_legitimize_reload_address.
28855         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
28856
28857 2011-01-28  Ian Lance Taylor  <iant@google.com>
28858
28859         * godump.c (go_define): Ignore macros whose definitions include
28860         two adjacent operands.
28861
28862 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
28863
28864         PR target/42894
28865         * varasm.c (force_const_mem): Store copy of x in desc->constant
28866         instead of x itself.
28867         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
28868         itself into REG_EQUAL note.
28869
28870 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
28871
28872         * config/freebsd.opt (posix, rdynamic): New Driver options.
28873
28874 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28875
28876         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
28877         -Bstatic/-Bdynamic.
28878         * configure: Regenerate.
28879
28880 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
28881
28882         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
28883         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
28884
28885 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
28886
28887         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
28888         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
28889         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
28890         (s390_preferred_reload_class): Make static. Change return and
28891         'rclass' argument type to reg_class_t.
28892
28893 2011-01-27  Jan Hubicka  <jh@suse.cz>
28894
28895         PR middle-end/46949
28896         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
28897         (process_function_and_variable_attributes): Check defined weakrefs.
28898
28899 2011-01-27  Martin Jambor  <mjambor@suse.cz>
28900
28901         PR tree-optimization/47228
28902         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
28903         build_ref_for_offset.
28904
28905 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
28906
28907         * config/spu/spu-elf.h (ASM_SPEC): Remove.
28908
28909 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
28910
28911         PR rtl-optimization/46856
28912         * postreload.c (reload_combine_recognize_const_pattern): Do not
28913         separate cc0 setter and user on cc0 targets.
28914
28915 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
28916
28917         PR c/43082
28918         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
28919         passed a VOID_TYPE expression, immediately emit an error and
28920         return error_mark_node.
28921
28922 2011-01-26  Jeff Law  <law@redhat.com>
28923
28924         PR rtl-optimization/47464
28925         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
28926         rather than may_trap_p as needed.
28927
28928 2011-01-26  DJ Delorie  <dj@redhat.com>
28929
28930         PR rtl-optimization/46878
28931         * combine.c (insn_a_feeds_b): Check for the implicit cc0
28932         setter/user dependency as well.
28933
28934 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
28935
28936         PR rtl-optimization/44469
28937         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
28938         after removing trivially dead basic blocks.
28939
28940 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
28941
28942         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
28943         * config/frv/frv.h (LINK_SPEC): Likewise.
28944         * config/i386/netware.h (LINK_SPEC): Likewise.
28945         * config/m68k/linux.h (ASM_SPEC): Likewise.
28946         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
28947         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
28948         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
28949         * config/sparc/linux.h (ASM_SPEC): Likewise.
28950         * config/sparc/linux64.h (ASM_SPEC): Likewise.
28951         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
28952
28953 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
28954
28955         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
28956         * config/frv/frv.h (ASM_SPEC): Likewise.
28957         * config/m68k/linux.h (ASM_SPEC): Likewise.
28958         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
28959         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
28960         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
28961         * config/sparc/linux.h (ASM_SPEC): Likewise.
28962         * config/sparc/linux64.h (ASM_SPEC): Likewise.
28963         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
28964
28965 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
28966
28967         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
28968         * config/frv/frv.h (LINK_SPEC): Likewise.
28969         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
28970
28971 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
28972
28973         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
28974         * config/frv/frv.h (ASM_SPEC): Likewise.
28975         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
28976         * config/m68k/linux.h (ASM_SPEC): Likewise.
28977         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
28978         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
28979         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
28980         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
28981         * config/sparc/linux.h (ASM_SPEC): Likewise.
28982         * config/sparc/linux64.h (ASM_SPEC): Likewise.
28983         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
28984         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
28985
28986 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
28987
28988         PR target/46997
28989         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
28990         (*mux2): Ditto.
28991         (vec_extract_evenodd_help): Ditto.
28992         (vec_extract_evenv4hi): Ditto.
28993         (vec_extract_oddv4hi): Ditto.
28994         (vec_interleave_lowv2si): Ditto.
28995         (vec_interleave_highv2si): Ditto.
28996         (vec_extract_evenv2si): Ditto.
28997         (vec_extract_oddv2si: Ditto.
28998         (vec_pack_trunc_v2si): Ditto.
28999
29000 2011-01-22  Jan Hubicka  <jh@suse.cz>
29001
29002         PR target/47237
29003         * cgraph.h (cgraph_local_info): New field can_change_signature.
29004         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
29005         signature can change.
29006         (ipcp_estimate_growth): Call sequence simplify only if calle signature
29007         can change.
29008         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
29009         (cgraph_function_versioning): We can not change signature of functions
29010         that don't allow that.
29011         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
29012         (lto_input_node): Likewise.
29013         * ipa-inline.c (compute_inline_parameters): Compute
29014         local.can_change_signature.
29015         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
29016         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
29017         functions that can not change signature.
29018         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
29019         init_cumulative_args): Do not use local calling conventions
29020         for functions that can not change signature.
29021
29022 2011-01-22  Jan Hubicka  <jh@suse.cz>
29023
29024         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
29025
29026 2011-01-26  Richard Guenther  <rguenther@suse.de>
29027
29028         PR tree-optimization/47190
29029         * cgraphunit.c (process_common_attributes): New function.
29030         (process_function_and_variable_attributes): Use it.
29031
29032 2011-01-26  Richard Guenther  <rguenther@suse.de>
29033
29034         PR lto/47423
29035         * cgraphbuild.c (record_eh_tables): Record reference to personality
29036         function.
29037
29038 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
29039
29040         PR debug/45454
29041         * sel-sched.c (moveup_expr): Don't let debug insns prevent
29042         non-debug insns from moving up.
29043
29044 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
29045
29046         PR target/40125
29047         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
29048         t-dlldir{,-x} fragment for build and add it to tmake_file.
29049         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
29050         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
29051         * config/i386/t-dlldir: New file.
29052         (SHLIB_DLLDIR): Define.
29053         * config/i386/t-dlldir-x: New file.
29054         (SHLIB_DLLDIR): Define.
29055         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
29056         (SHLIB_INSTALL): Use it.
29057
29058 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
29059
29060         PR target/47246
29061         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
29062         lower bound of the allowed Thumb-2 coprocessor load/store
29063         index range to -256. Add explaining comment.
29064
29065 2011-01-25  Ian Lance Taylor  <iant@google.com>
29066
29067         * godump.c (go_define): Improve lexing of macro expansion to only
29068         accept expressions which match Go spec.
29069
29070 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
29071
29072         PR c++/43601
29073         * tree.c (handle_dll_attribute): Handle it.
29074         * doc/extend.texi (@item dllexport): Mention it.
29075         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
29076
29077 2011-01-25  Ian Lance Taylor  <iant@google.com>
29078
29079         PR tree-optimization/26854
29080         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
29081         (decl_jump_unsafe): Move higher in file, with no other change.
29082         (bind): Set has_jump_unsafe_decl if appropriate.
29083         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
29084         (check_earlier_gotos): Likewise.
29085         (c_check_switch_jump_warnings): Likewise.
29086
29087 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
29088
29089         * doc/invoke.texi (Warning Options): Add missing hyphen.
29090         (-fprofile-dir): Minor grammatical fixes.
29091         (-fbranch-probabilities): Likewise.
29092
29093 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
29094
29095         PR debug/45136
29096         PR debug/45130
29097         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
29098         debug insns.
29099         (no_real_insns_p, schedule_block, set_priorities): Drop special
29100         treatment of boundary debug insns.
29101         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
29102         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
29103         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
29104         (BOUNDARY_DEBUG_INSN_P): Likewise.
29105         (SCHEDULE_DEBUG_INSN_P): Likewise.
29106         * sched-rgn.c (init_ready_list): Drop special treatment of
29107         boundary debug insns.
29108         * final.c (rest_of_clean-state): Clear notes' BB.
29109
29110 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29111
29112         * Makefile.in (LAMBDA_H): Removed.
29113         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
29114         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
29115         lambda-trans.o, and tree-loop-linear.o.
29116         (lto-symtab.o): Remove dependence on LAMBDA_H.
29117         (tree-loop-linear.o): Remove rule.
29118         (lambda-mat.o): Same.
29119         (lambda-trans.o): Same.
29120         (lambda-code.o): Same.
29121         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
29122         (tree-vect-slp.o): Same.
29123         * hwint.h (gcd): Moved here.
29124         (least_common_multiple): Same.
29125         * lambda-code.c: Removed.
29126         * lambda-mat.c: Removed.
29127         * lambda-trans.c: Removed.
29128         * lambda.h: Removed.
29129         * tree-loop-linear.c: Removed.
29130         * lto-symtab.c: Do not include lambda.h.
29131         * omega.c (gcd): Removed.
29132         * passes.c (init_optimization_passes): Remove pass_linear_transform.
29133         * tree-data-ref.c (print_lambda_vector): Moved here.
29134         (lambda_vector_copy): Same.
29135         (lambda_matrix_copy): Same.
29136         (lambda_matrix_id): Same.
29137         (lambda_vector_first_nz): Same.
29138         (lambda_matrix_row_add): Same.
29139         (lambda_matrix_row_exchange): Same.
29140         (lambda_vector_mult_const): Same.
29141         (lambda_vector_negate): Same.
29142         (lambda_matrix_row_negate): Same.
29143         (lambda_vector_equal): Same.
29144         (lambda_matrix_right_hermite): Same.
29145         * tree-data-ref.h: Do not include lambda.h.
29146         (lambda_vector): Moved here.
29147         (lambda_matrix): Same.
29148         (dependence_level): Same.
29149         (lambda_transform_legal_p): Removed declaration.
29150         (lambda_collect_parameters): Same.
29151         (lambda_compute_access_matrices): Same.
29152         (lambda_vector_gcd): Same.
29153         (lambda_vector_new): Same.
29154         (lambda_vector_clear): Same.
29155         (lambda_vector_lexico_pos): Same.
29156         (lambda_vector_zerop): Same.
29157         (lambda_matrix_new): Same.
29158         * tree-flow.h (least_common_multiple): Removed declaration.
29159         * tree-parloops.c (lambda_trans_matrix): Moved here.
29160         (LTM_MATRIX): Same.
29161         (LTM_ROWSIZE): Same.
29162         (LTM_COLSIZE): Same.
29163         (LTM_DENOMINATOR): Same.
29164         (lambda_trans_matrix_new): Same.
29165         (lambda_matrix_vector_mult): Same.
29166         (lambda_transform_legal_p): Same.
29167         * tree-pass.h (pass_linear_transform): Removed declaration.
29168         * tree-ssa-loop.c (tree_linear_transform): Removed.
29169         (gate_tree_linear_transform): Removed.
29170         (pass_linear_transform): Removed.
29171         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
29172         flag_loop_interchange.
29173
29174 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
29175
29176         PR tree-optimization/47265
29177         PR tree-optimization/47443
29178         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
29179         if name still has some uses.
29180
29181 2011-01-25  Martin Jambor  <mjambor@suse.cz>
29182
29183         PR tree-optimization/47382
29184         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
29185         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
29186
29187 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
29188
29189         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
29190         sjlj_except_unwind_info.
29191
29192 2011-01-25  Richard Guenther  <rguenther@suse.de>
29193
29194         PR tree-optimization/47426
29195         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
29196         visible functions results escape.
29197
29198 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
29199
29200         PR target/45701
29201         * config/arm/arm.c (any_sibcall_uses_r3): New function.
29202         (arm_get_frame_offsets): Use it.
29203
29204 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29205             Jakub Jelinek  <jakub@redhat.com>
29206
29207         PR tree-optimization/47271
29208         * tree-if-conv.c (bb_postdominates_preds): New.
29209         (if_convertible_bb_p): Call bb_postdominates_preds.
29210         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
29211         (predicate_scalar_phi): Call bb_postdominates_preds.
29212
29213 2011-01-25  Nick Clifton  <nickc@redhat.com>
29214
29215         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
29216         * config/rx/rx.c (rx_function_value): Likewise.
29217         (rx_promote_function_mode): Likewise.
29218         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
29219         in order to make it legitimate.
29220         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
29221         make sure that the first operand is the same as the result register.
29222         (addsi3_unspec): Delete.
29223         (subdi3): Do not accept immediate operands.
29224         (subdi3_internal): Likewise.
29225
29226 2011-01-25  Jeff Law  <law@redhat.com>
29227
29228         PR rtl-optimization/37273
29229         * ira-costs.c (scan_one_insn): Detect constants living in memory and
29230         handle them like argument loads from stack slots.  Do not double
29231         count memory for memory constants and argument loads from stack slots.
29232
29233 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
29234
29235         PR tree-optimization/47427
29236         PR tree-optimization/47428
29237         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
29238         coalesce if the new root var would be TREE_READONLY.
29239
29240 2011-01-25  Richard Guenther  <rguenther@suse.de>
29241
29242         PR middle-end/47414
29243         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
29244         correct type for TBAA.
29245
29246 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29247
29248         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
29249         (close_phi_written_to_memory): Call for_each_index with
29250         dr_indices_valid_in_loop.
29251
29252 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29253
29254         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
29255         when it is initialized.
29256
29257 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29258
29259         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
29260         call to graphite_find_data_references_in_stmt.
29261         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
29262         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
29263         call to graphite_find_data_references_in_stmt.
29264         (analyze_drs_in_stmts): Same.
29265         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
29266         in which the scalar analysis of indices is performed.
29267         (create_data_ref): Same.  Update call to dr_analyze_indices.
29268         (find_data_references_in_stmt): Update call to create_data_ref.
29269         (graphite_find_data_references_in_stmt): Same.
29270         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
29271         declaration.
29272         (create_data_ref): Same.
29273         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
29274         call to create_data_ref.
29275
29276 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29277
29278         * graphite-sese-to-poly.c (build_poly_scop): Move
29279         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
29280
29281 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29282
29283         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
29284         VAR_DECL, PARM_DECL, and RESULT_DECL.
29285
29286 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29287
29288         * graphite-dependences.c (reduction_dr_1): Allow several reductions
29289         in a reduction PBB.
29290         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
29291         that have already been marked as PBB_IS_REDUCTION.
29292
29293 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29294
29295         * graphite-scop-detection.c (same_close_phi_node): New.
29296         (remove_duplicate_close_phi): New.
29297         (make_close_phi_nodes_unique): New.
29298         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
29299
29300 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29301
29302         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
29303         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
29304         of both data references to be the same.
29305
29306 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29307
29308         * graphite-dependences.c (build_lexicographical_constraint): Remove
29309         the gdim parameter.
29310         (build_lexicographical_constraint): Adjust call to
29311         ppl_powerset_is_empty.
29312         (dependence_polyhedron): Same.
29313         (graphite_legal_transform_dr): Same.
29314         (graphite_carried_dependence_level_k): Same.
29315         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
29316         parameter.
29317         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
29318
29319 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29320
29321         * graphite-sese-to-poly.c
29322         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
29323         (close_phi_written_to_memory): New.
29324         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
29325         and unshare_expr.
29326
29327 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29328
29329         * doc/install.texi: Update the expected version number of PPL to 0.11.
29330         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
29331         #if PPL_VERSION_MINOR < 11.
29332
29333 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29334
29335         * graphite-dependences.c: Include graphite-cloog-util.h.
29336         (new_poly_ddr): Inlined into dependence_polyhedron.
29337         (free_poly_ddr): Moved close by new_poly_ddr.
29338         (dependence_polyhedron_1): Renamed dependence_polyhedron.
29339         Early return NULL when ppl_powerset_is_empty returns true.
29340         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
29341         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
29342         (graphite_legal_transform_dr): Call new_poly_ddr.
29343         (graphite_carried_dependence_level_k): Same.
29344         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
29345         (dot_transformed_deps_stmt_1): Removed.
29346         (dot_deps_stmt_1): Call dot_deps_stmt_2.
29347         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
29348         (dot_deps_1): Call dot_deps_2.
29349         * Makefile.in (graphite-dependences.o): Add missing dependence on
29350         graphite-cloog-util.h.
29351
29352 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29353
29354         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
29355         (build_lexicographical_constraint): Same.
29356         (dependence_polyhedron_1): Same.
29357         (graphite_legal_transform_dr): Same.
29358         (graphite_carried_dependence_level_k): Same.
29359         * graphite-ppl.c (ppl_powerset_is_empty): New.
29360         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
29361         * tree-data-ref.c (dump_data_reference): Print the basic block index.
29362
29363 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29364
29365         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
29366         the "a followed by b" relation and document it.
29367
29368 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29369
29370         * graphite-dependences.c (build_lexicographical_constraint): Stop the
29371         iteration when the bag of constraints is empty.
29372
29373 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29374
29375         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
29376
29377 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29378
29379         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
29380         nest and two loop depths as parameters.
29381         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
29382         lst_perfect_nestify.
29383
29384 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29385
29386         * graphite-dependences.c (print_pddr): Call
29387         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
29388
29389 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29390
29391         * graphite-ppl.c (debug_gmp_value): New.
29392         * graphite-ppl.h (debug_gmp_value): Declared.
29393
29394 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
29395
29396         * doc/install.texi: Document availability of cloog-0.16.
29397
29398 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
29399
29400         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
29401         invalid postdominance info.
29402
29403 2011-01-24  Jan Hubicka  <jh@suse.cz>
29404
29405         PR c/21659
29406         * doc/extend.texi (weak pragma): Drop claim that it must
29407         appear before definition.
29408         * varasm.c (merge_weak, declare_weak): Only sanity check
29409         that DECL is not output at a time it is declared weak.
29410
29411 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
29412
29413         * machmode.def: Fixed comments.
29414
29415 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
29416
29417         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
29418
29419 2011-01-24  Paul Koning  <ni1d@arrl.net>
29420
29421         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
29422         WORDS_BIG_ENDIAN.
29423
29424 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
29425
29426         PR target/46519
29427         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
29428         (block_info): Add scanned and prev.
29429         (move_or_delete_vzeroupper_2): Return if the basic block
29430         has been scanned and the upper 128bit state is unchanged
29431         from the last scan.
29432         (move_or_delete_vzeroupper_1): Return true if the exit
29433         state is changed.
29434         (move_or_delete_vzeroupper): Visit basic blocks using the
29435         work-list based algorithm based on vt_find_locations in
29436         var-tracking.c.
29437
29438         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
29439
29440 2011-01-24  Nick Clifton  <nickc@redhat.com>
29441
29442         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
29443         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
29444         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
29445         then define __v850e1__.
29446         * doc/invoke.texi: Document -mv850es.
29447
29448 2011-01-24  Richard Henderson  <rth@redhat.com>
29449
29450         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
29451         compound unordered comparisons.
29452         * config/rx/rx.c (rx_split_fp_compare): Remove.
29453         * config/rx/rx-protos.h: Update.
29454         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
29455         (cbranchsf4): Don't call rx_split_fp_compare.
29456         (*cbranchsf4): Use rx_split_cbranch.
29457         (*cmpsf): Don't accept "i" constraint.
29458         (*conditional_branch): Only valid after reload.
29459         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
29460
29461 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
29462
29463         PR target/47385
29464         * config/rs6000/altivec.md (vector constant splitters): Add
29465         support for creating vector single precision constants if -mvsx is
29466         used and we would create the constant using Altivec primitives.
29467
29468 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
29469             Richard Sandiford  <rdsandiford@googlemail.com>
29470
29471         PR rtl-optimization/47166
29472         * reload1.c (emit_reload_insns): Disable the spill_reg_store
29473         mechanism for PRE_MODIFY and POST_MODIFY.
29474         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
29475         reloadreg.
29476
29477 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
29478
29479         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
29480
29481 2011-01-22  Jan Hubicka  <jh@suse.cz>
29482
29483         PR lto/47333
29484         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
29485
29486 2011-01-22  Jan Hubicka  <jh@suse.cz>
29487
29488         PR tree-optimization/43884
29489         PR lto/44334
29490         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
29491         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
29492
29493 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
29494
29495         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
29496         * config/s390/s390.c (s390_register_move_cost,
29497         s390_memory_move_cost): New.
29498         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
29499
29500 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
29501
29502         PR middle-end/47401
29503         * except.c (sjlj_assign_call_site_values): Move setting the
29504         crtl->uses_eh_lsda flag to ...
29505         (sjlj_mark_call_sites): ... here.
29506         (sjlj_emit_function_enter): Support NULL dispatch label.
29507         (sjlj_build_landing_pads): In a function with no landing pads
29508         that still has must-not-throw regions, generate code to register
29509         a personality function with empty LSDA.
29510
29511 2011-01-21  Richard Henderson  <rth@redhat.com>
29512
29513         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
29514
29515         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
29516
29517         * compare-elim.c: New file.
29518         * Makefile.in (OBJS-common): Add it.
29519         (compare-elim.o): New.
29520         * common.opt (fcompare-elim): New.
29521         * opts.c (default_options_table): Add OPT_fcompare_elim.
29522         * tree-pass.h (pass_compare_elim_after_reload): New.
29523         * passes.c (init_optimization_passes): Add it.
29524         * recog.h: Protect against re-inclusion.
29525         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
29526         * doc/invoke.texi (-fcompare-elim): Document it.
29527         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
29528         * doc/tm.texi: Rebuild.
29529
29530 2011-01-22  Nick Clifton  <nickc@redhat.com>
29531
29532         * config/rx/rx.md (cstoresf4): Pass comparison operator to
29533         rx_split_fp_compare.
29534
29535 2011-01-22  Nick Clifton  <nickc@redhat.com>
29536
29537         * config/rx/rx.md (UNSPEC_CONST): New.
29538         (deallocate_and_return): Wrap the amount popped off the stack in
29539         an UNSPEC_CONST in order to stop it being rejected by
29540         -mmax-constant-size.
29541         (pop_and_return): Add a "(return)" rtx.
29542         (call): Drop the immediate operand.
29543         (call_internal): Likewise.
29544         (call_value): Likewise.
29545         (call_value_internal): Likewise.
29546         (sibcall_internal): Likewise.
29547         (sibcall_value_internal): Likewise.
29548         (sibcall): Likewise.  Generate an explicit call using
29549         sibcall_internal.
29550         (sibcall_value): Likewise.
29551         (mov<>): FAIL if a constant operand is not legitimate.
29552         (addsi3_unpsec): New pattern.
29553
29554         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
29555         (ok_for_max_constant): New function.
29556         (gen_safe_add): New function.
29557         (rx_expand_prologue): Use gen_safe_add.
29558         (rx_expand_epilogue): Likewise.
29559         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
29560         UNSPEC CONSTs.
29561
29562 2011-01-21  Jeff Law  <law@redhat.com>
29563
29564         PR tree-optimization/47053
29565         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
29566         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
29567         statements are deleted.
29568         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
29569         is nonempty, then purge dead edges and cleanup the CFG.
29570
29571 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
29572
29573         PR debug/47402
29574         Temporarily revert:
29575         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
29576         PR debug/47106
29577         * tree-dfa.c (create_var_ann): Mark variable as used.
29578
29579 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
29580
29581         PR middle-end/45566
29582         * except.c (convert_to_eh_region_ranges): Emit queued no-region
29583         notes from other section in hot/cold partitioning even if
29584         last_action is -3.  Increment call_site_base.
29585
29586         PR rtl-optimization/47366
29587         * fwprop.c (forward_propagate_into): Return bool.  If
29588         any changes are made, -fnon-call-exceptions is used and
29589         REG_EH_REGION note is present, call purge_dead_edges
29590         and return true if it purged anything.
29591         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
29592         any EH edges were purged.
29593
29594 2011-01-21  Jeff Law  <law@redhat.com>
29595
29596         PR rtl-optimization/41619
29597         * caller-save.c (setup_save_areas): Break out code to determine
29598         which hard regs are live across calls by examining the reload chains
29599         so that it is always used.
29600         Eliminate code which checked REG_N_CALLS_CROSSED.
29601
29602 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
29603
29604         PR tree-optimization/47355
29605         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
29606         NOP has non-debug uses beyond PHIs in new_bb.
29607
29608 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
29609
29610         PR debug/47106
29611         * cfgexpand.c (account_used_vars_for_block): Only account vars
29612         that are annotated as used.
29613         (estimated_stack_frame_size): Don't set TREE_USED.
29614         * tree-dfa.c (create_var_ann): Mark variable as used.
29615
29616 2011-01-21  Richard Guenther  <rguenther@suse.de>
29617
29618         PR middle-end/47395
29619         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
29620
29621 2011-01-21  Richard Guenther  <rguenther@suse.de>
29622
29623         PR tree-optimization/47365
29624         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
29625         (vn_reference_lookup_pieces): Adjust.
29626         (vn_reference_lookup): Likewise.
29627         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
29628         (vn_reference_lookup_3): Only look through kills if in
29629         VN_WALKREWRITE mode.
29630         (vn_reference_lookup_pieces): Adjust.
29631         (vn_reference_lookup): Likewise.
29632         (visit_reference_op_load): Likewise.
29633         (visit_reference_op_store): Likewise.
29634         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
29635         (compute_avail): Likewise.
29636         (eliminate): Likewise.
29637
29638 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
29639
29640         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
29641         DECL_IGNORED_P non-reg vars if they are used.
29642
29643         PR tree-optimization/47391
29644         * varpool.c (const_value_known_p): Return false if
29645         decl is volatile.
29646
29647 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
29648
29649         PR bootstrap/47215
29650         * config/i386/i386.c (ix86_local_alignment): Handle
29651         case for va_list_type_node is nil.
29652         (ix86_canonical_va_list_type): Likewise.
29653
29654 2011-01-21  Alan Modra  <amodra@gmail.com>
29655
29656         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
29657         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
29658
29659 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
29660
29661         * config/arm/arm.md (define_attr type): Rename f_load
29662         and f_store to f_fpa_load and f_fpa_store. Update.
29663         (write_conflict): Deal with rename fallout.
29664         (*push_fp_multi): Likewise.
29665         * config/arm/fpa.md (f_load): Use f_fpa_load.
29666         (f_store): Use f_fpa_store.
29667         (*movsf_fpa): Likewise.
29668         (*movdf_fpa): Likewise.
29669         (*movxf_fpa): Likewise.
29670         (*thumb2_movsf_fpa): Likewise.
29671         (*thumb2_movdf_fpa): Likewise.
29672         (*thumb2_movxf_fpa): Likewise.
29673         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
29674         f_loadd and f_stored.
29675         (*thumb2_movdi_vfp): Likewise.
29676         (*thumb2_movsf_vfp): Fix attribute to f_loads.
29677         (*thumb2_movsi_vfp): Likewise.
29678         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
29679         Use f_loads instead of f_load.
29680         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
29681
29682 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
29683
29684         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
29685         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
29686         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
29687         (xtensa_mode_dependent_address_p): New function.
29688         (constantpool_address_p): Make static. Change return type to bool.
29689         Change argument type to const_rtx. Use CONST_INT_P predicate.
29690
29691 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
29692
29693         PR debug/46583
29694         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
29695
29696 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
29697
29698         PR debug/47283
29699         * cfgexpand.c (expand_debug_expr): Instead of generating
29700         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
29701         etc. handling.
29702
29703 2011-01-20  Richard Guenther  <rguenther@suse.de>
29704
29705         PR middle-end/47370
29706         * tree-inline.c (remap_gimple_op_r): Recurse manually for
29707         the pointer operand of MEM_REFs.
29708
29709 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
29710
29711         PR tree-optimization/46130
29712         * ipa-split.c (consider_split): If return_bb contains non-virtual
29713         PHIs other than for retval or if split_function would not adjust it,
29714         refuse to split.
29715
29716 2011-01-20  Richard Guenther  <rguenther@suse.de>
29717
29718         PR tree-optimization/47167
29719         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
29720         Revert previous change, only avoid enumeral type changes.
29721
29722 2011-01-19  Mike Stump  <mikestump@comcast.net>
29723
29724         * doc/tm.texi.in (BRANCH_COST): Englishify.
29725         * doc/tm.texi (BRANCH_COST): Likewise.
29726
29727 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
29728
29729         PR c++/47291
29730         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
29731         (gen_scheduled_generic_parms_dies): New functions.
29732         (gen_struct_or_union_type_die): Schedule template parameters DIEs
29733         generation for the end of CU compilation.
29734         (dwarf2out_finish): Generate template parameters DIEs here.
29735
29736 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
29737
29738         PR debug/46240
29739         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
29740         debug bind stmt on merge edges.
29741
29742 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
29743
29744         PR debug/47079
29745         PR debug/46724
29746         * function.c (instantiate_expr): Instantiate incoming rtl of
29747         implicit arguments, and recurse on VALUE_EXPRs.
29748         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
29749         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
29750
29751 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
29752
29753         * c-parser.c (c_parser_for_statement): Initialize
29754         collection_expression.
29755
29756 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
29757
29758         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
29759
29760 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
29761
29762         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
29763         (LINK_SHLIB_SPEC): Don't use %(link_path).
29764         (SUBTARGET_EXTRA_SPECS): Remove link_path.
29765
29766 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
29767
29768         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
29769         (NO_SHARED_LIB_SUPPORT): Remove.
29770         (LINK_SHLIB_SPEC): Remove one conditional definition.
29771
29772 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
29773
29774         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
29775         %{call_shared}.
29776         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
29777         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
29778         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
29779         %{call_shared} and conditionals on these options not being passed.
29780         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
29781         %{call_shared}.
29782
29783 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
29784
29785         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
29786         simplify.
29787
29788         * ipa-split.c: Spelling fixes.
29789
29790 2011-01-19  Richard Henderson  <rth@redhat.com>
29791
29792         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
29793         (*mulsi3): Likewise.
29794
29795         * longlong.h [__mn10300__] (count_leading_zeros): New.
29796         [__mn10300__] (umul_ppmm, smul_ppmm): New.
29797         [__mn10300__] (add_ssaaaa, subddmmss): New.
29798         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
29799         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
29800
29801 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
29802
29803         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
29804
29805 2011-01-19  Richard Henderson  <rth@redhat.com>
29806
29807         * config/mn10300/mn10300.md (addsi3_flags): New.
29808         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
29809         (subsi3_flags, subc_internal, subdi3): New.
29810         (subdi3_internal, *subdi3_degenerate): New.
29811         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
29812
29813         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
29814         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
29815         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
29816         * config/mn10300/mn10300-protos.h: Update.
29817         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
29818         (return_ret): Likewise.  Rename from return_internal_regs.
29819         (return_internal): Remove.
29820
29821         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
29822         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
29823         (mn10300_legitimate_constant_p): Likewise.
29824         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
29825         (mn10300_frame_size): New.
29826         (mn10300_expand_prologue): Use it.
29827         (mn10300_expand_epilogue): Likewise.
29828         (mn10300_initial_offset): Likewise.
29829         * config/mn10300/mn10300-protos.h: Update.
29830         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
29831         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
29832         (prologue, epilogue, return_internal): Tidy output code.
29833         (mn10300_store_multiple_operation, return): Likewise.
29834         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
29835         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
29836         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
29837         (load_pic, am33_load_pic): New.
29838         (mn10300_load_pic0, mn10300_load_pic1): New.
29839
29840         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
29841         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
29842         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
29843         (cc_flags_for_mode, cc_flags_for_code): New.
29844         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
29845         overflow flag is not valid.  Validate that the flags we need
29846         for the comparison are valid.
29847         (mn10300_output_cmp): Remove.
29848         (mn10300_output_add): New.
29849         (mn10300_select_cc_mode): Use cc_flags_for_code.
29850         (mn10300_split_cbranch): New.
29851         (mn10300_match_ccmode): New.
29852         (mn10300_split_and_operand_count): New.
29853         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
29854         to the function.
29855         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
29856         (addsi3): ... here.  Use mn10300_output_add.
29857         (*addsi3_flags): New.
29858         (*am33_subsi3, *mn10300_subsi3): Merge...
29859         (subsi3): ... here.  Use attribute isa.
29860         (*subsi3_flags): New.
29861         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
29862         when possible.
29863         (*am33_andsi3, *mn10300_andsi3): Merge...
29864         (andsi3): ... here.
29865         (*andsi3_flags): New.
29866         (andsi3 splitters): New.
29867         (*am33_iorsi3, *mn10300_iorsi3): Merge...
29868         (iorsi3): ... here.
29869         (*iorsi3_flags): New.
29870         (*am33_xorsi3, *mn10300_xorsi3): Merge...
29871         (xorsi3): ... here.
29872         (*xorsi3_flags): New.
29873         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
29874         (one_cmplsi2): ... here.
29875         (*one_cmplsi2_flags): New.
29876         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
29877         instead of "dax" in constraints.  Use mn10300_split_cbranch.
29878         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
29879         use matching constraints to eliminate a self-comparison.
29880         (*integer_conditional_branch): Rename from integer_conditional_branch.
29881         Use int_mode_flags to match CC_REG.
29882         (*cbranchsi4_btst, *btstsi): New.
29883         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
29884         mn10300_split_cbranch.
29885         (*am33_cmpsf): Rename from am33_cmpsf.
29886         (*float_conditional_branch): Rename from float_conditional_branch.
29887         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
29888         (zero_extendqisi2): ... here.
29889         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
29890         (zero_extendhisi2): ... here.
29891         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
29892         (extendqisi2): ... here.
29893         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
29894         (extendhisi2): ... here.
29895         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
29896         (ashlsi3): ... here.
29897         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
29898         (lshrsi3): ... here.
29899         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
29900         (ashrsi3): ... here.
29901         (consecutive add peephole): Remove.
29902         * config/mn10300/predicates.md (label_ref_operand): New.
29903         (int_mode_flags): New.
29904         (CCZN_comparison_operator): New.
29905
29906         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
29907         (throughput_42_latency_43): New reservation.
29908         (mulsidi3, umulsidi3): New expanders.
29909         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
29910         the MDR register to allocation; separately allocate the low and
29911         high parts of the DImode result.
29912         (umulsidi3_internal): Similarly.
29913         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
29914         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
29915         (udivsi3, umodsi3): Remove.
29916         (udivmodsi4, divmodsi4): New expanders.
29917         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
29918         (*divmodsi4): Simiarly.
29919         (ext_internal): New.
29920
29921         * config/mn10300/constraints.md ("z"): New constraint.
29922         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
29923         (FIXED_REGISTERS): Don't fix MDR.
29924         (CALL_USED_REGSITERS): Reformat nicely.
29925         (REG_ALLOC_ORDER): Add MDR.
29926         (enum regclass): Add MDR_REGS.
29927         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
29928         (IRA_COVER_CLASSES): Add MDR_REGS.
29929         (REGNO_REG_CLASS): Handle MDR_REG.
29930         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
29931         (mn10300_register_move_cost): Likewise.
29932         * config/mn10300/mn10300.md (MDR_REG): New.
29933         (*movsi_internal): Handle moves to/from MDR_REGS.
29934
29935         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
29936         POST_MODIFY.
29937         (mn10300_secondary_reload): Tidy combination reload classes.
29938         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
29939         addresses for AM33.  Allow symbolic offsets for reg+imm.
29940         (mn10300_regno_in_class_p): New.
29941         (mn10300_legitimize_reload_address): New.
29942         * config/mn10300/mn10300.h (enum reg_class): Remove
29943         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
29944         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
29945         SP_OR_GENERAL_REGS.
29946         (REG_CLASS_NAMES): Update to match.
29947         (REG_CLASS_CONTENTS): Likewise.
29948         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
29949         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
29950         (REGNO_IN_RANGE_P): Remove.
29951         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
29952         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
29953         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
29954         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
29955         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
29956         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
29957         (REGNO_GENERAL_P): New.
29958         (HAVE_POST_MODIFY_DISP): New.
29959         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
29960         (LEGITIMIZE_RELOAD_ADDRESS): New.
29961         * config/mn10300/mn10300-protos.h: Update.
29962
29963         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
29964         DATA_REGS for AM33 stack-pointer destination.
29965         (mn10300_preferred_output_reload_class): Likewise.
29966         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
29967         into a form appropriate for ...
29968         (TARGET_SECONDARY_RELOAD): New.
29969         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
29970         * config/mn10300/mn10300-protos.h: Update.
29971         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
29972         reload_insi; use the "A" constraint for the scratch; handle AM33
29973         moves of sp to non-address registers.
29974
29975         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
29976         (*movqi_internal): ... here.
29977         (*am33_movhi, *mn10300_movhi): Merge into...
29978         (*movhi_internal): ... here.
29979         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
29980         as the source/destination of moves from/to SP.
29981         (movsf): Only allow for AM33-2.
29982         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
29983         any integer constant constraint.  Only allow for AM33-2.  Tidy
29984         all of the alternative outputs.
29985         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
29986         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
29987         for MN103.
29988         (udivsi3, umodsi3): New patterns for MN103 only.
29989
29990 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
29991
29992         * doc/tm.texi.in: Spell out that a lack of register class unions
29993         can lead to ICEs.
29994         * doc/tm.texi: Regenerate.
29995
29996 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
29997
29998         PR rtl-optimization/47337
29999         * dce.c (check_argument_store): New function.
30000         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
30001
30002         PR tree-optimization/47290
30003         * tree-eh.c (infinite_empty_loop_p): New function.
30004         (cleanup_empty_eh): Use it.
30005
30006 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
30007
30008         PR target/46997
30009         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
30010         (a64_expand_widen_sum): Ditto.
30011         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
30012         (vec_extract_evenodd_help): Ditto.
30013         (vec_extract_evenv4hi): Ditto.
30014         (vec_extract_oddv4hi): Ditto.
30015         (vec_extract_evenv2si): Ditto.
30016         (vec_extract_oddv2si): Ditto.
30017         (vec_extract_evenv2sf): Ditto.
30018         (vec_extract_oddv2sf): Ditto.
30019         (vec_pack_trunc_v4hi: Ditto.
30020         (vec_pack_trunc_v2si): Ditto.
30021         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
30022         (vec_interleave_highv8qi): Ditto.
30023         (mix1_r): Ditto.
30024         (vec_extract_oddv8qi): Ditto.
30025         (vec_interleave_lowv4hi): Ditto.
30026         (vec_interleave_highv4hi): Ditto.
30027         (vec_interleave_lowv2si): Ditto.
30028         (vec_interleave_highv2si): Ditto.
30029
30030 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
30031
30032         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
30033         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
30034         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
30035         (pa_c_mode_for_suffix): New.
30036         (TARGET_EXPAND_BUILTIN): Define.
30037         (TARGET_C_MODE_FOR_SUFFIX): Define.
30038         (pa_builtins): Define.
30039         (pa_init_builtins): Register __float128 type and init new support
30040         builtins.
30041         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
30042         * config/pa/quadlib.c (_U_Qfcopysign): New.
30043
30044 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
30045
30046         PR middle-end/46894
30047         * explow.c (allocate_dynamic_stack_space): Do not assume more than
30048         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
30049         are defined.
30050
30051 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30052
30053         PR tree-optimization/47179
30054         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
30055         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
30056
30057 2011-01-18  Richard Guenther  <rguenther@suse.de>
30058
30059         PR rtl-optimization/47216
30060         * emit-rtl.c: Include tree-flow.h.
30061         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
30062         of replicating it with different semantics.
30063         * Makefile.in (emit-rtl.o): Adjust.
30064
30065 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
30066
30067         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
30068         (cortex_a9_dp): Handle neon types correctly.
30069
30070 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
30071
30072         PR rtl-optimization/47299
30073         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
30074         subtarget.  Use normal multiplication if both operands are constants.
30075         * expmed.c (expand_widening_mult): Don't try to optimize constant
30076         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
30077         before using it.
30078
30079 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
30080
30081         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
30082         spacing after 'e.g.', typos, comma, hyphenation.
30083
30084 2011-01-17  Richard Henderson  <rth@redhat.com>
30085
30086         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
30087         (rx_restricted_mem_operand): New.
30088         (rx_shift_operand): Use register_operand.
30089         (rx_source_operand, rx_compare_operand): Likewise.
30090         * config/rx/rx.md (addsi3_flags): New expander.
30091         (adddi3): Rewrite as expander.
30092         (adc_internal, *adc_flags, adddi3_internal): New patterns.
30093         (subsi3_flags): New expander.
30094         (subdi3): Rewrite as expander.
30095         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
30096
30097         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
30098         (rx_init_builtins): Remove sat builtin.
30099         (rx_expand_builtin): Likewise.
30100         * config/rx/rx.md (ssaddsi3): New.
30101         (*sat): Rename from sat.  Represent the CC_REG input.
30102
30103         * config/rx/predicates.md (rshift_operator): New.
30104         * config/rx/rx.c (rx_expand_insv): Remove.
30105         * config/rx/rx-protos.h: Update.
30106         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
30107         operand to the canonical position.
30108         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
30109         (*bitclr, *bitclr_in_memory): Similarly.
30110         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
30111         (insv): Retain the zero_extract in the expansion.
30112
30113         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
30114         (bswaphi2, bitinvert, revw): Likewise.
30115
30116         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
30117         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
30118         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
30119         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
30120         (bitset, bitset_in_memory): Likewise.
30121         (bitinvert, bitinvert_in_memory): Likewise.
30122         (bitclr, bitclr_in_memory): Likewise.
30123         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
30124         (rx_strend, rx_cmpstrn): Likewise.
30125         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
30126         (bitop peep2 patterns): Remove.
30127
30128         * config/rx/rx.c (rx_match_ccmode): New.
30129         * config/rx/rx-protos.h: Update.
30130         * config/rx/rx.md (abssi2): Clobber, don't set flags.
30131         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
30132         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
30133         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
30134         (fix_truncsfsi2, floatsisf2): Likewise.
30135         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
30136         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
30137         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
30138         (*subsi3_flags, *xorsi3_flags): New.
30139
30140         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
30141
30142         * config/rx/rx.c (rx_print_operand): Remove workaround for
30143         unsplit comparison operations.
30144
30145         * config/rx/rx.md (movsicc): Split after reload.
30146         (*movsicc): Merge *movsieq and *movsine via match_operator.
30147         (*stcc): New pattern.
30148
30149         * config/rx/rx.c (rx_float_compare_mode): Remove.
30150         * config/rx/rx.h (rx_float_compare_mode): Remove.
30151         * config/rx/rx.md (cstoresi4): Split after reload.
30152         (*sccc): New pattern.
30153
30154         * config/rx/predicates.md (label_ref_operand): New.
30155         (rx_z_comparison_operator): New.
30156         (rx_zs_comparison_operator): New.
30157         (rx_fp_comparison_operator): New.
30158         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
30159         Validate that the flags are set properly for the comparison.
30160         (rx_gen_cond_branch_template): Remove.
30161         (rx_cc_modes_compatible): Remove.
30162         (mode_from_flags): New.
30163         (flags_from_code): Rename from flags_needed_for_conditional.
30164         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
30165         (rx_select_cc_mode): Likewise.
30166         (rx_split_fp_compare): New.
30167         (rx_split_cbranch): New.
30168         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
30169         (*cbranchsi4): Use match_operator and rx_split_cbranch.
30170         (*cbranchsf4): Similarly.
30171         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
30172         match_operator and rx_split_cbranch.
30173         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
30174         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
30175         (*cmpsi): Rename from cmpsi.
30176         (*tstsi): Rename from tstsi.
30177         (*cmpsf): Rename from cmpsf; use CC_Fmode.
30178         (*conditional_branch): Rename from conditional_branch.
30179         (*reveresed_conditional_branch): Remove.
30180         (b<code>): Remove expander.
30181         * config/rx/rx-protos.h: Update.
30182
30183         * config/rx/rx.c (rx_compare_redundant): Remove.
30184         * config/rx/rx.md (cmpsi): Don't use it.
30185         * config/rx/rx-protos.h: Update.
30186
30187         * config/rx/rx-modes.def (CC_F): New mode.
30188         * config/rx/rx.c (rx_select_cc_mode): New.
30189         * config/rx/rx.h (SELECT_CC_MODE): Use it.
30190         * config/rx/rx-protos.h: Update.
30191
30192 2011-01-17  Richard Henderson  <rth@redhat.com>
30193
30194         * except.c (dump_eh_tree): Fix stray ; after for statement.
30195
30196 2011-01-17  Richard Guenther  <rguenther@suse.de>
30197
30198         PR tree-optimization/47313
30199         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
30200         handling before copying the body.  Properly deal with
30201         by-reference result in SSA form.
30202
30203 2011-01-17  Ian Lance Taylor  <iant@google.com>
30204
30205         PR target/47219
30206         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
30207         (struct_value_alias_set): Don't define.
30208         (sparc_option_override): Don't set sparc_sr_alias_set and
30209         struct_value_alias_set.
30210         (save_or_restore_regs): Use gen_frame_mem rather than calling
30211         set_mem_alias_set.
30212         (sparc_struct_value_rtx): Likewise.
30213
30214 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
30215
30216         PR target/47318
30217         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
30218         (_mm_maskstore_pd): Likewise.
30219         (_mm_maskload_ps): Likewise.
30220         (_mm_maskstore_ps): Likewise.
30221         (_mm256_maskload_pd): Change mask to __m256i.
30222         (_mm256_maskstore_pd): Likewise.
30223         (_mm256_maskload_ps): Likewise.
30224         (_mm256_maskstore_ps): Likewise.
30225
30226         * config/i386/i386-builtin-types.def: Updated.
30227         (ix86_expand_special_args_builtin): Likewise.
30228
30229         * config/i386/i386.c (bdesc_special_args): Update
30230         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
30231         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
30232         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
30233         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
30234
30235         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
30236         Use <avxpermvecmode> on mask register.
30237         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
30238
30239 2011-01-17  Olivier Hainque  <hainque@adacore.com>
30240             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
30241             Eric Botcazou  <ebotcazou@adacore.com>
30242
30243         PR target/46655
30244         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
30245         if <= USHRT_MAX in 32-bit mode.
30246
30247 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
30248
30249         * doc/install.texi (Configuration, Specific): Wrap long
30250         lines in examples.  Allow line wrapping in long options
30251         and URLs where beneficial for PDF output.
30252
30253 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
30254
30255         * config/mips/mips.c (mips_classify_symbol): Don't return
30256         SYMBOL_PC_RELATIVE for nonlocal labels.
30257
30258 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
30259
30260         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
30261
30262 2011-01-15  Jan Hubicka  <jh@suse.cz>
30263
30264         PR tree-optimization/47276
30265         * ipa.c (function_and_variable_visibility): Do not try to mark alias
30266         declarations as needed.
30267
30268 2011-01-15  Martin Jambor  <mjambor@suse.cz>
30269
30270         * common.opt (fdevirtualize): New flag.
30271         * doc/invoke.texi (Option Summary): Document it.
30272         * opts.c (default_options_table): Add devirtualize flag.
30273         * ipa-prop.c (detect_type_change): Return immediately if
30274         devirtualize flag is not set.
30275         (detect_type_change_ssa): Likewise.
30276         (compute_known_type_jump_func): Likewise.
30277         (ipa_analyze_virtual_call_uses): Likewise.
30278
30279 2011-01-14  Martin Jambor  <mjambor@suse.cz>
30280
30281         PR tree-optimization/45934
30282         PR tree-optimization/46302
30283         * ipa-prop.c (type_change_info): New type.
30284         (stmt_may_be_vtbl_ptr_store): New function.
30285         (check_stmt_for_type_change): Likewise.
30286         (detect_type_change): Likewise.
30287         (detect_type_change_ssa): Likewise.
30288         (compute_complex_assign_jump_func): Check for dynamic type change.
30289         (compute_complex_ancestor_jump_func): Likewise.
30290         (compute_known_type_jump_func): Likewise.
30291         (compute_scalar_jump_functions): Likewise.
30292         (ipa_analyze_virtual_call_uses): Likewise.
30293         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
30294
30295 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30296
30297         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
30298         * config/i386/i386.opt (msse5): New Alias.
30299
30300 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30301
30302         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
30303         * config/sparc/linux64.h (CC1_SPEC): Likewise.
30304         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
30305         * config/sparc/sparc.h (CC1_SPEC): Likewise.
30306
30307 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30308
30309         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
30310         -mcpu options.
30311         * config/sparc/linux64.h (CC1_SPEC): Likewise.
30312         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
30313         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
30314         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
30315         Likewise.
30316         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
30317
30318 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30319
30320         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
30321
30322 2011-01-14  Mike Stump  <mikestump@comcast.net>
30323
30324         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
30325         * config/fr30/fr30.md: Likweise
30326         (movsi_push): Likewise.
30327         (movsi_pop): Likewise.
30328         (enter_func): Likewise.
30329         * config/moxie/moxie.md (movsi_push): Likewise.
30330         (movsi_pop): Likewise.
30331
30332 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30333
30334         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
30335         %{no_archive} %{exact_version}.
30336         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
30337         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
30338         %{no_archive} %{exact_version}.
30339         * config/mips/openbsd.h (LINK_SPEC): Likewise.
30340         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
30341         * config/mips/vxworks.h: Likewise.
30342
30343 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30344
30345         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
30346
30347 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30348
30349         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
30350         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
30351
30352 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30353
30354         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
30355         -nodefaultlib.
30356
30357 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30358
30359         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
30360         for mcpu not cpu.
30361         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
30362         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
30363         not cpu.
30364         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
30365         Don't handle -shlib.
30366
30367 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30368
30369         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
30370         (CC1_SPEC): Don't handle -profile.
30371
30372 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30373
30374         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
30375         * config/mips/mips.h (CC1_SPEC): Likewise.
30376
30377 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30378
30379         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
30380         * config/mips/mips.h (CC1_SPEC): Likewise.
30381
30382 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30383
30384         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
30385         * config/m32r/linux.h (LINK_SPEC): Likewise.
30386         * config/mips/linux.h (LINK_SPEC): Likewise.
30387         * config/mips/linux64.h (LINK_SPEC): Likewise.
30388         * config/sparc/linux.h (LINK_SPEC): Likewise.
30389         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
30390         LINK_SPEC): Likewise.
30391         * config/xtensa/linux.h (LINK_SPEC): Likewise.
30392
30393 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30394
30395         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
30396         %{version:-v}.
30397         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
30398
30399 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30400
30401         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
30402         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
30403
30404 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30405
30406         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
30407
30408 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30409
30410         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
30411         supports -Bstatic/-Bdynamic.
30412         * configure: Regenerate.
30413
30414 2011-01-14  Jan Hubicka  <jh@suse.cz>
30415             Jack Howarth  <howarth@bromo.med.uc.edu>
30416
30417         PR target/46037
30418         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
30419         when checking debug_info_level. Test write_symbols instead of
30420         debug_hooks->var_location when setting flag_var_tracking_uninit.
30421
30422 2011-01-14  Richard Guenther  <rguenther@suse.de>
30423
30424         PR tree-optimization/47179
30425         * target.def (ref_may_alias_errno): New target hook.
30426         * targhooks.h (default_ref_may_alias_errno): Declare.
30427         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
30428         (default_ref_may_alias_errno): New function.
30429         * target.h (struct ao_ref_s): Declare.
30430         * tree-ssa-alias.c: Include target.h.
30431         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
30432         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
30433         (targhooks.o): Likewise.
30434         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
30435         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
30436
30437 2011-01-14  Richard Guenther  <rguenther@suse.de>
30438
30439         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
30440
30441 2011-01-14  Richard Guenther  <rguenther@suse.de>
30442
30443         PR tree-optimization/47280
30444         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
30445         return CFG changes.
30446         (tree_ssa_forward_propagate_single_use_vars): Deal with
30447         CFG changes from associate_plusminus.
30448
30449 2011-01-14  Richard Guenther  <rguenther@suse.de>
30450
30451         PR middle-end/47281
30452         Revert
30453         2011-01-11  Richard Guenther  <rguenther@suse.de>
30454
30455         PR tree-optimization/46076
30456         * tree-ssa.c (useless_type_conversion_p): Conversions from
30457         unprototyped to empty argument list function types are useless.
30458
30459 2011-01-14  Richard Guenther  <rguenther@suse.de>
30460
30461         PR tree-optimization/47286
30462         * tree-ssa-structalias.c (new_var_info): Register variables are global.
30463
30464 2011-01-14  Martin Jambor  <mjambor@suse.cz>
30465
30466         PR middle-end/46823
30467         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
30468
30469 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
30470
30471         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
30472         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
30473         * config/xtensa/xtensa.c (xtensa_libcall_value,
30474         xtensa_function_value_regno_p): New functions.
30475         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
30476
30477 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
30478
30479         PR c++/47213
30480         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
30481         PE specific hook.
30482         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
30483         New function prototype.
30484         * config/i386/winnt.c (i386_pe_assemble_visibility):
30485         Warn only if attribute was specified by user.
30486
30487 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
30488
30489         PR target/47251
30490         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
30491         floating point.
30492         (floatunsdidf2_fcfidu): Ditto.
30493
30494 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30495
30496         * config/s390/s390.c (print_operand_address): Replace 'error' with
30497         'output_operand_lossage'.
30498         (print_operand): Likewise.
30499
30500 2011-01-13  Jeff Law  <law@redhat.com>
30501
30502         PR rtl-optimization/39077
30503         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
30504         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
30505         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
30506         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
30507         * gcse.c (prune_insertions_deletions): New function.
30508         (compute_pre_data): Use it.
30509
30510 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
30511
30512         PR debug/PR46973
30513         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
30514         static function.
30515         (prune_unused_types_mark): Use it.
30516
30517 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
30518
30519         PR rtl-optimization/45352
30520         * sel-sched.c: Update copyright years.
30521         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
30522         in the advancing loop when we have issued issue_rate insns.
30523
30524 2011-01-12  Richard Henderson  <rth@redhat.com>
30525
30526         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
30527         (TARGET_MD_ASM_CLOBBERS): New.
30528
30529         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
30530         (TARGET_DELEGITIMIZE_ADDRESS): New.
30531
30532         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
30533         (clzsi2, *bsch): New patterns.
30534
30535         * config/mn10300/mn10300.md (INT): New mode iterator.
30536         (*mov<INT>_clr): New pattern, and peep2 to generate it.
30537
30538         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
30539         flag_split_wide_types.
30540
30541         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
30542         (mn10300_trampoline_init): Rewrite without a template, an immediate
30543         load and a direct branch.
30544         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
30545
30546 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
30547
30548         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
30549         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
30550         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
30551         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
30552
30553 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
30554
30555         PR debug/47209
30556         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
30557         of type.
30558
30559 2011-01-12  Jan Hubicka  <jh@suse.cz>
30560
30561         PR driver/47244
30562         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
30563         (PLUGIN_COND_CLOSE): New macro.
30564         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
30565
30566 2011-01-12  Richard Guenther  <rguenther@suse.de>
30567
30568         PR lto/47259
30569         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
30570         register variables in a MEM_REF.
30571
30572 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
30573
30574         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
30575         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
30576         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
30577         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
30578         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
30579         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
30580         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
30581         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
30582         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
30583         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
30584         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
30585         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
30586         * config/gnu-user.h: New.  Copied from linux.h.
30587         (LINUX_TARGET_STARTFILE_SPEC): Rename to
30588         GNU_USER_TARGET_STARTFILE_SPEC.
30589         (LINUX_TARGET_ENDFILE_SPEC): Rename to
30590         GNU_USER_TARGET_ENDFILE_SPEC.
30591         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
30592         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
30593         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
30594         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
30595         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
30596         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
30597         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
30598         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
30599         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
30600         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
30601         * config/arm/linux-eabi.h (CC1_SPEC): Use
30602         GNU_USER_TARGET_CC1_SPEC.
30603         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
30604         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
30605         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
30606         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
30607         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
30608         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
30609         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
30610         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
30611
30612 2011-01-12  Richard Guenther  <rguenther@suse.de>
30613
30614         PR other/46946
30615         * doc/invoke.texi (ffast-math): Document it is turned on
30616         with -Ofast.
30617
30618 2011-01-12  Jan Hubicka  <jh@suse.cz>
30619
30620         PR tree-optimization/47233
30621         * opts.c (common_handle_option): Disable ipa-reference with profile
30622         feedback.
30623
30624 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
30625
30626         * c-parser.c (c_parser_objc_at_property_declaration): Improved
30627         error message.
30628
30629 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
30630
30631         * c-parser.c (c_lex_one_token): Updated and reindented some
30632         comments.  No changes in code.
30633
30634 2011-01-11  Ian Lance Taylor  <iant@google.com>
30635
30636         * godump.c (go_output_var): Don't output the variable if there is
30637         already a type with the same name.
30638
30639 2011-01-11  Ian Lance Taylor  <iant@google.com>
30640
30641         * godump.c (go_format_type): Don't generate float80.
30642
30643 2011-01-11  Richard Henderson  <rth@redhat.com>
30644
30645         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
30646         declaration.  Rewrite for both speed and size.
30647         (mn10300_address_cost_1): Remove.
30648         (mn10300_register_move_cost): New.
30649         (mn10300_memory_move_cost): New.
30650         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
30651         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
30652         extensions, shifts, BSWAP, CLZ.
30653         (mn10300_wide_const_load_uses_clr): Remove.
30654         (TARGET_REGISTER_MOVE_COST): New.
30655         (TARGET_MEMORY_MOVE_COST): New.
30656         * config/mn10300/mn10300-protos.h: Update.
30657         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
30658
30659         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
30660         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
30661         * config/mn10300/mn10300-protos.h: Update.
30662         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
30663         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
30664         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
30665         (*test_int_bitfield, *test_byte_bitfield): Remove.
30666         (*bit_test, *subreg_bit_test): Remove.
30667         * config/mn10300/predicates.md (const_8bit_operand): Remove.
30668
30669         * config/mn10300/constraints.md ("c"): Rename from "A".
30670         ("A", "D"): New constraint letters.
30671         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
30672         (fmssf4, fnmasf4, fnmssf4): Likewise.
30673
30674         * config/mn10300/mn10300.md (isa): New attribute.
30675         (enabled): New attribute.
30676
30677         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
30678         (abssf2, negsf2): Define only for hardware fp.
30679         (sqrtsf2): Reformat.
30680         (addsf3, subsf3, mulsf3): Merge expander and insn.
30681
30682         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
30683         (DEBUGGER_AUTO_OFFSET): Remove.
30684         (DEBUGGER_ARG_OFFSET): Remove.
30685
30686         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
30687         Emit register stores with the same offsets as the hardware.
30688         (mn10300_store_multiple_operation): Don't check that the register
30689         save offsets are monotonic.
30690         * config/mn10300/mn10300-protos.h: Update.
30691
30692         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
30693
30694         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
30695         in terms of the value on the stack, not the MDR register.
30696
30697 2011-01-11  Jan Hubicka  <jh@suse.cz>
30698
30699         PR lto/45721
30700         PR lto/45375
30701         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
30702         (symbol_alias_set_destroy, symbol_alias_set_contains,
30703         propagate_aliases_backward): Declare.
30704         * lto-streamer-out.c (struct sets): New sturcture.
30705         (trivally_defined_alias): New function.
30706         (output_alias_pair_p): Rewrite.
30707         (output_unreferenced_globals): Fix output of alias pairs.
30708         (produce_symtab): Likewise.
30709         * ipa.c (function_and_variable_visibility): Set weak alias destination
30710         as needed in lto.
30711         * varasm.c (symbol_alias_set_t): Remove.
30712         (symbol_alias_set_destroy): Export.
30713         (propagate_aliases_forward, propagate_aliases_backward): New functions
30714         based on ...
30715         (compute_visible_aliases): ... this one; remove.
30716         (trivially_visible_alias): New
30717         (trivially_defined_alias): New.
30718         (remove_unreachable_alias_pairs): Rewrite.
30719         (finish_aliases_1): Reorganize code checking if alias is defined.
30720         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
30721         in LTO mode.
30722
30723 2011-01-11  Richard Guenther  <rguenther@suse.de>
30724
30725         PR tree-optimization/46076
30726         * tree-ssa.c (useless_type_conversion_p): Conversions from
30727         unprototyped to empty argument list function types are useless.
30728
30729 2011-01-11  Richard Guenther  <rguenther@suse.de>
30730
30731         PR middle-end/45235
30732         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
30733         volatile MEMs as MEM_READONLY_P.
30734
30735 2011-01-11  Richard Guenther  <rguenther@suse.de>
30736
30737         PR tree-optimization/47239
30738         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
30739
30740 2011-01-11  Jeff Law  <law@redhat.com>
30741
30742         PR tree-optimization/47086
30743         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
30744         IVs from statements that might throw.
30745
30746 2011-01-10  Jan Hubicka  <jh@suse.cz>
30747
30748         PR lto/45375
30749         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
30750
30751 2011-01-10  Jan Hubicka  <jh@suse.cz>
30752
30753         PR lto/45375
30754         * profile.c (read_profile_edge_counts): Ignore profile inconistency
30755         when correcting profile.
30756
30757 2011-01-10  Jan Hubicka  <jh@suse.cz>
30758
30759         PR lto/46083
30760         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
30761         DECL_FINI_PRIORITY.
30762         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
30763         Restore DECL_FINI_PRIORITY.
30764
30765 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
30766
30767         * doc/gimple.texi: Fix quoting of multi-word return values in
30768         @deftypefn statements.  Ensure presence of return value.  Wrap
30769         overlong @deftypefn lines.
30770         (is_gimple_operand, is_gimple_min_invariant_address): Remove
30771         descriptions of removed functions.
30772         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
30773         of multi-word return value in @deftypefn statement.
30774
30775 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
30776
30777         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
30778         (Conditional Expressions, Logical Operators)
30779         (Statement and operand traversals): Do not indent smallexample
30780         code.  Fix duplicate function argument in example.
30781
30782 2011-01-10  Jeff Law  <law@redhat.com>
30783
30784         PR tree-optimization/47141
30785         * ipa-split.c (split_function): Handle case where we are
30786         returning a value and the return block has a virtual operand phi.
30787
30788 2011-01-10  Jan Hubicka  <jh@suse.cz>
30789
30790         PR tree-optimization/47234
30791         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
30792         (pass_feedback_split_functions): Declare.
30793         * passes.c (init_optimization_passes): Add ipa-split as subpass of
30794         tree-profile.
30795         * ipa-split.c (gate_split_functions): Update comments; disable
30796         split-functions for profile_arc_flag and branch_probabilities.
30797         (gate_feedback_split_functions): New function.
30798         (execute_feedback_split_functions): New function.
30799         (pass_feedback_split_functions): New global var.
30800
30801 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
30802
30803         PR lto/46760
30804         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
30805         calling gimple_call_set_cannot_inline.
30806
30807 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
30808
30809         * config/darwin-sections.def: Remove unused section.
30810
30811 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
30812
30813         PR c++/47218
30814         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
30815
30816 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
30817
30818         PR objc/47232
30819         * c-parser.c (c_parser_declaration_or_fndef): Improved
30820         error message.
30821
30822 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
30823
30824         * config/i386/winnt.c (i386_pe_start_function): Make sure
30825         to switch back to function's section.
30826
30827 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
30828
30829         PR gcc/46902
30830         PR testsuite/46912
30831         * plugin.c: Move include of dlfcn.h from here...
30832         * system.h: ... to here.
30833
30834 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
30835
30836         * doc/cpp.texi (C++ Named Operators): Fix markup for header
30837         file name.
30838         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
30839         two extra empty pages in PDF output.
30840
30841 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
30842
30843         PR objc/47078
30844         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
30845         for error recovery purposes behave as if it was not specified so
30846         that the default type is usd.
30847
30848 2011-01-07  Jan Hubicka  <jh@suse.cz>
30849
30850         PR tree-optmization/46469
30851         * ipa.c (function_and_variable_visibility): Clear needed flags on
30852         nodes with external decls; handle weakrefs merging correctly.
30853
30854 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
30855
30856         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
30857         not false.
30858
30859 2011-01-07  Jan Hubicka  <jh@suse.cz>
30860
30861         * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
30862         and no longer claim that gold is required for linker plugin.
30863         * configure: Regenerate.
30864         * gcc.c (PLUGIN_COND): New macro.
30865         (LINK_COMMAND_SPEC): Use it.
30866         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
30867         * config.in (HAVE_LTO_PLUGIN): New.
30868         * configure.ac (--with-lto-plugin): New parameter; autodetect
30869         HAVE_LTO_PLUGIN.
30870
30871 2011-01-07  Jan Hubicka  <jh@suse.cz>
30872
30873         PR tree-optimization/46367
30874         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
30875         when we can update original.
30876         (cgraph_mark_inline_edge): Sanity check.
30877         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
30878
30879 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30880
30881         * config/spu/spu.h (ASM_COMMENT_START): Define.
30882
30883 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
30884
30885         PR driver/42445
30886         * gcc.c (%>S): New.
30887         (SWITCH_KEEP_FOR_GCC): Likewise.
30888         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
30889         (do_spec_1): Handle "%>".
30890
30891         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
30892
30893 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
30894
30895         PR target/47201
30896         * config/i386/i386.c (ix86_delegitimize_address): If
30897         simplify_gen_subreg fails, return orig_x.
30898
30899         PR bootstrap/47187
30900         * value-prof.c (gimple_stringop_fixed_value): Handle
30901         lhs of the call properly.
30902
30903 2011-01-07  Jan Hubicka  <jh@suse.cz>
30904
30905         PR lto/45375
30906         * lto-opt.c (lto_reissue_options): Set flag_shlib.
30907
30908 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
30909
30910         * target.def (function_switched_text_sections): New hook.
30911         * doc/tm.texi: Regenerated.
30912         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
30913         * final.c (default_function_switched_text_sections): New.
30914         (final_scan_insn): Call function_switched_text_sections when a
30915         mid-function section change occurs.
30916         * output.h (default_function_switched_text_sections): Declare.
30917         * config/darwin-protos.h (darwin_function_switched_text_sections):
30918         Likewise.
30919         * config/darwin.c (darwin_function_switched_text_sections): New.
30920         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
30921
30922 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
30923
30924         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
30925         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
30926         the secondary code fragment when outputting for DWARF == 2.
30927
30928 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
30929
30930         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
30931         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
30932         Remove.
30933         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
30934         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
30935
30936 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
30937
30938         PR debug/46704
30939         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
30940         when it is not empty.
30941
30942 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
30943
30944         Bobcat Enablement
30945         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
30946         (case ${target}): Add btver1.
30947         * config/i386/driver-i386.c (host_detect_local_cpu): Let
30948         -march=native recognize btver1 processors.
30949         * config/i386/i386-c.c (ix86_target_macros_internal): Add
30950         btver1 def_and_undef
30951         * config/i386/i386.c (struct processor_costs btver1_cost): New
30952         btver1 cost table.
30953         (m_BTVER1): New definition.
30954         (m_AMD_MULTIPLE): Includes m_BTVER1.
30955         (initial_ix86_tune_features): Add btver1 tune.
30956         (processor_target_table): Add btver1 entry.
30957         (static const char *const cpu_names): Add btver1 entry.
30958         (software_prefetching_beneficial_p): Add btver1.
30959         (ix86_option_override_internal): Add btver1 instruction sets.
30960         (ix86_issue_rate): Add btver1.
30961         (ix86_adjust_cost): Add btver1.
30962         * config/i386/i386.h (TARGET_BTVER1): New definition.
30963         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
30964         (enum processor_type): Add PROCESSOR_BTVER1.
30965         * config/i386/i386.md (define_attr "cpu"): Add btver1.
30966
30967 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30968
30969         PR target/43309
30970         * config/i386/i386.c (legitimize_tls_address)
30971         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
30972         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
30973         (tls_initial_exec_64_sun): New pattern.
30974
30975 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
30976
30977         * doc/invoke.texi (Overall Options): Improve wording and markup
30978         of the description of -wrapper.
30979
30980 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
30981
30982         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
30983         rdynamic, threads): New Driver options.
30984
30985 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30986
30987         PR target/38118
30988         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
30989         if coming from .tdata.
30990         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
30991
30992 2011-01-06  Jan Hubicka  <jh@suse.cz>
30993
30994         PR lto/47188
30995         * collect2.c (main): Do not enable LTOmode when plugin is active.
30996
30997 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30998
30999         PR other/45915
31000         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
31001         --version output if supported.
31002         * configure: Regenerate.
31003
31004 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
31005
31006         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
31007         Driver options.
31008
31009 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
31010
31011         PR c/47150
31012         * c-convert.c (convert): When converting a complex expression
31013         other than COMPLEX_EXPR to a different complex type, ensure
31014         c_save_expr is called instead of save_expr, unless in_late_binary_op.
31015         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
31016         when converting COMPLEX_TYPE.
31017
31018 2011-01-06  Ira Rosen  <irar@il.ibm.com>
31019
31020         PR tree-optimization/47139
31021         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
31022         only the last reduction value is used outside the loop.  Update
31023         documentation.
31024
31025 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
31026
31027         * config/rtems.opt: New.
31028         * config.gcc (*-*-rtems*): Use rtems.opt.
31029
31030 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
31031
31032         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
31033         processors do not support 3DNow instructions.
31034
31035 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
31036
31037         * config/spu/spu.c (spu_option_override): Set parameter
31038         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
31039
31040 2011-01-05  Jan Hubicka  <jh@suse.cz>
31041
31042         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
31043         at the command line.
31044
31045 2011-01-05  Martin Jambor  <mjambor@suse.cz>
31046
31047         PR lto/47162
31048         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
31049         deltas on streamed outgoing edges.
31050         (output_node_opt_summary): Output info for outgoing edges only when
31051         the node is in new parameter set.
31052         (output_cgraph_opt_summary): New parameter set, passed to the two
31053         aforementioned functions.  Update its forward declaration and its
31054         callee too.
31055
31056 2011-01-05  Tom Tromey  <tromey@redhat.com>
31057
31058         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
31059         operator to c_finish_omp_atomic.
31060         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
31061         (build_unary_op): Update.
31062         (build_modify_expr): Update.
31063         (build_asm_expr): Update.
31064
31065 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
31066
31067         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
31068         newly inserted insns.
31069         (pad_bb): Likewise.
31070         (spu_emit_branch_hint): Likewise.
31071         (insert_hbrp_for_ilb_runout): Likewise.
31072         (spu_machine_dependent_reorg): Call df_finish_pass after
31073         schedule_insns returns.
31074
31075 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
31076
31077         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
31078
31079 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
31080
31081         PR tree-optimization/47005
31082         * tree-sra.c (struct access): Add 'non_addressable' bit.
31083         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
31084         (decide_one_param_reduction): Return 0 if the parameter is passed by
31085         reference and one of the accesses in the group is non_addressable.
31086
31087 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
31088
31089         PR tree-optimization/47056
31090         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
31091         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
31092         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
31093
31094 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
31095
31096         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
31097         initializer.  Skip view conversions from aggregate types.
31098
31099 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
31100
31101         PR bootstrap/47055
31102         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
31103
31104 2011-01-04  Philipp Thomas  <pth@suse.de>
31105
31106         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
31107         obvious typo.
31108
31109 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
31110
31111         * function.c (thread_prologue_and_epilogue_insns): Do not crash
31112         on empty epilogue sequences.
31113
31114 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
31115
31116         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
31117         non-static): New Driver options.
31118
31119 2011-01-04  Jie Zhang  <jie@codesourcery.com>
31120
31121         PR driver/47137
31122         * gcc.c (default_compilers[]): Set combinable field to 0
31123         for all assembly languages.
31124
31125 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
31126
31127         * config/mips/loongson3a.md: New file.
31128         * config/mips/mips.md: Include loongson3a.md.
31129         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
31130         TUNE_LOONGSON_3A.
31131
31132 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
31133
31134         PR middle-end/47017
31135         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
31136         instead of convert_memory_address_addr_space on the base expression.
31137
31138 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
31139
31140         * config/spu/spu.c (spu_option_override): Update error text
31141         for bad -march= / -mtune= values.
31142
31143 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
31144
31145         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
31146         if branch-hint optimization will be performed.
31147
31148 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
31149
31150         PR tree-optimization/47148
31151         * ipa-split.c (split_function): Convert arguments to
31152         DECL_ARG_TYPE if possible.
31153
31154         PR tree-optimization/47155
31155         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
31156         when computing uns.
31157
31158         PR rtl-optimization/47157
31159         * combine.c (try_combine): If undobuf.other_insn becomes
31160         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
31161         and set *new_direct_jump_p too.
31162
31163 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
31164
31165         PR tree-optimization/47021
31166         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
31167
31168 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
31169
31170         * gcc.c (process_command): Update copyright notice dates.
31171         * gcov.c (print_version): Likewise.
31172         * gcov-dump.c (print_version): Likewise.
31173         * mips-tfile.c (main): Likewise.
31174         * mips-tdump.c (main): Likewise.
31175
31176 2011-01-03  Martin Jambor  <mjambor@suse.cz>
31177
31178         PR tree-optimization/46801
31179         * tree-sra.c (type_internals_preclude_sra_p): Check whether
31180         aggregate fields start at byte boundary instead of the bit-field flag.
31181
31182 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
31183
31184         PR driver/47137
31185         * gcc.c (main): Revert revision 168407.
31186
31187 2011-01-03  Martin Jambor  <mjambor@suse.cz>
31188
31189         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
31190
31191 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
31192
31193         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
31194         vector optab to expand vector/scalar shift, update gimple to vector.
31195
31196 2011-01-03  Martin Jambor  <mjambor@suse.cz>
31197
31198         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
31199         a thunk.
31200
31201 2011-01-03  Martin Jambor  <mjambor@suse.cz>
31202
31203         PR tree-optimization/46984
31204         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
31205         HOST_WIDE_INT.
31206         (cgraph_create_indirect_edge): Fixed line length.
31207         (cgraph_indirect_call_info): Declare.
31208         (cgraph_make_edge_direct) Update declaration.
31209         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
31210         (cgraph_create_indirect_edge): Use it.
31211         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
31212         callees.
31213         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
31214         the new thunk_delta representation.
31215         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
31216         HOST_WIDE_INT.
31217         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
31218         (ipa_read_indirect_edge_info): Likewise.
31219         * lto-cgraph.c (output_edge_opt_summary): New function.
31220         (output_node_opt_summary): Call it on all outgoing edges.
31221         (input_edge_opt_summary): New function.
31222         (input_node_opt_summary): Call it on all outgoing edges.
31223
31224 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
31225
31226         PR driver/47137
31227         * gcc.c (main): Don't check have_o when settting combine_inputs.
31228
31229 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
31230
31231         * regrename.c: Add general comment describing the pass.
31232         (struct du_head): Remove 'length' field.
31233         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
31234         (regrename_optimize): Do not sort chains.  Rework comments, add others.
31235         Force renaming to the preferred class (if any) in the first pass and do
31236         not consider registers that belong to it in the second pass.
31237         (create_new_chain): Do not set 'length' field.
31238         (scan_rtx_reg): Likewise.
31239
31240 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
31241
31242         PR tree-optimization/47140
31243         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
31244         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
31245         to bit_value_binop.
31246
31247         PR rtl-optimization/47028
31248         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
31249         parm_birth_insn instead of at the beginning of first bb.
31250
31251 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
31252
31253         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
31254         Remove the word "see" before "@pxref".
31255         * doc/rtl.texi: Remove the word "see" before "@pxref".
31256
31257 2011-01-01  Jan Hubicka  <jh@suse.cz>
31258
31259         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
31260         memory.
31261
31262 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
31263
31264         PR target/38662
31265         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
31266
31267 \f
31268 Copyright (C) 2011 Free Software Foundation, Inc.
31269
31270 Copying and distribution of this file, with or without modification,
31271 are permitted in any medium without royalty provided the copyright
31272 notice and this notice are preserved.